How the forecast works

What goes into the numbers on every page here, how often they've been right, and a few things the data taught us along the way.

What goes into it

  1. Every player gets a rating for offense and one for defense, from who was on the floor for each possession over the last two seasons. Recent games count more.
  2. A team's strength comes from three things: its Elo rating, how it has outscored people this season (with last season as a starting point), and its players' ratings weighted by the minutes each is expected to play. So when a player gets hurt or traded, the team moves with him.
  3. Each game's chance comes from the predicted margin, with home court. Then we play out the rest of the season 10,000 times, play-in and playoffs included, and the odds you see are how often each thing happened.
  4. It reruns every night after the games.

How often it has been right

Every model gets graded on games it hadn't seen yet. That includes ours, and it includes 538's old forecasts, from their archive.

This season

39 games graded so far

Picked the winner
82.1%
Probability score
0.166
Home team always wins
51.3%

Written down for the next slate

  • Nov 9 · LAL at ATL → Atlanta 53%
  • Nov 9 · CLE at CHA → Cleveland 59%
  • Nov 9 · WAS at DET → Detroit 91%
  • Nov 9 · MEM at TOR → Toronto 64%
  • Nov 9 · IND at DAL → Dallas 64%
  • Nov 9 · DEN at HOU → Houston 60%
  • Nov 9 · SAS at PHX → San Antonio 68%
  • Nov 9 · NOP at GSW → Golden State 68%

Past seasons

About 10,500 games from 2015-16 to 2023-24. Each season is forecast using only the seasons before it.

Probability score grades the chance, not just the pick: it's the average squared miss between the chance we gave and what happened. Lower is better. Saying 50% every game scores 0.250.

Sort by
ModelPicked the winnerProbability score
Our forecast (blend + lineup ratings)
66.2%
0.212
Our blend without lineup ratings
66.1%
0.213
Lineup-adjusted plus-minus alone
65.8%
0.214
Player plus-minus alone
65.2%
0.216
Team points for minus against
65.1%
0.217
Elo (538-style)
65.0%
0.217
Chronos-Bolt (Amazon)general-purpose
64.5%
0.220
Box-score player value
64.5%
0.221
Timestral (Mistral)general-purpose
64.4%
0.219
TimesFM 2.5 (Google)general-purpose
64.4%
0.220
t0-gamma (The Forecasting Company)general-purpose
64.3%
0.220
Prophet (Meta)general-purpose
62.8%
0.225
Home team always wins
56.8%
0.245

When we say 70%, does it happen 70% of the time?

Every past game, grouped by how sure we were about the favourite. A dot on the line means the favourite won exactly as often as we said.

50%50%60%60%70%70%80%80%90%90%100%100%50-55%: We said 52.6%, favourite won 52.3% · 1,685 games55-60%: We said 57.5%, favourite won 56.8% · 1,625 games60-65%: We said 62.4%, favourite won 61.7% · 1,569 games65-70%: We said 67.5%, favourite won 66.3% · 1,472 games70-75%: We said 72.4%, favourite won 70.7% · 1,228 games75-80%: We said 77.5%, favourite won 75.8% · 1,122 games80-85%: We said 82.4%, favourite won 80% · 869 games85-90%: We said 87.3%, favourite won 85.3% · 585 games90-95%: We said 92.2%, favourite won 89.5% · 247 gamesWe saidFavourite won

Close to the line all the way up. We run a little too sure on the big favourites: games we gave about 92% went to the favourite 89.5% of the time.

With tonight's injury report

Injury reports only go back to 2018-19, so this one is graded on fewer games: 4,635 from 2020-21 to 2023-24, against our forecast on the same games.

ModelPicked the winnerProbability score
Our forecast
65.5%
0.217
Ours plus tonight's injury report
66.4%
0.214

Knowing who's out before tip-off helps. It picks a few more winners, and the chances get sharper. It isn't in the live forecast yet.

Against 538

538's pregame forecasts, from their archived data, on the same games.

SeasonsGames538Ours
2016-17 to 2018-19CARM-Elo3,64265.6% · 0.21566.3% · 0.212
2019-20 to 2022-23RAPTOR4,44065.1% · 0.21965.2% · 0.219

Against CARM-Elo we were a little better on both counts, and against RAPTOR it's a dead heat on the probability score.

The general-purpose models

Chronos, Timestral, t0-gamma, TimesFM and Prophet weren't built for basketball. Each one got a single list per team: the point margin of every game it had played, oldest first, up to its last 512. It guessed the next number. The home team's guess minus the away team's became a win chance, fit only on earlier seasons, same as ours. Four of them land just under Elo, and Prophet lands further back. That's about what a plain average of a team's last 82 games gets you, which makes sense. A list of scores can't see who's hurt or who just got traded.

