Written and maintained by CASRAI Editorial Board
Last updated
The exponential smoothing formula turns a series of observations into a smoothed value by blending the newest observation with the previous smoothed value: St = α yt-1 + (1 − α) St-1 in the NIST convention, where α is a smoothing constant between 0 and 1. This guide gives every symbol, the two index conventions that make textbooks look inconsistent, a full worked example with the arithmetic shown, and what happens when you try to choose α by minimising error.
What is exponential smoothing?
Exponential smoothing is a forecasting and smoothing method in which each new smoothed value is a weighted average of all past observations, with weights that shrink geometrically as the observations get older. Because the weights decay by a constant factor, the whole history can be carried in one number, so the method needs only the previous smoothed value and the latest observation. The simplest version, single (or simple) exponential smoothing, suits a series with no clear trend or seasonal pattern. Extensions that add a trend (Holt) or seasonality (Holt-Winters) are covered in chapter 8 of the OTexts textbook cited below. If you are comparing it with an equal-weight alternative, see our guide to the moving average.
Exponential smoothing formula and every symbol
The NIST/SEMATECH e-Handbook of Statistical Methods (section 6.4.3.1) writes single exponential smoothing as follows.
- yt: the observation at time t, for t = 1, 2, …, n.
- St: the smoothed value (the forecast for period t) at time t.
- α: the smoothing constant, with 0 < α ≤ 1.
There is no S1. The handbook sets S2 = y1 and, for t ≥ 3, uses the recursion:
St = α yt-1 + (1 − α) St-1
Two index conventions you will meet
NIST notes that an alternative form, attributed to Roberts (1959), uses yt instead of yt-1, so the smoothed value at t already contains the observation at t. Hyndman and Athanasopoulos, Forecasting: Principles and Practice (3rd edition, OTexts), write the same idea two ways. The forecast form is ŷt+1|t = α yt + (1 − α) ŷt|t-1. The component form is a level equation, ℓt = α yt + (1 − α) ℓt-1, with the forecast ŷt+h|t = ℓt for every horizon h. The formulas are the same calculation shifted by one period, so St+1 in the NIST form equals ℓt in the textbook form. When a calculator, spreadsheet or paper gives numbers that are one row off from another source, the convention is almost always the reason.
Why it is called exponential
Expanding the recursion shows the weights. The textbook weighted-average form is ŷT+1|T = α yT + α(1 − α) yT-1 + α(1 − α)2 yT-2 + … The weights α(1 − α)i decrease geometrically and sum to 1 as the series lengthens. For α = 0.3 the first four weights are 0.3000, 0.2100, 0.1470 and 0.1029 (the last three match the 0.2100, 0.1470 and 0.1029 that NIST lists for its expansion). NIST puts it this way: when α is close to 1, dampening is quick, and when α is close to 0, dampening is slow. With α = 1 the method reduces to the naive forecast, which repeats the last observation.
Worked example with the arithmetic shown
The data are the 12-point series used in the NIST handbook: 71, 70, 69, 68, 64, 65, 72, 78, 75, 75, 75, 70. Take α = 0.1 and start with S2 = y1 = 71.
- S3 = 0.1 × 70 + 0.9 × 71.00 = 7.00 + 63.90 = 70.90
- S4 = 0.1 × 69 + 0.9 × 70.90 = 6.90 + 63.81 = 70.71
- S5 = 0.1 × 68 + 0.9 × 70.71 = 6.80 + 63.64 = 70.44
Continuing the same way gives the full table. The error is et = yt − St.
| t | yt | St | Error et | et2 |
|---|---|---|---|---|
| 2 | 70 | 71.00 | -1.00 | 1.00 |
| 3 | 69 | 70.90 | -1.90 | 3.61 |
| 4 | 68 | 70.71 | -2.71 | 7.34 |
| 5 | 64 | 70.44 | -6.44 | 41.47 |
| 6 | 65 | 69.80 | -4.80 | 23.04 |
| 7 | 72 | 69.32 | 2.68 | 7.18 |
| 8 | 78 | 69.58 | 8.42 | 70.90 |
| 9 | 75 | 70.43 | 4.57 | 20.88 |
| 10 | 75 | 70.88 | 4.12 | 16.97 |
| 11 | 75 | 71.29 | 3.71 | 13.76 |
| 12 | 70 | 71.67 | -1.67 | 2.79 |
The sum of squared errors from unrounded arithmetic is 208.82 over 11 errors, so the mean squared error (MSE), a close relative of the variance, is 208.82 / 11 = 18.98. NIST reports an SSE of 208.94 and an MSE of 19.0, slightly different from the unrounded figures here. The forecast for period 13 is 0.1 × 70 + 0.9 × 71.67 = 71.50.
Choosing alpha: what the error actually shows
NIST recommends choosing α to minimise the MSE, trying values from 0.1 to 0.9 and then refining, and notes that nonlinear optimisers are more efficient. The textbook likewise defines the fit by the sum of squared one-step errors and says it requires numerical (nonlinear) minimisation, since there is no closed-form solution as in regression. Running that grid on the NIST series, with S2 = y1, gives:
| α | SSE | MSE (SSE / 11) |
|---|---|---|
| 0.1 | 208.82 | 18.98 |
| 0.3 | 199.59 | 18.14 |
| 0.5 | 181.46 | 16.50 |
| 0.7 | 162.54 | 14.78 |
| 0.9 | 145.99 | 13.27 |
| 1.0 | 139.00 | 12.64 |
The error falls steadily as α rises and is smallest at α = 1, the naive forecast. That is a useful warning rather than a recipe: on this short series, which steps up in the middle, smoothing does not beat repeating the last value, and the optimiser is telling you the data have no stable level to average. Report that finding instead of forcing an intermediate α. The starting value also matters. NIST lists three starting options, S2 = y1, a process target, or the average of the first four or five observations, and states that the smaller the value of α, the more important is the selection of the initial value.
Interpretation: reading the smoothed value
| What you see | What it means (per NIST and OTexts) |
|---|---|
| α near 1 | Recent observations dominate; dampening of the past is quick; α = 1 is the naive forecast. |
| α near 0 | Distant observations keep weight; dampening is slow; the starting value matters more. |
| Flat forecasts | Single smoothing gives the same forecast for every horizon, ŷT+h|T = ℓT. |
In the OTexts example, Algeria’s exports as a percentage of GDP (1960 to 2017) were fitted with an additive-error, no-trend model (ETS(A,N,N)). The estimated α was 0.84 and the estimated initial level 39.5, so l1 = 0.84 × 39.04 + 0.16 × 39.54 ≈ 39.12, and the forecast was 22.44 for each of the next five years. The textbook notes that the prediction intervals show considerable uncertainty around that flat line.
Assumptions and common mistakes
- Using single smoothing on a trending or seasonal series. The textbook positions simple exponential smoothing for data with no trend or seasonality; Holt and Holt-Winters add those components.
- Mixing conventions. Comparing an St that uses yt-1 with a level ℓt that uses yt produces numbers that look one period off.
- Allowing α outside its range. NIST gives 0 < α ≤ 1; the textbook allows 0 ≤ α ≤ 1.
- Ignoring the initial value. Small α makes the start matter; state which option you used.
- Treating the forecast as a trajectory. The forecast is flat for all horizons.
- Judging fit by one in-sample number. Compare against the naive forecast, as the table above does, and see our guide to the Brier score for another worked accuracy measure for forecasts.
How to report exponential smoothing (APA-style template)
Report the method, α and how it was chosen, the initialisation and the error measure. A template, with the values from the example above:
Single exponential smoothing was applied to the series (n = 12), initialised with the first observation (S2 = y1). The smoothing constant was set to α = 0.10 (MSE = 18.98); the error was lower for larger values of α, reaching its minimum at α = 1.0 (MSE = 12.64), so smoothing did not improve on the naive forecast.
Give numbers to two decimals, italicise statistical symbols as your style guide requires, and cite the method source (for example, the NIST/SEMATECH e-Handbook of Statistical Methods) in the reference list.
How to calculate exponential smoothing in Excel, R or Python
Excel
Put α in E1 and the observations in A2:A13. In B3 enter =A2 (this is S2 = y1), then in B4 enter =$E$1*A3+(1-$E$1)*B3 and fill down to B13. In C3 enter =A3-B3 and fill down to C13. The MSE is =SUMSQ(C3:C13)/COUNT(C3:C13).
R
y <- c(71,70,69,68,64,65,72,78,75,75,75,70)
alpha <- 0.1
s <- y[1]; sse <- 0
for (t in 2:length(y)) {
e <- y[t] - s
sse <- sse + e^2
s <- alpha * y[t] + (1 - alpha) * s
}
c(sse, sse / (length(y) - 1), s)
Python
y = [71, 70, 69, 68, 64, 65, 72, 78, 75, 75, 75, 70]
alpha = 0.1
s = y[0] # S_2 = y_1
sse = 0.0
for t in range(1, len(y)):
e = y[t] - s # observation minus its smoothed forecast
sse += e * e
s = alpha * y[t] + (1 - alpha) * s
mse = sse / (len(y) - 1)
print(round(sse, 2), round(mse, 2), round(s, 2)) # 208.82 18.98 71.5
Frequently asked questions
What is exponential smoothing?
It is a method that forecasts or smooths a series by averaging all past observations with geometrically decreasing weights, so the newest data count most. One smoothing constant, α, controls how fast the weights decay.
What are some exponential smoothing examples?
The worked example above smooths a 12-point series from the NIST handbook with α = 0.1. The OTexts textbook fits the method to Algeria’s exports as a percentage of GDP, finding α = 0.84 and a flat forecast of 22.44.
What value of alpha should I use?
NIST suggests choosing the α that minimises the MSE, trying 0.1 to 0.9 first and refining with an optimiser. Check the result against the naive forecast (α = 1).
How is it different from a moving average?
A moving average weights a fixed window equally; exponential smoothing weights every past observation, with weights that decay geometrically.
How do I handle trend or seasonality?
Single smoothing is for data without them. The textbook covers Holt’s method (trend) and Holt-Winters (seasonality) in its chapter 8.
Sources
- NIST/SEMATECH e-Handbook of Statistical Methods, section 6.4.3.1, Single Exponential Smoothing: itl.nist.gov/div898/handbook/pmc/section4/pmc431.htm (checked 2026-10-29).
- Hyndman, R. J., & Athanasopoulos, G. Forecasting: Principles and Practice (3rd ed.), OTexts, chapter 8.1, Simple exponential smoothing: otexts.com/fpp3/ses.html (checked 2026-10-29).








