Skip to content

Seasonality decomposition (trend, season, remainder)

How much of your sales is trend, how much a recurring seasonal pattern, how much noise? Paste the series and see the three components, the seasonal indices and the seasonal strength from classical decomposition.

Free tool · Data analytics

Data is processed in your browser; nothing is sent anywhere.

A single column, a single row (horizontal) or date + value; the delimiter is detected automatically. You can copy and paste from Excel. Decimal comma and point are both accepted. If there is a date column the series is sorted by date. The series must not contain empty or unreadable values; classical decomposition needs a complete series.

How many observations make up one season: 12 for monthly data, 4 for quarterly, 7 for a weekly pattern in daily data, 24 for a daily pattern in hourly data.

Quick select:

01

How to use it

  1. A

    Paste the series or upload a CSV; enter the season length (12 for monthly, 7 for a weekly pattern).

  2. B

    Compare the additive and multiplicative models; the tool suggests the one with the lower remainder spread.

  3. C

    Read the trend, seasonal pattern and remainder charts and the seasonal strength; download the decomposition as CSV.

02

How is the decomposition done?

Classical decomposition splits the series into three parts: trend (the long-run level), the seasonal component (the pattern that repeats every season) and the remainder (what is left). The trend is found with a centred moving average: for odd season length m, the simple average of m observations; for even m, a 2×m average with half weights at the ends (for monthly data, a 12-month average with half-weighted ends). Seasonal swings then cancel out in the average. Because it is centred, the trend cannot be calculated for m/2 observations at each end of the series.

The trend is removed from the series (a difference for additive, a ratio for multiplicative) and the detrended values are averaged by season position; this gives the raw seasonal indices. The indices are centred so they sum to zero in the additive model and average to one in the multiplicative model. Finally the remainder = series − trend − season (multiplicative: series / (trend × season)); the seasonally adjusted series is the series with the season subtracted (or divided out).

In the additive model, a January index of +20 means that month is 20 units above the level; in the multiplicative model, 1.20 means 20% above the level. In the multiplicative model the indices grow in proportion to the level, which is why it usually suits growing series.

03

Additive or multiplicative?

If the seasonal swings stay the same size as the series rises, the additive model fits; if they grow with the level, the multiplicative model fits. You can judge from the chart: if peaks and troughs widen over the years, multiplicative; if the amplitude stays the same, additive. The tool computes both models and suggests the one with the lower relative remainder spread; this is a rough criterion, and if the two values are close you can pick the simpler one (additive).

The multiplicative model needs values greater than zero (it uses ratios and logarithms). If the series contains zero or negative values the tool offers only the additive model.

04

Seasonal strength and limits

Seasonal strength is the measure proposed by Wang, Smith and Hyndman (2006): F_S = max(0, 1 − Var(remainder) / Var(season + remainder)). It lies between 0 and 1; close to 1 means the seasonal pattern dominates the remaining fluctuation. Trend strength is computed similarly. For the multiplicative model the same ratios are computed on the logarithmic scale.

Classical decomposition has limits. At least two full seasons are needed (preferably three or four). The seasonal pattern is assumed constant over the years; if it changes, methods such as STL suit better. The moving average is sensitive to outliers; a single unusual observation distorts the trend for several periods. Holiday and calendar effects (such as differing numbers of days in monthly data) must be adjusted separately.

Once the seasonal pattern is found, you can use the seasonally adjusted series for forecasting or anomaly detection. The results feed your forecasting process but are not a forecast by themselves.

FAQ

Is the data I enter sent anywhere?
No. All calculations run in code inside your browser; the data is neither transmitted to a server nor stored.
How many observations are needed?
At least two full seasons: 24 observations if the season length is 12. For a reliable seasonal pattern, three or four seasons (36–48 months for monthly data) are better.
Why is the trend empty at the ends?
A centred moving average looks both before and after each observation. At the start and end of the series, half a season's worth of observations lack one side, so the trend, and therefore the remainder, cannot be calculated there. The seasonal indices are found from the middle observations and are unaffected.
How do I choose the season length for weekly, hourly or daily data?
Enter the number of observations after which the pattern repeats: 7 for a weekly pattern in daily data, 24 for a daily pattern in hourly data, 12 for monthly, 4 for quarterly. If there are several patterns (both weekly and yearly), start with the dominant one.
Why can the multiplicative model sometimes not be used?
The multiplicative model uses ratios and logarithms, so it needs all values to be greater than zero. If the series contains zero or negative values only the additive model is computed.
My series has empty values; what should I do?
Classical decomposition needs a complete series. The tool does not silently skip a missing cell because that would shift the seasonal positions; fill the gaps (previous value, linear interpolation) or shorten the series to an unbroken stretch.

Let's connect seasonal patterns to your forecast

We separate trend and seasonality by product and period and add them to your demand forecasting process as baseline models. Let's talk about your data in a free discovery call.