Ninety-six months with a steady climb and a seasonal swing of fixed size. Holt-Winters gives a squared-error total of 45,754.48 against 154,627.99 for Holt’s linear trend on the same data — the seasonal component removes 70.41% of the error, which is what a seasonal term is supposed to do. The root mean squared error is 23.339 and the mean absolute percentage error 1.884%. The fitted smoothing parameters put most of the weight on history rather than on the latest observation, which is the usual result for a series with this little noise.
The seasonal term removes 70.41% of the squared error
Squared error 45,754.48 against 154,627.99 for Holt's linear trend on the same data, with no seasonal term at all. The root mean squared error is 23.339 and the mean absolute percentage error 1.884%.
Seasonal term earns
70.41%
of the squared error, against Holt
RMSE
23.339
MAPE 1.884%
Level and trend
1,109.48
trend 3.1551 per period
Seasonal strength
0.9464
from a decomposition
Forecast
The forecast for each period ahead, split into its level, trend and seasonal parts
Ahead
Forecast
Level plus trend
Seasonal
1
1,180.795
1,112.635
+68.160
2
1,242.487
1,115.790
+126.697
3
1,208.545
1,118.945
+89.599
4
1,164.331
1,122.101
+42.230
5
1,134.359
1,125.256
+9.103
6
1,094.774
1,128.411
-33.637
7
1,060.504
1,131.566
-71.062
8
1,046.571
1,134.721
-88.150
9
1,048.151
1,137.876
-89.725
10
1,085.941
1,141.031
-55.090
11
1,171.166
1,144.186
+26.979
12
1,204.881
1,147.342
+57.539
The trend term is not damped here, so it extends in a straight line for as long as you ask. At 3.1551 per period that is 75.72 over two years, applied without question. A damped trend is the standard remedy and almost always forecasts better at long horizons.
What the smoothing parameters chose
Each smoothing parameter with what it controls and how to read its value
Parameter
Value
Controls
Reading
α
0.0500
the level
the level is stable; history dominates
β
0.0100
the trend
the slope is close to constant
γ
0.6000
the seasonal pattern
the seasonal shape drifts
These are chosen by grid search on the in-sample squared error, which is the standard approach and is not the same as choosing them to forecast well. A parameter near the top of its range usually means the model is tracking noise, and a value pinned at a boundary is worth investigating rather than reporting.
The comparison against a non-seasonal Holt fit runs on every series entered here, not just the presets. The verification suite asserts that Holt-Winters beats the non-seasonal fit by more than thirty per cent on ten generated seasonal series, which is the direction the method claims.
Three components Priced against Holt Parameters fitted Undamped trend
What this tool shows
On the shipped preset the seasonal term removes 70.41% of the squared error — 45,754.48 against 154,627.99 for Holt’s linear trend on the same data. On the third preset it makes the fit 1.91% worse. Three extra smoothing parameters chasing a pattern that is not there. That comparison is computed on every series entered here, not just the presets, because “should I use a seasonal model” is a question about your data rather than about the method.
Triple exponential smoothing with the three parameters fitted by grid search on the squared error
Additive and multiplicative seasonality, with the cost of the wrong choice measured
A forecast split into level, trend and seasonal parts so each is readable
The same fit without a seasonal term, so the seasonal component is priced rather than assumed
The seasonal strength from a decomposition, as an independent check on whether the pattern is real
Why an undamped trend is a liability at long horizons
Three components Priced against Holt Parameters fitted Undamped trend
The trend is not damped. It extends forever in a straight line.
Updated 13 September 2026 · Works in any browser, no installation
Holt-Winters carries three states forward through the series — a level, a slope, and one seasonal figure per position in the cycle — updating each with a weighted average of what was observed and what was expected. It is exponential smoothing with a seasonal term bolted on, and the seasonal term is either the reason the method works or three extra parameters fitting noise. Which one it is is measurable, and this page measures it.
At a glance
Formula shown
Additive: ℓₜ = α(yₜ − sₜ₋ₘ) + (1 − α)(ℓₜ₋₁ + bₜ₋₁); bₜ = β(ℓₜ − ℓₜ₋₁) + (1 − β)bₜ₋₁; sₜ = γ(yₜ − ℓₜ) + (1 − γ)sₜ₋ₘ. The h-step forecast is ℓₜ + h·bₜ + sₜ₊ₕ₋ₘ. Multiplicative replaces the subtractions with divisions and the addition in the forecast with a multiplication. The three parameters lie in 0 to 1 and are fitted here by a coarse-to-fine grid search on the in-sample sum of squared errors.
Scenario support
Forecasting monthly sales, quarterly demand or weekly traffic where the seasonal pattern is stable, producing a baseline forecast to judge a more complex model against, and deciding whether a series is seasonal enough to justify a seasonal model at all.
Educational estimate
Planning support from the values you enter — not professional advice.
The seasonal term is not free
Every Holt-Winters fit on this page is computed alongside a non-seasonal Holt fit on the same data, so the seasonal component is priced rather than assumed.
On the first preset it removes 70.41% of the squared error. 45,754.48 against 154,627.99. That is a seasonal term doing its job.
On the third it makes the fit 1.91% worse. 9,807.92 against 9,624.51, on a series whose seasonal strength is 0.0938.
Worse in-sample, from a model with more parameters, which happens because the seasonal states are estimated from a cycle of initialisation rather than chosen to minimise the error.
And the out-of-sample cost is larger still, because those fitted seasonal states are carried into every forecast. A decomposition first is the cheap way to find out whether the pattern is there.
Additive or multiplicative, measured
The two forms make different assumptions about how seasonality scales, and on a growing series the difference is large.
Additive holds the swing at a fixed number of units. Multiplicative holds it at a fixed percentage of the level.
On the second preset the multiplicative form gives 104,004.47 and the additive form 142,546.7. 27.04% better, from matching the shape and nothing else.
The rule of thumb is to look at the plot: if the seasonal swings get wider as the series rises, the pattern is proportional.
The rule that actually settles it is to fit both. Switching the model control recomputes the error total, and the smaller one wins — which takes a second and beats any heuristic.
The trend extends forever
This is the limitation that does the most damage in practice, and it is invisible at a short horizon.
The slope is applied unchanged at every step ahead. A trend of 3.1 per month is 74.4 over two years, with no allowance for it flattening.
Real series almost never sustain a linear trend that long. Growth decelerates, markets saturate, capacity binds.
The standard remedy is a damped trend, which multiplies the slope by a factor below 1 at each step so the forecast flattens towards a horizontal line.
Damped trends beat undamped ones in most forecasting competitions, and the practical consequence for this page is that a long-horizon Holt-Winters forecast should be treated as an upper or lower bound rather than a central estimate.
What the fitted parameters tell you
The three smoothing constants are usually skipped over. They are a description of how the series behaves, and reading them costs nothing.
A small α means the level is stable and history dominates; a large one means each new observation moves it, which is either genuine volatility or noise being tracked.
A small β means the slope is close to constant. Values near zero are common and healthy; values near 1 mean the trend is being re-estimated every period and the forecasts will swing.
A small γ means the seasonal shape is stable across years. A large one means it drifts, which is worth knowing before extrapolating it.
A parameter pinned at a boundary is a warning. It usually means the grid search wanted to go further, and that the component is either unnecessary or mis-specified.
Fitted in-sample, which is not the same as forecasting well
The parameters here are chosen to minimise the error on the data they were fitted to, which is standard and is not the same thing as choosing them to forecast well.
In-sample error always improves with more flexibility. A model free to track noise will, and the error total will look better for it.
The honest check is a holdout. Fit on the first eighty per cent, forecast the rest, and compare against a naive forecast with a scaled error measure.
This page does not do that automatically, because the right split depends on the series and picking one silently would be worse than not picking one.
The non-seasonal comparison is the cheap substitute. A seasonal model that cannot beat a non-seasonal one in-sample will not beat it out of sample either.
The first cycle initialises rather than fits
The state has to start somewhere, and the choice affects short series more than people expect.
The level starts at the first cycle’s average and the slope from the gap to the second. The seasonal states start as deviations within that first cycle.
So the first cycle is not scored. The error totals on this page are computed from the second cycle onward, which is why a three-cycle series has only two cycles of evidence in it.
With four cycles or fewer the initialisation dominates. The seasonal states never get enough updates to settle, and the fitted γ becomes meaningless.
Five to seven full cycles is a reasonable minimum for the seasonal component to be estimated rather than assumed — three is the arithmetic floor, not a recommendation.
Reporting a Holt-Winters forecast
Four items, and the second is the one that justifies the method rather than just describing it.
Give the period and the model form. Additive and multiplicative forecasts diverge as the level moves, and the difference grows with the horizon.
Give the comparison against a non-seasonal fit. It is what says the seasonal term was worth having.
Give the horizon and say whether the trend was damped. An undamped linear trend at twenty-four periods is a strong assumption and should be stated as one.
And give an error measure that is comparable across series. A root mean squared error in units is not; a scaled error against a naive forecast is.
Method. The three smoothing parameters are chosen by a coarse grid over six values each, refined around the best point, minimising the in-sample sum of squared errors from the second cycle onward — the first cycle initialises the state rather than being scored. The same search is run for a non-seasonal Holt fit on every input, which is what lets the page price the seasonal term rather than assume it: that comparison runs on user data, not only on the presets. The verification suite asserts the direction the method claims, requiring Holt-Winters to beat a non-seasonal fit by more than thirty per cent on ten generated seasonal series, and separately checks the structure on twenty-four more — a forecast of exactly the requested horizon, one seasonal state per period, and a finite non-negative error total. Multiplicative fits refuse non-positive values rather than producing a division by something near zero. 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:
Seasonal DecompositionTrend, seasonal indices and remainder, additive or multiplicative, with the index sum printed against the value it must take and both models compared on the same data.
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.
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.
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.
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.
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.
An educational tool. The trend here is not damped, so forecasts extend in a straight line indefinitely and long horizons should be read as bounds rather than central estimates. The smoothing parameters are fitted to in-sample error, which is standard and is not the same as forecasting well — and on a series without real seasonality the seasonal term can make the fit worse, which this page measures rather than hides.