--- name: seasonal-budget-planner description: Plan ad budgets around seasonal peaks — holiday scaling, CPM inflation, pre-season/peak/post-season phasing, and Smart Bidding seasonality adjustments. Use when a user wants to plan Black Friday or holiday budgets, forecast peak-season costs, or build a seasonal campaign calendar. --- # Seasonal Budget Planner Peak season punishes flat budgets twice: CPMs inflate 50-150% while unprepared accounts pay them with untested creative and cold audiences. Plan in phases, not in a panic the week before. Ground the plan in your own history first: the supported performance tools (`pull_google_ads_performance`, `pull_meta_ads_performance`, `pull_linkedin_ads_performance`, `pull_microsoft_ads_performance`, `pull_reddit_ads_performance`) over last year's season and `ga4_get_report` with a date dimension to see your real demand curve. ## 1. Plan in four phases - **Pre-season (6-8 weeks out), 70-80% of normal budget:** build remarketing pools, A/B test creative so winners are proven before CPMs spike (see **creative-testing**), verify tracking (see **conversion-tracking**). - **Ramp-up (2-4 weeks out), 100-120%:** scale winning creative, run teasers, warm audiences, pre-load promo assets. - **Peak (event days), 200-500% of normal daily budget:** all prepared campaigns live, aggressive bids, budget weighted to warm retargeting audiences, urgency messaging, hourly monitoring. - **Post-season (1-4 weeks after), 80-100%:** retarget peak-period visitors who did not convert, extended-sale and clearance messaging, step bids down as competition fades. ## 2. Budget for CPM inflation Costs are not flat across the year. Against a January baseline, expect roughly 1.2-1.3x by September-October, 1.5-2.5x in November, and 1.4-2x through mid-December, with event spikes around Prime Day and Back-to-School. Practical moves: - Front-load: early-November impressions cost far less than BFCM-week impressions. - Shift flexible spend into January and April, the cheapest months. - During peak weeks, tilt toward retargeting and search, where you pay for intent rather than inflated reach. Use `forecast_campaign` to sanity-check projected volume at planned budgets before committing. ## 3. Index the budget to your industry curve Build a monthly index from your own trailing 12-24 months of performance data (100 = average month), then set each month's budget as baseline x index/100. Ecommerce typically peaks November-December and troughs in summer; B2B peaks January, March, and September-October and dies in late December; fitness and education have their own January and August-September spikes. Your data beats any generic table — pull it before assuming. For B2B specifically: push hard in January (new budgets), March (Q1 use-it-or-lose-it), and September-October (next-year budget finalization); cut 30-40% in July-August and after December 15. ## 4. Use platform seasonal features - **Google Seasonality Adjustments** tell Smart Bidding to expect a temporary CVR change for 1-7 day events (flash sales, BFCM). Set +30% for a general holiday, +50% for a major sale, up to +100% for a deep-discount flash sale, about 24 hours before the event. Do not use them for gradual trends; Smart Bidding learns those itself. See **platform-google**. - Promotion extensions and countdown customizers on Google; Advantage+ shopping on Meta (see **platform-meta**). ## 5. Anchor to the event calendar The big cost spikes are predictable. Plan phases backward from the dates that matter for the vertical: - **BFCM (late November):** the peak of peaks, +80-150% CPMs across retail. - **Christmas (Dec 1-24, peaking mid-month):** +50-100%, then a hard drop after Dec 20. - **Prime Day (mid-July):** +40-60% around Amazon, spillover elsewhere. - **Back-to-School (Aug-Sep):** +20-30% for electronics, apparel, supplies. - **Gift holidays (Valentine's, Mother's/Father's Day):** +15-30% in gifting categories for the surrounding week. If you are not in the category, these are your cheap weeks — competitors' budgets left the auction. ## 6. Execute and guard Encode the phased proposal with `create_campaign_plan` and follow **launch** for preflight, approval, and execution. Apply approved phase changes with `update_campaign_budget`; use `optimize_budget` for allocation recommendations. Configure alerts in the platform UI. Review performance daily during peak and reconcile with `get_spend_reconciliation` afterward. ## Rules - No creative testing during peak. Test in pre-season; peak runs proven winners only. - Higher CPMs are acceptable only where CVR rises to match. Track CPA/ROAS through the spike, not spend. - Budget increases in steps, not cliffs — large jumps reset bid-strategy learning right when you need it stable (see **bid-optimization**). - Write down actual vs planned after the season. Next year's plan starts from this year's miss. - For the year-round allocation question underneath the seasonal one, use **mmm-budget-planner** and **media-plan**.