Model lab
How the probabilities behaved
Logistic regression is the number on the slate because it has the lowest log loss on the holdout: Completed games from 2021-22 onward. Elo and gradient boosting stay visible because they do not always agree. The favourite labels on game cards are reading bands. This page is the calibration check. Refresh slate refits the live models on every completed game; the numbers here stay the fixed test set. The equations are on the reference.
Test Set
| Model | Games | Log loss | Accuracy | Brier |
|---|---|---|---|---|
| Elo | 6193 | 0.6199 | 65.7% | 0.2155 |
| Logistic regression | 6193 | 0.6038 | 67.4% | 0.2083 |
| Gradient boosting | 6193 | 0.6101 | 67.1% | 0.2112 |
By key players missing
Key players are those with 20 or more expected minutes who did not play. Counts add both teams. These are actual absences in completed games, not the projected lineups on the slate.
| Model | Key players out | Games | Log loss | Accuracy | Brier |
|---|---|---|---|---|---|
| Elo | 0 | 588 | 0.6400 | 62.6% | 0.2251 |
| Logistic regression | 0 | 588 | 0.6275 | 63.4% | 0.2188 |
| Gradient boosting | 0 | 588 | 0.6288 | 63.9% | 0.2200 |
| Elo | 1 | 1182 | 0.6256 | 65.0% | 0.2180 |
| Logistic regression | 1 | 1182 | 0.6153 | 66.2% | 0.2133 |
| Gradient boosting | 1 | 1182 | 0.6222 | 66.8% | 0.2166 |
| Elo | 2 | 1370 | 0.6256 | 64.2% | 0.2186 |
| Logistic regression | 2 | 1370 | 0.6100 | 66.5% | 0.2113 |
| Gradient boosting | 2 | 1370 | 0.6147 | 66.1% | 0.2137 |
| Elo | 3 | 1154 | 0.6151 | 67.0% | 0.2125 |
| Logistic regression | 3 | 1154 | 0.5987 | 69.8% | 0.2049 |
| Gradient boosting | 3 | 1154 | 0.5976 | 69.2% | 0.2052 |
| Elo | 4+ | 1899 | 0.6088 | 67.4% | 0.2105 |
| Logistic regression | 4+ | 1899 | 0.5880 | 68.6% | 0.2017 |
| Gradient boosting | 4+ | 1899 | 0.6009 | 67.8% | 0.2070 |
Reliability
Each point is an equal-count bin of predicted home-win probabilities. A calibrated model sits on the dashed line.
