San Antonio Spurs at Portland Trail Blazers, NBA forecast
You didn't pick this one.
Win probability
Starts from the pregame forecast, then moves with every score and the time left. Above the line favors POR; hover for each play.
Game center
From the ESPN box score.
Top performers
- Stephon CastlePoints33
- De'Aaron FoxAssists6
- Dylan HarperRebounds10
- Jrue HolidayPoints29
- Deni AvdijaAssists9
- Donovan ClinganRebounds11
Last plays
- Q40.0End of Game120–108
- Q40.0End of the 4th Quarter120–108
- Q421.3
shot clock turnover120–108 - Q443.3
Dylan Harper defensive rebound120–108 - Q445.1
Vit Krejci misses 26-foot three point jumper120–108 - Q455.9
Yang Hansen defensive rebound120–108 - Q459.0
De'Aaron Fox misses free throw 2 of 2120–108 - Q459.0
Sidy Cissoko enters the game for Toumani Camara120–108 - Q459.0
Kris Murray enters the game for Jerami Grant120–108 - Q459.0
Yang Hansen enters the game for Deni Avdija120–108
Turning points
The 5 plays that swung the win chance most, each judged at its own moment: the chance with the score just before it against just after.
- Q26.9
Jerami Grant makes 23-foot three point jumper (Deni Avdija assists)SA 56 – 65 POR · POR 57% → 73% +16POR 57% → 73%+16 pts - Q411:19
Dylan Harper makes 23-foot three point jumper (De'Aaron Fox assists)SA 91 – 89 POR · SA 47% → 60% +13SA 47% → 60%+13 pts - Q48:54
Dylan Harper makes 27-foot three point jumper (Keldon Johnson assists)SA 96 – 95 POR · SA 42% → 56% +14SA 42% → 56%+14 pts - Q48:14
Dylan Harper makes 2-foot driving dunk (Stephon Castle assists)SA 98 – 95 POR · SA 56% → 66% +10SA 56% → 66%+10 pts - Q47:49
Stephon Castle makes 24-foot three point jumper (Dylan Harper assists)SA 101 – 95 POR · SA 66% → 79% +13SA 66% → 79%+13 pts
The pick
Reconstructed from what was known before the game: the ratings at that point and the closing line.
Spurs 53%
Forecast Elo ratings alone
How often that comes true: NBA favorites the forecast gave 50–55% have won 49.4% of 342 graded games.
- Market
- SA -1.5
- ML SA -122 / POR +102
- Pre-line forecast
- SA 61%
- Elo + market-implied
- Elo ratings
- SA -2.5
- SA 61%
- Ratings vs. market
- +7.9 pts
- SA: Elo 60.5%, market 52.6%
- Fair odds
- SA -111
- POR +111 · the forecast as odds, no margin
- Pregame projection
- SA 111.0 – 109.5 POR
- Posted spread, posted total 220.5
How the number is built
Elo inputs in rating points (higher favors that team; 25–28 Elo is about a point of spread in football and basketball), then how the pieces combine.
| Factor | SA | POR | Why |
|---|---|---|---|
| Team rating | 1685 | 1507 | Elo entering the game; 1500 is league average |
| Home field | — | +36 | Worth 36 Elo in the NBA |
| Lineups | −14 | +54 | SA: Weaker than its recent lineups · POR: Stronger than its recent lineups (from the box score) |
| Elo ratings | SA +74 Elo | SA 60.5% | |
| Market-implied ratings | SA 61.2% | Team strength as past closing lines priced it, same game context | |
| Pre-line forecast | SA 61.1% | 10% Elo, 90% market-implied (log-odds blend) | |
| Forecast | SA 52.6% | Follows the market (vig removed): in testing, adding the ratings made it less accurate | |
Tale of the tape
This season coming into the game, regular season, each number with its league rank (the longer the bar, the higher). Home and road: the host's record at home against the visitor's on the road. Opponent Elo: how strong the teams each has played are, 1st the toughest. Offense and defense are points per 100 possessions, which sets aside how fast a team plays.
| SA | Stat | |
|---|---|---|
| 3rd of 30119.7 | Points scored | 115.517th of 30 |
| 8th of 30111.7 | Points allowed | 115.816th of 30 |
| 3rd of 30+8.1 | Margin | −0.319th of 30 |
| 4th of 30117.4 | Offense rating | 111.822nd of 30 |
| 3rd of 30109.5 | Defense rating | 112.113th of 30 |
| 14th of 30101.7 | Pace | 102.88th of 30 |
| 3rd of 308–2 | Last 10 | 7–36th of 30 |
| 2nd of 3029–12 | Road vs home | 24–1714th of 30 |
| 16th of 301500 | Opponent Elo | 149918th of 30 |
| 2nd of 301685 | Elo rating | 150718th of 30 |
Who's playing
Who sat out, from the box score, and what each absence cost against the lineups the team had been playing.
Spurs
−14 EloFull strength: nobody who matters sat out.
Trail Blazers
+54 EloFull strength: nobody who matters sat out.
Rating history
Each team's Elo over the last two seasons. Hover or drag to compare on any date.
Recent form
Last five results, and whether the forecast hit.
Against the line
How each team has done against the closing spread and total, coming into this game.
| This season | ||
|---|---|---|
| Against the spread | 49–36 | 45–39 |
| Last 10 | 5–5 | 6–4 |
| Favorite | 35–30 | 20–17 |
| Underdog | 14–6 | 25–22 |
| Overs–unders | 36–49 | 43–41 |
| Overs–unders, last 10 | 4–6 | 2–8 |
Against each game's closing line. Books set every line knowing these records: across 3,901 past games, the team with the better record against the spread so far that season covered 51.2%, short of the 52.4% a standard −110 bet needs, and over/under streaks held 48.0% of the time. They describe the past.
Head to head
SA 8–4 POR in their last 12 meetings; the forecast called 9 of 12.
- Apr 21
POR 106 @ SA 103PlayoffsPicked SA 83%Miss - Apr 19
POR 98 @ SA 111PlayoffsPicked SA 84%Hit - Apr 8
POR 101 @ SA 112Picked SA 58%Hit - Jan 3
POR 115 @ SA 110Picked SA 73%Miss - Nov 26
SA 115 @ POR 102Picked SA 52%Hit - Apr 6
SA 109 @ POR 120Picked POR 58%Hit - Dec 21
POR 94 @ SA 114Picked SA 70%Hit - Dec 13
SA 118 @ POR 116Picked SA 58%Hit



