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.

A foundation-model AI rides a motorcycle marked FOUNDATION through an alpine pass while
             Pierre-Simon Laplace, in period dress with his Mecanique Celeste, rides in the attached
             sidecar marked P.S. LAPLACE.
The foundation model drives; Laplace rides in the sidecar, keeping it on the road.

Scored on a fair reconstruction of their quantiles, the strongest of them are level with a small online ensemble on economic change-series at the median. Of the four sandwiches, the portfolio is the one that makes any of them safe to run; the two wraps that repaired the tight reconstruction cost accuracy on a fair base (the section on the fair bases below).

Two generations  The sections through "Why this shape" report the arms built on the tight nine-decile reconstruction, where cell counts differ between arms. The fair-base section reports the same four arms on the native-level and generous bases, with every arm paired to its standalone run.

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 @lap · laplace-driven &lap · portfolio

The apparent symptom: over-confidence

A calibrated 90% interval should contain the outcome 90% of the time. Scored through the tight nine-decile reconstruction of their quantiles, the raw models cover far less. Most of the shortfall belongs to the reconstruction. Fed the exact deciles of a calibrated normal, it covers 0.81, and the same forecasts through the generous reconstruction cover 0.82 to 0.90 on this stratum, against Laplace's 0.892. The @lap wrap, built on the tight base, pulls each model to nominal either way. (Seasonal stratum, M4-hourly.)

modelraw, tight reconstruction raw, generous reconstruction @lap (tight base) 

Bars span 0.60–1.00; the orange line marks the 0.90 target. Laplace covers 0.892 on this stratum. Central-90% coverage of the reconstructed density in every column; a perfectly calibrated model reads 0.81 under the tight reconstruction and 0.88 under the generous one.

What the gap is

An earlier version of this page read the log-likelihood gap as a forecasting deficit. Most of it is the reconstruction. Under the tight reconstruction the raw gap on this stratum is half a nat to nearly a nat. The same forecasts under the generous reconstruction sit within 0.05 nats of Laplace at the median. The @lap wrap on the tight base recovers only a sliver of the tight gap, because it recalibrates the reconstruction's probability integral transform: that fixes coverage and leaves the shape of the density alone. The recovered column therefore measures what a marginal recalibration buys. A sidecar built on the generous reconstruction has not been scored.

modelraw gap, tightraw gap, generousafter @lap (tight base)recovered by @lapshare of tight gap

Median per-series Δ log-likelihood versus Laplace, in nats (negative means worse than Laplace), M4-hourly. Under the generous reconstruction no model's median is more than 0.05 nats from Laplace here, and on weekly and monthly series TimesFM and TiRex are level or ahead. Each model's page has the full table.

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.

0.90 nominal Laplace = 0 nats the information gap TiRex raw: coverage 0.756, −0.88 nats TimesFM raw: coverage 0.816, −0.51 nats Chronos raw: coverage 0.841, −0.52 nats TiRex@lap: coverage 0.889, −0.75 nats TimesFM@lap: coverage 0.913, −0.49 nats Chronos@lap: coverage 0.916, −0.50 nats laplace: coverage 0.892, 0 nats (baseline) TiRex TimesFM Chronos 0.700.750.80 0.850.900.95 0−0.25−0.50 −0.75−1.00 central-90% coverage median Δ log-likelihood (nats)
raw @lap Laplace baseline
The coverage-score plane, M4-hourly stratum. Each arrow is one model, raw (tight reconstruction) to @lap: a long slide toward nominal coverage, a short climb in score. Under the generous reconstruction the raw points instead sit at coverage 0.82 to 0.90 and within 0.05 nats of zero, next to Laplace's own point.

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.

beats Laplace draw loses to Laplace

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.

stratumportfolio 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.

On the fair bases

The arms above were built on the tight reconstruction, and part of what they repaired was the reconstruction. The same four sandwiches have now been run on the fair bases: Timestral-209M and t0-gamma on their native 21 levels, and TimesFM 3.0, TimesFM 2.5, TiRex and Chronos through the generous reconstruction, plus the PyMC-forecast challenger (a Student-t regression on lagged changes, fit by ADVI) on the monthly stratum. Each arm is paired with its standalone run on identical series and windows; ~lap and @lap need a longer warm-up window, so their series counts are smaller. Median per-series Δ log-likelihood against Laplace, in nats, positive meaning better than Laplace, with the number of series:

