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.
Forecast accuracy is calculated as 1 − forecast error, where the error is almost always a form of absolute percentage error: Forecast Accuracy = 1 − (Σ |Actual − Forecast| / Σ Actual). So if your total absolute miss across a product line is 23 units against 154 units of actual demand, your error is 14.9% and your accuracy is 85.1%. The catch is that "error" has at least four common definitions, and picking the wrong one at the wrong aggregation level produces a number that looks fine while your warehouse quietly fills with the wrong stock.
I ran demand planning at a $250M furniture manufacturer. The single biggest unlock wasn't a better model. It was learning 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 idea: accuracy is just inverted error
There is no single "forecast accuracy" formula, which is exactly why two teams both claiming "90% accuracy" can have completely different inventory health. Accuracy is derived from forecast error, and the honest definition is Accuracy = 1 − Error.
The whole argument is about how you compute the error. Get that part wrong and your 94% is fiction. The four metrics below are the ones that matter, ordered by how often I see them misused.
A quick note before the math. Every percentage metric here divides by actuals, so they all behave badly when actual demand is near zero. The NIST Engineering Statistics Handbook (2012) flags this directly: MAPE is appropriate only when "the cost of the forecast error is more closely related to the percentage error than the numerical size of the error." Keep that line in your head. It decides which metric you should be using.
MAPE: the default that fools people
Mean Absolute Percentage Error is the most common metric and the most dangerous when used alone. It expresses each error as a percentage of that item's actual demand, then averages those percentages with equal weight.
MAPE = (1 / n) × Σ ( |Actual − Forecast| / Actual ) × 100
Worked example, four SKUs in one 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. Look closer. Your two high-value items, A and B, were forecast within ~12-17%. The 48.6% is driven entirely by the lamp and the cushion, two cheap, low-volume items where being off by a single unit reads as a catastrophe.
MAPE treats the cushion as equal to the sectional. That's the trap. The Wikipedia entry on MAPE (2024) documents the same structural flaw: the metric is undefined when an actual is zero and explodes toward infinity as actuals shrink. For a catalog with any slow movers in it, plain MAPE will systematically overstate how bad you are.
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, and the Institute of Business Forecasting (2023) notes that "more and more companies are moving from MAPE to a Weighted MAPE to focus their attention on errors that have a relatively larger impact."
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 units that actually move within 15%, which is true. The lamp and cushion shrink to their real weight in the mix.
Swap units for revenue as the weight and you get the financial view directly. That's the cut your CFO cares about, because it answers "how wrong were we on the dollars?" The IBF's forecast error reference (2023) calls this weighting choice the lever that aligns the metric with business impact. I go deeper on the MAPE-versus-WMAPE tradeoff in MAPE vs WMAPE: which forecast error metric to use.
MAE and MASE: when percentages mislead
Mean Absolute Error keeps the answer 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. If most of your catalog is intermittent, read forecasting intermittent demand for spare parts before you pick a metric at all.
The problem with raw MAE is that you can't compare it across products on different scales. That's why Hyndman and Koehler (2006) proposed the Mean Absolute Scaled Error (MASE), which divides your model's MAE by the MAE of a naive "use last period" forecast. A MASE below 1 means you beat the naive benchmark; above 1 means you'd have done better doing nothing.
MASE = MAE(model) / MAE(naive forecast)
MASE is scale-free, never blows up to infinity, and works across series with wildly different units. Hyndman's open textbook, Forecasting: Principles and Practice (3rd ed., 2021), recommends it as the default for comparing forecast accuracy across many time series, which is exactly the situation a multi-SKU manufacturer lives in.
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, which is why I treat bias as a permanent companion to any error metric. The full method for catching and correcting it lives in forecast bias: how to measure and eliminate it.
Side-by-side: same data, five 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 |
| MASE | depends on naive | Benchmark-relative | Comparing across many SKUs |
| Bias | +1.9% | Slight overstock risk | Always, alongside error |
Five valid calculations of the same week, five different numbers. This is exactly why two teams both reporting "90% accuracy" can have wildly different inventory health. The metric is not a detail. It's the whole story.
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, and demand nets out at that altitude.
You over-forecast the Northeast, under-forecast the Southeast, and the two cancel into a beautiful 96% that hides two regions running on the wrong inventory. The number is real. It's also useless.
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.
This is also where the upside lives. McKinsey (2022) found that applying machine-learning forecasting to the supply chain can cut forecast errors by 20 to 50 percent and reduce lost sales from unavailability by up to 65 percent. You only capture that by measuring at the level where the error actually lives, not where it cancels out.
A clean monthly workflow
Run the same loop every cycle. It's boring, and that's the point.
- 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.
That last step is what saves your planners' sanity. You don't review 4,000 SKUs. You review the 40 that are drifting.
Where the tooling helps
Spreadsheets can do every formula above. What they can't do well is recompute the granular rollup live, every month, sliced by any dimension on demand without someone rebuilding the model. AI-native planning platforms handle that rollup automatically, so WMAPE and bias by family and region are a filter, not a weekend project.
The point isn't the tool. It's that you calculate at the right level, pair error with bias every single time, and never report a single number in isolation. Once that discipline is in place, the next question is what to do with what you find, which is the subject of how to improve forecast accuracy: 9 proven tactics.
Frequently asked questions
What is the formula for forecast accuracy?
Forecast accuracy is 1 − forecast error, and the error is usually weighted absolute percentage error: WMAPE = Σ |Actual − Forecast| / Σ Actual. If your absolute misses total 23 units against 154 units of actual demand, your error is 14.9% and your accuracy is 85.1%. Always pair this with a signed bias calculation so you know which direction you're missing.
Is MAPE or WMAPE better for forecast accuracy?
WMAPE is better for almost every business use because it weights each error by volume, so your high-running items drive the number instead of cheap, low-volume outliers. Plain MAPE treats a one-unit miss on a $5 item the same as a 10-unit miss on a $2,000 item, which inflates the error and misdirects attention. Use MAPE only when comparing a single SKU to itself over time.
What is a good forecast accuracy percentage?
It depends entirely on the product and the aggregation level, so there is no universal target. Fast-moving finished goods at the family level might hit 85-95% WMAPE accuracy, while intermittent spare parts may be excellent at 60%. Benchmark against your own naive-forecast baseline using MASE rather than chasing a generic number, and see what is a good forecast accuracy by industry.
How do you measure forecast bias?
Bias is the signed sum of forecast minus actual, divided by total actuals: Bias = Σ (Forecast − Actual) / Σ Actual. A positive result means you over-forecast, a negative result means you under-forecast, and a value near zero means your misses are balanced. Track it cumulatively, because a small persistent bias compounds into excess inventory or chronic stockouts over time.
Why is forecast accuracy lower at the SKU level than the total level?
Because errors cancel out when you aggregate. Over-forecasting one region and under-forecasting another nets to a flattering total-company number that hides both problems. Always calculate at the SKU-location level first to expose the real misses, then weight-aggregate up with WMAPE for the executive view.
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.