Our NBA model answers one question per game: how often should this team win? Then it compares that number to the moneyline. Everything else on the NBA hub follows from that gap.
This post covers the model in plain terms, the backtest it had to pass, and what it can't see. For the product itself, start with free NBA picks.
The short version
| Piece | What it does |
|---|---|
| Team rating | Elo: every team starts at 1500 and moves after each game |
| Home court | +50 rating points for the home team (0 at neutral sites) |
| Back-to-back | -50 rating points for a team that also played yesterday |
| Win probability | Rating gap turned into a percentage |
| Edge | Model probability minus the price's implied probability |
Elo, the way it works here
Elo is the rating system from chess. Two things make it good for the NBA:
- It only needs results. Scores and dates. No box scores that might be missing or revised.
- It updates in the right direction. Beat a strong team and your rating jumps. Beat a weak one and it barely moves.
After each game, the winner takes rating points from the loser. How many depends on how surprising the result was, and how big the margin was. We use the margin formula FiveThirtyEight published for its NBA Elo. Bigger wins count for more, with diminishing returns. A heavy favorite's blowout counts for less, so strong teams can't inflate forever.
Before each new season, every rating slides 35% of the way back toward average. NBA rosters turn over. Last year's 60-win team is usually still good, but not as good as its final rating said.
Turning ratings into a win probability
For each game:
- Start with the home rating minus the away rating.
- Add 50 for home court (skip it at a neutral site).
- Subtract 50 if the home team played yesterday. Add 50 if the road team did.
- Convert that gap to a probability: 1 / (1 + 10^(-gap / 400)).
A 100-point gap is about a 64% favorite. Two even teams on a neutral court are a coin flip. Two even teams in a normal home game make the home side about 57%, which matches what NBA home teams have actually won in recent seasons.
Why back-to-backs are in the model
Rest is the one scheduling effect that is big, regular, and known in advance. Across the regular-season games in our data:
| Situation | Home win rate |
|---|---|
| Neither team on a back-to-back | 56.2% |
| Only the home team on a back-to-back | 49.8% |
| Only the road team on a back-to-back | 61.0% |
The second night of a back-to-back cost a team about 6 points of win probability. That wiped out most of home court. The full breakdown is in NBA back-to-backs and betting.
The model knows about a back-to-back from the schedule, before tip. It never peeks at the result.
The backtest it had to pass
Before the model is allowed to publish a single pick, it has to pass a test on games it never trained on:
- History: 15,478 completed games from 2014-15 through 2025-26 (regular season, play-in, and playoffs).
- Tuning: the four settings (how fast ratings move, preseason pullback, home court, rest penalty) were chosen on 2016-17 through 2024-25 only.
- Test: the untouched 2025-26 season, 1,322 games, predicted one at a time before each result was known.
Results on 2025-26:
| Measure | Model | Baseline |
|---|---|---|
| Brier score (lower is better) | 0.208 | 0.247 (home team at the league rate) |
| Picked the winner | 68.5% | 55.5% (always pick home) |
| Playoffs and play-in (91 games) | 0.228 Brier |
What's a Brier score? It measures how close the probabilities were to what happened. 0.25 is what you get by calling every game a coin flip. The publish gate requires beating both 0.25 and the home-team baseline. If a future backtest fails, the card doesn't post.
One honest note: picking 68.5% of winners is not a profit claim. Favorites win most NBA games, and the market already prices that. The money question is only answered by graded picks at real prices, which is what the NBA record is for.
What the model can't see
- Players. No injury model, no minutes projections. A star resting is invisible to the ratings and obvious to the market.
- Trades and signings until results reflect them. That's why October edges deserve extra skepticism.
- Travel, altitude, and 3-in-4 stretches. Back-to-backs are the only rest effect modeled.
- Motivation. Tanking in March and resting starters after clinching both happen, and both show up in the price first.
That's why the card caps edge at 8%. A gap bigger than that usually means the market knows something the ratings don't. And an operator can pull a game off the card before it posts if a star's status is unresolved.
How this shows up on the site
- One card per game day, posted around 11 AM ET and then locked
- Up to five moneyline plays, one free Pick of the Day
- Model probability, line, book, and edge shown on the free pick
- Flat 1u grading on the NBA record, nothing deleted
Same idea as the NFL model and the MLB card: a number, a price, and a record you can check.