TODAY'S PREDICTIONS
RUNNING RECORD
RECENT PREDICTIONS
ABOUT THE MODEL
Accuracy
67.5%
on 2,116 held-out games
AUC-ROC
0.729
higher = better separation
Brier
0.209
lower = better calibration
Log Loss
0.606
random guess = 0.693
How it works
Each prediction is made by an XGBoost binary classifier trained on 14,108 NBA games spanning 11 seasons (2015-16 through 2025-26). Before every game, a feature vector is assembled from recent team form, head-to-head history, rest days, injury reports, and a custom player ELO system that tracks 7 skill dimensions (scoring, efficiency, defense, playmaking, rebounding, and two composite ratings) across a player's entire career.
Training
The dataset was split chronologically: 9,875 games for training, 2,116 for calibration, and 2,116 for the held-out test set. This ensures the model never sees future games during training. Hyperparameters were tuned with Optuna using time-series cross-validation. Raw probabilities are then passed through a Platt scaler (logistic regression on the calibration set) to produce well-calibrated confidence values.
Explainability
Every prediction is accompanied by SHAP values (SHapley Additive exPlanations) computed from the underlying tree model. The top 5 factors shown on each card represent the features that moved the probability the most for that specific matchup. Green bars support the pick, red bars work against it.