forecasting

Installation
SKILL.md

Forecasting

A forecast that cannot beat "repeat last period" is noise. Baseline first, fancy second. The naive forecast is free, instant, and the bar every model must clear — if your AutoARIMA loses to last-quarter-repeated, ship the repeat and say so.

You are not done when a model produces a number. You are done when you can defend the number: which method, why that method for this data, how it scored against the naive baseline in a backtest, and the interval around the point. A point estimate with no error band is a guess wearing a lab coat.

The deliverable contract

Every forecast you ship is a reproducible artifact, not a number pasted in chat:

  1. A script that reads the history and regenerates the forecast (no manual steps).
  2. A CSV/Parquet with columns ds, forecast, lo, hi — timestamp, point, interval bounds.
  3. A one-paragraph accuracy readout: WAPE + bias from a rolling-origin backtest, and MASE vs the naive baseline (MASE < 1.0 = you beat naive; ≥ 1.0 = ship the naive forecast instead).

If you cannot produce all three, you have not forecast — you have guessed. scripts/verify.sh checks the artifact has these columns, the right row count, and an accuracy line.

The loop

Run these in order. Skipping step 3 is the most common failure.

Installs
2
GitHub Stars
116
First Seen
Aug 6, 2026
forecasting — ericrisco/rsc-harness