Google TimesFM 3.0: Zero-Shot Forecasting Tested on Real Data
Google's TimesFM 3.0 forecasts revenue and demand with no training data. We cover how it works and where its zero-shot predictions break down.

What is Google TimesFM 3.0?
TimesFM 3.0 is a decoder-only transformer from Google Research built specifically for time series forecasting. Unlike classical approaches that require fitting a separate model (ARIMA, gradient boosting, etc.) to every individual series, TimesFM forecasts zero-shot: it was pretrained on a large corpus of real and synthetic time series data and can generate forecasts on data it has never seen, without retraining. The model is hosted on Hugging Face as google/timesfm-3.0-pytorch and ships as safetensors weights for PyTorch.
TL;DR
- Zero-shot forecasting means TimesFM 3.0 can predict metrics like revenue, ridership, or server load on a brand-new series without any training on that specific dataset, cutting error by roughly 25% versus a seasonal baseline in testing on New York transit data.
- Future covariates are now built in: version 3.0 can ingest known future inputs, like an upcoming holiday or planned promotion, directly inside the transformer, whereas version 2.5 required a separate regression step to handle those signals.
- Patch-based tokenization is the core mechanism: history gets cut into chunks of 32 time steps, each chunk becomes a token, and the model predicts the next patch the same way a language model predicts the next word.
- Accuracy held up surprisingly well in a simulated business test: TimesFM 3.0 landed within 2% of actual revenue on a two-month zero-shot forecast and stayed within 6% a full quarter out.
- The two model versions can give opposite answers on what-if planning questions, specifically when a proposed change (like doubling a marketing budget) pushes well outside anything seen in historical data.
- Licensing differs sharply: TimesFM 2.5 is Apache 2.0, fully open, while TimesFM 3.0’s weights are non-commercial for self-hosting, with commercial use routed through Google Cloud and BigQuery.
How does TimesFM actually work?
TimesFM treats a time series the way a language model treats text. Instead of predicting the next word, it predicts the next “patch” of a chart. Raw history gets sliced into segments of 32 time steps, and each segment becomes a single token fed into a decoder-only transformer. The model doesn’t need to understand what the numbers represent (revenue, ridership, temperature). It just needs to recognize recurring shapes: weekly cycles, holiday dips, slow trends, sudden spikes. Those patterns repeat across nearly every domain, which is what allows one pretrained model to generalize across businesses that look nothing alike on the surface.
Rather than returning a single forecast line, TimesFM outputs a median prediction plus an uncertainty band for every point in the horizon, giving users both a likely outcome and a sense of how bad a downside case could get. According to Google, TimesFM 3.0 was pretrained on more than a trillion time points, which is the scale that makes zero-shot performance possible: by the time it sees a new series, it has already encountered similar cyclical and trend behavior many times over.
What changed between TimesFM 2.5 and 3.0?
The biggest architectural change is how the model handles information about the future that you already know. TimesFM 2.5 forecasts one series at a time purely from past values. To account for a known future event (a holiday, a planned price change, a promotion), users had to run a separate regression outside the model first, strip out the explainable effect, and let TimesFM forecast the remainder.
TimesFM 3.0 moves that mechanism inside the model itself. It can take in multiple related series simultaneously, along with past covariates and future inputs that are already known, and each token can look ahead at those upcoming signals before generating its prediction. It also produces the entire forecast horizon in a single pass rather than generating it step by step. Google reports that TimesFM 3.0 ranks first among foundation models across three public forecasting benchmarks.
How accurate is it on real-world data?
In testing against daily ridership data from New York’s subway, bus, and commuter rail systems, both TimesFM 2.5 and 3.0 cut forecasting error by about 25% compared to a seasonal baseline, with zero training on that specific dataset. Feeding in a holiday calendar as a future input improved both versions further. When the cutoff date was set so that Labor Day fell just after the training window, the plain forecast (no calendar input) predicted a normal Monday, since nothing in recent weeks signaled a holiday. Once the holiday calendar was added as a future input, the forecast dropped for that day, confirming the model picked up on the holiday effect rather than ignoring it.
Across six cutoff dates and seven transit services, the two versions performed similarly on raw accuracy, with one notable difference: TimesFM 2.5 made slightly better use of the extra calendar inputs and produced more reliable uncertainty ranges, while TimesFM 3.0 ran several times faster.
Other agents ship a demo. Remy ships an app.
Real backend. Real database. Real auth. Real plumbing. Remy has it all.
In a separate test using a simulated software business with nearly four years of daily trials, revenue, marketing spend, and pricing history, TimesFM 3.0 forecast two months of revenue zero-shot and landed within 2% of the true number. Run again a quarter later on fresh data, it stayed within 6%, with both model versions’ actual outcomes falling inside their predicted uncertainty ranges.
Where does zero-shot forecasting break down?
The gap between the two versions showed up clearly on a planning scenario: should a business put its marketing budget behind a longer Black Friday promotion, or double its January spend instead? When the January budget was doubled in the simulation, TimesFM 3.0 barely moved its forecast, while TimesFM 2.5 predicted a large revenue jump. An AI agent evaluating both proposals trusted the faster, newer model (3.0), and recommended the wrong plan in two out of three test runs, since the true outcome (known because the business was simulated) sat between the two models’ predictions. The same underreaction from TimesFM 3.0 persisted across four different ways of encoding the marketing spend variable, ruling out a formatting quirk.
This points to a structural limit, not a bug: a zero-shot model can only extrapolate reliably along variables that have actually moved around in the historical data it’s shown. If a lever, like price, has never changed in four years, no forecasting model, zero-shot or classically trained, can infer price elasticity from thin air. In the same test, an AI agent correctly flagged this when asked about a proposed price increase, noting the historical price had never moved and recommending against trusting any forecast on that input.
Is TimesFM 3.0 worth using in production?
For continuing existing patterns, yes: both versions beat a classic seasonal baseline out of the box with no training, stayed within their predicted uncertainty ranges a full quarter out, and 3.0 ran significantly faster than 2.5. For forecasting “what happens if we keep doing roughly what we’re doing,” a pretrained foundation model looks like a reasonable replacement for maintaining hundreds of individually tuned classical models.
For what-if planning decisions involving large, out-of-distribution changes (a much bigger budget, a steep price hike, a novel promotion), the two versions can disagree sharply, and neither should be trusted as the sole source of truth. Four practical guardrails emerge: only extrapolate levers that have moved historically, run small controlled experiments for untested levers like pricing, sanity-check large proposed changes against past campaign lift rather than trusting one model version, and backtest the uncertainty bands on historical data before relying on them (TimesFM 3.0’s confidence intervals ran slightly too narrow on the transit dataset).
Licensing is also a practical factor: TimesFM 2.5 is Apache 2.0 and fully open for commercial self-hosting, while TimesFM 3.0’s weights are non-commercial to self-host, with commercial access available through Google Cloud and BigQuery.
Frequently Asked Questions
What is zero-shot time series forecasting?
It means a model can generate forecasts on a new dataset without being trained or fine-tuned on that specific data first. TimesFM achieves this by pretraining on a very large and diverse set of time series so it learns general patterns (seasonality, trends, spikes) that transfer across domains.
Is TimesFM 3.0 better than TimesFM 2.5?
Remy is new. The platform isn't.
Remy is the latest expression of years of platform work. Not a hastily wrapped LLM.
It depends on the task. TimesFM 3.0 runs faster and builds future covariate handling (holidays, promotions) directly into the model. But in testing, TimesFM 2.5 made slightly better use of extra inputs, had more reliable uncertainty ranges, and is fully open-source under Apache 2.0, while 3.0’s self-hosted weights are non-commercial.
Can TimesFM replace a custom-trained forecasting model for my business?
For forecasting continuation of existing patterns, it can perform competitively or better than classical baselines with zero training. For strategic what-if scenarios involving changes your historical data has never seen (a price hike, a much bigger budget), it’s not reliable on its own and should be paired with controlled experiments.
How does TimesFM handle known future events like holidays?
TimesFM 3.0 accepts future inputs (dates of holidays, planned promotions, known price changes) directly inside the model, letting each token look ahead before generating a prediction. TimesFM 2.5 requires a separate regression step outside the model to account for these known future events.
What license does TimesFM use?
TimesFM 2.5 is released under Apache 2.0, allowing open commercial use. TimesFM 3.0’s weights are non-commercial for self-hosted use, with commercial access offered through Google Cloud and BigQuery.
