Probabilistic forecasts for 98 markets
Tomorrow isn't one number.
Most forecasts give a single guess: “the S&P 500 will rise 0.1% tomorrow.” The models here forecast every possible outcome and how likely each one is, for stocks, ETFs, currencies, futures and crypto, from tomorrow to more than a year ahead.
Every forecast on this site was made using only information available at the time, and then checked against what really happened.
Tomorrow's forecast
Start with a story
How it works
-
1
Read the market
A neural network reads each asset's recent volatility, its last few returns and the state of the wider market.
-
2
Forecast the shape
Instead of one number it outputs 100 quantiles of tomorrow's return, which together trace the full curve of possibilities.
-
3
Roll it forward
For longer horizons it simulates day after day, lets volatility evolve as GARCH fitted to each asset predicts, and allows for uncertainty in volatility itself.
How good is it?
Scores are proper scoring rules on quantiles (pinball loss). The details are in the project's README and devlog.
The road ahead
At one horizon
Minute by minute, hour by hour
The next hour, side by side
Over the whole crash
Every tomorrow
One day, three forecasts
Is it honest?
How to read a forecast
A forecast here is a curve. The higher the curve above a return, the more likely the model thinks that return is. The area under the curve is 100%.
The words on the page
- Range, or band
- “9 in 10” is the range the model expects the outcome to fall in nine times out of ten: from its 5th to its 95th percentile. The outer band holds 98 in 100.
- Most likely outcome
- The median: the model thinks the outcome is equally likely to land above or below it.
- Bad case (1 in 20)
- The return the model expects to be beaten on the downside one time in twenty. Risk managers call this the 5% value at risk (VaR).
- Average of the worst 1 in 100
- If one of the worst 1% of outcomes happens, how bad is it on average? This is the expected shortfall (ES).
- Where it landed
- The percentile of the forecast at which the real outcome fell. If forecasts are honest, outcomes land evenly across percentiles, so a histogram of them is flat. Statisticians call this the probability integral transform (PIT).
- Score
- How much probability the forecast gave to what actually happened (the log score). Higher is better. It rewards being both sharp and right.
- Bell curve
- The naive benchmark: a normal distribution with the recent volatility. Real returns have fatter tails, more big days in both directions, than a bell curve allows.
The models
- Our model
- For tomorrow, a neural network (a TCN) that predicts 100 quantiles of the next return relative to recent volatility. One network serves every frequency from one minute to one week; it is refit every year on the ten years before, and averaged over five training seeds. The full curve is a monotone spline through those quantiles, the same one the forecasts were scored on.
- Further ahead
- The one-day forecast, rolled forward by simulation: shocks are drawn from tomorrow's curve, volatility evolves with GJR-GARCH dynamics fitted to each asset, and a small, separately fitted allowance for uncertainty in volatility widens the result. In the project it is called the “GJR hybrid + mixture”. One fit per year, using only earlier data.
- Within the day
- The same design run on 1-minute and on 1-hour bars instead of days: the network gives the next bar's curve, and the simulation rolls it forward bar by bar, with the time-of-day pattern in volatility. Each frequency is fit on its own, once a year, on earlier data only.
- GJR-GARCH
- The workhorse of financial econometrics: volatility reacts to yesterday's shock, more to falls than to rises, and returns are fat-tailed (Student-t).
Good to know
- Returns are shown as simple percentage changes, converted exactly from the log returns the models forecast.
- Horizons count trading days: for stocks, ETFs, currencies and futures “1 month” means 21 of them, “1 year” 252, and the longest horizon, 365, is about 17 months. Crypto trades every day, so there the same horizons are calendar days: 252 is about 8 months and 365 is a year.
- Some curves are slightly wavy. They are drawn straight through the model's quantiles, unsmoothed, and the long-horizon quantiles come from a simulation.
- For recent dates the longest horizons are missing: those futures have not happened yet, so they were never scored.
- Forecasts start in 2016 when looking ahead, and in 2019 day by day. 2025 onward was held back until the design was frozen.
Shortcuts
- ← → move the date
- K jump to the outcome
- hold E to glimpse ahead
- R replay, day by day
- ? this guide