Low demand inflates MAPE
Small unit misses can become large percentage errors when actual demand is close to zero.
Calculate Mean Absolute Percentage Error for demand forecasts from actual and forecast series. Paste spreadsheet data or edit period rows, then review MAPE, MAE, WAPE, forecast bias, and per-period APE.
Use the two series boxes, or paste rows with Actual and Forecast columns here. Headers are accepted.
| Period | Actual | Forecast | Error | Absolute Error | APE | Action |
|---|
For each period, the calculator computes error, absolute error, and APE. MAPE is the average of valid APE values.
Displayed percentages and unit metrics round to two decimals. Internal calculations use the unrounded values.
Zero actual periods are listed as undefined for APE and excluded from MAPE, because division by zero is undefined.
Inputs are processed client-side in your browser. No upload is required for pasted demand or forecast data.
Last reviewed: June 8, 2026.
Mean Absolute Percentage Error (MAPE) is a common forecast accuracy metric because it expresses each error as a percentage of actual demand. Demand planners use it to compare accuracy across products, regions, or time periods with different volumes.
This calculator accepts separate actual and forecast series, two-column spreadsheet paste, CSV with headers, or editable table rows. The series must align period by period. Periods where actual demand is zero are visible in the output but excluded from MAPE because percentage error is undefined.
The diagnostic metrics help explain the MAPE. MAE and total absolute error show misses in demand units, WAPE weights error by total volume, forecast bias shows whether the forecast tends high or low, and the best/worst period values identify outliers that may be driving the average.
Row-level absolute percentage error:
APE_i = |Actual_i - Forecast_i| / |Actual_i| × 100
Mean Absolute Percentage Error:
MAPE = (1 / n) × Σ APE_i
Actual_i is the actual demand in period i, Forecast_i is the
forecast for the same period, and n is the number of valid periods used in the average.
Valid periods have numeric actual and forecast values and a nonzero actual value. The × 100
conversion expresses the result as a percentage.
Assume actuals are in column A and forecasts are in column B, starting on row 2.
=IF(A2=0,"",ABS(A2-B2)/ABS(A2))=AVERAGE(C2:C13)=AVERAGE(FILTER(ABS(A2:A13-B2:B13)/ABS(A2:A13),A2:A13<>0))| Period | Actual | Forecast | Absolute error | APE |
|---|---|---|---|---|
| 1 | 120 | 125 | 5 | 4.17% |
| 2 | 135 | 130 | 5 | 3.70% |
| 3 | 150 | 155 | 5 | 3.33% |
The final MAPE is the average of the valid APE values:
(4.17% + 3.70% + 3.33%) / 3 = 3.73%.
If forecast model A has MAPE of 12% and model B has MAPE of 18% on the same holdout periods, model A has the lower average percentage error. Review bias and worst-period errors too, because a lower MAPE can still hide systematic over-forecasting or a severe miss in one period.
|Actual_i - Forecast_i|.Absolute error / |Actual_i| × 100.| Metric | Best used when | Watch out for |
|---|---|---|
| MAPE | You need an intuitive percentage error for stable, nonzero demand. | Small or zero actuals can distort the result. |
| WAPE | You compare portfolios, high-volume SKUs, or intermittent demand where volume weighting is useful. | Large-volume periods can dominate the metric. |
| MAE | You need average error in units for operational planning, labor, or inventory impact. | It is not scale-normalized across very different SKUs. |
| RMSE | You want to penalize large misses more heavily than small misses. | Outliers can dominate the score. |
| sMAPE | You want a percentage-style metric that uses actual and forecast in the denominator. | It has its own edge cases near zero and can be harder to explain. |
| Forecast bias | You need to know whether forecasts are systematically high or low. | Positive and negative errors can cancel out. |
For intermittent demand, pair MAPE with WAPE, MAE, and bias. For asymmetric business costs, such as a stockout being worse than excess inventory, review over-forecast and under-forecast errors separately.
A MAPE below 10% is often considered excellent, 10% to 20% good, 20% to 50% fair, and above 50% poor. Treat these as broad planning bands because thresholds vary by industry, demand stability, lead time, and business cost.
Yes. MAPE can exceed 100% when forecast errors are larger than the actual values, especially with low-volume or intermittent demand.
Some teams use 100% minus MAPE as a rough accuracy score. It becomes misleading when MAPE exceeds 100% or when zero and low actual values dominate the data.
MAPE averages period-level percentage errors. WAPE divides total absolute error by total actual demand, so it is often more stable for portfolios and intermittent demand.
MAPE reports percentage error. MAE reports the average error in demand units, which is easier to tie to operational volume but less comparable across SKUs with different scales.
Use =IF(A2=0,"",ABS(A2-B2)/ABS(A2)) for row-level APE, format it as a percentage, and average the valid APE rows for MAPE.
Zero actual periods cannot produce a defined percentage error. This calculator can exclude zero actual periods from MAPE or show those rows as undefined so you can review them separately.
MAPE is usually weak for intermittent demand because zeros and small actual values distort percentages. Pair it with WAPE, MAE, bias, and service-level measures.
Small unit misses can become large percentage errors when actual demand is close to zero.
A single extreme miss can noticeably raise MAPE for the whole period.
Many planners track a rolling 13-week MAPE to smooth volatility.
MAPE uses absolute error, so it does not show whether forecasts are usually high or low.
WAPE can be more reliable when comparing many SKUs with very different demand volumes.
MAPE is sensitive to zero and low actual values, outliers, and demand mix. Use additional metrics for a full forecast accuracy review.