[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M74YACEAY77V8S2A2Z0VGDBC":3,"skill-same:01M74YACEAY77V8S2A2Z0VGDBC":46},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M74YACEAY77V8S2A2Z0VGDBC","seasonal-patterns",null,"Detect seasonal revenue and expense patterns across 12+ months of data.","openaccountant\u002Fskills","openaccountant","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F264845549?v=4","01M74Y9H4M5RZ23X265W9B9GSC","OpenAccountant AI","01M74Y9H580Z745YB8EPFHF537",117,"MIT","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fbusiness\u002Fseasonal-patterns\u002FSKILL.md",[],[],"2026-11-11 17:30:46",false,"---\nname: seasonal-patterns\ndescription: >\n  Detect seasonal revenue and expense patterns across 12+ months of data.\n---\n\n# Seasonal Pattern Detection\n\n## Overview\nIdentify cyclical trends in your revenue and expenses over a 12-month or multi-year window. Reveals which months are historically strong or weak, enabling better cash management, staffing, and marketing timing.\n\n## Wilson Tools Used\n- `spending_summary` — pull monthly income and expense totals across 12+ months to build a seasonal profile\n\n## Workflow\n1. Ask for the analysis window (minimum 12 months, 24+ months preferred for statistical confidence).\n2. Use `spending_summary` for each month in the window to get monthly revenue and expense totals.\n3. Calculate the monthly index: Month Index = Month Revenue \u002F Average Monthly Revenue * 100.\n   - Index > 100 = above-average month\n   - Index \u003C 100 = below-average month\n4. Identify peaks and troughs.\n5. Generate the seasonal profile:\n\n```\nSEASONAL PATTERN ANALYSIS — [Period]\n══════════════════════════════════════════════════════════\nMonth    Avg Revenue   Index   Avg Expenses   Trend\n──────────────────────────────────────────────────────────\nJan        $8,200        82      $6,100       Slow start\nFeb        $7,800        78      $5,900       ▼ Trough\nMar        $9,500        95      $6,500       Recovering\nApr       $11,200       112      $7,200       ▲ Above avg\nMay       $12,500       125      $7,800       ▲ Strong\nJun       $13,000       130      $8,200       ▲▲ Peak\nJul       $11,800       118      $7,500       ▲ Above avg\nAug       $10,200       102      $7,000       Average\nSep       $10,500       105      $7,200       Average\nOct       $11,000       110      $7,500       ▲ Above avg\nNov        $9,500        95      $8,500       Expense spike\nDec        $6,800        68      $9,000       ▼▼ Low + high cost\n──────────────────────────────────────────────────────────\nAnnual   $122,000       100     $88,400\nPeak Month: June (130)    Trough Month: December (68)\nSeasonal Range: 62 points\n══════════════════════════════════════════════════════════\n```\n\n6. Calculate the seasonal range (peak index - trough index). Over 50 points indicates significant seasonality.\n7. Provide actionable recommendations:\n   - Build cash reserves during peak months for trough months\n   - Time major expenses (equipment, marketing campaigns) for peak-revenue months\n   - Consider seasonal pricing or promotions during slow months\n\n## Without Wilson\n1. Export 12-24 months of transactions from your bank as CSV.\n2. In a spreadsheet, add a `Month` column: `=TEXT(Date,\"YYYY-MM\")` and a `MonthNum` column: `=MONTH(Date)`.\n3. Create a pivot table: Rows = MonthNum, Values = Average of Income, Average of Expenses (use separate columns for multi-year averaging).\n4. Overall Average: `=AVERAGE(AllMonthlyRevenues)`.\n5. Seasonal Index per month: `=MonthAvgRevenue\u002FOverallAvg*100`.\n6. In Google Sheets, create a line chart of monthly revenue with a trendline to visualize the pattern.\n7. For statistical detection, use Excel's `=FORECAST.ETS.SEASONALITY(values, timeline)` to auto-detect the seasonal period length.\n8. Google Sheets alternative: chart the data and add a polynomial trendline (order 4-6) to see the seasonal curve.\n\n## Important Notes\n- You need at least 12 months of data for meaningful seasonal analysis. With only one year, you cannot distinguish seasonal patterns from one-time events. Two or more years dramatically improves confidence.\n- Not every business is seasonal. If your seasonal range is under 20 points, your revenue is relatively stable month-to-month.\n- Expense seasonality matters too. Insurance renewals, annual software subscriptions, and quarterly tax payments create predictable expense spikes.\n- Overlay seasonal patterns onto your cash flow forecast for more accurate projections.\n","# Seasonal Pattern Detection\n\n## Overview\nIdentify cyclical trends in your revenue and expenses over a 12-month or multi-year window. Reveals which months are historically strong or weak, enabling better cash management, staffing, and marketing timing.\n\n## Wilson Tools Used\n- `spending_summary` — pull monthly income and expense totals across 12+ months to build a seasonal profile\n\n## Workflow\n1. Ask for the analysis window (minimum 12 months, 24+ months preferred for statistical confidence).\n2. Use `spending_summary` for each month in the window to get monthly revenue and expense totals.\n3. Calculate the monthly index: Month Index = Month Revenue \u002F Average Monthly Revenue * 100.\n   - Index > 100 = above-average month\n   - Index \u003C 100 = below-average month\n4. Identify peaks and troughs.\n5. Generate the seasonal profile:\n\n```\nSEASONAL PATTERN ANALYSIS — [Period]\n══════════════════════════════════════════════════════════\nMonth    Avg Revenue   Index   Avg Expenses   Trend\n──────────────────────────────────────────────────────────\nJan        $8,200        82      $6,100       Slow start\nFeb        $7,800        78      $5,900       ▼ Trough\nMar        $9,500        95      $6,500       Recovering\nApr       $11,200       112      $7,200       ▲ Above avg\nMay       $12,500       125      $7,800       ▲ Strong\nJun       $13,000       130      $8,200       ▲▲ Peak\nJul       $11,800       118      $7,500       ▲ Above avg\nAug       $10,200       102      $7,000       Average\nSep       $10,500       105      $7,200       Average\nOct       $11,000       110      $7,500       ▲ Above avg\nNov        $9,500        95      $8,500       Expense spike\nDec        $6,800        68      $9,000       ▼▼ Low + high cost\n──────────────────────────────────────────────────────────\nAnnual   $122,000       100     $88,400\nPeak Month: June (130)    Trough Month: December (68)\nSeasonal Range: 62 points\n══════════════════════════════════════════════════════════\n```\n\n6. Calculate the seasonal range (peak index - trough index). Over 50 points indicates significant seasonality.\n7. Provide actionable recommendations:\n   - Build cash reserves during peak months for trough months\n   - Time major expenses (equipment, marketing campaigns) for peak-revenue months\n   - Consider seasonal pricing or promotions during slow months\n\n## Without Wilson\n1. Export 12-24 months of transactions from your bank as CSV.\n2. In a spreadsheet, add a `Month` column: `=TEXT(Date,\"YYYY-MM\")` and a `MonthNum` column: `=MONTH(Date)`.\n3. Create a pivot table: Rows = MonthNum, Values = Average of Income, Average of Expenses (use separate columns for multi-year averaging).\n4. Overall Average: `=AVERAGE(AllMonthlyRevenues)`.\n5. Seasonal Index per month: `=MonthAvgRevenue\u002FOverallAvg*100`.\n6. In Google Sheets, create a line chart of monthly revenue with a trendline to visualize the pattern.\n7. For statistical detection, use Excel's `=FORECAST.ETS.SEASONALITY(values, timeline)` to auto-detect the seasonal period length.\n8. Google Sheets alternative: chart the data and add a polynomial trendline (order 4-6) to see the seasonal curve.\n\n## Important Notes\n- You need at least 12 months of data for meaningful seasonal analysis. With only one year, you cannot distinguish seasonal patterns from one-time events. Two or more years dramatically improves confidence.\n- Not every business is seasonal. If your seasonal range is under 20 points, your revenue is relatively stable month-to-month.\n- Expense seasonality matters too. Insurance renewals, annual software subscriptions, and quarterly tax payments create predictable expense spikes.\n- Overlay seasonal patterns onto your cash flow forecast for more accurate projections.\n",{"name":5,"description":7},"main","f5abe381f24b5b7d59f1d0b4a825b14494ff2034","business\u002Fseasonal-patterns",19,"https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills","https:\u002F\u002Fgithub.com\u002Fopenaccountant","https:\u002F\u002Fopenaccountant.ai","2026-04-09 23:03:52",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add openaccountant\u002Fskills --skill seasonal-patterns",{"tool":38,"command":39},"bunx","bunx skills add openaccountant\u002Fskills --skill seasonal-patterns",{"tool":41,"command":42},"pnpm","pnpm dlx skills add openaccountant\u002Fskills --skill seasonal-patterns","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fbusiness\u002Fseasonal-patterns\u002FSKILL.md",true,[],[47,54,61,68,75,82],{"skillNo":48,"name":49,"nameZh":6,"description":50,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":53,"publishedAt":19},"01M74YCMH08XC7D0GJTX1P4CNR","year-end-summary","Generate an annual financial review with totals, trends, and highlights.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Fyear-end-summary\u002FSKILL.md",[],[],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":19},"01M74YCJ3PYFTSQ98HDRVFS1GY","tax-prep","Organize business expenses by IRS Schedule C categories for tax filing.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Ftax-prep\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":19},"01M74YCFN34E2S1F424V4JC5SB","smart-split","Split a single transaction across multiple categories with custom amounts.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Fsmart-split\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":19},"01M74YCDB68Q9CYH1MMCYZQSV0","smart-categorize","Auto-categorize uncategorized transactions using vendor pattern matching.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Fsmart-categorize\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M74YCAHA923T5SC63S31KHXA","sales-tax-nexus","Determine sales tax obligations by state based on economic nexus thresholds.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Fsales-tax-nexus\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":19},"01M74YC832W8BPW5PD7895S1G5","quarterly-taxes","Estimate quarterly tax payments using income totals and safe harbor rules.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Fquarterly-taxes\u002FSKILL.md",[],[]]