Skip to content
SpreadModel

Track record

Every projection is stored with the time it was published. After each game, the last version published before kickoff is graded against the final score and the closing betting line. Nothing is edited after the fact.

Live, since launch

Backtest, 10 seasons

NFL
2,761 games · 2016–2025
within0.15pts
of the closing line's average margin error
Margin error · points, lower is better
SpreadModel9.93
Closing line9.78
Total error · points, lower is better
SpreadModel10.50
Closing line10.44
NBA
7,775 games · 2020-21 to 2025-26
within0.17pts
of the closing line's average margin error
Margin error · points, lower is better
SpreadModel10.76
Closing line10.59
Total error · points, lower is better
SpreadModel14.52
Closing line14.25
College football
6,809 games · 2021–2025
within0.43pts
of the closing line's average margin error
Margin error · points, lower is better
SpreadModel12.50
Closing line12.07
Total error · points, lower is better
SpreadModel12.83
Closing line12.58

Walk-forward backtest on held-out seasons: settings chosen on earlier seasons, every game projected with only information available before kickoff. The closing line is the betting market's final number, the hardest public benchmark there is.

How we measure

Mean absolute error in points between the projected and final margin (home minus away) and total, on games with a closing line.

Why the closing line

It is the betting market's last price, with every injury and lineup decision priced in: the strongest public forecast of a game.

No look-ahead

Models are tuned on early seasons and judged on later ones they never saw. Every input is something that was known before the game.