Chapter 1 of 4

Forecasting Basics and Forecast Error

Learning objectives

  • Choose a baseline forecasting method appropriate to demand pattern
  • Compute common error metrics (MAD, MSE, MAPE, bias) and explain what each one reveals
  • Separate random noise from systematic signal in a demand series

Why forecast, why measure error

Every replenishment decision, production schedule, and capacity plan in supply chain rests on a forecast of future demand. No forecast is correct; the question is how wrong it is on average and in which direction. Two demand patterns dominate practical work. The first is a level series with random noise around a stable mean, which responds well to simple exponential smoothing or a moving average. The second is a trend series, where the mean is moving, which responds better to Holt's linear method or a regression on time. A third, intermittent demand with many zeros and occasional spikes, needs different tools entirely (Croston's method or SBA), which we touch on later. Choosing the right baseline matters more than choosing a clever model.

Error metrics and what they hide

Mean Absolute Deviation (MAD) is the average of absolute errors; it is in the same units as demand and is robust to outliers. Mean Squared Error (MSE) squares errors, so a single large miss dominates the metric, which is useful when large errors are particularly costly. Mean Absolute Percentage Error (MAPE) is unit-free and easy to communicate, but it is undefined when actual demand is zero and it punishes over-forecasts more than under-forecasts because of the asymmetry in the denominator. Bias is the average signed error; a non-zero bias means the forecast is systematically high or low and must be corrected. A good practice is to track MAD and bias side by side: MAD tells you how noisy you are, bias tells you whether you are aiming off-center.

Decomposing demand

Before choosing a model, decompose the series into level, trend, seasonality, calendar effects, and residual noise. A simple way is to plot a 12-period moving average to expose the trend, then plot deviations from that average to expose seasonality, then look at the residual for noise. Check these patterns in the product history rather than assuming them from the industry label. Promotions, calendar effects, and product life cycles can change the pattern. Forecast accuracy targets should be set by product family and by the level at which the forecast is used. Aggregation can smooth item-level variation, although shared shocks and systematic bias can remain. Set the target at the level the decision uses. For example, weekly replenishment may need SKU-week forecasts while monthly capacity planning may need family-month forecasts; compare their errors on those respective scales.

Worked example

Problem

Eight weeks of actual demand for a stable SKU: 102, 98, 105, 100, 110, 95, 103, 107. A simple exponential smoothing forecast with alpha = 0.20 was started at F1 = 100. Compute the one-step-ahead forecasts for weeks 2 through 8 and the resulting MAD, MAPE, and bias.

Step by step

  1. Forecast update rule: F_{t+1} = F_t + alpha x (A_t - F_t), with F1 = 100. Each forecast is scored against the actual for the same week.
  2. F2 = 100 + 0.20 x (102 - 100) = 100.40. Actual 98. Error = 98 - 100.40 = -2.40.
  3. F3 = 100.40 + 0.20 x (98 - 100.40) = 100.40 - 0.48 = 99.92. Actual 105. Error = +5.08.
  4. F4 = 99.92 + 0.20 x (105 - 99.92) = 99.92 + 1.016 = 100.94. Actual 100. Error = -0.94.
  5. F5 = 100.94 + 0.20 x (100 - 100.94) = 100.94 - 0.19 = 100.75. Actual 110. Error = +9.25.
  6. F6 = 100.75 + 0.20 x (110 - 100.75) = 100.75 + 1.85 = 102.60. Actual 95. Error = -7.60.
  7. F7 = 102.60 + 0.20 x (95 - 102.60) = 102.60 - 1.52 = 101.08. Actual 103. Error = +1.92.
  8. F8 = 101.08 + 0.20 x (103 - 101.08) = 101.08 + 0.38 = 101.46. Actual 107. Error = +5.54.
  9. Signed errors for weeks 2 through 8: -2.40, +5.08, -0.94, +9.25, -7.60, +1.92, +5.54.
  10. Absolute errors: 2.40, 5.08, 0.94, 9.25, 7.60, 1.92, 5.54. Sum = 32.73. MAD = 32.73 / 7 = 4.68 units.
  11. APE values (percent, error divided by that week's actual): 2.40/98 = 2.45, 5.08/105 = 4.84, 0.94/100 = 0.94, 9.25/110 = 8.41, 7.60/95 = 8.00, 1.92/103 = 1.86, 5.54/107 = 5.17. Sum = 31.67. MAPE = 31.67 / 7 = 4.52 percent.
  12. Sum of signed errors = -2.40 + 5.08 - 0.94 + 9.25 - 7.60 + 1.92 + 5.54 = 10.85. Bias = 10.85 / 7 = +1.55 units, so the forecast under-shoots slightly on average.

Answer. Forecasts: F2 = 100.40, F3 = 99.92, F4 = 100.94, F5 = 100.75, F6 = 102.60, F7 = 101.08, F8 = 101.46. MAD = 4.68 units, MAPE = 4.52 percent, bias = +1.55 units. The positive bias is small but consistent, which is what you would expect from a smoothing constant that is slightly too low for a series drifting upward.

Practice

Work each question before opening the solution.

  1. A forecast is unbiased on average but has MAPE of 35 percent at the SKU-month level. What does the bias tell you that MAPE does not?

    Show solution for question 1

    Bias = 0 means errors cancel out on average, so the model is centered. MAPE = 35 percent means the typical magnitude of error is large relative to demand, so the model is noisy and individual weeks or months are unreliable even though the average is right.

  2. An item has many weeks of zero demand and occasional spikes of 50-200 units. Why is MAPE a poor metric for it and what is a better choice?

    Show solution for question 2

    MAPE is undefined or extreme when actual demand is zero, because the percentage explodes. A better metric is the mean absolute scaled error (MASE) or tracking signal on the cumulative forecast error versus the cumulative absolute error of a naive forecast.

  3. You suspect a series has level 200, a positive trend of 2 units per week, and weekly seasonality (week 5 is 30 percent above average). Describe how you would set up a forecasting model that captures each component.

    Show solution for question 3

    Use a multiplicative Winters model or an equivalent regression with a time trend plus seasonal dummy variables. The level and trend absorb the moving average, and the seasonal dummies capture the periodic lift. Fit on at least two full seasonal cycles and validate on a holdout.