Live JavaScript forecasting race
How does the skaters JavaScript port stack up against what the
npm ecosystem actually offers? This races it, in your browser, against the
forecasting packages you'd reach for there — arima and
@bsull/augurs (ETS), plus classical baselines — on 150
real FRED daily change-series. Every method is scored identically: held-out
log-likelihood and CRPS, rolling one-step-ahead.
1. Watch one series — every method at once
laplace finishes in a blink; Holt-Winters,
ARIMA, augurs (ETS and MSTL), and Prophet grind through a fresh fit at every
step. The slowness is the point.
The refit baselines are real npm packages —
arima, @bsull/augurs (ETS and MSTL),
and Prophet (its Stan model compiled to WebAssembly) — loaded on demand, skipped if
they can't load. Each is wrapped as one Gaussian Dist and scored
identically, with its σ floored at a fraction of the rolling scale so a single
overconfident step can't manufacture a spurious −10⁴ log-likelihood.
2. Run the whole tournament — one random series at a time
Every method, including the refit-every-step heavyweights,
on a fresh random series each round. It is slow on purpose: each round is a
few seconds of ARIMA and ETS grinding. Leave it running as long as you like —
the win-rates and the speed gap to laplace keep
sharpening.
laplace, log scale, right is slower). Top-left is the
corner you want.Reproduce at scale (all 894 non-price series, more baselines): the benchmarks. Why log-likelihood is the score: metrics.