Skip to content
Predict.ai

Accuracy & evaluation

WAPE, explained — and why it beats MAPE for real demand

WAPE (weighted absolute percentage error) is total absolute error divided by total actuals. It behaves when some periods are zero, and it does not let tiny SKUs dominate the score the way MAPE does.

Updated Aug 22, 2026·8 min read

The definition

WAPE is total absolute error divided by total actuals. Write it once: sum of |forecast − actual|, over the sum of actuals. Multiply by 100 if you like percents. Some teams say wMAPE. Same skeleton.

It is a volume-weighted score. Miss a big SKU and it shows. Miss a tiny one and it barely moves the number. That matches pallets and cash better than averaging a percent on every row.

Same week, two ways to score it

Actual vs forecast bars used to explain WAPEMonTueWedThuFriActualForecastΣ|err| = 110Σ actual = 550WAPE = 20%
Wednesday sold nothing. MAPE chokes on that row. WAPE divides total absolute error by total actuals, so the zero day is a 20-unit miss on a 550-unit week — not an infinite grade.

A worked example

Five days of actuals: 120, 80, 0, 200, 150. Forecasts: 100, 90, 20, 160, 170. Absolute errors: 20, 10, 20, 40, 20. Sum 110. Actuals sum to 550. WAPE = 20%.

MAPE on Wednesday is a tantrum — divide by zero, or an enormous percent if you sneak in a floor. That one empty day can own a steering meeting. WAPE treats it as a 20-unit miss on a 550-unit week, which is how the truck was loaded.

WAPE vs MAPE

MAPE averages |error / actual| per period. It feels like a grade. Then a SKU sells one unit, the model says two, and that row is 100% by itself. Buyers do not feel pain that way. Catalogs full of intermittent demand make MAPE a random number generator.

MAPE still has a home: strictly positive series of similar scale, company-week revenue, maybe. The moment zeros or mixed sizes show up, switch. If a vendor only quotes MAPE, ask what they did with the zeros. The pause is the answer.

How to use it in a review

Quote grain and horizon with the number. “11% WAPE, weekly, category, 8-week horizon, vs 16% seasonal naive on the same folds.” That sentence can change a PO. “We hit 11% accuracy” cannot.

  • Always pair with bias. WAPE can hide a model that is always 6% heavy.
  • Slice A items vs long tail. Aggregate WAPE loves the head.
  • Watch live vs backtest. A gap is leakage or a world that moved.

What WAPE will not tell you

It will not tell you a rare spike was a disaster if the rest of the month was quiet — RMSE or a pinball loss might. It gets odd if actuals can go negative. And it is not comparable across grains. A 8% chain-week and a 35% SKU-day can be the same system, doing its job.

Next: picking a metric on purpose, or what “good” even means.

FAQ

What does WAPE stand for?
Weighted Absolute Percentage Error. Some teams say wMAPE. Same idea: sum of |forecast − actual|, divided by the sum of actuals, usually as a percent.
Why is WAPE better than MAPE?
MAPE divides by each period's actual. A near-zero day explodes the score, and small SKUs punch above their weight. WAPE weights error by volume, which matches how money and pallets actually move.
Is a 10% WAPE good?
It depends on the grain and the category. Daily SKU-store demand is often in the teens or worse; weekly category totals can sit under 10%. Compare against a naive baseline on the same folds, not against a round number from a blog.

Keep going

Try it on your data.

Connect an outcome and its history. Predict.ai finds the drivers, races the models, and keeps the forecast live — in the workspace, over the API, and through agents.