Every foundational time-series model needs a sidecar, for now
Want to race foundational time-series models? Go for it, but add the Laplace sidecar.
Judged fairly, a small online ensemble already out-forecasts them on economic change-series; the sidecar makes any of them safe to use generally, and rarely worse than Laplace alone.
Live snapshot These numbers come from a round-robin study still running over the FRED universe, so cell counts differ between arms and the figures will firm up as coverage deepens. The mechanism and the direction are settled; a couple of numbers are not.
The setup
Five foundation models (TimesFM 2.5, TiRex, Chronos, Sundial, FlowState) are run zero-shot on the
one-step change series: a fixed 128-length context window, predict the next change, no fitting,
each model in its own environment. Every predictive is turned into the same Dist
object and scored against laplace on the identical series and windows. The corpus is
the cached FRED universe (about 9,500 series) split into strata by frequency and regime
(daily / weekly / monthly economic, daily price, and the M4-hourly seasonal set). Wins, draws and
losses are decided per series by a Diebold–Mariano test on the log-score differential with a
HAC long-run variance and an explicit draw band. Everything derives from one canonical per-step
store, so log-likelihood, CRPS, coverage and the draw counts all read from the same source.
Three versions of each model are compared against Laplace:
- raw: the model's own predictive, as shipped.
- @lap: Laplace forecasting the model's normal scores. Map each observation to
its normal score under the model,
z = Φ⁻¹(F(y)), let Laplace forecast that z-series online, then invert. The model's full shape is kept, and Laplace supplies the location and scale of the z-series step by step, which fixes coverage and also tracks error dynamics the model missed. That is more than a recalibration map, so this arm flatters the model. - &lap: a distribution-level, long-only online portfolio of Laplace and the
model's
@lapwrap, weighted by realised score and started tilted toward Laplace, the trusted incumbent.
The obvious symptom: over-confidence
A calibrated 90% interval should contain the outcome 90% of the time. The raw models cover far
less: their predictive is too narrow, so ordinary moves land outside the band and the tails go
unpriced. Laplace sits on target, and the @lap wrap pulls each model back
to nominal. (Seasonal stratum, M4-hourly.)
| model | raw coverage | @lap coverage |
|---|
Bars span 0.60–1.00; the orange line marks the 0.90 target. Laplace covers 0.892 on this stratum.
The deeper diagnosis: the gap is skill
The charitable reading would be that the models are secretly good and merely miscalibrated.
You can't just fix this by Platt scaling or conformal leveling. The @lap column
bounds the charitable reading from above, and generously: Laplace driving the z-series fixes
coverage and also tracks error dynamics the model missed, so it recovers more than any static
remap could. Even with that help, only a sliver of each model's log-likelihood gap to Laplace
closes; the large remainder is a forecasting deficit on these change-series.
| model | raw gap | after @lap | recovered | share recovered |
|---|
Median per-series Δ log-likelihood versus Laplace, in nats (negative means worse than Laplace). Even laplace-driven, no model's median beats Laplace on any stratum.
The coverage-score
plane at conformalprediction.net makes the geometry explicit: a remap slides a model
sideways toward nominal coverage, and only a better conditional model climbs. The
@lap arms slide far and climb little (the small lift is Laplace's z-forecasting);
the vertical distance that remains is the information gap.
@lap: a long slide toward nominal coverage, a short climb in score.
The fix: turn losses into draws
Hold Laplace and the @lap wrap together and weight them online by how well each has
actually been scoring, with Laplace favoured at the start. Where the model adds nothing the blend
collapses to Laplace; where it genuinely helps, the seasonal case, the weight tilts across. The
raw models lose to Laplace on roughly half the seasonal series; the portfolio loses almost none
and beats Laplace outright on one series in eight.
Does it hold everywhere?
Mostly. The portfolio's loss rate against Laplace is near zero on the seasonal stratum, in
single digits on prices and monthly, 14% on weekly, and 32% on daily economic. Outside
daily:econ the losing margins are a few hundredths of a nat.
| stratum | portfolio loss rate vs Laplace |
|---|
The holdout stratum
On daily:econ the portfolio still loses to Laplace on about a third of the series
(48% early in the run, 32% now across 1,264 series), though by small margins (median −0.08
nats). Laplace dominates that stratum so thoroughly that even
a light tilt toward the model costs a little. The fix under test is a stronger incumbent prior, so
the model has to earn more evidence before it moves the blend; more data will show whether that
closes the gap or whether the drag is structural. A claim of "never worse" cannot ship with a
stratum losing a third of its series, so the run keeps churning.
Why this shape
Laplace combines its own candidate forecasters by their means and lets a terminal leaf supply the calibrated scale and tails. A foundation model dropped straight into that trunk would lose its shape, since only its mean would survive. So the model's full distribution has to be combined one level up, at the distribution level, which is what the portfolio does. The normal-score step matters because a raw, over-confident model makes a poor portfolio member: its tail misses drag the blend. Wrapped first, it contributes cleanly.
The reusable form is a streaming sidecar: any third-party model that can emit a per-step predictive can be wrapped and portfolioed against Laplace. Never-worse is the design target; three of five strata sit at or under a 7% loss rate, with weekly at 14% and daily economic the holdout. The model runs wherever it likes and streams its forecasts; the sidecar stays a few lines of pure Laplace.
Open items
- The
daily:econdrag, above. Prior strength versus a structural cause. - Convergence: cell counts are still growing, especially for the slower portfolio arms.
- A fair per-model ranking once every stratum is deep, using the
@lapfigures as the skill measure, with coverage held equal.