Methodology · updated Sep 28, 2026
How the forecasts are made, and how well they do
Every number on Forecastall comes from the same automatic process: public data in, an open forecasting model, a median and an 80% range out. Nobody adjusts a forecast by hand. Below is how that works and a backtest of how the model would have done over the last five years.
Data
- FRED (Federal Reserve Bank of St. Louis): 19 exchange rates against the US dollar (16 daily, 3 monthly averages), US Treasury yields and the fed funds rate, WTI and Brent crude, and copper.
- World Bank World Development Indicators: annual inflation, GDP growth, unemployment, GDP per capita and population for 40 countries.
Each run stores the raw series in a versioned repository, so every forecast can be traced to the exact data it saw. Every page shows its source series, the last observation used and the date the forecast was produced.
Currencies 19Inflation 39GDP growth 40Interest rates 3Commodities 3Unemployment 40GDP per capita 40Population 40
Model
Forecasts come from TimesFM 2.5, a time-series foundation model from Google Research, released under the Apache-2.0 license (checkpoint google/timesfm-2.5-200m-pytorch, revision 1d952420fba8). It is used zero-shot: the model reads each series' own history and produces quantiles of the future path, without being trained or tuned on our data. We publish three of them: the 10th, 50th and 90th percentiles.
- Median (p50): the middle of the model's distribution. Half of outcomes are expected above, half below.
- 80% range (p10 to p90): where the model expects the outcome to land 8 times out of 10.
The model sees one series at a time. It does not know about news, policy decisions or other series, which is both a limit and the reason it is consistent.
Horizons
- Daily and monthly series (currencies, rates, commodities): 3, 6 and 12 months ahead. Daily series count trading days (63, 126, 252), so their target dates are approximate.
- Annual series (World Bank): the next 1, 2 and 3 calendar years.
- When a year has ended but the World Bank has not published it yet, its forecast is labeled a nowcast.
- Charts of annual series draw a straight monthly line between the yearly forecast points. That line is display-only interpolation and is labeled as such; it is not a monthly forecast.
What we publish
A series is published only if its data is current and long enough to forecast. Today that leaves 224 forecast pages. Left out:
- Real interest rates (World Bank): missing or years out of date for most of the 40 countries.
- Argentina inflation (
macro/arg/inflation-cpi): too few recent observations in the World Bank series.
Forecasts are recomputed when new data arrives. Text on every page is a fixed template filled with that page's numbers; no page is written individually.
Backtest
To check the model we replay the past: at many dates over the last 5 years (21 trading days apart for daily series, 1 month for monthly, 1 year for annual) we give it only the data available at that date and compare its forecast with what actually happened. Two questions matter:
- Is the 80% range honest? If it is well calibrated, about 80% of outcomes fall inside it.
- Is the median better than doing nothing? We compare its error with a naive forecast that assumes no change from the last value, a benchmark that is famously hard to beat for exchange rates and prices.
Nearest horizon (3 mo / 1 yr)Middle (6 mo / 2 yr)Farthest (12 mo / 3 yr)
Backtest results by topic
| Topic | Horizon | Series | Tests | Avg. error | Error vs naive | In 80% range |
|---|---|---|---|---|---|---|
| Currencies | 3 mo | 19 | 1,086 | 3.9% | +3% | 83% |
| 6 mo | 19 | 1,029 | 5.6% | +2% | 78% | |
| 12 mo | 19 | 915 | 8.3% | +3% | 78% | |
| Inflation | 1 yr | 39 | 195 | 2.80 pp | +0% | 74% |
| 2 yr | 39 | 156 | 4.16 pp | −11% | 59% | |
| 3 yr | 39 | 117 | 3.25 pp | −25% | 70% | |
| GDP growth | 1 yr | 40 | 200 | 2.47 pp | −41% | 77% |
| 2 yr | 40 | 160 | 2.15 pp | −56% | 85% | |
| 3 yr | 40 | 120 | 1.72 pp | −65% | 94% | |
| Interest rates | 3 mo | 3 | 172 | 0.39 pp | −2% | 81% |
| 6 mo | 3 | 163 | 0.67 pp | +2% | 74% | |
| 12 mo | 3 | 145 | 1.11 pp | +2% | 68% | |
| Commodities | 3 mo | 3 | 173 | 10.9% | +3% | 84% |
| 6 mo | 3 | 164 | 14.5% | +5% | 79% | |
| 12 mo | 3 | 146 | 16.7% | +1% | 86% | |
| Unemployment | 1 yr | 40 | 200 | 0.64 pp | +1% | 83% |
| 2 yr | 40 | 160 | 1.11 pp | +2% | 74% | |
| 3 yr | 40 | 120 | 1.47 pp | +10% | 66% | |
| GDP per capita | 1 yr | 40 | 200 | 7.7% | −2% | 86% |
| 2 yr | 40 | 160 | 11.3% | −5% | 79% | |
| 3 yr | 40 | 120 | 15.8% | −1% | 71% | |
| Population | 1 yr | 40 | 200 | 0.6% | −36% | 85% |
| 2 yr | 40 | 160 | 0.8% | −54% | 86% | |
| 3 yr | 40 | 120 | 1.3% | −50% | 80% |
Avg. error: mean absolute % error for price-like series, mean absolute error in percentage points for rates. Error vs naive: geometric mean over series of the model's error divided by the no-change forecast's error, minus one; negative means the model was more accurate.
What the backtest says
- Currencies: the median was about as accurate as a no-change forecast on average across horizons, and the 80% range contained 80% of outcomes.
- Inflation: the median was more accurate than a no-change forecast on average across horizons, and the 80% range contained 68% of outcomes.
- GDP growth: the median was more accurate than a no-change forecast on average across horizons, and the 80% range contained 85% of outcomes.
- Interest rates: the median was about as accurate as a no-change forecast on average across horizons, and the 80% range contained 75% of outcomes.
- Commodities: the median was about as accurate as a no-change forecast on average across horizons, and the 80% range contained 83% of outcomes.
- Unemployment: the median was about as accurate as a no-change forecast on average across horizons, and the 80% range contained 74% of outcomes.
- GDP per capita: the median was about as accurate as a no-change forecast on average across horizons, and the 80% range contained 79% of outcomes.
- Population: the median was more accurate than a no-change forecast on average across horizons, and the 80% range contained 83% of outcomes.
For currencies and commodities, matching the no-change forecast is the realistic goal: markets price in what is known, so the value of these pages is mostly the range, which tells you how far the price could plausibly move.
Limits
- The model only sees the history of each series. Shocks it cannot know about (a devaluation, a war, a policy change) will not be in the forecast.
- Annual World Bank series are short and revised after publication; their backtests rest on few test points.
- 80% ranges are wrong about one time in five by design, and more often in turbulent periods.
- Forecasts are statistical output, not investment, tax or policy advice.
Questions or a series you'd like to see? Request a forecast. Model and data licenses: TimesFM (Apache-2.0); FRED and World Bank data under their respective terms of use.
