How to calculate forecast accuracy
- Paste rows from Excel with a header row, or click Open CSV or .xlsx. Use one row per item and period, or two columns: actual and forecast.
- Check the four column boxes under the rows. The calculator reads the headers, and you can change any choice.
- Read the scores: forecast accuracy, WAPE, MAPE, MAE, RMSE, bias, and the comparison with a naive forecast.
- Chart any item’s actuals against its forecast, or show its periods to check each error.
- Rank the items by WAPE, MAPE, bias, or their share of all error, then click Download CSV.
Score forecasts made before the actuals were known, such as the forecast you locked a month ahead.
Forecast accuracy formulas
This page writes the error of a period as forecast minus actual, so a positive error means the forecast ran high. Forecasting: Principles and Practice, the textbook by Rob Hyndman and George Athanasopoulos, writes it as actual minus forecast, and so does the IBF glossary. Their sign is the opposite, which changes the bias and nothing else.
Take the first six months of the electrical enclosure in the sample:
| Month | Actual | Forecast | Error | Absolute error | Absolute % error |
|---|---|---|---|---|---|
| 2025-01 | 78 | 80 | +2 | 2 | 2.6% |
| 2025-02 | 82 | 80 | −2 | 2 | 2.4% |
| 2025-03 | 91 | 85 | −6 | 6 | 6.6% |
| 2025-04 | 85 | 88 | +3 | 3 | 3.5% |
| 2025-05 | 88 | 90 | +2 | 2 | 2.3% |
| 2025-06 | 94 | 90 | −4 | 4 | 4.3% |
| Total | 518 | 513 | −5 | 19 | average 3.61% |
MAE = sum of absolute errors ÷ periods = 19 ÷ 6 = 3.17
RMSE = square root of (sum of squared errors ÷ periods) = √(73 ÷ 6) = 3.49
MAPE = average of absolute error ÷ actual = 3.61%
WAPE = sum of absolute errors ÷ sum of actuals = 19 ÷ 518 = 3.67%
Forecast accuracy = 100% − WAPE = 96.33%
Bias = sum of errors ÷ periods = −5 ÷ 6 = −0.83 a month, or −0.97% of the actual
MAE and RMSE are in units. Squaring the errors gives more weight to large ones, as an article on IBF’s blog notes.
MAPE formula, and where it breaks
MAPE, the mean absolute percentage error, averages each period’s error as a share of its actual. The IBF glossary gives it as the sum of |A − F| ÷ A × 100, divided by the number of observations.
Forecast Pro notes that MAPE is undefined when actual demand is zero, and often extreme when the actual is small. The calculator leaves out every period with a zero actual and says how many. On the centrifugal pump in the sample, a month with an actual of 1 against a forecast of 3 counts as a 200% error.
The textbook adds that MAPE puts a heavier penalty on forecasts that run high than on forecasts that run low.
Find out whether your history can forecast your items
Tell Derik which items run out or pile up and which system holds their order history. He will tell you whether that history is enough to forecast them.
Start a conversationWAPE, and forecast accuracy as 100% minus WAPE
WAPE, the weighted absolute percentage error, divides the total absolute error by the total actual. IBF calls it weighted MAPE: each period’s percentage error, weighted by its actual volume, which works out to the same ratio. Forecast Pro calls it the MAD/Mean ratio. A period with a zero actual adds its error to the total and breaks nothing.
Many planning teams report forecast accuracy as 100% minus WAPE. RELEX, a planning software company, uses 1 − WAPE as a primary accuracy measure. The IBF blog article gives the same formula for one period: 1 − |actual − forecast| ÷ actual. When the total error is larger than total demand, the result falls below zero, and the calculator shows the negative number.
Forecast bias
Bias is the direction of the error. A forecast can score well on MAPE and still run high month after month, which builds stock. The calculator reports it per period and as a share of the actual, and counts the periods over and under.
Sources disagree on the sign. SPS Commerce, like this page, defines bias as (sum of forecast − sum of actual) ÷ sum of actual, where a positive bias is over-forecasting. In the IBF glossary, the error is actual minus forecast, so a positive bias there means under-forecasting. Hyndman and Athanasopoulos call forecasts biased when their residuals have a mean other than zero.
Which measure to use when
- WAPE and forecast accuracy for a group of items, a warehouse, or a whole month. Big items count for more, and zero actuals do no harm.
- MAPE for one steady item, or items with volume in every period. Avoid it for slow movers.
- MAE for one item in its own units. The textbook calls it easy to understand and compute.
- RMSE when one large miss costs more than several small ones, such as a stockout of a key item.
- Bias beside any of them, because the size of an error says nothing about its direction.
MAE and RMSE cannot compare items sold in different units. The totals on this page add units together, so use one unit for every item.
Measure fairly: a holdout period and a naive forecast
Score forecasts on periods the forecast did not see. Hyndman and Athanasopoulos write that accuracy can only be judged on new data that were not used to fit the model. They put a typical test set at about 20% of the history, ideally at least as long as the horizon you forecast. IBF calls those periods the holdout period.
Then compare the forecast with a naive one, which uses the last period’s actual. For a forecast made two periods ahead, set Naive lag to 2, so the naive forecast uses only actuals known then. The textbook uses such simple methods as benchmarks: a new method that does not beat them is not worth considering. For seasonal data, the textbook uses the seasonal naive forecast instead: the same month last year. Set Naive lag to 12 for monthly data.
The calculator compares the two on MAE over the same periods. The textbook’s mean absolute scaled error divides each error by the naive forecast’s average error on the training data.
A worked example: five items over 12 months
The sample holds a year of monthly demand for five items that a distributor stocks. The numbers are made up to show the method. Ranked by WAPE, worst first:
| Item | Accuracy | WAPE | MAPE | Bias | Against naive | Share of error |
|---|---|---|---|---|---|---|
| Centrifugal pump 2 hp | 33.3% | 66.7% | 48.9% | +20.0% | 35% less error | 3% |
| Machine guard panel 48 x 96 in | 83.3% | 16.7% | 15.0% | −15.0% | 102% more error | 16% |
| Pallet rack beam 96 in | 93.3% | 6.7% | 6.9% | +6.5% | 6% less error | 56% |
| Electrical enclosure 24 x 20 x 8 in | 96.1% | 3.9% | 3.9% | +0.7% | 55% less error | 6% |
| Conveyor roller 1.9 in | 96.9% | 3.1% | 3.1% | +0.2% | 65% less error | 18% |
| All items | 94.1% | 5.9% | 13.8% | +2.6% | 29% less error | 100% |
The pump ranks first on WAPE, yet it adds 3% of all the error. The pallet rack beams add 56%, and most of it is bias: the forecast ran high in 11 of 12 months. Taking the average bias off every month, in hindsight, cuts the beams’ absolute error from 345 to 119 units. The WAPE of all items falls from 5.9% to 3.8%.
The machine guard panels show the other failure. Demand climbed from 31 to 70 a month while the forecast stayed low, so the naive forecast’s MAE is 4.3 against the forecast’s 8.6. The forecast beats the naive one on 4 of 5 items.
Forecast accuracy formulas in Excel
With actuals in B2:B13 and forecasts in C2:C13, these formulas give the calculator’s results when no actual is negative. For a negative actual, the calculator divides by its absolute value. They use SUMPRODUCT, ABS, SUMXMY2, SQRT, AVERAGE, IF, COUNT, and SUM.
- MAE:
=SUMPRODUCT(ABS(C2:C13-B2:B13))/COUNT(B2:B13) - RMSE:
=SQRT(SUMXMY2(C2:C13,B2:B13)/COUNT(B2:B13)) - WAPE:
=SUMPRODUCT(ABS(C2:C13-B2:B13))/SUM(B2:B13) - Forecast accuracy:
=1-SUMPRODUCT(ABS(C2:C13-B2:B13))/SUM(B2:B13) - MAPE without zero actuals: in D2,
=IF(B2=0,"",ABS(C2-B2)/B2), filled down to D13, then=AVERAGE(D2:D13). AVERAGE ignores the text that IF leaves beside a zero actual. - Bias per period:
=(SUM(C2:C13)-SUM(B2:B13))/COUNT(B2:B13), and as a share of the actual:=(SUM(C2:C13)-SUM(B2:B13))/SUM(B2:B13) - Periods over:
=SUMPRODUCT((C2:C13>B2:B13)*1), and under:=SUMPRODUCT((C2:C13<B2:B13)*1) - Naive MAE:
=SUMPRODUCT(ABS(B3:B13-B2:B12))/COUNT(B3:B13), against the forecast’s MAE over the same months:=SUMPRODUCT(ABS(C3:C13-B3:B13))/COUNT(B3:B13)
On the enclosure’s 12 months from the sample, LibreOffice Calc returns a WAPE of 3.88% and a MAPE of 3.93% with these formulas. The calculator shows the same. To read any of them step by step, paste it into the Excel formula explainer. The guide to forecasting in Excel covers making the forecast itself.
How an AI forecast is judged on the same numbers
An AI demand forecast faces the same test. Hide the last 12 months, forecast each one from the months before it, and score the result with WAPE and bias by item group. Compare it with the seasonal naive forecast and the method you use today. The guide to AI demand forecasting describes that backtest and the order history it needs.
ThriveAI builds item-level forecasts from the order history in your ERP and scores each one this way. A planner approves every change before it reaches an order. Read the scores by product family in the monthly demand review of sales and operations planning. Inventory optimization covers how the forecast error sets safety stock.