NFL model performance
Walk-forward: each season is predicted by models trained only on earlier seasons. Settings were chosen on 2016–2020; the test seasons were scored once. Log loss and Brier score measure how good the probabilities are; lower is better.
Test seasons 2021 – 2025 (1420 games)
| Model | Log loss ↓ | Brier ↓ | Winner picked ↑ |
|---|---|---|---|
| Always home team (base rate) | 0.6896 | 0.2482 | 54.6% |
| Elo (logistic on rating gap) | 0.6404 | 0.2248 | 63.1% |
| Margin model (ridge regression) | 0.6345 | 0.2222 | 63.5% |
| Gradient boosting | 0.6347 | 0.2222 | 63.5% |
| Ensemble (final model) | 0.6341 | 0.2220 | 63.9% |
| Bookmaker moneyline (margin removed) | 0.6103 | 0.2115 | 66.3% |
1420 games with a closing line.
The final model averages elo 10%, margin 75%, gbm 15%. The betting market is better than the model on every measure, which is normal for a model without injury, lineup or rest-decision information. Bold marks the best non-market value.
Calibration on test seasons (home-win probability)
Validation seasons 2016 – 2020
| Model | Log loss ↓ | Brier ↓ | Winner picked ↑ |
|---|---|---|---|
| Always home team (base rate) | 0.6880 | 0.2474 | 55.4% |
| Elo (logistic on rating gap) | 0.6287 | 0.2194 | 64.7% |
| Margin model (ridge regression) | 0.6244 | 0.2177 | 65.0% |
| Gradient boosting | 0.6267 | 0.2186 | 64.3% |
| Ensemble (final model) | 0.6242 | 0.2175 | 65.0% |
| Bookmaker moneyline (margin removed) | 0.6069 | 0.2097 | 66.6% |
Used to choose every setting, so slightly optimistic.
Log loss by season
| Season | Games | Elo | Margin | Boosting | Ensemble | Market |
|---|---|---|---|---|---|---|
| 2016 validation | 265 | 0.622 | 0.626 | 0.633 | 0.626 | 0.622 |
| 2017 validation | 266 | 0.623 | 0.618 | 0.622 | 0.618 | 0.593 |
| 2018 validation | 265 | 0.630 | 0.618 | 0.624 | 0.620 | 0.614 |
| 2019 validation | 266 | 0.642 | 0.636 | 0.638 | 0.636 | 0.616 |
| 2020 validation | 268 | 0.626 | 0.624 | 0.618 | 0.622 | 0.590 |
| 2021 test | 284 | 0.664 | 0.651 | 0.639 | 0.649 | 0.623 |
| 2022 test | 282 | 0.631 | 0.628 | 0.637 | 0.629 | 0.605 |
| 2023 test | 285 | 0.660 | 0.651 | 0.658 | 0.652 | 0.627 |
| 2024 test | 285 | 0.615 | 0.616 | 0.614 | 0.614 | 0.589 |
| 2025 test | 284 | 0.633 | 0.627 | 0.626 | 0.626 | 0.607 |
| 2026 in progress | 106 | 0.664 | 0.673 | 0.676 | 0.672 | 0.662 |
How the model works
Elo with a margin-of-victory multiplier (K = 20, home advantage 35 Elo points, 50% pulled back to average each off-season). A margin model (ridge regression) predicts the final point margin from Elo, recent point differential, points scored and allowed, home/road form, season record and rest and quarterback changes; the margin becomes a win probability through a normal distribution. A matching model predicts total points.
A gradient-boosted classifier uses the same inputs. The final probability averages the three with weights chosen on validation seasons; the projected score combines the predicted total and margin. Betting lines are never a model input. Model v20261029-e80118, trained Oct 29, 2026 on 6,606 games.