No sections yet. Run python scripts/nba_team_outlook.py, then predmarkets nba-page.
Win totals, offence and defence for all 30 teams, built up from each player's projected games, minutes and impact, then simulated 2,000 times. Shown against the Kalshi win-total market.
Ranks are mean ranks across simulations (1 = best). Seed odds are within the conference: top 6 avoids the play-in, 7–10 is the play-in.
What history says about the usual causes: well-paid players returning from a lost season have played about 30 games; the very top draft picks have been close to average players as rookies (about one extra win); and young rosters have not beaten the sum of their players. Gaps can also come from roster moves after the roster snapshot. Treat them as questions to check, not edges.
Expected games (80% range) and how much the team's net rating per 100 possessions would gain if the player played all 82.
Projected by draft slot from past classes: games, minutes per game and net impact per 100 possessions (replacement level is −2).
How many wins each player added over a replacement-level player (−2 points per 100 possessions), split into offence and defence. Full-health WAR is the same rate over every game he could have played.
Select a name to add him to the comparison below.