Methodology
PREDICTD calculates probabilities from measured data: results, schedules, rest, travel and, where licensed, player availability and market prices. It never asks a language model to pick a winner, does not count repetition as evidence, and does not publish a number when the evidence cannot support one.
Probability
Several simple models each estimate the home team's chance of winning. A stacking model, fitted on a later season the base models never saw, combines them; that same step calibrates the result so a 70% estimate behaves like a 70% event.
- Elo. Margin-adjusted Elo rating difference including home court.
- Rest-adjusted Elo. Elo recalibrated with rest days, back-to-backs, schedule density and travel.
- Recent form. Recent point margins and performance against Elo expectation.
- Team model. Team strength, form, season margin, rest and travel together.
- PREDICTD ensemble. Stacked logistic combination of the base models, fitted on a later out-of-sample season. It is also the calibration step.
- Market consensus. Median de-vigged bookmaker moneyline probability. A benchmark and independent signal, never the answer.
Current model 20260911.9d4de0: trained on 2007-08 to 2014-15, validated out of sample on 2005-06 to 2014-15.
Evidence strength
A separate 0–100 score describing the data behind a probability, never the probability itself. A 68% estimate with strong evidence and a 68% estimate with limited evidence are shown differently.
| Key inputs present | up to 40 |
| Games played this season | up to 20 |
| Reliability of the data sources | up to 20 |
| How recently the data was refreshed | up to 10 |
| Player availability covered | up to 10 |
Model confidence combines evidence strength with how closely the independent models agree. Preseason games are always low confidence.
When PREDICTD abstains
- No validated model is approved for this league yet.
- There is no verified game history for one of the teams.
- Recent seasons of results for these teams haven't been loaded yet.
- Too many key inputs are missing to estimate a probability.
- The model produced an invalid result, so nothing was published.
- Data sources disagree about when this game is being played.
- The supporting evidence is too weak to publish a probability.
- The data sources this prediction depends on are currently quarantined.
Integrity
- Every published prediction is stored permanently. Updates add a new version; nothing is overwritten.
- Each prediction records exactly which data existed at that moment. Later corrections never rewrite earlier predictions.
- Models are tested only on seasons after the ones they learned from, and a new model runs in shadow before it can replace the current one.
- Data sources are scored against verified results and quarantined automatically when they fail.
Inputs
elo_diffHome Elo minus away Elo, before home court.elo_probElo win probability for the home team including home court.elo_logitLog-odds of elo_prob.home_court1 when the home team plays at home, 0 at a neutral site.rest_homeDays since the home team last played, capped at 5.rest_awayDays since the away team last played, capped at 5.rest_diffrest_home minus rest_away.b2b_home1 when the home team played the previous day.b2b_away1 when the away team played the previous day.games_last7_homeHome team games in the previous seven days.games_last7_awayAway team games in the previous seven days.games_last7_diffgames_last7_home minus games_last7_away.form_homeHome team mean point margin over its last 10 games.form_awayAway team mean point margin over its last 10 games.form_diffform_home minus form_away.perf_homeHome team margin above its Elo expectation, last 20 games.perf_awayAway team margin above its Elo expectation, last 20 games.perf_diffperf_home minus perf_away.season_margin_homeHome team mean margin this season.season_margin_awayAway team mean margin this season.season_margin_diffseason_margin_home minus season_margin_away.tz_shift_awayHours of time-zone change for the away team since its previous game, capped at 3.
Data sources
- BALLDONTLIE (FREE (upgradeable to ALL-STAR / GOAT))Terms reviewed 2026-09-12
- FiveThirtyEight NBA history (Open data (CC BY 4.0))Historical NBA results 1946-2015: FiveThirtyEight (CC BY 4.0), game data from Basketball-Reference.com.Terms reviewed 2026-09-12
- The Odds API (STARTER (free, 500 credits/month))Terms reviewed 2026-09-12