Smoothing · Free
Holt–Winters additive
Level + trend + a seasonal wave of constant width.
What it assumes
Level + trend + additive seasonal of fixed width.
When to use
Seasonal amplitude roughly constant in original units.
When to avoid
Many zeros / intermittent demand, or multiplicative seasonality.
Knobs
α, β, γ with seasonal vector of length m.
How it works
Holt–Winters additive keeps three states: level, trend, and a seasonal vector of length m. The seasonal terms add (they do not grow with the level). You need a known period and enough history (roughly n ≥ 2m). Many zeros make the seasonal indices unstable — send spare parts to Croston. If peaks get taller as the series grows, try multiplicative Holt–Winters.
Sample forecast question
Twelve quarterly observations have a stable seasonal bump and a mild rise. What is the additive Holt–Winters forecast for the next four quarters?
Step-by-step on these numbers
| Period | Actual | Fitted |
|---|---|---|
| Y1 Q1 | 40 | 40.63 |
| Y1 Q2 | 48 | 48.99 |
| Y1 Q3 | 44 | 45.19 |
| Y1 Q4 | 55 | 56.28 |
| Y2 Q1 | 42 | 41.12 |
| Y2 Q2 | 51 | 49.93 |
| Y2 Q3 | 46 | 46.88 |
| Y2 Q4 | 58 | 58.06 |
| Y3 Q1 | 45 | 44.06 |
| Y3 Q2 | 53 | 52.97 |
| Y3 Q3 | 48 | 48.92 |
| Y3 Q4 | 61 | 60.33 |
| Period | Forecast | 95% interval |
|---|---|---|
| Y4 Q1 | 46.94 | 45.18 – 48.69 |
| Y4 Q2 | 55.19 | 52.71 – 57.68 |
| Y4 Q3 | 50.84 | 47.80 – 53.88 |
| Y4 Q4 | 63.11 | 59.60 – 66.62 |
Parameters the engine found
alpha= 0.400beta= 0.050gamma= 0.500level= 52.753trend= 0.578m= 4s0= -6.393s1= 1.285s2= -3.645s3= 8.047
The question
Twelve quarterly observations have a stable seasonal bump and a mild rise. What is the additive Holt–Winters forecast for the next four quarters? Sample quarters: Y1 Q1=40, Y1 Q2=48, Y1 Q3=44, Y1 Q4=55, Y2 Q1=42, Y2 Q2=51, Y2 Q3=46, Y2 Q4=58, Y3 Q1=45, Y3 Q2=53, Y3 Q3=48, Y3 Q4=61 (covers).
Seasons
m = 4, n = 12 (3 complete seasons). Additive HW adds a seasonal index of roughly constant width.
Initialisation
Season averages: S1=46.75, S2=49.25, S3=51.75. Initial level ℓ = 46.75, initial trend b = (49.25 − 46.75)/4 = 0.63. Initial seasonal indices from the first cycle: s_1=-6.750, s_2=1.250, s_3=-2.750, s_4=8.250.
Smoothing weights
The engine searches a small (α, β, γ) grid. Winner: α = 0.400, β = 0.050, γ = 0.500.
End states
ℓ = 52.75, b = 0.58, seasonal vector [-6.393, 1.285, -3.645, 8.047].
Forecast
ŷ_{n+h} = ℓ + h b + s_h. Y4 Q1: 53.33 + -6.393 → 46.94; Y4 Q2: 53.91 + 1.285 → 55.19; Y4 Q3: 54.49 + -3.645 → 50.84; Y4 Q4: 55.06 + 8.047 → 63.11.
Interval
Residual σ = 0.895. For h = 1 the 95% band is [45.18, 48.69] around 46.94. The engine labels this interval native for the method.
Graph of this sample
The chart plots the canned table on this page (actuals, in-sample fitted, forecast, 95% interval). Not your Excel series. Free analysis never uploads raw data.
Educational only. Not investment, weather, or operational advice. In the add-in, rank is rolling-origin MASE — “best supported among candidates on this series.”