NHL Prediction Model Performance | Accuracy & Calibration Stats
See how our NHL prediction model performs: accuracy, Brier scores, calibration, and error metrics across thousands of games.
To understand each metric, read Understanding Performance Metrics . To apply this in practice, view today's NHL predictions, our NHL playoff odds, and in-game win probability charts.
Game Predictions (Multi-Window)
| Window | Start | End | Games | Accuracy | Brier | Log Loss | Avg Winner Prob | RMSE Total |
|---|---|---|---|---|---|---|---|---|
| last 30 | 2025-12-20 | 2026-01-19 | 231 | 53.7% | 0.2673 | 0.8363 | 52.1% | 2.592 |
| season to date | 2025-10-01 | 2026-01-19 | 779 | 51.9% | 0.2591 | 0.7595 | 51.3% | 2.421 |
| multi season | 2023-10-10 | 2026-01-19 | 3403 | 63.3% | 0.2299 | 0.6678 | 54.4% | 2.185 |
Totals (Over 5.5)
| Window | Games | Accuracy | Brier | Log Loss | Avg Outcome Prob |
|---|---|---|---|---|---|
| last 30 | 231 | 59.3% | 0.2447 | 0.6830 | 51.6% |
| season to date | 779 | 54.8% | 0.2505 | 0.6942 | 51.0% |
| multi season | 3403 | 61.2% | 0.2295 | 0.6506 | 53.2% |
Playoff Game Performance
| Start | End | Games | Accuracy | Brier | Log Loss |
|---|---|---|---|---|---|
| 2024-04-20 | 2025-06-17 | 174 | 67.2% | 0.2242 | 0.7021 |
Current Matchups
Daily Performance (Last 14 Days)
| Date | Games | Accuracy | Brier | Log Loss |
|---|---|---|---|---|
| 2026-01-06 | 10 | 80.0% | 0.1761 | 0.5238 |
| 2026-01-07 | 5 | 60.0% | 0.3338 | 0.9241 |
| 2026-01-08 | 12 | 75.0% | 0.2036 | 0.5917 |
| 2026-01-09 | 3 | 33.3% | 0.2070 | 0.6025 |
| 2026-01-10 | 14 | 57.1% | 0.2850 | 0.7667 |
| 2026-01-11 | 5 | 60.0% | 0.2618 | 0.7189 |
| 2026-01-12 | 9 | 22.2% | 0.3734 | 1.0122 |
| 2026-01-13 | 10 | 80.0% | 0.1345 | 0.4322 |
| 2026-01-14 | 4 | 50.0% | 0.1994 | 0.5707 |
| 2026-01-15 | 10 | 70.0% | 0.2092 | 0.5894 |
| 2026-01-16 | 5 | 40.0% | 0.3700 | 3.2426 |
| 2026-01-17 | 13 | 53.8% | 0.2780 | 0.7528 |
| 2026-01-18 | 3 | 66.7% | 0.1200 | 0.3641 |
| 2026-01-19 | 10 | 0.0% | 0.5001 | — |
Calibration (Win Prob Deciles) — Last 30
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 4 | 33 | 48.9% | 45.5% |
| 5 | 86 | 53.8% | 48.8% |
| 6 | 76 | 68.8% | 56.6% |
| 8 | 27 | 86.7% | 51.9% |
| 9 | 9 | 100.0% | 77.8% |
Calibration (Win Prob Deciles) — Season To Date
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 0 | 1 | 0.0% | 100.0% |
| 4 | 153 | 49.2% | 49.0% |
| 5 | 357 | 53.2% | 49.0% |
| 6 | 199 | 67.5% | 54.8% |
| 7 | 11 | 75.0% | 45.5% |
| 8 | 45 | 85.9% | 57.8% |
| 9 | 13 | 100.0% | 84.6% |
Calibration (Win Prob Deciles) — Multi Season
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 0 | 13 | 0.6% | 7.7% |
| 1 | 1 | 17.5% | 0.0% |
| 2 | 2 | 23.8% | 0.0% |
| 3 | 2 | 37.5% | 0.0% |
| 4 | 835 | 49.0% | 32.8% |
| 5 | 1411 | 53.1% | 54.0% |
| 6 | 822 | 67.9% | 66.7% |
| 7 | 40 | 74.1% | 80.0% |
| 8 | 191 | 86.3% | 79.6% |
| 9 | 86 | 99.4% | 94.2% |
Calibration (Over 5.5) — Last 30
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 3 | 1 | 39.2% | 100.0% |
| 4 | 18 | 46.2% | 55.6% |
| 5 | 128 | 55.3% | 61.7% |
| 6 | 78 | 64.2% | 60.3% |
| 7 | 6 | 71.6% | 50.0% |
Calibration (Over 5.5) — Season To Date
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 3 | 5 | 37.2% | 100.0% |
| 4 | 80 | 46.9% | 52.5% |
| 5 | 403 | 55.5% | 57.3% |
| 6 | 269 | 63.7% | 52.8% |
| 7 | 19 | 73.4% | 68.4% |
| 8 | 2 | 82.2% | 100.0% |
| 9 | 1 | 92.4% | 100.0% |
Calibration (Over 5.5) — Multi Season
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 1 | 1 | 19.4% | 0.0% |
| 2 | 3 | 28.7% | 0.0% |
| 3 | 36 | 37.6% | 22.2% |
| 4 | 369 | 46.7% | 27.4% |
| 5 | 1685 | 55.6% | 51.3% |
| 6 | 1165 | 63.6% | 67.4% |
| 7 | 129 | 73.3% | 93.0% |
| 8 | 14 | 82.8% | 100.0% |
| 9 | 1 | 92.4% | 100.0% |
Team Calibration (Home, Top 15 by Volume)
| Team | Count | Mean Pred | Observed | Bias |
|---|---|---|---|---|
| FLA | 132 | 63.3% | 62.1% | +1.2% |
| EDM | 126 | 62.1% | 63.5% | -1.4% |
| DAL | 124 | 61.3% | 62.1% | -0.8% |
| CAR | 123 | 66.2% | 68.3% | -2.1% |
| TOR | 119 | 59.3% | 58.8% | +0.5% |
| WSH | 117 | 58.9% | 56.4% | +2.5% |
| WPG | 116 | 62.8% | 64.7% | -1.9% |
| VGK | 116 | 60.0% | 61.2% | -1.2% |
| BOS | 115 | 58.0% | 54.8% | +3.2% |
| COL | 114 | 66.2% | 70.2% | -3.9% |
| NYR | 112 | 61.0% | 52.7% | +8.3% |
| LAK | 111 | 60.8% | 55.9% | +4.9% |
| STL | 111 | 55.1% | 57.7% | -2.6% |
| VAN | 110 | 59.0% | 46.4% | +12.7% |
| NSH | 110 | 58.4% | 50.9% | +7.5% |
Team Calibration (Pred vs Observed)
Mean Pred Observed
Starter Calibration (Home)
| Window | Starter Status | Games | Accuracy | Brier | Log Loss |
|---|---|---|---|---|---|
| last 30 | Starter | 231 | 53.7% | 0.2673 | 0.8363 |
| season to date | Starter | 779 | 51.9% | 0.2591 | 0.7595 |
| multi season | Unknown | 18 | 66.7% | 0.2500 | 0.6931 |
| multi season | Starter | 3385 | 63.2% | 0.2298 | 0.6677 |
Cross-Validation (Expanding Window)
Folds: 3 | Brier: 0.2496 | Log Loss: 0.6925 | RMSE Total: 2.405
In-Game Checkpoints — Last 30
| Checkpoint | Games | Accuracy | Brier | Log Loss |
|---|---|---|---|---|
| end_p1 | 226 | 69.5% | 0.2003 | 0.5816 |
| end_p2 | 226 | 79.6% | 0.1436 | 0.4358 |
| ot_start | 58 | 58.6% | 0.2117 | 0.5921 |
| p3_10 | 226 | 81.0% | 0.1135 | 0.3504 |
| p3_5 | 226 | 82.7% | 0.0912 | 0.2852 |
| pregame | 226 | 51.8% | 0.2476 | 0.6886 |
In-Game Checkpoints — Season To Date
| Checkpoint | Games | Accuracy | Brier | Log Loss |
|---|---|---|---|---|
| end_p1 | 769 | 67.2% | 0.2089 | 0.6017 |
| end_p2 | 769 | 77.5% | 0.1468 | 0.4471 |
| ot_start | 201 | 65.7% | 0.1974 | 0.5624 |
| p3_10 | 769 | 83.1% | 0.1071 | 0.3339 |
| p3_5 | 769 | 85.2% | 0.0894 | 0.2794 |
| pregame | 769 | 51.8% | 0.2485 | 0.6901 |
In-Game Calibration — Pregame (Last 30 Days)
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 4 | 42 | 48.9% | 57.1% |
| 5 | 137 | 53.0% | 50.4% |
| 6 | 47 | 68.6% | 63.8% |
In-Game Calibration — End P2 (Last 30 Days)
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 0 | 29 | 4.7% | 3.4% |
| 1 | 11 | 14.1% | 27.3% |
| 2 | 17 | 26.8% | 17.6% |
| 3 | 16 | 33.4% | 12.5% |
| 4 | 16 | 46.2% | 43.8% |
| 5 | 26 | 54.5% | 57.7% |
| 6 | 19 | 63.3% | 63.2% |
| 7 | 20 | 75.4% | 70.0% |
| 8 | 28 | 85.3% | 78.6% |
| 9 | 44 | 94.7% | 100.0% |
In-Game Calibration — P3 10 (Last 30 Days)
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 0 | 43 | 2.1% | 2.3% |
| 1 | 20 | 15.6% | 20.0% |
| 2 | 14 | 22.4% | 28.6% |
| 3 | 2 | 35.9% | 50.0% |
| 4 | 11 | 45.6% | 45.5% |
| 5 | 23 | 54.3% | 34.8% |
| 6 | 9 | 62.8% | 44.4% |
| 8 | 30 | 86.6% | 80.0% |
| 9 | 74 | 97.2% | 97.3% |
xG Model Holdout
Train: 2023-10-10 – 2025-05-13 | Test: 2025-05-13 – 2026-01-06
Shots (test): 60376 | ROC AUC: 0.766 | Log Loss: 0.2271 | Brier: 0.0619
xG Splits — Strength State
| Split | Shots | Goal Rate | AUC | Log Loss | Brier |
|---|---|---|---|---|---|
| Even | 47811 | 6.2% | 0.764 | 0.2052 | 0.0546 |
| PP | 10736 | 10.2% | 0.691 | 0.3086 | 0.0874 |
| PK | 1329 | 6.4% | 0.769 | 0.2088 | 0.0569 |
| EmptyNet | 500 | 53.6% | 0.686 | 0.6261 | 0.2208 |
xG Splits — Shot Type
| Split | Shots | Goal Rate | AUC | Log Loss | Brier |
|---|---|---|---|---|---|
| wrist | 26708 | 6.7% | 0.793 | 0.2069 | 0.0559 |
| snap | 14811 | 8.3% | 0.751 | 0.2545 | 0.0715 |
| slap | 6869 | 5.0% | 0.705 | 0.1865 | 0.0462 |
| tip-in | 5583 | 6.9% | 0.676 | 0.2402 | 0.0628 |
| backhand | 4441 | 9.8% | 0.792 | 0.2707 | 0.0786 |
| deflected | 988 | 11.7% | 0.645 | 0.3405 | 0.0984 |
| wrap-around | 417 | 3.4% | 0.609 | 0.1510 | 0.0332 |
| bat | 295 | 10.2% | 0.701 | 0.3079 | 0.0866 |
| poke | 209 | 14.4% | 0.598 | 0.4121 | 0.1264 |
| between-legs | 35 | 11.4% | 0.742 | 0.3321 | 0.0962 |
| nan | 17 | 94.1% | 0.406 | 0.3111 | 0.0805 |
| cradle | 3 | 0.0% | — | — | 0.0161 |