Sign in

Blog · Forecast and pipeline

WAPE forecast accuracy: formula and example

WAPE measures absolute forecast misses relative to total actual demand. This page works the formula from product and site rows, reconciles the total, and explains zero-demand periods and the limits of an accuracy score.

The short answerWAPE forecast accuracy is measured with weighted absolute percentage error: the sum of absolute forecast errors divided by total actual demand. Lower WAPE means smaller misses relative to volume. Calculate absolute errors before adding rows, so overforecasts cannot cancel underforecasts. WAPE is undefined when total actual demand is zero; report the absolute error separately.

WAPE forecast accuracy expresses total absolute forecast error as a percentage of total actual demand. It measures the size of the misses, with lower WAPE indicating less error relative to volume. A report should call it an error measure even when its heading says forecast accuracy.

The WAPE formula

Absolute error for a row = |Forecast demand - Actual demand|

WAPE = Sum of absolute row errors / Sum of actual demand × 100%

This version assumes nonnegative demand, measured in the same unit across the selected rows. The published WAPE formula takes the absolute difference before summing. That order matters: adding forecasts and actuals first allows opposite misses to cancel.

For a short definition of the broader subject, see forecast accuracy. WAPE answers a specific question within it: how large were the absolute misses compared with the demand the business actually served?

Start with comparable forecast and actual rows

Bring the saved forecast export and the actual demand export to the same level: product, site and target period. Keep the forecast creation date as well. A forecast saved before the period began is a different commitment from a revision made after orders arrived.

The matched file needs these fields:

Field What it establishes
Product and site The business item being scored
Target period The week or month the forecast describes
Forecast creation date The information available when the forecast was saved
Forecast demand The original forecast at the chosen horizon
Actual demand The observed demand for the same item, site and period
Unit of measure A common basis, such as cases

Do not match a monthly product forecast to individual shipment lines and repeat the full forecast on each shipment. Aggregate the shipments to the forecast's level first. A missing actual is unresolved data, while a confirmed zero means no demand occurred; those are different conditions.

A worked example across products and sites

A US industrial distributor compares its saved monthly case forecast with closed actual demand. Every row below belongs to the same target month and forecast horizon. Signed error uses forecast minus actual, so a positive number means overforecasting.

Site Product Actual demand (cases) Forecast (cases) Signed error (cases) Absolute error (cases)
Denver Standard 1,000 900 -100 100
Dallas Standard 500 650 150 150
Denver Specialty 100 150 50 50
Dallas Launch 0 40 40 40
Total 1,600 1,740 140 340

The calculation has three steps:

Step Calculation Result
Add actual demand 1,000 + 500 + 100 + 0 1,600 cases
Add absolute errors 100 + 150 + 50 + 40 340 cases
Divide error by actual demand 340 / 1,600 × 100% 21.25% WAPE

The distributor missed by 340 cases across its product-site rows, relative to 1,600 cases of demand. Forecast total minus actual total is only 140 cases. Dividing that net difference by demand gives 8.75%, which measures a different result because the Denver underforecast offsets part of the overforecasts.

Keep the direction of error beside WAPE, rather than trying to recover it from the absolute value. The guide to measuring forecast accuracy and bias covers the separate directional measure.

The check: site totals must reproduce company WAPE

Preserve the row-level absolute errors when grouping by site. Do not replace them with the absolute difference between each site's forecast total and actual total.

Site Actual demand (cases) Sum of row absolute errors (cases) Site WAPE
Denver 1,100 150 13.64%
Dallas 500 190 38.00%
Total 1,600 340 21.25%

The proof is direct: (150 + 190) / (1,100 + 500) × 100% = 21.25%. Display percentages to two decimal places, but retain full precision for calculations. The site actuals must tie to the source demand export, and the absolute errors must tie to the original matched rows.

Dallas has the higher relative error, while its 190-case absolute miss also exceeds Denver's 150-case miss. That gives the demand planning team a place to investigate: check launch assumptions, customer timing and local order changes before altering the forecast process across every site.

Handle zero demand explicitly

The Dallas launch row stays in the company calculation. Its actual demand adds nothing to the denominator, but its 40-case forecast adds 40 cases to absolute error. Removing it would hide an overforecast.

If the report is filtered to that launch row alone, total actual demand is zero. WAPE is then undefined, not zero and not a perfect score. Show the 40-case absolute error and a clear undefined status instead of substituting a denominator. If forecast and actual are both zero throughout a group, the percentage remains undefined even though the absolute error is zero. Rob Hyndman's discussion of WAPE explains why individual zero actuals are permissible but an all-zero denominator is not.

For an error measure in original business units, use MAD forecast accuracy; for the reporting implementation, see the forecast comparison report guide.

Where WAPE goes wrong

  • Calculating the absolute value after aggregation. That hides offsetting product or site misses. Preserve each absolute row error through every subtotal.
  • Mixing forecast horizons. A late revision and an earlier planning commitment had different information. Compare the same saved horizon across periods.
  • Mixing units or netting returns into demand. Cases and individual units need a common basis. Separate returns from nonnegative demand before applying this formula.
  • Reading growth as improvement. More actual volume can lower WAPE even when the absolute miss stays unchanged. Show demand and absolute error beside the percentage, especially across growing or seasonal periods.
  • Treating one percentage as an operating target. Product mix and shortage costs matter. The guide to what makes forecast accuracy good explains why the business decision sets the standard.

Calculate WAPE on your own file in Covirage

Bring a saved forecast file and matching actual demand rows, including product, site, target period and forecast creation date. Covirage maps the columns, and its tools compute and check the figures; the external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own export.

See Covirage for forecast analysis for the supporting workflow.

Questions people ask

Is WAPE an accuracy percentage or an error percentage?

WAPE is an error percentage, so lower is better. Some businesses report an accuracy score by subtracting WAPE from 100%, but that is a separate reporting convention. Label the measure clearly and retain the underlying error calculation.

Can WAPE include periods with no actual demand?

Yes, provided the full reporting group has positive total actual demand. A zero-demand row contributes its absolute forecast error to the numerator. If every actual in the group is zero, the denominator is zero and WAPE is undefined.

Why should I not average product WAPE percentages?

A simple average gives a small product the same influence as a large product. Recompute WAPE from total absolute errors and total actual demand. Weighting group percentages by actual demand also works when every group denominator is positive.

Can WAPE be greater than 100%?

Yes. Absolute forecast errors can exceed the total actual demand, especially when forecasts greatly overstate demand. That does not make the calculation invalid. It means the misses exceed the volume used as the denominator.