What the data taught us

Five things we found while building it. A couple of them surprised us.

01

Adding up points per game picks the winner 59.5% of the time

Our first idea was the simple one: add up every player's points per game and see which team comes out ahead. It picks the winner 59.5% of the time. Always picking the home team gets 56.8%, so it barely beats doing nothing.

Points per game only sees one end of the floor. A team's points get split among whoever is out there, so the total mostly tells you how much a team scores. It says nothing about how much it gives up.

Plus-minus counts both ends: points scored minus points allowed while you're on the floor. Same players, same games, and it picks the winner 65.2% of the time.

Picked the winner, 2015-16 to 2023-24
Home team always wins56.8%
Add up points per game59.5%
Elo65%
Plus-minus65.2%
Our forecast66.2%

02

The last 10 games will lie to you

A hot stretch feels like news. Mostly it is noise. We rated every team on its last 5, 10, 20, 41, 82 and 164 games and checked which one picked winners best.

The last 10 games got 62.6%. A full season got 64.5%. Two seasons got worse again, 62.7%, because rosters change. Statisticians call the first part regression to the mean: an extreme stretch usually drifts back toward normal.

Best of all was about a season of games with the recent ones counting more, 65.1%. That is what the forecast uses. A good stretch counts, just not as much as it feels like it should.

Picked the winner, by how many games the team rating looks back
Last 5 games61.1%
Last 1062.6%
Last 2064.2%
Last 4164.4%
Last 8264.5%
Last 16462.7%
Recent games count more65.1%

03

Is the hot hand real? About 20% of it

When a player scores more than we expected over his last 10 games, about 23% of that extra carries into his next one. For plus-minus it is about 20%. That is from 360,480 player games.

So the hot hand exists, and it is small. Part of a hot stretch is a lasting change, like a bigger role. The rest is luck, and luck fades.

Share of a 10-game streak that carries into the next game
Points above expected23%
Plus-minus above expected20%

04

How players differ isn't how teams win

We ran a method called PCA over 7,713 player seasons. It finds the main ways players differ from each other. The two biggest are size and rebounding, and how much of the offense runs through you. Together they cover 62% of how players differ.

They explain about 3% of whether a team wins with those players on the floor. What wins sits in smaller differences: shooting efficiently, and a mix of threes and defensive rebounding. Those barely register as ways players differ, which is a big part of why the box score struggles to see them.

The five main ways players differ: share of how they differ vs share of winning
Size and rebounding: how players differ35.7%
Size and rebounding: winning0.3%
Scoring load: how players differ26%
Scoring load: winning3%
Efficient shooting: how players differ6%
Efficient shooting: winning11.7%
Threes and boards: how players differ5.2%
Threes and boards: winning12.3%

05

The league changed shape

Group players by how they play and the last 20 years tell their own story. Spot-up shooters went from 16% of rotation players in 2004-05 to 22% in 2025-26. Star creators went from 7% to 11%. Interior bigs fell from 11% to 7%, and playmaking guards from 17% to 13%.

Nobody told the method about the three-point boom. It found it on its own.

Share of rotation players, 2004-05 then 2025-26
Spot-up shooters, 2004-0516%
Spot-up shooters, 2025-2622%
Star creators, 2004-057%
Star creators, 2025-2611%
Interior bigs, 2004-0511%
Interior bigs, 2025-267%
Playmaking guards, 2004-0517%
Playmaking guards, 2025-2613%

Want the methods behind these? Our Data to AI course teaches them in five-minute lessons. Data to AI

See today's forecast

Questions

What is the probability score?

It's the Brier score: the average squared gap between the chance we gave and what happened. Being sure and right scores well, and being sure and wrong costs a lot. Lower is better. Saying 50% every game scores 0.250; ours is 0.212.

When it says 70%, does that team win 70% of the time?

Close to it. Across 10,422 past games the favourite won about as often as we said, running a little short at the top: games we gave about 92% went to the favourite 89.5% of the time.

Does the forecast know who's injured tonight?

Not yet. It knows who has been playing, from each player's minutes over his team's last three weeks, so a player who missed the last game gets no minutes. Adding the official injury report picked more winners in testing. It isn't in the live forecast yet.

538 forecasts: FiveThirtyEight data (CC BY 4.0), from the Internet Archive. Our forecast, built from play-by-play data. Not affiliated with the NBA.