Pick two teams and see who's likely to win and by how much,
powered by an Elo model fitted on two decades of NBA games.
VS
wins
wins
Team sheet
Predicted score & margin
Season stats
points scored and allowed per game over the season shown on the
team sheet; "recent form" weighs the latest games heaviest, which is what the
totals prediction uses
Betting view: fair odds
fair odds = the break-even price for each market. A real bet only has
value if a bookmaker offers higher odds than shown here. The model is fitted on
past games only; it knows nothing about trades, injuries, rest days or who's tanking.
Not betting advice.
How this predictor works
Every NBA game since 2002 (regular season and playoffs, 30,000+ of them) feeds a
per-team Elo rating: beat a strong team and your rating jumps, lose to a
weak one and it drops, with blowout wins moving ratings more than squeakers.
Ratings carry between seasons but get pulled a quarter of the way back to average
each summer, because rosters change. The Elo gap (plus a fitted home-court
bonus) converts into an expected point margin with a known spread, and
that one bell curve produces everything you see: the win probability, the fair
point spread and the victory-margin odds, so the numbers can never contradict each
other. The game total comes from each team's recent scoring and defensive
rates, with the freshest games weighted heaviest. Everything runs in your browser;
honest caveat: the model only sees results, not injuries, trades or rest days.
Treat these as informed estimates, not prophecy.
What the numbers mean
Elo rating
A skill score updated after every game based on the opponent's strength, the
result and the margin. League average is about 1500; champions usually sit
1700+. On recent seasons the model had never seen, it picked the winner in
roughly two thirds of games, about as good as results-only NBA models get.
Predicted score
The most likely final score: the total comes from both teams' recent scoring
rates, the gap between the two numbers from the Elo difference. Real games
scatter around it by a dozen points either way, which the odds account for.
Fair spread
The handicap that makes the game a coin flip by the model. If a bookmaker's
line differs a lot from it, the model disagrees with the market. That's either
an edge or something the model can't see, like an injury report.
Victory margin
The chance the game lands in each winning-margin band, read off the same bell
curve as the win probability.
Venue
Home court in the NBA is worth roughly 2.5 points, fitted from two decades of
games rather than assumed. Pick who hosts, or a neutral floor for
hypotheticals.
Betting view: fair odds
Model probability converted to decimal odds (1 ÷ probability), the
break-even price. A bookmaker's offer is only mathematically good if it's
higher than the fair odds shown. Not betting advice.
♥ Support the project
SportMath is free, open and runs entirely in your browser. If it made the
games a little more fun, you can chip in to keep it running and growing.
Any amount is hugely appreciated!