Study · NBA · 2018-19 to 2024-25
DvP is worth
half a point.
Defense vs position, or DvP, is real but small. A guard facing one of the five defenses that give up the most to guards scores about half a point more. And that ranking barely settles in a whole season.
100,476 player games, 753 players, 6 seasons · Published 1 November 2026 · Free to quote under
CC BY 4.0 ·
Download the data (CSV)
NBA 2018-25DvP tested
7,499
Guard games v easiest 5
+0.9
Above his own average
+0.5
After a fair comparison
DvP ranks teams by what they give up to each position. Writers and fantasy players quote it all the time. So we asked the plain question: does it predict the next game?
We ranked every defense using only the games it had already played. Then we checked what each player scored against his own average so far.
See this season's numbers on our NBA defense vs position page.
Half a point,
not a big night.
Guards scored 0.9 points above their own average against the easiest five defenses. But they also ran 0.4 above it against a middle defense. Players who keep getting minutes are likely to be on the way up, so nearly everyone beats his earlier average a little. The fair number is the difference: 0.5 points (likely range 0.3 to 0.7).
| Defense faced | Player games | Above own average | Against middle 10 | Likely range | Beat average, per 100 |
| Easiest 5 (ranks 26-30) | 7,499 | +0.89 | +0.51 | +0.28 to +0.71 | 51.4 |
| Next 5 easy (21-25) | 7,859 | +0.58 | +0.19 | +0.03 to +0.37 | 49.8 |
| Middle 10 (11-20) | 15,372 | +0.39 | - | - | 48.5 |
| Next 5 tough (6-10) | 7,770 | +0.27 | -0.12 | -0.33 to +0.10 | 47.7 |
| Toughest 5 (1-5) | 7,684 | +0.12 | -0.26 | -0.48 to -0.04 | 47.2 |
Ranked on points given up to guards. Rank 30 gives up the most, as on our DvP page. The defense has played at least 10 games. The player has played at least 5 and averages 15 minutes or more. Likely range = 95 times in 100 when we resample whole team seasons. If it includes zero, we can't tell it from luck.
So a guard beats his average 51.4 times in 100 against the easiest five and 48.5 against a middle defense. That is about 3 more nights in 100. A player's points swing about 6.5 from his average on a normal night, so half a point is easy to miss. The tough end is smaller still: 0.3 points fewer against the toughest five.
Every position:
small and real.
The effect is there for all three positions. Each one clears luck, and each one stays under one point. Centers move the most.
| Position | Games v easiest 5 | Points v easiest 5 | Likely range | Games v toughest 5 | Points v toughest 5 | Likely range |
| Guards | 7,499 | +0.51 | +0.28 to +0.71 | 7,684 | -0.26 | -0.48 to -0.04 |
| Forwards | 6,538 | +0.35 | +0.13 to +0.56 | 6,810 | -0.28 | -0.47 to -0.07 |
| Centers | 2,341 | +0.68 | +0.32 to +1.00 | 2,403 | -0.54 | -0.84 to -0.23 |
Each figure is points against a middle-ranked defense, after taking off the player's own average. The easiest-five number was above zero for every position in all 6 seasons (guards +0.3 to +1.0), but most single seasons are too small to clear luck alone.
The table
oversells it.
Here is why DvP looks bigger than it is. Teams in the easiest five had given up 57.7 points a game to guards so far. In the next game they gave up 54.6. The toughest five had given up 48.6, and then gave up 52.5.
| Rank against guards | Defense games | Table said | Next game | Likely range |
| Easiest 5 (ranks 26-30) | 2,069 | 57.7 | 54.6 | 53.5 to 55.6 |
| Next 5 easy (21-25) | 2,144 | 55.4 | 54.4 | 53.5 to 55.2 |
| Middle 10 (11-20) | 4,194 | 53.3 | 53.9 | 53.3 to 54.5 |
| Next 5 tough (6-10) | 2,117 | 51.2 | 53.0 | 52.2 to 53.9 |
| Toughest 5 (1-5) | 2,096 | 48.6 | 52.5 | 51.4 to 53.8 |
Points given up to all guards in a game, per team.
The table showed a gap of 9.1 points between the two ends. The next game showed 2.1. Most of a team's place on the table is luck that doesn't carry over, and what is left is shared between several guards.
It barely
settles.
How many games until the rank means anything? We split each number into two parts: what is the team's true habit, and what is game-to-game luck. Then we asked how many games it takes for the two to count the same. We call that half real.
For guards it takes about 117 games. A season has 82. Plain team defense, which is just total points given up, takes about 11.
| Number | Real, per 100, after 10 games | After 20 | After 41 | After 82 | Games to half real | Likely range |
| Plain team defense (all points) | 48 | 65 | 79 | 88 | 11 | 9 to 14 |
| Against centers | 6 | 11 | 21 | 34 | 156 | 100 to 490 |
| Against guards | 8 | 15 | 26 | 41 | 117 | 80 to 268 |
| Against forwards | 3 | 5 | 10 | 17 | 388 | 210 or more |
Average of 6 seasons. Teams' true habits change with trades and injuries, so this is a best case for an early rank.
The reason is simple. The points a team gives up to guards swing about 17 from game to game, while real differences between teams are only about 1.5 points a game. Luck is ten times louder than the thing you want to measure.
You can see it in what happens next. Take the five easiest guard defenses after 20 games. On average, only 1.0 of the five stayed in the easiest five for the rest of the season. Pure chance gives 0.8. For plain team defense it was 2.7.
| Defense against guards | Rank after 10 games | Points given up | Final rank | Points given up |
| Cleveland 2023-24 | 30th | 65.3 | 5th | 50.2 |
| New Orleans 2023-24 | 29th | 64.1 | 7th | 50.8 |
| LA Clippers 2022-23 | 27th | 58.3 | 3rd | 51.8 |
| Brooklyn 2021-22 | 1st | 43.7 | 25th | 55.5 |
| Phoenix 2022-23 | 1st | 43.8 | 21st | 55.2 |
| Washington 2023-24 | 3rd | 44.9 | 28th | 55.5 |
Six of the biggest swings, per game given up to guards. The early rank uses each team's first 10 games. A higher rank gives up more.
Early on, last season can tell you as much. Through 20 games, last season's guard number was at least as good a guide to the rest of the year as this season's. The ranges overlap, so we would not call it better. Our tests here cover 4 pairs of seasons.
When it starts
to count.
For a player's next game, we can't tell the rank from luck before about game 20. The easy end clears zero from game 20. Both ends clear it only from about game 40. The effect is biggest late in the season, when each rank rests on 60 games or more.
| Games the defense had played | Games v easiest 5 | Points | Likely range | Games v toughest 5 | Points | Likely range |
| 1 to 9 | 1,068 | +0.38 | -0.03 to +0.79 | 1,150 | -0.19 | -0.62 to +0.27 |
| 10 to 19 | 2,335 | +0.31 | 0.00 to +0.62 | 2,360 | -0.18 | -0.47 to +0.14 |
| 20 to 39 | 4,647 | +0.31 | +0.06 to +0.53 | 4,844 | -0.16 | -0.40 to +0.08 |
| 40 to 59 | 4,746 | +0.46 | +0.21 to +0.69 | 4,893 | -0.38 | -0.60 to -0.16 |
| 60 or more | 4,650 | +0.71 | +0.42 to +1.00 | 4,800 | -0.45 | -0.71 to -0.20 |
All three positions together. Points are against a middle-ranked defense at the same stage, after taking off the player's own average.
For guards,
it's just defense.
Here is the biggest surprise. Most teams that are easy on guards are simply bad at defense. A bottom-five team against guards was also in the bottom ten for all points 80 times in 100.
So we ranked teams on plain points given up and ran the same test. That one simple number did about as well or better at every position. And once you know it, the guard rank adds almost nothing. We compared teams with a similar overall defense, split by their guard rank. The difference was 0.1 points, which is noise.
| Position | Easiest 5, DvP | Easiest 5, team | Toughest 5, DvP | Toughest 5, team | Extra from DvP | Likely range |
| Guards | +0.51 | +0.53 | -0.26 | -0.54 | +0.07 | -0.17 to +0.29 |
| Forwards | +0.35 | +0.54 | -0.28 | -0.44 | +0.30 | +0.08 to +0.49 |
| Centers | +0.68 | +0.77 | -0.54 | -0.50 | +0.59 | +0.26 to +0.87 |
Team = ranked on all points given up. Extra from DvP = among teams in the same third on plain defense, players facing the third ranked easiest for their position, against the third ranked toughest. Player games on the team rows, easiest then toughest five: guards 7,681 and 7,805, forwards 6,654 and 6,720, centers 2,394 and 2,320.
Centers are the exception. Knowing what a team gives up to centers tells you something plain defense doesn't, about 0.6 points. Forwards get a little, about 0.3. One likely reason: a team with no rim protector has a real hole in one spot, while guards score in too many ways for one matchup to show.
Why to be
careful.
Beware of final tables. Many DvP tests use the rank from the end of the season. That table already includes the game being predicted. Do that and the effect looks like 0.7 for guards, 0.7 for forwards and 1.1 for centers. That is 40 to 90 per cent too high. Nobody has that table on the day.
Three positions only. ESPN lists most players as a guard, forward or center. Sites that split point guards from shooting guards, or track who actually guarded whom, may find more. We can't test that here, because our labels merge those spots in later seasons.
Who else is playing. We did not allow for injuries, rest, or who the defense had faced. A rank can come from a soft schedule. A guard can also get more shots because a teammate is out, and that has nothing to do with the defense.
Only players who played. A player who sat out a game isn't in it, so this says nothing about whether DvP predicts who plays.
Points only. We tested points, not rebounds, assists or threes, and no betting lines. A line may already allow for the matchup, so none of this says a bet is good.
What this
means.
Think half a point. An easy matchup is a small nudge, not a reason to expect a big night. A player's own average matters far more.
Wait for 40 games. Early in a season, a DvP rank is mostly luck. Look at last season too.
For guards, check plain team defense. It tells you the same thing with less noise. For centers, DvP does add something.
No promises. One game can go any way. Half a point won't change that.
More on NBA at Bet Better: free NBA picks, NBA prop bets, NBA parlays, NBA odds, NBA injury report.
How we
measured.
The method
Games. NBA regular-season box scores from ESPN, the same table behind our DvP page, for 2018-19, 2019-20 and 2021-22 to 2024-25: 6,344 games in the main set. We left out 2020-21 before looking at any result, because 45 of its late games, from 7 April to 16 May 2021, have empty box scores. Adding it back changes nothing: 0.5 for guards. We use nothing after 2024-25, because later seasons are still being used to test our own models.
The rank. For each defense on each date, points scored by players at each position in games on earlier dates that season, divided by its games so far. Same position groups as our DvP page: PG, SG and G are guards; SF, PF and F are forwards; C is centers. Only players who got on the court count. Rank 30 gives up the most. All 30 teams must have played first.
Own average. A player's points per game in his earlier games that season. One row for each player game, sorted by date, shifted back one game.
Main set. Fixed before we saw results: the player has at least 5 earlier games and 15 minutes a game, and the defense has at least 10 earlier games. That gives 100,476 player games from 753 players, against 180 team seasons of defense.
Ranges. We resample whole team seasons of defense 2,000 times, because games against one defense are not independent.
Half real. Within each season, the game-to-game variance of a team's number divided by the variance left between teams after removing luck. Each cell in that table is games divided by games plus that figure. A check by splitting each season into odd and even games gave the same picture: 0.35 for guards, 0.11 for forwards, 0.15 for centers and 0.79 for team defense. After 20 games, a team's number and its number for the rest of the year matched by 0.16 for guards, 0.10 for forwards, 0.16 for centers and 0.64 for team defense, on a scale where 1 is a perfect match and about 0.15 is what luck can produce.
Checks. We rebuilt the band table in a separate database query with no shared code. All 15 counts matched exactly, and so did every average to three decimals. A separate query also gave 116 games to half real for guards and 11 for team defense. We recomputed 300 random rows by hand from earlier games only, and all 900 values matched. With ranks shuffled between teams on the same date, the guard effect averaged 0.1 and never passed 0.3.
Other ways of cutting it (guards, easiest five). Starters on 25+ minutes: 0.5. No minutes floor: 0.4. Players with 10+ earlier games: 0.5. Defenses with 20+ games: 0.5. Using all his other games that season as his average: 0.5.
We looked at many groups, so one group clearing zero by a little could still be chance.
The data file
nba-defense-vs-position-2018-2025.csv has 6,360 rows: one for each defense, season, position and checkpoint (after 5 to 60 games). Columns: season, defense_team, position, after_games, allowed_per_game_so_far, rank_so_far, games_left, allowed_per_game_rest, rank_rest. Rank 30 gives up the most. Position "all" is plain team defense. Each team in a row has played exactly that many games, and the row needs 10 or more games left, so short seasons have no 60-game rows.
Cite this study
18+ (21+ in some US states). Betting is a cost, not an income. If gambling is causing you harm, call 1-800-GAMBLER
(US) or Gambling Help Online on 1800 858 858 (Australia).