How to Forecast Demand for Seasonal Products

Measure seasonality per SKU, not as one curve for the catalogue. Remove growth and promotions before you calculate it, then work back from the peak through real lead times to the date each order has to be placed.

·

6 min read

How do you tell whether a product is seasonal?

A product is seasonal when the same periods run high or low in every year of its history, not just in one. Pull at least two years of sales by SKU, three if you have them, and compare each month with the year's average.

PatternTypical CPG examplesWhat drives it
HolidayBaking ingredients, gift sets, entertaining snacksCalendar events
WeatherCold beverages, sunscreen, soup, hot drinksTemperature
EventLunchbox snacks, New Year supplementsSchool year, resolutions
Retailer-drivenSeasonal resets, holiday setsRetail calendars, which run ahead of consumer demand
NoneEveryday staplesSteady consumption

If a peak shows up in one year and not the others, treat it as an event, not seasonality. One viral month or one large retail load-in does not make a pattern.

Why calculate seasonality per SKU rather than per category?

A catalogue-wide seasonal curve is the most common shortcut and the one that costs the most. A supplements brand may sell immune products mostly in winter and electrolyte products mostly in summer. Averaged into one curve, both look roughly flat, and the plan under-buys each product going into its own peak.

Calculate the index for each SKU that has enough history. Use a category curve, or the curve of an analogous product, only where a SKU is too new to have its own. Forecasting demand for new products covers choosing an analogue.

Channels can need their own curves too. Retail orders follow the retailer's calendar, so holiday sets ship to distribution centres well before consumers buy them. Amazon has event spikes that do not exist in other channels. Wholesale demand is smoothed by distributors buying to their own stock targets.

How do you calculate a seasonal index?

The method below is classical multiplicative decomposition, the standard textbook approach.

  1. Remove the trend. Estimate the underlying trend, for example with a 12-month moving average, and divide each month's sales by it. Skipping this step on a growing product makes every later month look seasonally high.
  2. Average each month across years. Average the detrended value for every January, every February, and so on.
  3. Normalise. Scale the monthly indices so they average to one across the year.
  4. Check the result. Indices that swing widely from one year to the next are noise, not seasonality, and should not be applied.

For example, if a SKU's detrended December averages 1.8 and its July averages 0.55, December typically sells 1.8 times an average month and July just over half. A baseline of 1,200 units a month then forecasts December at 1,200 × 1.8 = 2,160 units and July at 1,200 × 0.55 = 660 units.

Where the simple method breaks

Classical decomposition assumes the seasonal pattern repeats from year to year, and it is not robust to unusual periods. When a pattern is shifting, for example as a brand adds a summer product line, weight recent years more heavily or use a model that lets seasonality change over time. Exponential smoothing (ETS), SARIMA and Prophet all do this.

How do you keep promotions out of a seasonal forecast?

Promotions and seasonality are different causes and need to be kept apart. Seasonality recurs because of the calendar. A promotion happens because someone decided to run it, and it may not run again in the same month next year.

Clean the history first

Before calculating seasonal indices, flag and exclude or adjust these periods:

  • Promotions and price reductions, including retailer-funded events
  • Stockouts, where recorded sales understate demand
  • One-off loads, such as a retailer's initial pipeline fill
  • Disruptions, such as a supplier failure or a warehouse move

Forecasting tools handle this explicitly. Prophet, for instance, models holidays and special events separately from seasonality, and leaves out of the forecast any event that will not repeat.

Add planned promotions back as a lift

Forecast = baseline × seasonal index × (1 + planned promotion lift)

For example, a November baseline of 1,200 units with an index of 1.4 and a planned promotion lift of 0.5 gives 1,200 × 1.4 × 1.5 = 2,520 units. If the promotion is cancelled, the lift goes to zero and the forecast drops back to 1,680 without anyone re-calculating the seasonal pattern. Adjusting a forecast for promotions covers estimating the lift itself.

How far ahead do you order for a seasonal peak?

A seasonal forecast is only useful if it reaches the purchase order in time. Work backward from the date stock has to be available:

StepQuestion
1. On-shelf or ship dateWhen must stock be at the retailer, distribution centre or your warehouse?
2. Outbound transitHow long from your warehouse to the customer?
3. Receiving and quality holdHow long before received stock can ship?
4. Supplier or co-manufacturer lead timeHow long from order to dispatch, at peak, not on average?
5. Order-by dateStep 1 minus steps 2 to 4

For example, if a retailer needs holiday stock by early October and the co-manufacturer quotes eight weeks plus two weeks of freight and receiving, the order goes in by late July, before most of the season's sell-through data exists. That is why the seasonal index has to be right before the season starts.

Two checks before committing:

  • Confirm capacity, not just lead time. Suppliers and co-manufacturers serve other brands with the same peak. Book capacity early and ask what the lead time will be in the busy months.
  • Plan the ramp-down. Reduce orders as the peak approaches so the season ends with stock you can sell, not post-season excess. What is lead time covers measuring actual rather than quoted lead times.

If you make the product rather than buy it, the build has to start even earlier. Production planning for seasonal peaks covers building inventory ahead of a peak against limited capacity.

Common mistakes

  • Using one seasonal curve for the whole catalogue.
  • Calculating indices on raw sales from a growing product, which mistakes growth for seasonality.
  • Leaving promotions in the history, so last year's promotion becomes this year's forecast.
  • Treating a stockout month as low demand.
  • Applying the seasonal forecast to demand but not to safety stock. Variability is usually higher in peak months, so the buffer needs to be sized for the peak.

How Planster forecasts seasonal demand

Planster fits a statistical model to each SKU's own history, choosing between Prophet, ETS, SARIMA and linear regression, and re-evaluates the choice as the pattern changes. Seasonality is detected per SKU and built into the forecast, and stockout periods and other anomalies can be excluded so they do not distort the fit. Planster alerts you ahead of a seasonal peak, allowing for lead times.

Promotions are planned as scenarios layered on top of the base forecast, so any forecast number can be traced back to the baseline and the lift applied to it. Purchase orders are drafted for your team to review and approve. See demand forecasting for how the model is chosen.

Sources

  1. Classical multiplicative decomposition: detrend by dividing by the trend-cycle, average the detrended values for each season, and adjust the indices so they add to m; the method assumes the seasonal component repeats from year to year and is not robust to unusual values — https://otexts.com/fpp3/classical-decomposition.html (accessed 2026-10-02)
  2. Prophet models holidays and special events separately from seasonality; if they won't repeat in the future, Prophet will model them and then not include them in the forecast — https://facebook.github.io/prophet/docs/seasonality,_holiday_effects,_and_regressors.html (accessed 2026-10-02)

Common questions

How do you forecast demand for seasonal products?

Seasonal demand is forecast by measuring each SKU's seasonal pattern from at least two years of history, after removing the growth trend and any promotion or stockout periods. The pattern is expressed as a seasonal index for each month or week. The forecast is the underlying baseline multiplied by that period's index, with planned promotions layered on top as a separate lift.

Should seasonality be calculated per SKU or for the whole category?

Seasonality should be calculated per SKU wherever the SKU has enough history, because products in the same category often peak in different months. A catalogue-wide curve averages those peaks away, which under-forecasts the seasonal items and over-forecasts the steady ones. Category or analogous-product curves are a fallback for new SKUs only.

How do planners keep promotions out of a seasonal forecast?

Planners keep promotions out of a seasonal forecast by flagging promotion periods in the sales history and excluding or adjusting them before seasonal indices are calculated. The planned promotion is then added back as a separate lift on the forecast. Without that step, a promotion that ran in the same month every year is mistaken for seasonality.

How far ahead should a seasonal build be ordered?

A seasonal build should be ordered by working backward from the date stock must be on the shelf: subtract retailer lead time, transit, supplier or co-manufacturer lead time and any quality hold. Suppliers are busiest before common peaks, so confirm their capacity before relying on quoted lead times for a seasonal order.

What is a seasonal index?

A seasonal index is the ratio of demand in one period, such as a month, to the average period, after the trend has been removed. An index of 1.5 means that month typically sells half again as much as an average month. Multiplicative indices across a full year should average to one; if they do not, the calculation is off.