How the model works and how it did
Data & tests
Every number on this page is recomputed from the data and the current models (report generated 2026-10-18). Results are shown as they came out, including the ones that didn't work.
What the model does
Each morning it predicts every game's final score from recent team form, season record, rest and travel (back-to-backs, time-zone changes), shooting and turnover efficiency, head-to-head history, injuries, and home court. The score models use 74 inputs and the margin model 77; they were trained on games through Apr 2026.
The data we have
| Dataset | Source | Coverage | Rows | Used for |
|---|---|---|---|---|
| Game results & betting lines | Kaggle — nba_2008-2026.csv (v4) | 2007-08 → 2025-26 incl. playoffs | 24,440 | Training targets, head-to-head history, closing spread/total lines for testing |
| Model training set | Built by train.py (team form, rest & travel, Four Factors, injuries, H2H) | Dec 2020 → Apr 2026 | 7,641 | Training and held-out testing of the score, total and spread models |
| Team box scores | NBA stats API | 2020-12 → 2025-06 | 12,844 | Shooting, turnovers, rebounding and free-throw rates (Four Factors) |
| Players out (DNP) history | NBA stats API box scores | 2020-21 → 2024-25 | 31,841 | How much scoring each team was missing in past games |
| Home-court results | ESPN (incl. neutral-site flag) | 2016-17 → 2025-26 | 11,759 | League home-court advantage; neutral-site handling |
| Live data (daily) | ESPN schedule & scores, NBA stats API, The Odds API (FanDuel) | Current season | — | Today's games, recent form, injuries, market lines, results |
Last season's tests
Tested on 1147 games from Oct 27, 2025 – Apr 8, 2026 that the model never saw during training, against the real closing betting lines.
1. Picking the winner — this works
Model
66.8%
winners named correctly
"Better record" rule
67.3%
pick the team with the better record
Always pick home
54.9%
simplest baseline
The model is most reliable when it predicts a clear margin:
Across four seasons (2022-23 → 2025-26, 4,899 games, retrained before each one) the model named 64.4% of winners vs 63.3% for the better-record rule. In 2025-26 alone the simple rule was slightly ahead — one season is a small sample.
2. Over/Under vs the betting line — no proven edge
The model's total is less accurate than the market's: it missed by 15.27 pts on average vs 14.55 for the closing line. At standard −110 odds you need 52.4% to break even.
| Model total vs line | Games | Win rate | Units at −110 |
|---|---|---|---|
| 0–2.5 pts | 302 | 51.3% | -6.1 |
| 2.5–5 pts | 264 | 51.5% | -4.4 |
| 5–8 pts | 433 | 48.0% | -35.9 |
| 8+ pts | 138 | 52.9% | +1.4 |
No band is reliably above break-even: the best one covers only 138 games, too few to tell a small edge from luck. An earlier test (Dec 2024 – Jun 2025) showed 57.3% in the 2.5–5 pt band. It did not repeat on 2025-26, so the site shows those picks as unproven "leans".
3. Against the spread — no edge
| Model margin vs spread | Games | Win rate | Units at −110 |
|---|---|---|---|
| 0–2.5 pts | 420 | 53.6% | +9.5 |
| 2.5–5 pts | 365 | 45.5% | -48.1 |
| 5+ pts | 353 | 51.3% | -7.5 |
Overall the spread picks lost money. The one band above break-even is a few hundred games from a single season, so it's more likely noise than an edge; it needs to hold up again this season before it means anything.
4. Home court is shrinking
Home teams won by 3.1 pts on average in 2016-17 but only 1.7 in 2025-26. The model uses 1.85 pts (the last three seasons) and zero at neutral sites like the NBA Cup in Las Vegas or games abroad. Team-specific home-court edges — even Denver's altitude — weren't distinguishable from noise.
Limits
- Close games are close to a coin flip: when the predicted margin is under 3 pts, the model is right about 52.3% of the time.
- The market prices totals and spreads better than this model. Nothing here beat the betting line reliably last season.
- Late injury news, rest decisions and trades after picks are published are not reflected.
- Backtests describe the past. They don't guarantee future results.