macrocastmacroeconomicsdata-leakagevintage-datasynthetic-datachronos-2benchmarking2026

MacroCast: A Vintage-Consistent TSFM and the Revision Leak in Real-Time Evaluation

MacroCast is a 1M-parameter TSFM pretrained on synthetic series and then fine-tuned on synthetic trajectories calibrated to vintage-specific data, so neither future values nor later revisions enter its training targets. Across roughly 300 real-time ALFRED forecast origins it matches Chronos-2 and beats Bayesian VAR and dynamic factor baselines, while exposing a leak that most TSFM evaluations never check for.

T
TSFM.ai Team
August 1, 20269 min read

Nearly every time series foundation model evaluation makes the same assumption without stating it: that the history you train on is the history that existed. For most domains that assumption is close enough to true. For macroeconomic data it is flatly false, and the gap between the two is large enough to change which model looks better.

MacroCast (Carriero, Pettenuzzo, and Shekhar, June 2026) is a TSFM built so that gap cannot open. It is small, roughly one million parameters, pretrained entirely on synthetic data and then fine-tuned on synthetic trajectories calibrated to the data that was actually published at each forecast date. Evaluated across roughly 300 monthly forecast origins in the US macro data archive, it matches Chronos-2 and outperforms the Bayesian VAR and dynamic factor baselines in this real-time exercise.

The model is worth reading about. The evaluation discipline behind it is worth copying.

Diagram contrasting the ALFRED vintage available at a forecast date with later revisions and the fully revised record

#Two Ways Real-Time Data Leaks

The paper separates two failure modes that usually get lumped together as contamination.

Temporal contamination is the familiar one. A model pretrained on a corpus scraped up to some recent cutoff may have already seen the realized values of the series it is later asked to forecast. This is the leak GIFT-Eval and every other static benchmark has to police, and it is the reason live benchmarks like Impermanent exist at all. It is also the leak most teams already know to worry about.

Revision bias is the one that gets missed. Macroeconomic series are estimates, and they get corrected. Nonfarm payrolls for a given month is published, revised the next month, revised again the month after, and then rewritten wholesale in an annual benchmark revision. The number in the database today is not the number anyone could act on at the time. As the authors put it, a model trained on fully revised values has learned from the final refined readings of GDP growth, employment, or inflation, none of which "would not have been available to a real-time forecaster at the time of the forecast."

Revision bias survives every fix for temporal contamination. You can hold out the entire forecast window, respect every cutoff, and still train on a version of the past that was assembled with hindsight. The resulting evaluation gives the model information that was unavailable to a forecaster at the time of the forecast.

Both leaks can make retrospective scores look stronger, which is why they are easy to leave in place.

#How MacroCast Is Built

The architecture is inherited rather than invented. MacroCast is a linear RNN built on TempoPFN, the AutoML group's synthetic-only forecaster, using a GatedDeltaProduct recurrence with state weaving. Three recurrent layers, hidden dimension 128, nine quantile heads at τ ∈ {0.1, ..., 0.9} trained with pinball loss. That comes to about one million parameters, which the authors note is one to two orders of magnitude smaller than the foundation models they benchmark against.

The training procedure is where the design work went, and it is deliberately in two stages.

Three-panel diagram showing synthetic pretraining, vintage calibration plus fine-tuning on synthetic trajectories, and the resulting quantile forecast

Stage one is synthetic only. Roughly ten million series drawn from seven generator families: trend-and-seasonality composites, sine waves, Gaussian processes with composite kernels, sawtooth and step functions for regime changes, anomaly and spike generators, CauKer nonlinear causal structures across 21 channels, and Ornstein-Uhlenbeck mean reversion. Series length is sampled up to 2,048 observations. 150,000 AdamW steps, about 28 hours on a single A6000. Because no observed data enters this stage, temporal contamination is ruled out by construction rather than by careful bookkeeping. This is the same argument KernelSynth makes for Chronos, taken to its endpoint.

Stage two is vintage-specific. For each forecast date, the authors fit dynamic factor, Bayesian VAR, univariate autoregressive, and block-bootstrap generators using the St. Louis Fed's ALFRED data as it stood on that date. MacroCast is then fine-tuned on the synthetic trajectories those generators produce, rather than on the observed releases directly. Each re-fine-tune takes about nine minutes, and the full end-to-end loop of estimating generators, simulation, and training finishes inside 45 minutes.

That second stage is the expensive-sounding part, and it is the reason a one-million-parameter model is the right size for the job. Refitting a 700M-parameter TSFM at every real-time forecast origin is a research budget. Refitting a 1M-parameter model is an afternoon.

#What the Real-Time Numbers Show

The evaluation covers 123 FRED-MD series (14 dropped for discontinuation, publication lags beyond two months, or measurement irregularities) across roughly 300 monthly ALFRED forecast origins from August 1999 through December 2024. Horizons run h = 0 (nowcast) through 12 months. Forecasts targeting Q1 and Q2 2020 are excluded. Accuracy is scored against "six-month delayed actuals," meaning the vintage published roughly six months after the target date, with Diebold-Mariano tests carrying the Harvey-Leybourne-Newbold finite-sample correction.

Results are RMSFE ratios against an AR(1) benchmark, so lower is better and 1.000 is a tie.

Modelh=0h=1h=3h=6h=9h=12
AR(1)1.0001.0001.0001.0001.0001.000
BVAR1.0070.9911.0171.0131.0191.029
DFM0.9770.9791.0041.0051.0041.007
Moirai2-Small0.9840.9831.0001.0021.0011.003
Chronos-20.9520.9770.9930.9920.9980.996
MacroCast0.9590.9710.9870.9920.9950.995

