WMAPE (Weighted Mean Absolute Percentage Error)

1. Definition

WMAPE is a weighted version of MAPE that gives more importance to data points with larger actual values.

$WMAPE = \frac{\sum_{i=1}^N |y_i – \hat{y}_i|}{\sum_{i=1}^N |y_i|}$

where:

  • $N$ = number of forecasts
  • $y_i$​ = actual value
  • $\hat{y}_i$ = predicted value

2. Intuition

  • Standard MAPE = average of percentage errors for each observation → all points weighted equally.
  • WMAPE = total absolute error divided by total actual demand → higher actual values contribute more weight.
  • This makes WMAPE less distorted by small actual values (a major weakness of MAPE).

3. Example

Suppose actual vs predicted demand:

ObservationActual ($y$)Predicted ($\hat{y}$​)Error $|y – ŷ|$
11009010
220022020
340036040
  • Numerator = $10 + 20 + 40 = 70$
  • Denominator = $100 + 200 + 400 = 700$

$WMAPE = \frac{70}{700} = 0.10 = 10\%$


4. Properties

  • Range: 0 → ∞ (usually expressed as a percentage).
  • Lower is better.
  • Easy to interpret: “on average, the forecast was off by X% of actual demand.”
  • More robust than MAPE when actuals can be close to zero.

5. Comparison with Other Metrics

  • MAPE: Simple, but unstable if actuals are small.
  • WMAPE: Weighted by actual demand → better for business forecasting (e.g., sales, inventory).
  • sMAPE: Symmetric error measure → avoids asymmetry in over/under forecasting.
  • RMSE/MAE: Absolute error measures (not percentages).

Use WMAPE when business cares about aggregate accuracy across all demand, not per-item fairness.


6. Python Example

import numpy as np

def wmape(y_true, y_pred):
    return np.sum(np.abs(y_true - y_pred)) / np.sum(np.abs(y_true))

y_true = np.array([100, 200, 400])
y_pred = np.array([90, 220, 360])

print("WMAPE:", wmape(y_true, y_pred))

Output:

WMAPE: 0.1  (10%)

Summary

  • WMAPE = total absolute error ÷ total actual demand.
  • More business-friendly than MAPE, avoids instability at low actuals.
  • Range: 0 → ∞, lower = better.
  • Common in forecasting accuracy for sales, demand, inventory, supply chain.

Discover more from Insightful Data Lab

Subscribe to get the latest posts sent to your email.

Similar Posts

Questions, corrections, or additional insights?

This site uses Akismet to reduce spam. Learn how your comment data is processed.