The Rosenblatt bijection

One diagram, computed live: laplace is a change of coordinates, and the coordinates it changes to are boring.

Every tick, laplace maps the arriving point through its own predictive cdf: zt = Φ−1(Ft(yt)). That map is causal and invertible — a bijection on paths (Rosenblatt, 1952). Under a calibrated forecaster its image is iid N(0,1): whatever trends, cycles and volatility bursts live upstairs, downstairs is white noise in a fixed band. Forecasting downstairs is trivial — and the inverse map carries that trivial forecast back up into the rich, widening, correctly-shaped band upstairs. The diagram commutes:

yt (raw series) zt ~ N(0,1) predictive band in y flat band: N(0,1) z = Φ⁻¹(Ft(y)) forecast (trivial) ŷ = Ft⁻¹(Φ(ẑ)) forecast (hard)

upstairs: raw series y, with laplace's band and 8-step fan

downstairs: the same points through the bijection — z = Φ−1(Ft(yt))

Toggle regimes upstairs and watch downstairs not care: the dots stay in the same ±1.96 band, because the forecaster absorbs the structure into the map. The orange fan upstairs is the image of the flat fan downstairs under Ft−1 — one trivial forecast, correctly reshaped. This is the JavaScript twin of the Python package running live, not a recording.

Why this matters: the map does the work

Because the bijection is exact, log-likelihoods convert between coordinate systems by an exact change of variables — so any external forecaster can be run downstairs and scored fairly upstairs. Measured on 30 FRED series (one-step, held out, rolling refits): every opponent improves on essentially every series, and each converges to laplace-plus-a-few-hundredths-of-a-nat — the map had already extracted nearly everything they know how to model.

opponentrawlaplace-frontedmean lift (nats/pt)series won
ETS1.643.68+2.0430/30
AutoARIMA1.653.72+2.0730/30
GARCH(1,1)1.733.70+1.9730/30
Prophet1.643.70+2.0730/30
laplace alone3.67

The same coordinates lift anomaly detectors even harder (DSPOT 5.2×, RRCF 1.8× on the UCR archive) — that story lives at timemachines, the decision layer built on these surprise streams.