Table of real-time RMSFE ratios versus AR(1) by horizon, showing MacroCast leading at horizons one, three, nine, and twelve, and tying Chronos-2 at six

MacroCast beats AR(1) on roughly 80% of series-horizon pairs, rising to 86% at one month. It edges Chronos-2 at four of six horizons and ties it at h = 6. It is the only method with a majority-vote Diebold-Mariano significance result against AR(1) at h = 0 and h = 1. Its win rate against AR(1) stays above 50% at every horizon from 1 to 12.

The gaps are small in absolute terms, and that is the point rather than a caveat. This is a benchmark where the AR(1) is genuinely hard to beat, where both econometric baselines fail to beat it at most horizons, and where nobody gets to peek at revised data. A ratio of 0.971 earned under those rules means more than a much larger number earned under looser ones.

Individual series show wider spreads. On the federal funds rate, MacroCast posts 0.887 / 0.863 / 0.893 / 0.952 at h = 0, 1, 3, 6 while the BVAR comes in at 1.649, 1.557, and 1.258. On nonfarm payrolls, MacroCast reaches 0.731 at nowcast against 0.964 for the BVAR.

#The Zero-Shot Line in This Table

Set MacroCast aside for a second and read the Chronos-2 row.

Chronos-2 is a general-purpose zero-shot model. In this evaluation it receives no macroeconomic fine-tuning or per-vintage adaptation. It posts the best nowcast in the table at 0.952, and it beats both the Bayesian VAR and the dynamic factor model at every horizon shown.

Those two baselines are not weak. They are the working tools of central bank and sell-side forecasting, tuned over decades against exactly these series. A model with no macro-specific anything walks in and clears them, and the specialist model built on top of that same paradigm clears them by a bit more.

That is the durable read here. The BVAR-versus-TSFM comparison we wrote in May argued the two approaches answer different questions, and that still holds: a BVAR provides explicit impulse-response and scenario tools. But on pure out-of-sample point accuracy in this real-time exercise, the domain-specific incumbent does not have the edge it is often assumed to have.

#Where the Baselines Still Win

The paper does not oversell, and neither should a summary of it.

The BVAR wins on unemployment, posting 0.834 and 0.814 at h = 0 and 1 against MacroCast's 0.951 and 0.958. It also takes the industrial production nowcast, 0.919 against 0.952. On the 18-series headline set, Chronos-2 is strongest at the three to six month range at 0.965 to 0.967, ahead of MacroCast.

The paper does not attribute those short-horizon wins to a missing multivariate capability. MacroCast is fine-tuned on multivariate synthetic panels generated from vintage-calibrated factor and VAR models. The results do show why a real-time benchmark should retain classical baselines: BVAR has a meaningful edge on those particular targets at the shortest horizons.

#This Is Not Only a Macro Problem

Revision bias reads like an econometrics footnote. It is not. Anywhere the historical record is rewritten after the fact, the same leak is available:

  • Grid and energy data. Settlement values supersede real-time telemetry weeks later. Meter reads get corrected. Outage and curtailment records get reclassified after the event. A model trained on the settled record has learned from a version of the grid nobody could see while operating it. This is the trap under most retrospective energy demand backtests.
  • Weather covariates. Reanalysis is not forecast. Training a load model on ERA5 temperatures and serving it on a forecast feed is a covariate vintage mismatch, and it usually shows up as a model that looked excellent in backtest and under-reacts in production.
  • Observability and telemetry. Late-arriving spans, backfilled metrics, and retroactively deduplicated counters all rewrite history behind the current window. Toto-class workloads sit on exactly this kind of stream.
  • Retail and demand planning. Returns, cancellations, and channel reconciliation restate demand weeks after the sale. The clean weekly series in the warehouse today is not what the planner had.

In every one of those cases the standard evaluation, pull the current table and split by date, grades the model on information it will never have at inference time.

#What to Change in Your Own Evaluation

Three things, in rough order of payoff.

Find out whether your warehouse keeps vintages at all. Most do not. If your tables are overwritten in place, you cannot reconstruct what was knowable at time t, and you cannot run this class of evaluation even if you want to. Adding an as-of dimension to the handful of series that actually drive decisions is a smaller project than it sounds and it is a prerequisite for everything else.

Check your covariates separately from your targets. Target leakage gets attention because it is obvious. Covariate leakage, serving a model actuals in backtest and forecasts in production, is more common and harder to see. It is worth its own audit pass in any production forecast pipeline.

Treat synthetic pretraining as a leakage control, not just a data-scarcity workaround. The usual argument for synthetic corpora is that there is not enough real time series data. MacroCast and TempoPFN make a different argument: synthetic pretraining gives you a provable guarantee about what the model has not seen. For any evaluation where contamination is the live question, that guarantee is worth more than the marginal accuracy a real-data corpus might buy.

None of this requires adopting MacroCast. The model is macro-tuned and uses a vintage-calibrated fine-tuning protocol, so it is not something you would drop unchanged into a general forecasting stack. What transfers is the protocol: pretrain on data that cannot leak, calibrate fine-tuning to information that was actually available, and score against the record as it stood.

If you want to run the comparison on your own series, Chronos-2 and Moirai 2 are both available in the playground and through the hosted API, which makes the zero-shot half of this table straightforward to reproduce. The harder and more useful half is assembling the vintages. That work is where the real result lives, and it is the part no benchmark can do for you.

Try TSFM.ai

Run these models on your own data

Explore the hosted model catalog, send a first forecast in the playground, or create an API key and wire TSFM.ai into production.

Related articles