Skip to content

2025-26 regular season

Impact rating

How many points per 100 possessions a player adds to his team's margin, after accounting for the nine other players on the floor. Split into offense and defense.

70 players; under 250 minutes shown without a number

Impact: points per 100 possessions better or worse than an average player, with 80% ranges. Rank is league wide among players with 250+ minutes.

#PlayerImpact-9.00+9.0ODMin
4Chet HolmgrenC-F · OKC+5.7+1.6+4.11,997
5Nikola JokicC · DEN+5.3+4.8+0.62,265
11Neemias QuetaC · BOS+4.3+0.9+3.41,926
17Bam AdebayoC-F · MIA+4.1+2.2+1.92,361
41Jarrett AllenC · CLE+2.7+1.8+0.91,519
43Zach EdeyC · MEM+2.6+0.1+2.5284
44Jalen DurenC · DET+2.6+1.5+1.11,975
49Steven AdamsC · HOU+2.40.0+2.4730
62Mitchell RobinsonC · BOS+2.1+1.0+1.11,175
68Clint CapelaC · HOU+2.0-0.3+2.4926
71Rudy GobertC · MIN+1.9-2.2+4.12,380
77Robert Williams IIIC-F · POR+1.8-0.4+2.21,008
81Karl-Anthony TownsC · NYK+1.7+1.8-0.12,322
103Yanic Konan NiederhauserC · LAC+1.3+0.3+1.1423
108Kyle FilipowskiC · UTA+1.3+1.8-0.51,801
119Yves MissiC · NOP+1.1+0.3+0.81,297
136Moussa CisseC · DAL+0.9+0.1+0.9530
142Lachlan OlbrichC · CHI+0.8-0.1+0.9344
149Quinten PostC · MEM+0.8+0.4+0.41,159
166Dylan CardwellC · SAC+0.6-1.1+1.7907
179Luka GarzaC · BOS+0.5+1.4-0.91,117
187Day'Ron SharpeC · BKN+0.4-0.4+0.81,159
191Nikola VucevicC · ORL+0.3+0.1+0.21,818
192Goga BitadzeC · ORL+0.3-0.2+0.6972
204Brook LopezC · LAC+0.2-0.5+0.71,630
205Mark WilliamsC · PHX+0.2-0.5+0.71,416
213Jakob PoeltlC · TOR+0.20.0+0.11,149
214Thomas BryantC · CLE+0.1-0.1+0.3731
224Ariel HukportiC · PHI+0.1-1.2+1.3498
230Al HorfordC-F · GSW0.0+0.4-0.4969
237Jaxson HayesC · UTA-0.1-0.3+0.31,203
242Donovan ClinganC · POR-0.1+0.2-0.22,084
245Khaman MaluachC · PHX-0.1-1.5+1.4411
246Jusuf NurkicC · UTA-0.1-1.3+1.21,077
273Christian KolokoC · NOP-0.4-1.2+0.8357
275Duop ReathC · PHX-0.5-0.9+0.5258
307Deandre AytonC · WAS-0.8-0.1-0.71,958
312Ivica ZubacC · IND-0.9+0.1-0.91,447
318Alexandre SarrC · WAS-0.9-0.7-0.21,304
320Ryan KalkbrennerC · CHA-1.0-1.6+0.71,476
322Andre DrummondC · NYK-1.0-0.8-0.21,231
326Kel'el WareC · MIL-1.1-0.7-0.31,701
334Jonas ValanciunasC · DEN-1.1-0.2-0.9871
341Jock LandaleC · ATL-1.2+0.7-1.81,506
355Branden CarlsonC · POR-1.4+0.2-1.5488
363Myles TurnerC-F · MIL-1.5-2.2+0.71,912
402Nick RichardsC · MIA-2.0-0.9-1.1701
403Derik QueenC · NOP-2.0+0.4-2.32,023
408Tony BradleyC · NYK-2.1-1.2-0.8451
416Hansen YangC · POR-2.2-2.3+0.1300
421Moritz WagnerC · BKN-2.3-1.3-1.0427
431Maxime RaynaudC · SAC-2.9-0.6-2.31,964
-PJ HallC · CHANot enough minutes213
-DeAndre JordanC · NOPNot enough minutes199
-Walker KesslerC · LALNot enough minutes154
-Bismack BiyomboC · SASNot enough minutes141
-Dereck Lively IIC · DALNot enough minutes115
-Omer YurtsevenC · GSWNot enough minutes104
-Josh OduroC · NOPNot enough minutes82
-Trey JemisonC · TORNot enough minutes82
-James WisemanC · NYKNot enough minutes59
-Lawson LoveringC · MEMNot enough minutes49
-Mo BambaC · UTANot enough minutes44
-Hunter DickinsonC · NOPNot enough minutes43
-Olivier SarrC · CLENot enough minutes39
-Rocco ZikarskyC · MINNot enough minutes37
-Orlando RobinsonC · CHINot enough minutes25
-Vladislav GoldinC · MIANot enough minutes24
-Colin CastletonC · ORLNot enough minutes21
-N'Faly DanteC · NYKNot enough minutes15

Bars show the 80% range on a scale from -9.0 to +9.0. The tick is the rating. A range that crosses 0 means we cannot tell the player apart from average yet.

How this works

The method

Every game is cut into stints: stretches where the same ten players are on the floor. For each stint we count the points each side scored per 100 possessions. One regression then asks: which players, when they are on the floor, go with more points for their team and fewer for the other team, after accounting for everyone else out there? That is the offense (O) and defense (D) number; Impact is the sum.

With about 500 players and a lot of noise, the plain answer overreacts, so every player is pulled toward average (a ridge regression). How hard to pull is picked by testing on games the model did not see: we split games into 5 groups, fit on 4 and score the fifth. Longer stints count more because they have more possessions.

The range comes from refitting the model 50 times on reshuffled sets of games. 8 in 10 of those fits land inside the bar.

What we measured

Data
36,423 stints from 1,230 games, 582 players (450 with 250+ minutes)
Pull toward average
Strength 3,000, the best of 10 tried
Test error
63.3 points per 100 on unseen games, against 63.5 for guessing league average (112.3) every stint: 0.32% better. Single stints are short and mostly luck, so the gain is small even when the player signal is real.
Typical range width
3.2 points for the middle player
Matches on/off
Correlation 0.81 with raw on/off net rating (450 players)
Matches Courtside score
Correlation 0.47 with the box score based Courtside score (352 players)
Fitted
2026-09-27 · rapm-v1

What it cannot see

  • One season is noisy. Two players a point apart are usually not different; read the ranges, not the ranks.
  • It uses no box score at all: no points, rebounds or steals. A player gets credit only for what the scoreboard did while he played, so bench players who share the floor with the same teammates are hard to separate.
  • It does not know about role, matchups, garbage time or injuries, and players with few minutes stay close to 0 by design.
  • Players under 250 minutes are stored but shown as "not enough minutes".