Skip to content
stokrio
All guides
Forecasting

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:

MonthJanFebMarAprMayJunJulAugSepOctNovDec
Units8070809090808090100140280220

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.89

November 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 = 264

A 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  = 560

If 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 units

Suppose 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:

MonthOpeningDemandClosing before receiptsSafety targetReceipt needed
Oct20016832168 (half of Nov)136
Nov168336−168132 (half of Dec)300
Dec132264−1320 (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:

  1. 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.
  2. 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

  1. Clean last year's Q4: estimate demand lost to stockouts, flag promotions, align event weeks.
  2. Calculate seasonal indices; check they make sense against what you know about your customers.
  3. Deseasonalise the last two or three months to get this year's level.
  4. Forecast Q4 by month, and by week for the peak.
  5. Roll stock forward, calculate receipts and order-by dates.
  6. 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.

Frequently asked questions

How much history do I need for seasonal forecasting?
One full year lets you build a seasonal profile, though it will include whatever noise that year had. Holt-Winters works best with at least two full years so that each seasonal index is estimated from more than one observation.
Should I use additive or multiplicative seasonality?
Multiplicative if the seasonal peak grows in proportion to the business, which is typical for growing direct-to-consumer brands. Additive if the peak is a roughly fixed extra amount each year. Backtesting both on your own history is the most reliable way to decide.
When should I order stock for Q4?
Work backwards from the month each receipt is needed, subtracting the supplier lead time and a margin for delays. With lead times of two to three months, orders for November usually need to be placed in late summer.
What if I sold out during last year's peak?
Estimate what you would have sold on the out-of-stock days and use that instead of actual sales when calculating seasonal indices. Otherwise the index understates the peak and you are likely to sell out again.

See Stokrio with your own data

Create a workspace in minutes. Connect Shopify or start with the API.