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.

Win rate (share of rounds with the best log-likelihood, up is better) against speed (total compute relative to 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.