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:

  1. Is the 80% range honest? If it is well calibrated, about 80% of outcomes fall inside it.
  2. 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.
Share of outcomes inside the 80% rangeby topic and horizon; the dashed line is the 80% target
40%50%60%70%80%90%100%CurrenciesCurrencies, 3 mo: 83% of 1086 outcomes inside the rangeCurrencies, 6 mo: 78% of 1029 outcomes inside the rangeCurrencies, 12 mo: 78% of 915 outcomes inside the rangeInflationInflation, 1 yr: 74% of 195 outcomes inside the rangeInflation, 2 yr: 59% of 156 outcomes inside the rangeInflation, 3 yr: 70% of 117 outcomes inside the rangeGDP growthGDP growth, 1 yr: 77% of 200 outcomes inside the rangeGDP growth, 2 yr: 85% of 160 outcomes inside the rangeGDP growth, 3 yr: 94% of 120 outcomes inside the rangeInterest ratesInterest rates, 3 mo: 81% of 172 outcomes inside the rangeInterest rates, 6 mo: 74% of 163 outcomes inside the rangeInterest rates, 12 mo: 68% of 145 outcomes inside the rangeCommoditiesCommodities, 3 mo: 84% of 173 outcomes inside the rangeCommodities, 6 mo: 79% of 164 outcomes inside the rangeCommodities, 12 mo: 86% of 146 outcomes inside the rangeUnemploymentUnemployment, 1 yr: 83% of 200 outcomes inside the rangeUnemployment, 2 yr: 74% of 160 outcomes inside the rangeUnemployment, 3 yr: 66% of 120 outcomes inside the rangeGDP per capitaGDP per capita, 1 yr: 86% of 200 outcomes inside the rangeGDP per capita, 2 yr: 79% of 160 outcomes inside the rangeGDP per capita, 3 yr: 71% of 120 outcomes inside the rangePopulationPopulation, 1 yr: 85% of 200 outcomes inside the rangePopulation, 2 yr: 86% of 160 outcomes inside the rangePopulation, 3 yr: 80% of 120 outcomes inside the range40%60%80%100%CurrenciesCurrencies, 3 mo: 83% of 1086 outcomes inside the rangeCurrencies, 6 mo: 78% of 1029 outcomes inside the rangeCurrencies, 12 mo: 78% of 915 outcomes inside the rangeInflationInflation, 1 yr: 74% of 195 outcomes inside the rangeInflation, 2 yr: 59% of 156 outcomes inside the rangeInflation, 3 yr: 70% of 117 outcomes inside the rangeGDP growthGDP growth, 1 yr: 77% of 200 outcomes inside the rangeGDP growth, 2 yr: 85% of 160 outcomes inside the rangeGDP growth, 3 yr: 94% of 120 outcomes inside the rangeInterest ratesInterest rates, 3 mo: 81% of 172 outcomes inside the rangeInterest rates, 6 mo: 74% of 163 outcomes inside the rangeInterest rates, 12 mo: 68% of 145 outcomes inside the rangeCommoditiesCommodities, 3 mo: 84% of 173 outcomes inside the rangeCommodities, 6 mo: 79% of 164 outcomes inside the rangeCommodities, 12 mo: 86% of 146 outcomes inside the rangeUnemploymentUnemployment, 1 yr: 83% of 200 outcomes inside the rangeUnemployment, 2 yr: 74% of 160 outcomes inside the rangeUnemployment, 3 yr: 66% of 120 outcomes inside the rangeGDP per capitaGDP per capita, 1 yr: 86% of 200 outcomes inside the rangeGDP per capita, 2 yr: 79% of 160 outcomes inside the rangeGDP per capita, 3 yr: 71% of 120 outcomes inside the rangePopulationPopulation, 1 yr: 85% of 200 outcomes inside the rangePopulation, 2 yr: 86% of 160 outcomes inside the rangePopulation, 3 yr: 80% of 120 outcomes inside the range

Nearest horizon (3 mo / 1 yr)Middle (6 mo / 2 yr)Farthest (12 mo / 3 yr)

Backtest results by topic

TopicHorizonSeriesTestsAvg. errorError vs naiveIn 80% range
Currencies3 mo191,0863.9%+3%83%
6 mo191,0295.6%+2%78%
12 mo199158.3%+3%78%
Inflation1 yr391952.80 pp+0%74%
2 yr391564.16 pp−11%59%
3 yr391173.25 pp−25%70%
GDP growth1 yr402002.47 pp−41%77%
2 yr401602.15 pp−56%85%
3 yr401201.72 pp−65%94%
Interest rates3 mo31720.39 pp−2%81%
6 mo31630.67 pp+2%74%
12 mo31451.11 pp+2%68%
Commodities3 mo317310.9%+3%84%
6 mo316414.5%+5%79%
12 mo314616.7%+1%86%
Unemployment1 yr402000.64 pp+1%83%
2 yr401601.11 pp+2%74%
3 yr401201.47 pp+10%66%
GDP per capita1 yr402007.7%−2%86%
2 yr4016011.3%−5%79%
3 yr4012015.8%−1%71%
Population1 yr402000.6%−36%85%
2 yr401600.8%−54%86%
3 yr401201.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.