stratumbasestandalone+lap ~lap@lap&lap
economic change-series, weeklyTimestral+0.044 (3,013)+0.019 (3,013)-0.283 (3,011)+0.005 (3,011)+0.028 (3,011)
economic change-series, weeklyt0-gamma-0.012 (3,013)-0.044 (3,013)-0.358 (3,011)-0.031 (3,011)+0.021 (3,011)
economic change-series, weeklyTimesFM3+0.001 (3,013)-0.136 (3,013)-0.263 (3,011)-0.096 (3,011)-0.007 (3,011)
economic change-series, weeklyTimesFM-0.030 (2,920)-0.244 (2,920)-0.343 (2,918)-0.124 (2,918)-0.014 (2,918)
economic change-series, weeklyTiRex-0.143 (2,920)-0.239 (2,920)-0.343 (2,918)-0.114 (2,918)-0.020 (2,918)
economic change-series, weeklyChronos-0.218 (2,930)-0.302 (2,930)-0.349 (2,928)-0.094 (2,928)-0.018 (2,928)
economic change-series, monthly (annual cycle)Timestral+0.105 (5,576)+0.047 (5,576)-0.214 (5,195)+0.057 (5,195)+0.031 (5,195)
economic change-series, monthly (annual cycle)t0-gamma+0.061 (5,576)+0.029 (5,576)-0.274 (5,195)+0.020 (5,195)+0.016 (5,195)
economic change-series, monthly (annual cycle)TimesFM3+0.046 (5,576)-0.057 (5,576)-0.246 (5,195)-0.002 (5,195)+0.003 (5,195)
economic change-series, monthly (annual cycle)TimesFM-0.011 (2,920)-0.103 (2,920)-0.235 (2,700)-0.055 (2,700)-0.011 (2,700)
economic change-series, monthly (annual cycle)TiRex-0.001 (2,920)-0.097 (2,920)-0.263 (2,700)-0.048 (2,700)-0.008 (2,700)
economic change-series, monthly (annual cycle)Chronos-0.069 (2,930)-0.121 (2,930)-0.292 (2,710)-0.069 (2,710)-0.016 (2,710)
economic change-series, monthly (annual cycle)PyMC-forecast-0.067 (471)-0.067 (471)-0.356 (354)-0.101 (354)-0.016 (354)

With no reconstruction defect to repair, the wraps mostly cost accuracy. Replacing the model's scale with Laplace's residual scale (~lap) lowers the median in 19 of 19 economic cells, by -0.35 (t0-gamma, weekly) to -0.12 nats (Chronos, daily econ). Forecasting the model's normal scores (@lap) lowers it in 17 of 19, from -0.14 (TimesFM, daily econ) to +0.12 (Chronos, weekly): it still helps the weakest base and costs the strongest. The standalone fair bases cover 0.82 to 0.91 at the 90% level; @lap pushes that to 0.93 to 0.96, past the target, and &lap sits at 0.91 to 0.94. Loss rate against Laplace, standalone → &lap:

stratumTimestralt0-gammaTimesFM3TimesFMTiRexChronosPyMC-forecast
economic change-series, business-daily27% → 31%33% → 32%28% → 32%32% → 31%35% → 31%44% → 31%–
economic change-series, weekly24% → 15%29% → 15%21% → 16%24% → 15%31% → 16%38% → 16%–
economic change-series, monthly (annual cycle)7% → 5%10% → 5%11% → 5%15% → 6%12% → 6%19% → 6%23% → 7%
M4 hourly, strongly seasonal10% → 0%27% → 0%31% → 0%25% → 0%22% → 0%30% → 0%–
asset prices and returns, daily4% → 4%1% → 5%3% → 5%5% → 6%5% → 6%13% → 6%–

The portfolio lowers the loss rate in 24 of 31 base-stratum cells; the exceptions are Timestral on daily econ; TimesFM3 on daily econ; Timestral on price; t0-gamma on price; TimesFM3 on price; TimesFM on price; TiRex on price. Its median moves by -0.07 (Timestral, monthly) to +0.20 nats (Chronos, weekly) against the standalone base: a strong base gives up part of its lead for the lower loss rate, a weak base is pulled most of the way back to Laplace. The reading for the strongest base is on Timestral's page: no sandwich improves it at the median, and the portfolio is the safe way to run it. Each model's page carries the full per-stratum table with loss rates and coverage.

The reverse sandwich was also run: laplace as the base, with the PyMC regression forecasting laplace's own normal scores and its posterior mixture inverted through laplace's predictive. An earlier version of the home-page figure showed this construction edging laplace, from a July study with a frozen pre-test fit and a typed speed table. Through the canonical protocol, paired against laplace on the first 500 series of each economic stratum, the median is below zero on every stratum: daily econ -0.052 (61W/248D/191L of 500); weekly -0.012 (83W/355D/61L of 499); monthly -0.015 (81W/321D/69L of 471). That claim is withdrawn.

Open items