1. Definition

sMAPE is a normalized error metric that expresses forecast accuracy as a percentage.
Unlike regular MAPE, it is symmetric because it divides the error by the average of actual and predicted values.

$sMAPE = \frac{100\%}{N} \sum_{i=1}^N \frac{|y_i – \hat{y}_i|}{\frac{|y_i| + |\hat{y}_i|}{2}}$

where:

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

2. Intuition

  • Standard MAPE divides by actual value ($y_i$), so it can explode when $y_i$​ ≈ 0.
  • sMAPE divides by the average of actual and predicted, making it more stable and “symmetric” between overestimation and underestimation.

3. Example

Suppose actual vs predicted demand:

ObservationActual ($y$)Predicted ($\hat{y}$​)Error$|y – ŷ|$Denominator $(|y|+|ŷ|)/2$Term
11009010950.105
2200220202100.095
3400360403800.105

$sMAPE = \frac{100}{3}(0.105 + 0.095 + 0.105) = 10.2\%$


4. Properties

  • Range: 0% → 200%
    • (since denominator can be small, max error can approach 200%).
  • Symmetry: Over-forecasting and under-forecasting are penalized equally.
  • Interpretability: Error as a percentage makes it easy for stakeholders to understand.

5. Comparison with Other Metrics

  • MAE: Absolute error, same units as target.
  • MAPE: Error as a % of actual value (unstable if $y$ ≈ 0).
  • sMAPE: Error as a % of average of actual and predicted (more stable, fairer).
  • RMSE: Penalizes large errors more (quadratic).

Use sMAPE when you need a percentage-based error metric that avoids MAPE’s instability near zero.


6. Python Example

import numpy as np

def smape(y_true, y_pred):
    return 100 * np.mean(2 * np.abs(y_pred - y_true) / (np.abs(y_true) + np.abs(y_pred)))

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

print("sMAPE:", smape(y_true, y_pred))

Output:

sMAPE: 10.2

Summary

  • sMAPE = Symmetric version of MAPE.
  • Range: 0%–200%, lower = better.
  • More stable than MAPE when actuals are near zero.
  • Common in time series forecasting competitions (e.g., energy demand, sales, traffic).