Seasonal demand forecasting: Holt-Winters, seasonal profiles and the Q4 ramp
How to forecast seasonal products, when to use Holt-Winters versus a seasonal profile, and how to time Q4 orders when lead times are long — with a worked example.
Stokrio Team · · 7 min read
For many Shopify brands, the last three months of the year make or break the twelve. Forecasting them is hard for a simple reason: the decisions have to be made months before the season starts, using a pattern you've seen once or twice, under conditions that have changed since.
This guide covers how seasonal forecasting works, the two main approaches — seasonal profiles and Holt-Winters — and how to turn a seasonal forecast into orders that arrive on time.
Key takeaways
- Seasonality is a repeating pattern tied to the calendar. Measure it as an index: each month's sales relative to an average month.
- A seasonal profile applies last year's shape to this year's level. It works with one year of clean history.
- Holt-Winters updates level, trend and seasonality together. It needs about two full years to estimate reliably.
- Multiplicative seasonality scales with the size of the business; additive doesn't. Growing brands usually need multiplicative.
- For Q4, the order date matters as much as the quantity. Work backwards from the peak using lead time.
Measuring seasonality
Take a gift product with these monthly sales last year:
| Month | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Units | 80 | 70 | 80 | 90 | 90 | 80 | 80 | 90 | 100 | 140 | 280 | 220 |
The year totals 1,400 units, so an average month is 1,400 ÷ 12 = 116.7 units. Each month's seasonal index is its sales divided by that average:
September index = 100 ÷ 116.7 = 0.86
October index = 140 ÷ 116.7 = 1.20
November index = 280 ÷ 116.7 = 2.40
December index = 220 ÷ 116.7 = 1.89November sells 2.4 times an average month. The indices across the year average to 1 by construction.
Approach 1: the seasonal profile
A seasonal profile takes last year's indices and applies them to this year's underlying level. To find the level, deseasonalise recent sales — divide them by their index.
This September, the product sold 120 units:
deseasonalised level = 120 ÷ 0.857 = 140 units per average month(We use the unrounded index, 100 ÷ 116.7, here.) Now apply the indices forward:
October forecast = 140 × 1.20 = 168
November forecast = 140 × 2.40 = 336
December forecast = 140 × 1.89 = 264A quick sanity check: January to September last year totalled 760 units. If this year's January to September came to 912, that's 912 ÷ 760 = 1.2, or 20% growth. Last year's Q4 grown by 20% gives 140 × 1.2 = 168, 280 × 1.2 = 336 and 220 × 1.2 = 264 — the same numbers. The two methods agree here because the growth has been steady; when the most recent months are growing faster or slower than the year to date, the deseasonalised-level approach reacts sooner.
Don't deseasonalise from a single month in practice. Average the deseasonalised level over the last two or three months to smooth out noise.
Seasonal profiles are the right tool when a product has about one year of history, or when it borrows the profile of its category because it has none (more on that in our guide to forecasting new products).
Approach 2: Holt-Winters
Holt-Winters is exponential smoothing with three components, each updated every period:
- Level — where demand is now, with seasonality removed
- Trend — how fast the level is changing (usually damped, so it fades over the horizon)
- Seasonal — one index per period of the year, updated each time that period comes round
Because the seasonal indices keep updating, Holt-Winters adapts when the shape of your year changes — for example, if your peak shifts from December towards November as you lean into Black Friday. A profile based on a single year can't do that.
The cost is data. To estimate a seasonal index for each month with any confidence, you need to have seen each month more than once. With weekly data, that's 104 weeks. With less than two full years, Holt-Winters will fit noise in last year's pattern and project it forward.
Additive or multiplicative?
There are two ways to combine level and seasonality:
- Additive: forecast = level + seasonal amount. November is "160 units above average".
- Multiplicative: forecast = level × seasonal index. November is "2.4 times average".
They agree when the business stays the same size. They diverge sharply when it grows. Last year, November was 280 − 116.7 = 163.3 units above an average month. Suppose the level has doubled to 233.3:
additive November = 233.3 + 163.3 = 396.6
multiplicative November = 233.3 × 2.40 = 560If your peak genuinely scales with the business — more customers buying gifts — the additive model will under-forecast November by about 160 units. Most growing DTC brands are multiplicative. Additive suits products where the seasonal bump is a fixed extra amount, such as a stable corporate order every December.
The safe approach is to fit both on your history and let a backtest decide. Stokrio's demand forecasting tries additive and multiplicative Holt-Winters once a product has two years of history, alongside seasonal profiles, and keeps whichever forecasts that product best.
Traps in last year's peak
Your seasonal pattern is only as good as last year's data. Check for:
- Stockouts during the peak. If you sold out on 20 November, last year's November understates demand, and every index built from it is too low. This is the most expensive mistake in seasonal planning, because it repeats: you buy to the understated peak, sell out again, and the next year's index is low again. Our guide to stockouts and lost sales explains how to estimate what you would have sold.
- Promotions. If you ran a 30% off sale last Black Friday and won't this year, last year's November index is inflated.
- Moving dates. Black Friday was 28 November in 2025 and falls on 27 November in 2026. Easter moves between March and April. Weekly profiles aligned by week number can misplace these peaks by a week. Align event-driven weeks to the event, not the calendar.
- One-off events. A viral post or a press feature in last October is not seasonality.
Timing the Q4 ramp
Here's where the forecast becomes a plan. Using the profile forecast above, Q4 demand is:
168 + 336 + 264 = 768 unitsSuppose you have 200 units on hand at the start of October, nothing on order, the supplier lead time is 10 weeks, and you want to hold half a month of the next month's demand as safety stock at each month end.
Roll the stock forward month by month:
| Month | Opening | Demand | Closing before receipts | Safety target | Receipt needed |
|---|---|---|---|---|---|
| Oct | 200 | 168 | 32 | 168 (half of Nov) | 136 |
| Nov | 168 | 336 | −168 | 132 (half of Dec) | 300 |
| Dec | 132 | 264 | −132 | 0 (post-season) | 132 |
The receipt needed is whatever lifts the closing stock to the safety target. October needs 136 units to close at 168; November needs 168 + 132 = 300; December needs 132, which clears the safety stock you carried into it.
Then work backwards from each receipt: an order needed by early November, on a 10-week lead time, must be placed by late August. By the time October sales tell you whether the season is running hot, it's far too late to order for the November peak. That's why seasonal planning is so dependent on the forecast — and why you should place your bulk order on the forecast, then keep a faster, more expensive top-up option (air freight, a local supplier, a smaller express run) for the upside.
Two refinements are worth adding:
- Plan the end of the season deliberately. Seasonal stock left in January often needs discounting. If the product only sells in Q4, aim to receive the last order well before the peak and accept a small stockout risk late in December rather than a pallet of leftovers.
- Use a range, not a number. A seasonal forecast of 336 in November is the middle of a range. Decide how much of the upside you're willing to fund given margin and leftover risk.
A checklist for this year's peak
- Clean last year's Q4: estimate demand lost to stockouts, flag promotions, align event weeks.
- Calculate seasonal indices; check they make sense against what you know about your customers.
- Deseasonalise the last two or three months to get this year's level.
- Forecast Q4 by month, and by week for the peak.
- Roll stock forward, calculate receipts and order-by dates.
- Line up a faster top-up supply for the upside.
If your planning team needs a shared view of the months ahead, Stokrio's demand and supply plan shows forecast, plan and last year side by side, and rolls stock forward with recommended receipts and order-by dates.