Demand Forecasting & Planning: Seasonality in Forecasting
to the Forecast Solutions website
Training Courses

Forecasting Software

Improvement Plans

Forecasting Service
Pricing Models

Weather Effects

Seasonality in Forecasting

Seasonality refers to the changes in demand that occur across the year in a regular annual cycle. It is caused by various factors that may include regular weather patterns, religious events, traditional behaviour patterns and school holidays. When there is marked or extreme seasonality in the demand pattern, the effectiveness in dealing with it will have the greatest impact on forecast accuracy.

The other side of the equation is that it is important not to build seasonality into the forecast if it does not really exist, because that would adversely affect forecast accuracy. So in data where the existence of seasonality is ambiguous it is important to make the best possible decision as to whether or not to employ seasonality in the forecasting process. Various statistical tests can help in this.

It is important to understand the way that seasonality is dealt with in any proprietary forecasting software that is used.  For small scale problems it may be worthwhile to consider the flexibility that Excel forecasting can offer.

Seasonality is one of the components in the classical decomposition approach to sales forecasting.  The other major components are trend and business cycle - click here to see some thoughts on trend in forecasting.

Calculation Methods for Seasonality

Perhaps the simplest way to take seasonality into account is to make the forecast on a 'same as last year' basis. This is not usually a good way to proceed because last year's sales may be abnormal for a number of possible reasons. Popular approaches include the 'percent of year' approach or the creation of additive seasonal factors or multiplicative seasonal indices.

In terms of calculating multiplicative seasonal indices there are a number of different methods. Simple approaches include seasonal averaging and the ratio to centred moving average method. Other methods include fourier analysis, where various sine and cosine waves are combined in order to represent the seasonal pattern.

Seasonal Average Method

This is a really simple method that can be used even when there is only two years of available history. First, the average sales is calculated for each season e.g. each month. This gives the average for January, the average for February, etc. The grand average is then calculated as the average of the seasonal averages. Finally, the seasonal indices are created by dividing each seasonal average by the grand average. The indices will average 1.00. This easy method is good when the sales history is reasonably stable i.e. not subject to large changes in the underlying level of demand over time. If, however, the underlying level of demand is trending upwards or downwards in a marked way it is often useful to treat the initial set of seasonal indices as provisional. The sales history can be seasonally adjusted and a straight line fitted to the adjusted data.  That can be used to detrend the original sales history.  Then the seasonal average method can be re-applied to the detrended history to obtain a more refined result for the seasonal indices. Alternatively, if three years or more of history is available, it may be better to employ the Ratio to Moving Average method, described below.

Ratio to Moving Average Method

The ratio to moving average method for calculation of multiplicative seasonal indices is a simple calculation that can easily be set up in Excel or other software. The following example for monthly data:

  1. Create a series for the centred annual moving average (CMA) e.g. start by putting the monthly average for 2013 against June 2013, etc.

  2. Calculate another series as the ratio of sales in a given month to the CMA at that month i.e. ratio = sales / CMA.

  3. Calculate the seasonal indices as the average the ratios per seasonal month e.g. the seasonal index for September is the average of the ratios for Mar-13, Mar-14, Mar-15 and Mar-16.  Adjust the indices if necessary to make the seasonal indices add to 12.00

Because the centre of a 12 month calendar is not June or July, but in the middle of the two, the traditional method for step 1. involved creating two series for the CMA. So in one series putting the annual average against June, in the other against July. Then the two CMA series were averaged in order to create something that could be said to be truly centred. In practice this makes little difference with most commercial data.

The only downside of this method is that there it needs somewhat more historical data than the seasonal average method. A minimum of three years is necessary.

Data Cleansing and Data Volatility

Data cleansing impacts on the calculation of seasonality in the sense that abnormal data should be excluded from the seasonal calculation. Clearly the natural seasonality should not be misinterpreted as abnormal sales, so the point is that data cleansing and seasonal calculation are closely interrelated. 

At least two years of historical data should be made available to the calculation of seasonality. Given that it may be necessary to exclude certain data if it is abnormal then it is usually advisable to include at least three or four years information. The problem with a lot of business forecasting is that there is often a relatively short period of consistent history. This often makes the seasonal analysis something of an art rather than an exact science.

Various methods can be employed to reduce the impact of volatile data on the calculation of seasonality for forecasting and thus improve forecast accuracy. These include:

  • group seasonal indices (calculation of indices at an aggregated level)

  • seasonal simplification (e.g. using monthly indices for weekly data)

  • seasonal shrinkage (also known as seasonal damping)

  • seasonal smoothing (e.g. using a centred 3 period or 5 period average)

Seasonality in Weekly and Daily Forecasting

The problems arising from a small amount of history and volatile data become greater when moving from calculation of monthly seasonality to the calculation of weekly seasonality. It becomes less likely that annual events will take place in the same calendar period, so may necessitate cleansing those those instances from the sales history and adding future instances to the forecast as planned events.  There is sometimes an additional cycle of week within month to deal with.

With weekly seasonality, a lot of residual volatility is often seen in the indices resulting from the seasonal calculation to a degree that the raw indices cannot be trusted. So there is a greater need to modify the indices using group seasonal indices, seasonal simplification or seasonal smoothing.

If there is a need for a daily forecast it is usually best to first calculate seasonality using weekly data, then approach the remainder of the task by using day-week profiles to split weeks to days.