Why the metric choice changes the answer
Two forecasts can be ranked in opposite orders depending on which accuracy metric you use. That is not a technicality - it decides which model goes live, and teams routinely accept whichever metric came with the software rather than the one that matches the decision.
The question to hold throughout is simple: when this forecast is wrong, who pays, and how? A forecast feeding a purchase order and a forecast feeding a board slide have different failure costs and deserve different metrics.
MAPE, and why it both flatters and punishes
MAPE - mean absolute percentage error - averages the percentage miss across items. It is popular because a percentage feels intuitive and comparable across products.
It has two serious problems. It is undefined when actual demand is zero, which happens constantly with slow-moving stock. And it treats a miss of 2 units on an item selling 4 as a 50% error, while a miss of 200 on an item selling 2,000 is only 10% - so a model can score well overall while being badly wrong on the products carrying your revenue.
Illustrative arithmetic: forecast 4 against actual 2 on a spare part, and 1,900 against actual 2,000 on your best seller. MAPE averages 100% and 5% to 52.5%, which tells you almost nothing about the 100-unit shortfall that will actually cost you sales.
WAPE, and why it usually matches the business
WAPE - weighted absolute percentage error - sums the absolute errors and divides by total actual demand. In effect every item is weighted by its volume, so the products that move most influence the score most.
For stock, staffing and capacity decisions this is normally the right default, because the cost of being wrong scales with volume. It also handles zeros without blowing up, since the division happens once at the end rather than per item.
| Metric | What it rewards | Where it misleads |
|---|---|---|
| MAPE | Percentage accuracy per item | Zeros, and low-volume items dominating the average |
| WAPE | Accuracy weighted by volume | Small but high-margin items get little weight |
| MAE | Absolute units missed | Not comparable across items of different scale |
| RMSE | Avoiding large individual misses | One bad week can dominate the whole score |
| Bias | Systematic over or under forecasting | Overs and unders cancel out |
Bias is the one nobody reports and everybody needs
Bias is the average signed error: are you consistently forecasting above or below actual? Unlike the error metrics it can sit near zero while the forecast is wildly wrong, because overs and unders cancel.
That is exactly why it belongs alongside an error metric rather than instead of one. A forecast with acceptable WAPE but a persistent 8% under-forecast is quietly creating stockouts every month, and no accuracy percentage will show you that.
Bias is also the easiest problem to fix. A systematic lean usually points at a missing driver - a promotion calendar nobody fed in, or a definition mismatch between what finance counts as a sale and what the warehouse counts as a despatch.
Match the metric to the cost of being wrong
Where over-forecasting and under-forecasting cost different amounts, a symmetric error metric is the wrong tool. Excess stock of a non-perishable ties up cash; a stockout on a headline product loses the sale and sometimes the customer.
- Overs cost more - perishables, seasonal fashion, anything with a markdown cycle. Consider a quantile forecast aimed below the middle.
- Unders cost more - safety-critical spares, high-margin goods, anything where a stockout sends the customer elsewhere for good.
- Roughly symmetric - staff rostering within contracted hours, where both directions cost broadly the same.
Once the asymmetry is written down in pounds, the metric choice usually becomes obvious and so does the target. Chasing a lower percentage for its own sake is how forecasting projects consume budget without changing a single decision.
A reporting set that survives a board meeting
We generally suggest three numbers rather than one: WAPE for headline accuracy, bias for direction, and both recalculated on the top 20% of items by value. That last one catches the common failure where the overall score looks fine because hundreds of trivial items are easy to predict.
Add the naive baseline - last period repeated, or the same week last year - to every report. If the model cannot beat that, the honest conclusion is that the forecast is not ready, and it is far cheaper to learn that from a report than from a warehouse. Our piece on backtesting a forecast covers how to measure that fairly.
A forecast nobody can act on differently is a number, not a forecast.