How to forecast sales for your next seasonal peak
Build accurate forecasts using historical data. Master methods confidence intervals and inventory planning for your next seasonal surge.
Let me guess—your current approach to forecasting holiday sales is somewhere between "gut feeling based on last year" and "hope for the best"? You're not alone. Most stores either wildly overestimate (and end up with too much inventory) or underestimate (and run out of bestsellers by week two).
But here's the thing: forecasting doesn't require a statistics PhD or fancy software. You need three things: historical data, a systematic method, and realistic expectations about uncertainty. That's it.
I worked with a Shopify store that "forecasted" their holiday season by taking last year's December revenue and adding 15% (because growth). They were off by 37%. Not because they were unlucky—because they ignored seasonality patterns, traffic source changes, and product mix shifts that a proper forecast would have caught.
According to retail forecasting research from Deloitte, stores using structured forecasting methods achieve 25-40% lower forecast error than stores using ad-hoc methods, directly translating to better inventory decisions and cash flow management.
This guide walks you through building a solid sales forecast for your next seasonal peak. You'll learn to use historical data properly, calculate realistic ranges instead of single numbers, and turn forecasts into actual inventory and marketing decisions. Let's make your next seasonal forecast actually useful.
📊 Gathering the right historical data
Your forecast is only as good as your data. And "last year's December revenue" isn't enough data.
What you actually need:
Pull 2-3 years of daily revenue data for the seasonal period you're forecasting plus the 8 weeks before and 4 weeks after. So if you're forecasting November-December holiday season, pull September 1 through January 15 for the past 2-3 years.
Why the extended period? Because seasonal patterns don't start on a calendar date—they build up and wind down gradually. You need to see the full shape of the curve, not just the peak.
Clean your data before using it:
Remove or adjust for one-time anomalies (website outages, huge PR mentions, that time your product went viral)
Note promotional changes (more aggressive discounting this year? Different promotion calendar?)
Account for major operational changes (added new traffic channels, changed product line)
Here's an example: A store selling outdoor gear pulled three years of holiday data. Year 1 and Year 3 showed similar patterns, but Year 2 had 40% higher sales in late November. Investigation: they'd run a viral Instagram campaign that year that wouldn't repeat. They removed Year 2 from their baseline to avoid inflating forecasts.
💡 Data quality check: Plot your historical data on a line chart. Does it look reasonable? Obvious outliers? Missing data? Fix these issues before building forecasts—garbage in, garbage out.
📈 Understanding your growth trajectory
You're not the same store you were last year. You've grown (hopefully). Your forecast needs to account for that.
Calculate your baseline growth rate:
Look at non-seasonal months (typically January-March, August-October) comparing year-over-year. Calculate average monthly growth rate across these periods.
Example calculation:
Jan-Mar 2023 average: €42K/month
Jan-Mar 2024 average: €51K/month
Growth rate: 21.4%
This gives you your organic growth rate without seasonal effects. Now apply this to your seasonal forecast.
But—and this is important—seasonal periods don't always grow at the same rate as baseline.
According to retail growth pattern research, seasonal periods typically show 60-80% of baseline growth rate because you're working with larger numbers and market saturation during peaks. If you're growing 20% in baseline months, expect 12-16% growth in seasonal peaks.
Why? Because during normal months, you're capturing incremental growth from better marketing, more customers, improved site. During peaks, everyone's marketing harder and you're competing for limited consumer holiday budgets. Growth compounds slower at scale.
🎯 Practical application: If last year's holiday revenue was €180K and your baseline growth is 20%, don't forecast €216K (simple 20% increase). Forecast €194-202K (applying 8-12% to account for slower seasonal growth). This conservative adjustment prevents overstock and cash flow strain.
🎲 Building a range forecast (not a single number)
Here's where most forecasts fail: They give you one number. "We'll do €200K in December." Then reality hits at €175K or €240K and the forecast was "wrong."
Wrong approach. Forecasts should be ranges with probabilities.
Build three scenarios:
Conservative case (25th percentile): What revenue do you expect if things go poorly but not catastrophically? Traffic growth below expectations, conversion rate normal, no viral moments.
Expected case (50th percentile / median): What's your middle-of-the-road expectation given normal execution and no major surprises?
Optimistic case (75th percentile): What if things go well? Traffic exceeds expectations, conversion improves slightly, you catch a viral moment?
Note: These aren't best/worst case. Those are too extreme to be useful. You want realistic "bad," "normal," and "good" outcomes.
Example forecast for holiday season:
Conservative: €165K-180K (probability: 25% you'll be below this range)
Expected: €190K-210K (probability: 50% you'll be in this range)
Optimistic: €220K-240K (probability: 25% you'll be above this range)
According to forecasting effectiveness research, range-based forecasts reduce inventory mistakes 35-50% versus point forecasts by enabling better risk-adjusted decisions.
💡 How to use these ranges: Order inventory for expected case, but maintain supplier relationships and rapid reorder capability to handle optimistic case. Build cash flow and capacity plans for conservative case so you're covered if things underperform.
📅 Breaking down by week and source
Monthly forecasts are nice for CFOs. Weekly forecasts are useful for operations.
Create week-by-week expectations:
Look at historical patterns showing which weeks perform strongest. Holiday shopping isn't uniform—certain weeks dramatically outperform others.
Typical Black Friday/holiday pattern (your specific pattern may differ):
Week of Thanksgiving: 35-40% of total holiday revenue
Weeks after Thanksgiving: 25-30% of total
Two weeks before Christmas: 20-25% of total
Final week before Christmas: 10-15% of total
Build your weekly forecasts by applying these percentage distributions to your total forecast.
Why this matters: Inventory allocation. If 40% of your sales happen in one week, you need that inventory available that week, not spread evenly across the period.
Forecast by traffic source:
Different channels show different seasonal patterns and different growth rates. Your forecast should account for this.
Example source-specific patterns:
Email shows highest seasonal lift (3-5x normal performance)
Organic search shows moderate lift (2-3x)
Paid search shows lower lift (1.5-2x) because CPCs increase during competition
Social shows high variability depending on content performance
Direct traffic shows moderate lift as brand awareness compounds
🎯 Practical benefit: Source-specific forecasts let you allocate marketing budgets appropriately. If you know email will do €80K and paid search will do €45K (based on historical patterns and planned activity), you can set realistic ROI expectations and budget allocations.
🛍️ Product-level forecasting
Store-level forecasts help with budgets. Product-level forecasts help with inventory.
Identify your seasonal stars:
Pull product revenue for last 2-3 seasonal periods. Calculate each product's share of seasonal revenue. You'll usually find:
20% of products drive 60-70% of seasonal revenue
30-40% of products show significant seasonal lift
Remaining products maintain relatively flat sales
Focus your forecasting effort on the top 30-40% of products by seasonal revenue. These drive your outcomes.
Calculate product-specific seasonal indices:
For each key product, calculate: (Seasonal period revenue) / (Average monthly revenue)
Example:
Product A normal monthly revenue: €3,200
Product A holiday season revenue: €15,800
Seasonal index: 4.9x
This product shows extremely strong seasonal lift. Inventory accordingly.
Product B normal monthly revenue: €2,800 Product B holiday season revenue: €3,900 Seasonal index: 1.4x
This product shows minimal seasonal lift. Don't overstock.
According to product-level forecasting research in retail, SKU-specific forecasts reduce overstock by 30-50% and stockouts by 20-40% versus category-level or store-level forecasts only.
💡 Inventory implication: If you forecast total store growth of 15% but Product A (your seasonal star) shows 4.9x seasonal index while growing 20% in baseline months, you need 1.2x more inventory of Product A this year compared to last year's seasonal stock (20% growth applied to already elevated seasonal pattern).
⚠️ Accounting for promotional intensity
Your forecast assumes certain promotional activity. Change the promotions, change the results.
Quantify your promotional lift:
Review last year's promotional calendar. Identify:
Number of promotional days/weeks
Discount depth (15% off vs 30% off)
Promotional reach (email only vs email + ads + site-wide)
Now compare this year's planned promotional activity. More aggressive? Less? Similar?
According to promotional forecasting research, each 10% increase in average discount depth drives 5-8% increase in volume but similar decrease in margin. Net revenue impact depends on elasticity.
Adjustment methodology:
If you're planning more promotional intensity than last year (more discount days, deeper discounts, broader reach), add 8-15% to volume forecast but model decreased AOV. If you're pulling back on promotions, decrease volume forecast 8-15% but model improved margins.
Example:
Last year: 5 promotional days at 20% off average
This year plan: 8 promotional days at 25% off average
Expected volume impact: +12-18%
Expected AOV impact: -8-12%
Net revenue impact: +3-8%
Build this into your forecast explicitly so you're not surprised when November revenue matches last year despite higher traffic if your margins compressed from increased promotional activity.
🎯 Turning forecasts into action
A forecast sitting in a spreadsheet is useless. Turn it into decisions.
Inventory decisions:
Use your product-level forecasts to determine:
What to stock deeply (high seasonal index products)
What to stock normally (low seasonal index products)
What reorder points trigger rapid replenishment
What products need backup suppliers for rapid reorder capability
Staffing decisions:
Use your weekly forecasts to plan:
Customer service staffing (peak during weeks with highest traffic)
Warehouse/fulfillment staffing (peak slightly after sales peaks as orders fulfill)
Technical support availability (needs to match traffic patterns)
Marketing budget allocation:
Use your source-specific forecasts to allocate marketing spend:
Channels with highest forecasted ROI get increased budgets
Channels with declining seasonal patterns get maintained or reduced budgets
Testing budgets allocated to emerging channels showing promise
Cash flow planning:
Use your conservative forecast for cash planning. You need to cover:
Inventory purchases (happen before revenue arrives)
Increased ad spend (also happens before revenue)
Operational costs (staffing, shipping, etc.)
If your conservative case is €165K and your costs run €95K, you need €95K available before the season starts, with revenue recovering it throughout the season.
📊 Tracking forecast accuracy for next year
Build a simple tracking sheet comparing forecast to actuals as the season progresses.
Track these comparisons:
Weekly actual vs forecast
Source actual vs forecast
Product actual vs forecast (top products only)
This serves two purposes: lets you adjust during the season if you're tracking significantly off-forecast (increase ad spend if tracking high, reduce costs if tracking low), and provides learning for next year's forecasting.
According to forecast improvement research, stores that systematically track forecast accuracy improve their forecasts 15-25% annually as they learn their specific patterns versus stores starting from scratch each year.
Sales forecasting doesn't require complex models or expensive software—it requires systematic use of your historical data, realistic growth assumptions, range-based thinking instead of point estimates, week-by-week and source-by-source breakdowns, product-level analysis for key items, promotional intensity adjustments, and clear translation from forecasts to operational decisions.
Start with what you know: last year's patterns. Adjust for growth and promotional changes. Build ranges accounting for uncertainty. Break down to weekly and source-specific detail. Focus product-level forecasting on seasonal stars. And most importantly—use the forecast to make actual decisions about inventory, staffing, and marketing rather than letting it sit unused in a spreadsheet.
Your next seasonal forecast won't be perfect. But it'll be significantly better than "last year plus 15%."
Track actual performance against your forecasts with daily metrics. Try Peasy for free at peasy.nu and get automated reports showing sales and conversion trends—perfect for comparing your seasonal forecasts to actual results as events unfold.

