How to Calculate Forecast Accuracy (Formula + Examples)
How to calculate forecast accuracy with worked examples: MAPE, WMAPE, MAE, and bias formulas, plus the SKU-level mistakes that fool most teams.
If you can't calculate forecast accuracy at the SKU-location level, you can't manage inventory, and you definitely can't defend a planning investment to your CFO. I ran demand planning at a $250M furniture manufacturer, and the single biggest unlock wasn't a better model. It was learning how to calculate forecast accuracy in a way that didn't lie to us. Most teams use one formula, apply it to the wrong aggregation level, and walk into the S&OP meeting with a number that hides the misses that actually cost money. Here's how to do it right, with the formulas and worked numbers.
The core formula nobody agrees on
There's no single "forecast accuracy" formula, which is exactly why so many teams report numbers that aren't comparable. Accuracy is almost always derived from forecast error, and the honest version is:
Forecast Accuracy = 1 − Forecast Error
The argument is entirely about how you calculate the error. Get that wrong and your 94% accuracy is fiction. Here are the four error metrics that matter, in order of how often they're misused.
MAPE: the default that fools people
Mean Absolute Percentage Error is the most common metric and the most dangerous when used alone.
MAPE = (1 / n) × Σ ( |Actual − Forecast| / Actual ) × 100
Worked example, four SKUs in a week:
| SKU | Forecast | Actual | Abs error | APE |
|---|---|---|---|---|
| A (sectional) | 100 | 90 | 10 | 11.1% |
| B (chair) | 50 | 60 | 10 | 16.7% |
| C (lamp) | 5 | 3 | 2 | 66.7% |
| D (cushion) | 2 | 1 | 1 | 100.0% |
MAPE = (11.1 + 16.7 + 66.7 + 100.0) / 4 = 48.6%. Accuracy = 51.4%.
That looks like a disaster. But look closer: your two high-value items (A and B) were forecast within ~12-17%. The 48.6% MAPE is driven entirely by the lamp and the cushion, two cheap, low-volume items where being off by one unit reads as a catastrophe. MAPE treats them as equal to your sectional. That's the trap.
WMAPE: the number your CFO actually wants
Weighted MAPE fixes the volume problem by weighting each item's error by its actual demand. It's the metric I'd put on the executive dashboard.
WMAPE = Σ |Actual − Forecast| / Σ Actual × 100
Same four SKUs:
- Sum of absolute errors = 10 + 10 + 2 + 1 = 23
- Sum of actuals = 90 + 60 + 3 + 1 = 154
- WMAPE = 23 / 154 = 14.9%. Accuracy = 85.1%.
Same data, completely different story. WMAPE says you forecast the dollars-and-units that move within 15%, which is true. The lamp and cushion shrink to their real weight. Use revenue instead of units as the weight and you get the financial view directly.
MAE: when percentages mislead
Mean Absolute Error keeps it in units, which is cleaner for low-volume and intermittent items where percentages go haywire.
MAE = Σ |Actual − Forecast| / n
From the table: 23 / 4 = 5.75 units average miss. No division by tiny actuals, no explosion. For spare parts, slow movers, and anything that sells in ones and twos, MAE tells the truth where MAPE screams.
Bias: the metric most teams forget
Every metric above takes the absolute value, which throws away direction. That's a problem, because direction is where the money leaks. Bias keeps the sign.
Bias = Σ (Forecast − Actual) / Σ Actual × 100
From the table: forecast − actual = (100−90) + (50−60) + (5−3) + (2−1) = 10 − 10 + 2 + 1 = 3. Bias = 3 / 154 = +1.9%, a slight over-forecast.
That number looks harmless on a four-SKU week. Run it cumulatively across months and a persistent +1.9% becomes a warehouse full of stranded inventory. Accuracy can be high while bias quietly bleeds cash. Always calculate both.
Side-by-side: same data, four answers
| Metric | Result | Reads as | Use when |
|---|---|---|---|
| MAPE | 48.6% | Alarming, misleading | Single-SKU comparison only |
| WMAPE | 14.9% | Honest, volume-weighted | Executive KPI, S&OP |
| MAE | 5.75 units | Direct, unit-based | Low-volume / intermittent |
| Bias | +1.9% | Slight overstock risk | Always, alongside error |
Four valid calculations, four different numbers. This is exactly why two teams both claiming "90% accuracy" can have wildly different inventory health.
The aggregation mistake that beats all formulas
Here's the error I see at nearly every mid-market manufacturer: they calculate one accuracy number at the total-company or total-month level. Demand nets out at that altitude. You over-forecast the Northeast, under-forecast the Southeast, and they cancel to a beautiful 96% that hides two regions running on the wrong inventory.
Calculate at the SKU-location-week level first. Then weight-aggregate up with WMAPE. The granular calculation is where you find the bias clusters, the chronic stockout SKUs, and the dead stock. The rolled-up number is for the boardroom; the granular number is for the warehouse.
A clean monthly workflow
- Pull forecast vs. actual at SKU-location-week
- Compute absolute error per row
- Roll up to WMAPE by product family and region (volume- or revenue-weighted)
- Compute signed bias on the same cuts
- Flag any cut where bias has been one direction for 3+ periods
- Review the flagged exceptions, not the whole catalog
AI-native planning platforms like Pigment do this rollup live, so you're not rebuilding a spreadsheet every month and you can slice WMAPE and bias by any dimension on demand. The point isn't the tool, it's that you calculate at the right level and never report a single number in isolation.
Get your real accuracy numbers, free
Most teams discover their reported accuracy and their actual SKU-level accuracy are two different worlds. We'll run a free planning-maturity and stranded-inventory teardown on your own data: WMAPE and bias by family and region, plus the dead stock your blended number is hiding. Book a 30-minute call and bring one product line's forecast-vs-actual history.
Let's see what's worth building first.
A 15-minute call: tell me where your AI or planning is stuck, and I'll tell you the one thing worth building first — and whether it's worth doing at all.