induwara.lk
induwara.lkData Science · Forecasting

SMAPE Calculator (Symmetric Mean Absolute Percentage Error)

Paste your actual and forecast values to get the SMAPE, a per-point error breakdown, and both standard definitions (0–200% and 0–100%). Everything runs in your browser — no signup, no upload, sources cited below.

By Induwara AshinsanaUpdated Jul 12, 2026
SMAPE calculatorranges 0%–200%
Runs in your browser

The observed / true numbers. Separate with commas, spaces, or new lines.

The predicted numbers, in the same order. Separate with commas, spaces, or new lines.

Definition
Sample data
SMAPE
8.06%
Strong accuracy
Points (n)
3
ranges 0%–200%
MAE
16.67
Mean absolute error
MAPE
8.33%
Mean absolute % error

Per-point breakdown

#ActualForecast|F − A|DenominatorRatioContribution
1100110101050.0952383.17%
2200190101950.0512821.71%
3300330303150.0952383.17%
SMAPE (average × 100)8.06%

Ratios are shown to 6 decimals; full precision is kept internally and only the headline SMAPE is rounded to 2 decimals. A row where both actual and forecast are exactly 0 contributes 0 by convention (0/0 → 0).

Formulas from Makridakis (1993) and Armstrong (1985); confirmed as an official accuracy measure in the M4 Competition (2020). Sources are linked in full below the calculator.

How it works

SMAPE (Symmetric Mean Absolute Percentage Error) measures how far a set of forecasts sits from the values they were meant to predict, expressed as a scale-free percentage. It was introduced to fix two problems with plain MAPE: MAPE is undefined when an actual value is 0, and it penalises over-forecasts and under-forecasts by different amounts. SMAPE divides each error by a symmetric denominator built from both the actual and the forecast, so a single zero actual no longer breaks the metric.

There are two published definitions, and this tool supports both because different papers and competitions use different ones:

  • Makridakis (1993), 0%–200%. Each point term is |Fₜ − Aₜ| / ((|Aₜ| + |Fₜ|) / 2), equivalently 2·|Fₜ − Aₜ| / (|Aₜ| + |Fₜ|). Each term lies in [0, 2], so the average ×100 lands in 0%–200%. This is the form used in the M3 and M4 forecasting competitions.
  • Armstrong (1985), 0%–100%. The denominator is the full |Aₜ| + |Fₜ| rather than its half, so the result is exactly half the Makridakis value for the same data. Model rankings are identical; only the scale changes.

The calculator performs these steps:

  1. Parse both boxes into numeric arrays, accepting commas, spaces, tabs, or new lines. It rejects the input if the two series differ in length or if any token is not a number, naming the exact position of the problem.
  2. For each point, compute the absolute error |Fₜ − Aₜ| and the denominator for the chosen definition.
  3. Apply the zero convention: when both the actual and forecast are exactly 0, the point term is defined as 0 (a perfect zero forecast) instead of the undefined 0/0.
  4. Sum the point ratios, divide by n, multiply by 100, and round the headline number to two decimals. Full precision is kept internally, and the per-point ratios are shown to six decimals so you can audit the math.

For context the tool also shows MAE (mean absolute error, in the data's own units) and MAPE. When any actual value is 0, MAPE is reported as undefined — a direct demonstration of the failure mode SMAPE was designed to avoid.

Worked examples

Example 1 — clean positive series (0–200%)

Actual [100, 200, 300] · Forecast [110, 190, 330]

  1. Point 1: |110 − 100| = 10 ; denom (100+110)/2 = 105 ; ratio = 0.0952381
  2. Point 2: |190 − 200| = 10 ; denom (200+190)/2 = 195 ; ratio = 0.0512821
  3. Point 3: |330 − 300| = 30 ; denom (300+330)/2 = 315 ; ratio = 0.0952381
  4. Sum of ratios = 0.2417583 ; mean = 0.0805861
  5. SMAPE = 0.0805861 × 100 = 8.06% (Armstrong 0–100% = 4.03%)

Example 2 — a zero actual (why SMAPE beats MAPE)

Actual [50, 0] · Forecast [45, 5]

  1. Point 1: |45 − 50| = 5 ; denom (50+45)/2 = 47.5 ; ratio = 0.1052632
  2. Point 2: |5 − 0| = 5 ; denom (0+5)/2 = 2.5 ; ratio = 2.0000000
  3. Sum = 2.1052632 ; mean = 1.0526316
  4. SMAPE = 105.26% (the zero-actual point hits its 200% ceiling)
  5. MAPE here divides by the actual 0 → undefined; SMAPE stays finite.

Example 3 — four-point mixed series (0–200%)

Actual [10, 20, 30, 40] · Forecast [12, 18, 33, 37]

  1. Errors: 2, 2, 3, 3 ; denominators: 11, 19, 31.5, 38.5
  2. Ratios: 0.1818182, 0.1052632, 0.0952381, 0.0779221
  3. Sum = 0.4602416 ; mean = 0.1150604
  4. SMAPE = 11.51%

Frequently asked questions

Sources & references

Related tools

Rate this tool
Be the first to rate

Comments & feedback

Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Found a bug, edge case, or want to suggest an improvement?

Email me at [email protected] — most fixes ship within 24 hours.