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-14 | 2026-01-13 | 227 | 53.3% | 0.2703 | 0.7951 | 51.3% | 2.531 |
| season to date | 2025-10-01 | 2026-01-13 | 734 | 51.6% | 0.2609 | 0.7507 | 50.9% | 2.412 |
| multi season | 2023-10-10 | 2026-01-13 | 3358 | 63.5% | 0.2299 | 0.6647 | 54.4% | 2.177 |
Totals (Over 5.5)
| Window | Games | Accuracy | Brier | Log Loss | Avg Outcome Prob |
|---|---|---|---|---|---|
| last 30 | 227 | 56.4% | 0.2527 | 0.6996 | 50.8% |
| season to date | 734 | 55.3% | 0.2511 | 0.6954 | 51.0% |
| multi season | 3358 | 61.5% | 0.2290 | 0.6493 | 53.2% |
Playoff Game Performance
| Start | End | Games | Accuracy | Brier | Log Loss |
|---|---|---|---|---|---|
| 2024-04-20 | 2025-06-17 | 174 | 67.8% | 0.2224 | 0.6981 |
Current Matchups
Daily Performance (Last 14 Days)
| Date | Games | Accuracy | Brier | Log Loss |
|---|---|---|---|---|
| 2025-12-31 | 10 | 50.0% | 0.2152 | 0.5960 |
| 2026-01-01 | 8 | 50.0% | 0.2231 | 0.6386 |
| 2026-01-02 | 4 | 25.0% | 0.5461 | 4.2034 |
| 2026-01-03 | 13 | 46.2% | 0.2833 | 0.7841 |
| 2026-01-04 | 5 | 40.0% | 0.2948 | 0.7876 |
| 2026-01-05 | 5 | 40.0% | 0.3127 | 0.8239 |
| 2026-01-06 | 10 | 80.0% | 0.1833 | 0.5383 |
| 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 | 30.0% | 0.4653 | — |
Calibration (Win Prob Deciles) — Last 30
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 4 | 41 | 48.9% | 41.5% |
| 5 | 89 | 53.4% | 49.4% |
| 6 | 69 | 68.8% | 56.5% |
| 8 | 19 | 86.7% | 31.6% |
| 9 | 9 | 100.0% | 88.9% |
Calibration (Win Prob Deciles) — Season To Date
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 0 | 1 | 0.0% | 100.0% |
| 4 | 148 | 49.2% | 48.6% |
| 5 | 343 | 53.1% | 49.9% |
| 6 | 185 | 67.3% | 53.5% |
| 7 | 10 | 74.7% | 50.0% |
| 8 | 36 | 85.7% | 50.0% |
| 9 | 11 | 100.0% | 90.9% |
Calibration (Win Prob Deciles) — Multi Season
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 0 | 13 | 0.6% | 7.7% |
| 1 | 1 | 17.5% | 0.0% |
| 2 | 1 | 27.5% | 0.0% |
| 3 | 3 | 35.2% | 0.0% |
| 4 | 834 | 49.0% | 32.5% |
| 5 | 1393 | 53.1% | 54.5% |
| 6 | 810 | 67.8% | 66.5% |
| 7 | 38 | 74.2% | 84.2% |
| 8 | 182 | 86.3% | 78.6% |
| 9 | 83 | 99.4% | 95.2% |
Calibration (Over 5.5) — Last 30
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 3 | 1 | 39.4% | 100.0% |
| 4 | 23 | 46.4% | 47.8% |
| 5 | 107 | 55.4% | 57.9% |
| 6 | 92 | 63.5% | 58.7% |
| 7 | 4 | 72.4% | 0.0% |
Calibration (Over 5.5) — Season To Date
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 3 | 4 | 36.4% | 100.0% |
| 4 | 78 | 46.7% | 50.0% |
| 5 | 372 | 55.6% | 58.6% |
| 6 | 256 | 63.7% | 52.3% |
| 7 | 20 | 72.8% | 55.0% |
| 8 | 3 | 82.7% | 100.0% |
| 9 | 1 | 91.4% | 100.0% |
Calibration (Over 5.5) — Multi Season
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 2 | 4 | 25.2% | 0.0% |
| 3 | 26 | 36.2% | 19.2% |
| 4 | 369 | 46.6% | 26.0% |
| 5 | 1682 | 55.7% | 51.0% |
| 6 | 1131 | 63.5% | 68.3% |
| 7 | 133 | 73.4% | 91.7% |
| 8 | 12 | 83.0% | 100.0% |
| 9 | 1 | 91.4% | 100.0% |
Team Calibration (Home, Top 15 by Volume)
| Team | Count | Mean Pred | Observed | Bias |
|---|---|---|---|---|
| FLA | 131 | 63.2% | 62.6% | +0.6% |
| EDM | 124 | 61.6% | 63.7% | -2.1% |
| DAL | 123 | 61.4% | 62.6% | -1.2% |
| CAR | 121 | 66.0% | 68.6% | -2.6% |
| TOR | 118 | 59.4% | 59.3% | +0.1% |
| WSH | 115 | 58.9% | 56.5% | +2.3% |
| WPG | 115 | 62.7% | 64.3% | -1.6% |
| BOS | 114 | 57.7% | 53.5% | +4.2% |
| VGK | 113 | 59.6% | 61.1% | -1.5% |
| COL | 112 | 65.9% | 71.4% | -5.6% |
| NYR | 111 | 61.2% | 53.2% | +8.0% |
| NSH | 110 | 58.3% | 50.0% | +8.3% |
| STL | 110 | 55.3% | 56.4% | -1.1% |
| MIN | 109 | 57.5% | 51.4% | +6.1% |
| LAK | 109 | 60.7% | 56.9% | +3.8% |
Team Calibration (Pred vs Observed)
Mean Pred Observed
Starter Calibration (Home)
| Window | Starter Status | Games | Accuracy | Brier | Log Loss |
|---|---|---|---|---|---|
| last 30 | Starter | 227 | 53.3% | 0.2703 | 0.7951 |
| season to date | Starter | 734 | 51.6% | 0.2609 | 0.7507 |
| multi season | Unknown | 18 | 66.7% | 0.2500 | 0.6931 |
| multi season | Starter | 3340 | 63.5% | 0.2298 | 0.6646 |
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 | 230 | 65.7% | 0.2075 | 0.5968 |
| end_p2 | 230 | 79.1% | 0.1463 | 0.4498 |
| ot_start | 55 | 63.6% | 0.2017 | 0.5745 |
| p3_10 | 230 | 82.6% | 0.1044 | 0.3302 |
| p3_5 | 230 | 85.2% | 0.0835 | 0.2632 |
| pregame | 230 | 54.3% | 0.2483 | 0.6900 |
In-Game Checkpoints — Season To Date
| Checkpoint | Games | Accuracy | Brier | Log Loss |
|---|---|---|---|---|
| end_p1 | 724 | 66.9% | 0.2097 | 0.6034 |
| end_p2 | 724 | 77.6% | 0.1475 | 0.4489 |
| ot_start | 187 | 65.2% | 0.1952 | 0.5583 |
| p3_10 | 724 | 83.4% | 0.1046 | 0.3267 |
| p3_5 | 724 | 85.5% | 0.0870 | 0.2720 |
| pregame | 724 | 51.5% | 0.2493 | 0.6917 |
In-Game Calibration — Pregame (Last 30 Days)
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 4 | 49 | 48.9% | 44.9% |
| 5 | 139 | 52.7% | 51.8% |
| 6 | 42 | 68.7% | 61.9% |
In-Game Calibration — End P2 (Last 30 Days)
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 0 | 32 | 5.1% | 6.2% |
| 1 | 7 | 15.4% | 14.3% |
| 2 | 15 | 26.1% | 20.0% |
| 3 | 20 | 33.1% | 15.0% |
| 4 | 18 | 45.1% | 33.3% |
| 5 | 22 | 53.4% | 40.9% |
| 6 | 23 | 64.0% | 73.9% |
| 7 | 20 | 74.3% | 70.0% |
| 8 | 31 | 85.3% | 83.9% |
| 9 | 42 | 94.9% | 92.9% |
In-Game Calibration — P3 10 (Last 30 Days)
| Bin | Count | Mean Pred | Observed |
|---|---|---|---|
| 0 | 46 | 2.2% | 2.2% |
| 1 | 22 | 15.8% | 18.2% |
| 2 | 16 | 21.9% | 18.8% |
| 3 | 1 | 37.3% | 100.0% |
| 4 | 13 | 44.7% | 38.5% |
| 5 | 21 | 53.2% | 23.8% |
| 6 | 6 | 62.7% | 66.7% |
| 8 | 32 | 86.6% | 81.2% |
| 9 | 73 | 97.4% | 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 |