2025-2026 NBA Model Performance Analysis
All scored games in the selected league and season. AP Poll is excluded here.
Comparing prediction accuracy across 1251 games using multiple rating models.
7-day holdout coverage: 16/17 models .
Rolling Holdout Curves
Each point is a strict weekly holdout: train on all games before that week, test on that week. This first version uses a 21-day warmup, then 7-day holdouts stepped forward weekly.
Weekly strict holdout log loss. Lower is better. Showing 16 models across 26 windows. Click legend items to hide/show series.
Recent Window Winners
| Holdout | Best | Log Loss | Runner-up | Models |
|---|---|---|---|---|
| Apr 15 - Apr 19 | Adjusted Context Blend | 0.566 | Home Team Baseline (0.578) | 16 |
| Apr 8 - Apr 14 | Elo | 0.522 | Dynamic Bradley-Terry (0.529) | 16 |
| Apr 1 - Apr 7 | Elo | 0.479 | Adjusted Context Blend (0.493) | 16 |
| Mar 25 - Mar 31 | Dynamic Bradley-Terry | 0.510 | Adjusted Context Blend (0.510) | 16 |
| Mar 18 - Mar 24 | Elo | 0.475 | Recency Ensemble (0.502) | 16 |
| Mar 11 - Mar 17 | Adjusted Context Blend | 0.560 | Dynamic Bradley-Terry (0.562) | 16 |
| Mar 4 - Mar 10 | Adjusted Efficiency | 0.590 | Log Adjusted (0.590) | 16 |
| Feb 25 - Mar 3 | Log Adjusted | 0.495 | Adjusted Efficiency (0.495) | 16 |
Model Performance Leaderboard
Models ranked by strict holdout AUC when available (fallback: full-season AUC). Hover over column headers for explanations.
| # | Model | 7d Split | AUC | Acc | Brier | LogLoss | n | AUC 7d | Acc 7d | Brier 7d | n 7d |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Adjusted Context Blend Adjusted Context Blend Experimental context-heavy win model blending strong team components with rest and venue context. More → |
STRICT
14g
|
- | - | - | - | 0 | 0.800 | 71.4% | 0.193 | 14 |
| 2 | Home Team Baseline Home Team Baseline Always favor the home team with a fixed prior. More → |
STRICT
14g
|
0.551 | 55.1% | 0.250 | 0.693 | 1100 | 0.789 | 78.6% | 0.203 | 14 |
| 3 | Dynamic Bradley-Terry Dynamic Bradley-Terry Time-evolving paired-comparison model with latent team strength drift. More → |
STRICT
14g
|
- | - | - | - | 0 | 0.756 | 71.4% | 0.201 | 14 |
| 4 | Efficiency Efficiency Tempo-adjusted efficiency version of Pythagorean ratings. More → |
FULL
no 7d
|
0.755 | 68.4% | 0.201 | 0.589 | 1100 | - | - | - | 0 |
| 5 | Elo Elo Streaming paired-comparison rating with recency baked into sequential updates. More → |
STRICT
14g
|
0.744 | 68.6% | 0.205 | 0.599 | 1100 | 0.733 | 78.6% | 0.196 | 14 |
| 6 | Bradley-Terry Recency Bradley-Terry Recency Static Bradley-Terry with exponential recency weights on newer games. More → |
STRICT
14g
|
- | - | - | - | 0 | 0.733 | 78.6% | 0.202 | 14 |
| 7 | Core Ensemble Core Ensemble Equal-logit blend of Elo, recency BT, recency margin, log-adjusted pyth, and points off/def. More → |
STRICT
14g
|
- | - | - | - | 0 | 0.733 | 57.1% | 0.213 | 14 |
| 8 | Margin Margin Linear team-strength model fit on point differential instead of binary wins. More → |
STRICT
14g
|
0.746 | 68.0% | 0.210 | 0.609 | 1100 | 0.689 | 57.1% | 0.220 | 14 |
| 9 | Points Off/Def Points Off/Def Raw points regression with separate offensive and defensive team parameters. More → |
STRICT
14g
|
0.755 | 67.6% | 0.207 | 0.603 | 1100 | 0.689 | 57.1% | 0.220 | 14 |
| 10 | Recency Ensemble Recency Ensemble Equal-logit blend of Elo, recency BT, recency margin, log-adjusted pyth, and recency points off/def. More → |
STRICT
14g
|
- | - | - | - | 0 | 0.689 | 64.3% | 0.214 | 14 |
| 11 | Margin Recency Margin Recency Margin regression with exponential recency weights on newer games. More → |
STRICT
14g
|
- | - | - | - | 0 | 0.667 | 57.1% | 0.226 | 14 |
| 12 | Points Off/Def Recency Points Off/Def Recency Off/def points regression with exponential recency weights. More → |
STRICT
14g
|
- | - | - | - | 0 | 0.667 | 57.1% | 0.225 | 14 |
| 13 | Bradley-Terry Bradley-Terry Static logistic paired-comparison model with one team strength parameter. More → |
STRICT
14g
|
0.751 | 68.5% | 0.205 | 0.597 | 1100 | 0.644 | 57.1% | 0.213 | 14 |
| 14 | Pythagorean Pythagorean Pythagorean win expectation from raw points scored and allowed. More → |
STRICT
14g
|
0.754 | 68.5% | 0.214 | 0.619 | 1100 | 0.600 | 57.1% | 0.242 | 14 |
| 15 | Adjusted Efficiency Adjusted Efficiency Opponent-adjusted efficiency model with separate offensive and defensive components. More → |
STRICT
14g
|
0.753 | 68.1% | 0.203 | 0.592 | 1100 | 0.600 | 57.1% | 0.237 | 14 |
| 16 | Log Adjusted Log Adjusted Log-scale adjusted efficiency model that downweights blowout leverage. More → |
STRICT
14g
|
0.753 | 68.1% | 0.203 | 0.592 | 1100 | 0.600 | 57.1% | 0.237 | 14 |
| 17 | Avg Margin Baseline Avg Margin Baseline Predict from simple average scoring margin in the training window. More → |
STRICT
14g
|
0.765 | 70.0% | 0.200 | 0.587 | 1100 | 0.600 | 57.1% | 0.237 | 14 |
Methodology
ELO / Bradley-Terry
- ELO: Iterative updates, K=64, HCA=100
- BT: Static logistic regression on all games
- Both model win probability, not margin
- ELO updates after each game; BT fits once
Pythagorean Models
- Raw: Classic points scored/allowed formula
- Efficiency: Pace-adjusted (pts per possession)
- Adjusted: Opponent-adjusted efficiency
- Log: Log-linear multiplicative scale
Margin Regression
- Team-level ridge regression on point margin
- Linear Bradley-Terry (margin target)
- Alpha=0.05 (CV-tuned)
- Learns home advantage from data (~6 pts)
Baselines
- Home Team: Always predict home wins (60%)
- Avg Margin: Higher average margin wins
- Models should beat these to add value