Data last updated Season 2026-27Model v20261029-acb94a

NBA model performance

Walk-forward: each season is predicted by models trained only on earlier seasons. Settings were chosen on 2016-17–2020-21; the test seasons were scored once. Log loss and Brier score measure how good the probabilities are; lower is better.

Test log loss (model)
0.619
market 0.594
Winner picked (test)
65.7%
market favourite 68.1%
Test games
6,575
2021-22 – 2025-26
Live record
20 games
log loss 0.675

Test seasons 2021-22 – 2025-26 (6575 games)

ModelLog loss ↓Brier ↓Winner picked ↑
Always home team (base rate)0.68770.247355.5%
Elo (logistic on rating gap)0.62240.216665.5%
Margin model (ridge regression)0.61860.214865.8%
Gradient boosting0.62200.216365.2%
Ensemble (final model)0.61900.215065.7%
Bookmaker moneyline (margin removed)0.59430.204568.1%
Average miss on the final margin
10.97 pts model · 10.54 pts betting spread
Average miss on total points
14.94 pts model · 14.79 pts betting total

6567 games with a pre-game line.

The final model averages elo 35%, margin 50%, gbm 15%. The betting market is better than the model on every measure, which is normal for a model without injury, lineup or rest-decision information. Bold marks the best non-market value.

Calibration on test seasons (home-win probability)

Validation seasons 2016-17 – 2020-21

ModelLog loss ↓Brier ↓Winner picked ↑
Always home team (base rate)0.68310.245057.2%
Elo (logistic on rating gap)0.62660.218664.4%
Margin model (ridge regression)0.62550.218164.7%
Gradient boosting0.62690.218764.7%
Ensemble (final model)0.62440.217664.8%
Bookmaker moneyline: no stored odds for these seasons

Used to choose every setting, so slightly optimistic.

Log loss by season

SeasonGamesEloMarginBoostingEnsembleMarket
2016-17 validation13090.6250.6230.6260.622–
2017-18 validation13120.6160.6200.6190.617–
2018-19 validation13120.6160.6130.6150.613–
2019-20 validation11420.6320.6300.6320.629–
2020-21 validation11650.6480.6430.6440.643–
2021-22 test13170.6360.6330.6370.6330.610
2022-23 test13140.6470.6440.6450.6440.626
2023-24 test13130.6130.6090.6160.6100.575
2024-25 test13150.6130.6060.6100.6070.586
2025-26 test13160.6030.6020.6020.6010.574
2026-27 in progress680.6260.6400.6170.6290.553

How the model works

Elo with a margin-of-victory multiplier (K = 8, home advantage 40 Elo points, 40% pulled back to average each off-season). A margin model (ridge regression) predicts the final point margin from Elo, recent point differential, points scored and allowed, home/road form, season record and rest, including back-to-backs; the margin becomes a win probability through a normal distribution. A matching model predicts total points.

A gradient-boosted classifier uses the same inputs. The final probability averages the three with weights chosen on validation seasons; the projected score combines the predicted total and margin. Betting lines are never a model input. Model v20261029-acb94a, trained Oct 29, 2026 on 15,510 games.