Ninety-six months with a steady upward trend and a seasonal swing of fixed size. The seasonal indices sum to −0.00000000000003, which is zero to machine precision and is the check that the normalisation is right. Seasonal strength is 0.9464 and trend strength 0.9582, so both components are real and neither dominates. The peak is period 2 at +99.926 and the trough period 8 at −90.226 — a swing of 190 units around the trend, in a series averaging under a thousand.
96 observations · period 12 · additive
Seasonal strength 0.9464, trend strength 0.9582
The peak is period 2 at 99.926 and the trough period 8 at -90.226. Under the multiplicative model the seasonal strength would be 0.9355, so this form fits better.
Seasonal strength
0.9464
a real seasonal pattern
Trend strength
0.9582
after removing seasonality
Index sum
-2.84e-14
must be exactly 0
Peak to trough
190.152
period 2 against 8
Seasonal indices
The seasonal index for each position in the cycle
Period
Index
Effect
Bar
1
73.4800
+73.48 on the trend
████████████
2
99.9258
+99.93 on the trend
████████████████
3
83.8366
+83.84 on the trend
█████████████
4
40.8723
+40.87 on the trend
███████
5
-2.9503
-2.95 on the trend
█
6
-47.5015
-47.50 on the trend
████████
7
-81.3325
-81.33 on the trend
█████████████
8
-90.2259
-90.23 on the trend
██████████████
9
-82.2825
-82.28 on the trend
█████████████
10
-49.7599
-49.76 on the trend
████████
11
-3.9325
-3.93 on the trend
█
12
59.8705
+59.87 on the trend
██████████
These sum to -2.842e-14, and they have to sum to exactly 0— zero for an additive decomposition and the number of periods for a multiplicative one. That identity holds for every series and is the whole check on the normalisation, so the page prints it rather than assuming it. The verification suite asserts it on eighty generated series in both forms.
The other model on the same data
Seasonal and trend strength under both decomposition models
Model
Seasonal strength
Trend strength
Index sum
additive
0.9464
0.9582
-2.84e-14
multiplicative
0.9355
1.0000
12.000000
The higher seasonal strength is the better-fitting form, because both are computed against the same remainder. A large gap means the choice matters; a small one means either will do and the additive version is easier to explain.
Classical decomposition gives no trend for the first and last half-cycle, because a centred moving average has nothing to centre on there. That is why the remainder column is empty at both ends, and why this method is a description of history rather than a forecasting tool — Holt-Winters is the forecasting counterpart.
Three components Indices sum exactly Both models compared No trend at the ends
What this tool shows
Additive seasonal indices must sum to exactly zero and multiplicative ones to exactly the number of periods. On the shipped preset the additive sum is −0.00000000000003 and the multiplicative sum is 12.0000000000. That identity holds for every series and is the whole check on the normalisation, so the page prints it against its required value rather than assuming it. Choosing the wrong form is not cosmetic: on the second preset it costs 27% of the forecast accuracy.
Trend, seasonal and remainder components from a centred moving average
Seasonal indices with their sum printed against the value it must take
Seasonal and trend strength, so a pattern that is really noise is visible as one
Both models computed on the same data, with the better-fitting form identified
A preset where seasonality is almost absent and the indices are noise
Why the trend is undefined at both ends, and what that means for forecasting
Three components Indices sum exactly Both models compared No trend at the ends
The indices always come out. Whether they mean anything is separate.
Updated 13 September 2026 · Works in any browser, no installation
Classical decomposition splits a series into a trend from a centred moving average, a seasonal index for each position in the cycle, and whatever is left over. Additive assumes the seasonal swing is a fixed number of units; multiplicative assumes it is a fixed percentage of the level. Which one fits is a question about the data, and this page answers it by computing both rather than asking you to choose in advance.
At a glance
Formula shown
Trend: a centred moving average of length m, with half-weights at each end when m is even. Detrended: yₜ − trendₜ for additive, yₜ / trendₜ for multiplicative. Seasonal index for position p: the average of the detrended values at that position, then normalised so the indices sum to 0 (additive) or to m (multiplicative). Remainder: whatever the trend and seasonal do not account for. Seasonal strength is 1 − Var(remainder)/Var(seasonal + remainder).
Scenario support
Understanding what part of a change is seasonal and what part is the underlying trend, producing seasonally adjusted figures, checking whether a series is seasonal at all before fitting a seasonal model, and identifying which period of the cycle carries the peak.
Educational estimate
Planning support from the values you enter — not professional advice.
The indices carry their own check
A normalisation error in a decomposition is invisible in the output — the components still look plausible and still add back to the series. One number catches it.
Additive indices must sum to exactly zero. Anything else means the seasonal component is carrying part of the level.
Multiplicative indices must sum to exactly the number of periods. Twelve for monthly, four for quarterly.
On the shipped preset those sums are −2.842e-14 and 12.0000000000. Machine precision in both cases.
The identity holds for every series, with no assumption about the data, which is what makes it a usable check. The verification suite asserts it on eighty generated series in both forms.
Additive or multiplicative, and what the choice costs
The two forms describe different things, and picking the wrong one has a measurable price rather than being a matter of taste.
Additive says December is 400 units above trend. Whatever the trend happens to be.
Multiplicative says December is 28% above trend. Which grows as the business does.
On the second preset the seasonal strength is 0.9824 multiplicative and 0.9093 additive. A fixed swing cannot fit a proportional one at both ends of a growing series.
And the forecast cost is 27.04%: Holt-Winters on that data gives a squared-error total of 104,004.5 multiplicative and 142,546.7 additive. The page computes both decompositions so the choice is made from the data rather than from a habit.
The indices always come out
This is the trap the third preset exists for. The arithmetic never refuses; it produces indices for any series at all.
Sixty quarters with a strong trend and essentially no seasonality. The indices are computed, printed and plotted exactly as they would be for a genuinely seasonal series.
The seasonal strength is 0.0938 against a trend strength of 0.8858. The largest index is +2.863 on a series whose noise is several times that.
Acting on them costs. A Holt-Winters fit with a seasonal term has a squared error 1.91% higher than a non-seasonal Holt fit on the same data.
So the strength figure is the gate, not the indices. Below about 0.3 the seasonal component is a description of noise, and modelling it will make forecasts worse rather than better.
There is no trend at either end
A centred moving average needs half a cycle on each side, which has a consequence that surprises people the first time they see the table.
The first and last half-cycle have no trend estimate. Six months at each end for monthly data.
Which means no remainder either, so the most recent observations — usually the interesting ones — are the ones the decomposition says least about.
It also makes this a description of history rather than a forecast. Extending the trend past the end of the data requires an assumption the method does not supply.
STL and X-13 handle the ends with one-sided filters, and Holt-Winters sidesteps the problem entirely by updating its state forward rather than looking both ways — which is why it forecasts and this does not.
Getting the period wrong produces nonsense quietly
The period is an input, and a wrong one does not fail — it returns a full set of plausible indices for a cycle that is not there.
Daily retail data is usually period 7, not 30. The weekly cycle is the strong one and a monthly period will smear it across positions.
Monthly data is 12, and quarterly is 4, which are the easy cases.
Some series have two periods at once. Daily electricity has a weekly cycle and an annual one, and classical decomposition can only take one of them.
The seasonal strength is the diagnostic here too. Try the candidate periods and compare: a wrong period gives a low strength even when the series is strongly seasonal at the right one.
Seasonal adjustment is subtraction, not removal
Seasonally adjusted figures are produced by exactly this arithmetic, and knowing what has been done to them changes how they should be read.
The adjusted series is the original minus the seasonal component, or divided by it in the multiplicative case.
Which means it still contains the remainder. A seasonally adjusted month can move sharply for reasons that are neither trend nor season.
And the adjustment is estimated from the same data, so it is revised as more arrives — which is why official statistics revise seasonally adjusted figures and not raw ones.
The indices on this page are averages over every cycle in the series. If the seasonal pattern has changed over time, a single set of indices splits the difference and the remainder absorbs the drift.
Reporting a decomposition
Four items, and the second is what stops a reader treating noise as a seasonal pattern.
Give the period and the model. Additive indices and multiplicative ones are not comparable and are easy to confuse when only numbers are quoted.
Give the seasonal strength. Indices always exist; the strength says whether they describe anything.
Give the index sum against its required value. It costs a line and it is the only check on the normalisation.
And say the trend is undefined at the ends. Conclusions about the most recent months are the ones this method supports least.
Method. The trend is a centred moving average of the seasonal period, with half-weights at each end when the period is even so that an even-length window is genuinely centred. Seasonal indices are the averages of the detrended values at each cycle position, normalised so that additive indices sum to zero and multiplicative ones to the number of periods — and the page prints that sum against its required value, because it is the only check that the normalisation is right and it is invisible otherwise. The verification suite asserts the identity on eighty generated series in both forms, along with one index per cycle position and both strength measures staying in 0 to 1. Strength is computed as 1 minus the ratio of remainder variance to the variance of the component plus remainder, following Hyndman and Athanasopoulos, which is what makes a seasonal pattern that is really noise visible as one. That engine is verified on every change against 115 assertions. The count and the per-case breakdown are published on the formula verification page.
Related calculators
Where this goes next:
Holt-WintersTriple exponential smoothing with fitted parameters, additive and multiplicative seasonality, and the seasonal term priced against a non-seasonal Holt fit on your own data.
Moving AverageSimple, exponential, weighted and centred moving averages with the lag each one carries — exactly (n−1)/2 periods for a simple average, which is also the reason α = 2/(n+1) is in every EMA formula.
Exponential SmoothingSimple smoothing and Holt's linear trend on one series, with the SSE-optimal alpha found for you — and the flat-forecast problem shown rather than described: no alpha makes a level-only model slope.
ARIMAARIMA(p, d, q) with coefficients and standard errors, residual Ljung-Box, a Dickey-Fuller result on the raw series, and over-differencing detected and named.
Augmented Dickey-FullerThe unit root test with MacKinnon critical values, the statistic at every lag order, the ordinary t cutoff shown for contrast, and KPSS computed alongside.
Forecast AccuracyMAE, RMSE, MAPE, sMAPE, MASE and bias side by side, with MAPE split by direction and MASE measured against a naive one-step forecast.
An educational tool. Classical decomposition produces seasonal indices for any series, including one with no seasonality — the strength figure is what distinguishes a real pattern from noise. The trend is undefined for the first and last half-cycle, so the method describes history rather than forecasting, and a seasonal pattern that changes over time is averaged into a single set of indices.