Free — no account required

Do Your Forecasts Actually Beat Doing Nothing? Find Out In Minutes

Upload a CSV of forecasts and actuals and get the full scorecard: MAE, RMSE, MAPE with its zero and asymmetry traps handled, sMAPE, MASE against naive and seasonal-naive baselines, a Diebold-Mariano test, and bias by period and horizon. Free.

24,000+ analyses run
Encrypted & deleted in 7 days
PDF & citation included

Free analyses run on up to 10,000 rows. Larger files are randomly sampled to that size — sign up to analyze your full dataset.

📊
-
Rows
-
Columns
-
Numeric

Running forecast accuracy backtest analysis...

Scoring your forecasts against the naive baselines...

Your report is ready

Sent to — Actual against forecast over time, the full error scorecard, baseline comparison with a Diebold-Mariano test, error distribution, accuracy by period and horizon, R code, and AI insights.

Analyze another file
Sample Output

Every report includes interactive charts, tables, and AI insights

Upload your data to get your own report

View all case studies See all free tools

How it works

Every period's error is the actual minus the forecast, so a positive error is an under-forecast. From those errors the analysis computes MAE and RMSE in the data's own units; MAPE with zero and near-zero actuals excluded and counted, plus the measured asymmetry between periods that ran high and periods that ran low; sMAPE as the bounded alternative; and the mean error with the share of periods over- and under-forecast as the bias diagnostic. It then builds two baselines on a regular calendar grid — naive (repeat the previous period's actual) and seasonal naive (repeat the same period one cycle back, with the cycle length inferred from the cadence) — and reports MASE, the forecast's MAE divided by each baseline's average absolute change. A Diebold-Mariano test, implemented directly rather than taken from a forecasting package, then tests whether the per-period difference in absolute-error loss is significantly different from zero, using a Newey-West long-run variance with Bartlett weights and the Harvey-Leybourne-Newbold small-sample correction against a t distribution. Accuracy is finally broken out by calendar stretch and, when a horizon column is mapped, by lead time — which is the rolling-origin structure when the log holds several horizons per target period.

Use it whenever you have a log of forecasts and the outcomes they were trying to predict, and need to know whether the forecasting process is accurate enough to plan on and whether it beats doing nothing clever.

Not for producing a forecast from a history — that is the forecasting tool. Not for a single forecast with no track record, and not when the forecast and the actual measure different quantities or sit on different units.

Built for: Demand planners, FP&A analysts, supply chain and revenue teams, and data scientists auditing a forecasting model or vendor

Typical data source: Any spreadsheet or CSV holding a forecast log — one row per forecast period with the number that was forecast and the number that actually landed

RetailManufacturingSupply ChainFinanceSaaSEnergyOperations

What data do you need?

One row per forecast period, with the forecast and the outcome in the same units. A horizon column is optional but is where the interesting answer usually lives:

month (date) forecast_units (numeric) actual_units (numeric) horizon_months (numeric)
2024-01-01 1200 1174 1
2024-02-01 1310 1402 3
2024-03-01 1285 1240 6

Minimum 12 rows · Best with 36-2,000 forecast periods

What's in the report?

Standard-library analysis: how good are the forecasts you already made? Map the period, the forecast, and the actual outcome — and optionally the horizon each forecast was made at — and get the full scorecard: MAE and RMSE in your own units, MAPE with its zero and asymmetry traps handled explicitly, sMAPE, MASE against both the naive and the seasonal-naive baseline, bias as a mean error plus the share of periods over- and under-forecast, a Diebold-Mariano test of whether the forecast really beats a baseline rather than just printing two numbers next to each other, actual against forecast over time, the error distribution, and accuracy broken out by calendar period and by forecast horizon.

📈

Actual vs Forecast

The forecast and the outcome on one timeline — persistent one-sided drift is bias, lagged turns are a smoothing model, flattened swings lose to seasonal naive.

📋

Accuracy Scorecard

Every headline metric with the caveat attached to it, including how many periods MAPE had to exclude.

📊

Forecast vs Naive Baselines

The forecast's mean absolute error next to the two rules that cost nothing to run, on one common set of periods.

📉

Error Distribution

Whether the misses centre on zero or sit off to one side, and how long the tails run.

📊

Accuracy Over Time

Whether the headline error averages over genuinely different regimes, and whether the process is degrading.

📋

Accuracy by Horizon

Accuracy by lead time — usually where a forecasting process actually fails.

📋

Methods & Disclosure

Every formula, plus the MAPE traps, the MASE scaling caveat, and the Diebold-Mariano construction in full.

🤖

AI Insights

Plain-English interpretation — what the numbers mean, what's significant, and what to do next.

The Question This Answers

Is our forecasting actually worth what it costs?

Map the period, the forecast, and the actual. The analysis scores the forecast against two rules that cost nothing — repeat the last period, and repeat the same period one cycle back — and reports MASE, the error as a multiple of the baseline's. Below 1 the process is adding value; at or above 1 it is not, and the report says so in those words.

Questions?

See our FAQ for details on pricing, data privacy, and how the analysis works. Every report includes a Methodology section showing the statistical test, assumptions checked, and diagnostics run.

Your data has more stories to tell

Run any analysis on your own data — validated R analyses, interactive reports, AI insights, and PDF export.

Try Free — No Credit Card
Powered by MCP Analytics