Skip to main content

Models

How good are the house prediction models, reported the way we'd want a rival to report theirs

Three models sit behind the predictions on this site. elo_v1 is a pure Elo rating system -- transparent, well-understood math that updates a team's rating after every game based on the result and the opponent's strength. elo_epa_blend_v1 keeps that same Elo-based win probability but blends the projected margin 0.6 parts Elo to 0.4 parts a ridge-regression-adjusted EPA rating, an attempt to fold in-season efficiency into a system that otherwise only sees final scores. fitted_v1 is the current house model and the one selected by default: a ridge regression fit over a twenty-feature vector -- Elo, adjusted EPA on both sides, success rate, explosiveness, tempo, returning production, recruiting, preseason SP+ -- with its own win probability rather than a borrowed Elo one. It is also the only one of the three that projects a full season.

Default does not mean best at everything, and the table below is the reason we say so. On 2025, fitted_v1 predicted the final margin more accurately than either Elo model -- but it picked against the spread worse than both of them, and its win-probability calibration was a wash. Predicting a score and beating a betting line are different problems, and a model can get measurably better at the first while getting no better, or slightly worse, at the second. Which number matters depends on the question you came with.

Every number below comes from a walk-forward backtest: for each game, the model only ever sees data that would have been available before kickoff, then is scored against what actually happened. No season retroactively benefits from information the model didn't have at the time -- that is the entire point of testing this way, and it is a stricter bar than a model that is simply fit to the whole season at once and graded on the same data.

We are publishing this page because a prediction model that only shows you when it's right isn't worth trusting. Straight-up win prediction is meaningfully better than a coin flip; against-the-spread performance -- the harder test, since the market has already priced in most of what a public model knows -- lands close to a coin flip most seasons. That is not a bug in the presentation. It is the honest result, and it is also roughly what the published literature on public point-spread models would predict.

Backtest Accuracy

One row per model per season, at the base edge threshold (no minimum-conviction filter). Lower is better for MAE, RMSE, and both Brier columns. CFBD Brier is CFBD's own published win-probability model, shown as an external benchmark, not a house metric.

ModelSeasonGamesMAERMSEATS W-L-PATS Hit RateBrierCFBD Brier
Elo (v1)2025382915.9 pts20.2 pts792-780-2550.4%0.1820.157
Elo (v1)2024379915.6 pts20.0 pts791-729-3152.0%0.1980.177
Elo (v1)2023372416.0 pts20.5 pts704-682-2550.8%0.1840.161
Elo (v1)2022370516.7 pts21.4 pts699-741-1948.5%0.1860.154
Elo (v1)2021245416.3 pts20.8 pts426-447-1348.8%0.1850.164
Elo (v1)2020112515.2 pts19.4 pts278-280-949.8%0.1890.169
Elo (v1)2019162314.9 pts19.0 pts0-0-00.1730.147
Elo (v1)2018155615.7 pts19.7 pts0-0-00.1790.156
Elo (v1)2017155114.9 pts19.1 pts0-0-00.1860.151
Elo (v1)2016154914.7 pts19.0 pts0-0-00.1860.168
Elo (v1)2015153815.0 pts19.2 pts0-0-00.1710.147
Elo + EPA blend (v1)2025382915.7 pts20.0 pts780-792-2549.6%0.1820.157
Elo + EPA blend (v1)2024379915.5 pts19.8 pts778-742-3151.2%0.1980.177
Elo + EPA blend (v1)2023372415.8 pts20.2 pts693-693-2550.0%0.1840.161
Elo + EPA blend (v1)2022370516.6 pts21.3 pts709-731-1949.2%0.1860.154
Elo + EPA blend (v1)2021245416.2 pts20.7 pts413-460-1347.3%0.1850.164
Elo + EPA blend (v1)2020112515.2 pts19.3 pts280-278-950.2%0.1890.169
Elo + EPA blend (v1)2019162314.6 pts18.5 pts0-0-00.1730.147
Elo + EPA blend (v1)2018155615.4 pts19.5 pts0-0-00.1790.156
Elo + EPA blend (v1)2017155114.8 pts19.0 pts0-0-00.1860.151
Elo + EPA blend (v1)2016154914.7 pts18.8 pts0-0-00.1860.168
Elo + EPA blend (v1)2015153815.0 pts19.0 pts0-0-00.1710.147
Fitted ridge (v1)2025382914.7 pts18.5 pts749-823-2547.6%0.1810.157
Fitted ridge (v1)2024379914.3 pts18.2 pts736-784-3148.4%0.1970.177
Fitted ridge (v1)2023372414.6 pts18.6 pts688-698-2549.6%0.1790.161
Fitted ridge (v1)2022370515.8 pts20.2 pts708-732-1949.2%0.1830.154
Fitted ridge (v1)2021245415.7 pts20.0 pts429-444-1349.1%0.1840.164
Fitted ridge (v1)2020112515.1 pts19.2 pts290-268-952.0%0.1830.169
Fitted ridge (v1)2019162314.1 pts17.8 pts0-0-00.1650.147
Fitted ridge (v1)2018155614.9 pts18.7 pts0-0-00.1750.156

Higher-conviction splits -- the same backtest filtered to games where the model's edge over the market exceeds a minimum threshold -- also exist in the warehouse but are omitted here for readability. Those thresholds are what power the Edge Board's scored slate at game time.

Accuracy Over Time

Against-the-spread hit rate by season, one line per model, against a coin-flip reference.

53%52%50%48%47%202020212022202320242025Coin flip (50%)Break-even at -110 (52.4%)
Elo (v1)Elo + EPA blend (v1)Fitted ridge (v1)