Skip to content

How it works

From raw data to calibrated predictions, explained simply.

NBA Predict is a research-grade forecasting system. Every number you see is the output of a rigorous pipeline designed to prevent data leakage, measure true predictive power, and benchmark against the sharpest market available.

The pipeline

01

Data ingestion

Every NBA game box score is pulled from the official NBA API, cleaned, deduplicated, and stored as parquet files. Three seasons of historical data power the model.

02

Feature engineering

Rolling averages, rest days, travel distance, head-to-head differentials, and fatigue metrics are computed strictly from games that occurred before the prediction date. No future data leaks in.

03

Model training

An ensemble of LightGBM, Logistic Regression, and a weighted ensemble model is trained on historical data. Hyperparameters are tuned with Optuna inside each training fold only.

04

Calibration

Raw model outputs are calibrated into true probabilities using Platt scaling. A 70% confidence prediction means the model expects to be correct 7 out of 10 times.

05

Market benchmarking

Every prediction is compared against Pinnacle closing lines — the sharpest publicly available market. This answers: is the model finding edges the market misses, or is it just following the crowd?

06

Walk-forward backtesting

The model is tested the way you would use it in real life: train on past games, predict future games, then move the window forward. No random shuffling. No peeking at test data.

Metrics glossary

Accuracy

Percentage of games where the predicted winner matches the actual winner.

Log Loss

Penalizes confident wrong predictions more than uncertain ones. Lower is better.

Brier Score

Measures calibration — how closely predicted probabilities match observed frequencies. Lower is better.

ROI

Return on investment from simulated flat bets at the recorded odds. Positive means profit.

Edge

The difference between the model's probability and the market's implied probability.

MAE

Mean Absolute Error for player prop predictions. Average distance between predicted and actual stat lines.

Frequently asked questions

What does 'confidence' mean?

Confidence is the model's calibrated probability for its predicted winner. A 72% confidence on the Celtics means the model believes Boston wins 72% of the time in this specific matchup context.

Why compare against Vegas closing lines?

Pinnacle closing lines represent the market's final consensus after all information is priced in. Beating the close is the standard test for whether a model has genuine predictive power or is just capturing public sentiment.

What is walk-forward backtesting?

Instead of shuffling all games randomly (which creates unrealistic future knowledge), walk-forward testing trains on games up to a cutoff date, predicts the next batch of games, then advances the cutoff. This mirrors real deployment.

Why are edge thresholds important?

Even a good model can lose money if it bets at bad odds. Edge thresholds filter recommendations to only those where the model's probability exceeds the market's implied probability by a margin that historically produced positive returns.

What is Brier score?

Brier score measures how well calibrated a model's probabilities are. A perfect model scores 0. A coin-flip model that always says 50% scores 0.25. Lower is better — it means the model's confidence levels match reality.

How often is the model retrained?

The Pi runs daily 6:30 AM ET retraining that first refreshes processed artifacts, then regenerates backtests, summary metrics, SHAP/report artifacts, and market comparison outputs. Daily slate timers use the newest available trained model, and the dashboard exposes report timestamps so stale metrics are visible.

Ready to explore?

See the model in action on today's slate, compare it against the market, or browse player props.