Created by Dr. Pedram Jahangiry | Enhanced with Claude
Interactive Teaching Tool - Understanding Level, Trend, and Seasonal Components
This tool steps through the Holt-Winters additive method one period at a time, re-estimating the level, trend, and twelve monthly seasonal indices as each new observation arrives and folding them into a forecast. Drag the smoothing parameters or set your own starting level, trend, and seasonal values to see how each choice reshapes the fitted curve and the components behind it.
SES: Only level → Flat forecasts
Holt: Level + Trend → Linear forecasts
Holt-Winters: Level + Trend + Seasonality → Captures repeating patterns!
It asks one question: which values of α, β*, and γ make the one-step-ahead forecasts fit the training months best? For every candidate it runs the same recursion you watch in the animation across the 115 training months, adds up the squared errors between each forecast ŷt and the actual yt, and keeps the candidate with the smallest total (the SSE). That is exactly the criterion statsmodels and R's ets() use when errors are additive, and the search below keeps to statsmodels' default parameter region, so the answer you get here is the answer you would get in Python.
statsmodels: 0 ≤ α ≤ 1, 0 ≤ β* ≤ α, and 0 ≤ γ ≤ 1 − α. The cap on γ keeps the seasonal update from double-counting a surprise the level has already absorbed, and Hyndman's usual region has it too. The cap on β* is a statsmodels default rather than a textbook rule (Hyndman's usual region only asks for 0 ≤ β* ≤ 1). Results are snapped to the sliders' 0.01 grid.What to look for. This is the first model in the suite where the optimizer finds something clearly better than a hand-tuned fit, because the seasonal component is what the airline data actually need. Notice that the answer lands on the boundary γ = 1 − α: the data want the seasonal indices to adapt as fast as the rules allow. Then tick "keep my starting values fixed" and search again to see how much the estimated starting values are worth on their own.
Deseasonalized level adaptation:
Trend direction changes:
Seasonal pattern evolution:
The forecast combines all three components: current level + trend × horizon + appropriate seasonal factor.
Seasonal patterns can evolve over time. High γ allows adaptation to changing seasonal behavior (e.g., climate change affecting tourism patterns).
Too-responsive seasonal factors can overfit to noise, creating unrealistic seasonal fluctuations that don't represent true patterns.
The key insight: ℓt = α·(yt - st-m) + (1-α)·(ℓt-1 + bt-1). By removing the seasonal component before updating the level, Holt-Winters prevents seasonal peaks from being confused with genuine level changes. This separation enables each component to capture its own distinct pattern in the data.