r/nbadiscussion

Max contracts in the next CBA

If the apron system stays the same in the next CBA, do you think the NBPA would consider reducing the percentage for max contracts to 20% and 25%?

I know the current system benefits the top players but the players with lower/mid-tier salaries seem to be dependent on star players voluntarily taking reduced salaries. Not sure if this would actually end up benefitting a larger portion that make up the players association or if the reps would selfishly balk at it.

reddit.com
u/NPCzzzz — 6 days ago

Are we really at the "just enjoy Steph Curry" stage, or should we still expect another title run?

Lately, there’s been a growing sentiment among fans and media suggesting that we should simply sit back, appreciate Steph Curry’s remaining years, and stop obsessing over championship expectations given his age and Golden State's roster situation. 

On one hand, he has nothing left to prove. He revolutionized basketball, won four rings, and every historic night from here on out is basically house money.

On the other hand, Curry is still performing at an elite, All-NBA level. For a generational superstar playing like this, treating his final window purely as a nostalgic "farewell tour" feels like giving up on contention too early.

Where do you stand on this? Are you content just enjoying his greatness on a nightly basis, or should the front office still be expected to push all their chips in to chase Ring #5 while Steph can still play at this level?

reddit.com
u/Altruistic_Net_5804 — 9 days ago

Every Player Graded Through a Skill Wheel [OC]

Ive spent the past couple weeks working on this personal project of mine. I built a skill wheel that grades 54 different aspects of basketball. I tried breaking down each big skill (such playmaking) into smaller skills and use that to sort of evaluate a player as a whole. Now, of course the data available to the public is limited so a lot of niche skills are pretty hard to quantify but I think I got a sort of good estimate of the skills. If you guys have any ideas for skill grading/skills to add or anything, just let me know I am very open to feedback.

Here is a picture of on of the diagrams, it is much better to see image form than to read:

https://imgur.com/a/wml7Jqc

Here are the skills I decided on:

Offense: 12 groups, 33 skills

  • Finishing: Rim Finishing, Contact Finishing
  • Above the Rim: Dunking, Lob Threat
  • Touch Shots: Floaters, Hooks, Short Jumpers
  • Midrange: Pull-up Midrange, Catch-and-Shoot Midrange, Turnarounds & Fadeaways
  • Three-Point: Catch-and-Shoot 3s, Quick 3s, Off-Dribble 3s, Deep 3s
  • Free Throws: Free Throw Shooting, Foul Drawing
  • Self-Creation: Isolation, Pick-and-Roll Ball Handler, Post Scoring
  • Driving: Rim Pressure, Drive & Kick
  • Off-Ball Scoring: Cutting, Movement Scoring, Transition Scoring
  • Playmaking: Creating for Others, Creation Quality, Rim Feeding, Shooter Feeding, Connective Passing, Transition Passing
  • Ball Security: Passing Security, Handle Security, Avoiding Offensive Fouls
  • Screening & Glass: Screen Setting, Rolling, Offensive Rebounding, Putback Scoring

Defense: 6 groups, 21 skills (There is less because defense is harder to quantify)

  • Perimeter: Isolation Defense, Closeouts, On-Ball Stripping, Perimeter Blocking
  • Interior: Shot Blocking, Rim Contesting, Rim Deterrence
  • Rebounding: Securing Boards, Boxing Out
  • Disruption: Passing Lanes, Charge Taking, Loose Ball Recovery
  • Assignments: Post Defense, Positional Versatility, Guarding Stars
  • Discipline: Fouling Discipline, Transition Defense

I can't really explain each grade because it will be too long, but if you have any questions, you can ask me and I'll respond but I will explain certain ones.

Three Pointers

For Three Point grading I spilt them up into Catch and Shoot 3s (0 dribbles), Quick 3s (1-2 dribbles) and Off Dribble 3s (3+ dribbles), Deep 3s (27ft+). For the whole project I used NBA play by play data a LOT so that data comes in lines like this MISS Herro 27' 3PT Step Back Jump Shot,Missed Shot,Step Back Jump shot,1,3,260,0022501055,2026-03-25,2025-26

Parsing the distance for Deep 3s was easy. For the dribble 3s, the NBA API carries data for shots off certain number of dribbles, but you can also mix this with defender distance so for example there is data on each players 3-6 Dribble 3FGM/FGA with a defender 2-4 feet. So I parsed through all that and each player's attempts and FGs are separated by dribbles and defender distance. Each group also has a league-average rate, so a player's expected 3P% for lets say Catch and Shoot is just the league average 3p% on their defender distance (so for Curry if he takes way tighter catch and shoots his expected 3p% on that is skewed for the tight defender catch and shoot league average). So then a player is compared by their volume and efficiency. Each player gets some league average since if you make lets say like 15/30 Catch and Shoot 3s that is a pretty low sample over like 150/350. The volume is a per 75 basis so not a minutes thing, and then score is bascially a volume * effieciency metric that is Z scored across the league so each skill has the same scale.

Here is Curry 2025-26 for example

Catch-and-Shoot 3s 97th of 388 Att 247 3P% 37.7% x3P% 36.2% +0.3

Quick 3s 1st of 388 Att 87 FG% 48.3% xFG% 33.4% +3.1

Off-Dribble 3s 14th of 388 Att 236 3P% 40.7% x3P% 33.1% +1.1

Deep 3s 1st of 388Att 261 FG% 37.2% xFG% 31.9% +4.8

Finishing

Layups only, from the play-by-play: driving layups, finger rolls, reverse layups. Dunks, cuts, transition, alley-oops and putbacks are left out, because they're graded elsewhere. The efficiency is graded against the same position in this case.

And then again adding some of the league-average shots, volume x efficiency with volume being per 75 and then Z scored the league again.

Rim Deterrence

Rim deterrence is pretty much like a RAPM style regression, a matrix in which the opposing teams Rim Rate is taken into account. Transition shots are removed because then the best Rim Deterers would just be the best point guards that prevent turnovers not the actual best defenders. It is a RAPM regression so it adjusts for teammates but this one requires more possesions so some low usage role players might not have the grade.

A lot of these defense ones are self explanatory

Positional Versatility

This one uses the matchup API to see who he guarded 1 on 1 and then the spilt and compare the percentage

Group Listed positions

G (guard) W (wing G-F, F-G) F (forward) B(big F-C, C-F) C (center)

u/Glokk39Spaz — 7 days ago

I missed the NBA

Its nice to see players playing again, and exciting new teams with Bron going to Philly, Lamelo to Wolves etc. The thing about American sports (I watch the NFL too, I’m from Australia) is it has the best recurring narratives and storylines + best ecosystem of analysis & commentary out of any sport in the world, it really is box office.

I love playing football (soccer) and watching the EPL but sometimes it just doesn’t compare overall as an entertainment product to American sports (Lamar Jackson and Josh Allen “will they/wont they, go to the superbowl”, “is Lamelo good and was held back at Charlotte or will he crash and burn on the Wolves”, analysing NFL plays and quarterback performance, analysing if Jaylen Brown is good or not and if the Celtics were justified in the trade etc.). Ive never really played basketball or NFL but I cant stop watching.

reddit.com
u/Reasonable_Buddy_927 — 9 days ago
▲ 43 r/nbadiscussion+1 crossposts

Generating Surplus: Value Over Salary Expectation (VOSE)

I went into this wanting to examine the effect of large veteran contracts on team building. As I got into it, I realized things were complicated. So I’m starting simple, trying to understand what is good value, where it comes from, and how it contributes to winning.

How Much a VORP Cost?

Here’s our recipe for calculating the cost of a point of VORP:

  • Cost of VORP = League total salary / (League total regular season + playoff VORP)

Although it would have been easier to use the league salary cap as our numerator, a more honest accounting needs to include the extra 20% teams generally spend on average. Likewise, playoff production is real production, part of what teams pay for, so playoff VORP was included on par with regular season VORP. This adds roughly 12% to the VORP total.

For last year, the COST of VORP was $5.6b / (298.4 + 36.7) = $16.75m. To make this comparable across seasons, we can measure it as a percentage of the cap, rather than in dollars: $16.75m / $154.6m = 10.8%. Looking at the past 20 seasons, the cost fluctuates around 11% as the salary cap triples:

Season Salary cap Total salary Total VORP Salary per VORP % of cap
2006-07 $53.1m $1.9b 332.0 $5.8m 11.0%
2007-08 $55.6m $2.1b 339.9 $6.1m 10.9%
2008-09 $58.7m $2.2b 334.9 $6.4m 11.0%
2009-10 $57.7m $2.1b 333.4 $6.4m 11.0%
2010-11 $58.0m $2.0b 333.1 $6.1m 10.5%
2011-12* $58.0m $2.0b 277.0 $7.2m 12.4%
2012-13 $58.0m $2.1b 337.0 $6.3m 10.8%
2013-14 $58.7m $2.0b 338.1 $6.0m 10.3%
2014-15 $63.1m $2.2b 334.4 $6.5m 10.4%
2015-16 $70.0m $2.4b 333.7 $7.0m 10.1%
2016-17 $94.1m $3.0b 331.3 $8.9m 9.5%
2017-18 $99.1m $3.3b 331.9 $10.0m 10.1%
2018-19 $101.9m $3.6b 333.8 $10.9m 10.7%
2019-20* $109.1m $3.8b 290.2 $13.0m 11.9%
2020-21* $109.1m $3.8b 299.5 $12.8m 11.7%
2021-22 $112.4m $4.1b 339.2 $12.0m 10.7%
2022-23 $123.7m $4.5b 330.7 $13.6m 11.0%
2023-24 $136.0m $4.9b 334.9 $14.6m 10.7%
2024-25 $140.6m $5.2b 338.0 $15.3m 10.9%
2025-26 $154.6m $5.6b 335.1 $16.8m 10.8%
Avg 10.8%

(* shortened seasons)

This gives us this rule of thumb:

>1 point of VORP costs 11% of the salary cap

If we want to be lazy about it and exclude playoff VORP, it becomes 10%, an even rounder number. So:

>In 2025-26 a fair value contract returned a point of VORP per $16.75m

Searching for Surplus Value

The problem with fair value contracts is that a team made up of them will be average. Here’s team VORP totals for the past season:

Rank Team Regular season VORP Playoff VORP Total VORP
1 OKC 22.0 4.4 26.4
2 SAS 19.4 6.8 26.2
3 NYK 17.6 6.2 23.8
4 DET 18.7 3.3 22.0
5 BOS 18.9 1.6 20.5
6 CLE 14.0 3.7 17.7
7 HOU 15.7 0.8 16.5
8 DEN 15.5 1.0 16.5
9 CHO 15.5 — 15.5
10 MIN 13.3 2.1 15.4
11 TOR 12.8 1.3 14.1
12 LAL 12.1 1.1 13.2
13 MIA 12.9 — 12.9
14 ATL 12.3 0.4 12.7
15 ORL 11.1 1.4 12.5
16 PHO 11.6 0.5 12.1
17 LAC 11.3 — 11.3
18 POR 10.0 0.8 10.8
19 PHI 9.4 1.3 10.7
20 GSW 9.8 — 9.8
21 NOP 4.9 — 4.9
22 DAL 4.5 — 4.5
23 CHI 4.2 — 4.2
24 MEM 3.4 — 3.4
25 MIL 2.2 — 2.2
26 IND 1.2 — 1.2
27 UTA 0.5 — 0.5
28 SAC -0.9 — -0.9
29 BRK -1.9 — -1.9
30 WAS -3.6 — -3.6
Total 298.4 36.7 335.1
Avg 9.9 1.2 11.2

Spending your salary cap on fair value contracts gets you to 9 VORP. Spending another 20% on top might push that to 11 VORP, maybe enough to earn a play-in berth. To do better than that and make some noise in the playoffs, you need contracts that generate surplus. Eventual champion Knicks, runner up Spurs, conference finalist OKC, and the upstart Pistons all accumulated double that 11 VORP mark.

Value Over Salary Expectation (VOSE)

Generating surplus team VORP means having a team of players generating surplus value on their individual salaries. We can call this “Value Over Salary Expectation”, or VOSE:

  • Total VORP = Regular Season VORP + Playoff VORP
  • Expected VORP = Salary / Cost of VORP
  • VOSE = Total VORP - Expected VORP

Let’s look at the player’s who generated the most production over expected for their salaries (cut-off 2.5 VOSE):

Player Age Cap % VORP Expected VOSE
Wemby 22 8.6% 8.0 0.80 +7.20
Shai Gilgeous-Alexander 27 24.8% 9.0 2.29 +6.71
Nikola Jokić 30 35.7% 9.8 3.30 +6.50
Luka Dončić 26 29.7% 6.6 2.75 +3.85
Tyrese Maxey 25 24.5% 5.4 2.27 +3.13
Amen Thompson 23 6.3% 3.7 0.58 +3.12
Jalen Duren 22 4.2% 3.5 0.39 +3.11
Julian Champagnie 24 1.9% 3.1 0.18 +2.92
Chet Holmgren 23 8.9% 3.7 0.82 +2.88
Deni Avdija 25 9.3% 3.7 0.86 +2.84
Ausar Thompson 23 5.7% 3.2 0.52 +2.68
Cade Cunningham 24 30.0% 5.4 2.77 +2.63
Scottie Barnes 24 25.0% 4.9 2.31 +2.59
Payton Pritchard 28 4.7% 3.0 0.43 +2.57
Collin Gillespie 26 1.5% 2.7 0.14 +2.56
Kon Knueppel 20 6.5% 3.1 0.60 +2.50

The massive generators of surplus are Wemby, a possible GOAT candidate on his rookie contract, and Shai and Jokic, two MVPs still in their primes. After a bit of a gap, prime Luka on a 30% contract is next on the list. These are arguably the best 4 players in the game, 2 of whom have won CHIPS ("Who Deserved the CHIP" parts 1, 2, 3, 4), and two who could.

The rest of the list is comprised of young stars on max contracts (Maxey, Cunningham, Barnes), high performers on rookie contracts (both Thompson twins, Duren, Chet, Knueppel), and young players outplaying cheap contracts (Champagnie, Avdija, Pritchard, Gillespie).

The flip side of this is players who produced the least compared to what would be expected for their contracts:

Player Age GP Cap % Total VORP Expected VOSE
Khris Middleton 34 63 21.5% -0.9 1.99 -2.89
Tyrese Haliburton — 0 29.5% 0.0 2.72 -2.72
Zach LaVine 30 39 30.7% 0.2 2.84 -2.64
Anthony Davis 32 20 35.0% 0.7 3.23 -2.53
Jordan Poole 26 39 20.6% -0.4 1.90 -2.30
Trae Young 27 15 30.0% 0.5 2.77 -2.27
Ja Morant 26 20 25.5% 0.1 2.35 -2.25
Damian Lillard — 0 23.7% 0.0 2.19 -2.19
Kyrie Irving — 0 23.6% 0.0 2.18 -2.18
Domantas Sabonis 29 19 27.4% 0.4 2.53 -2.13
De'Andre Hunter 28 45 15.1% -0.6 1.39 -1.99
Patrick Williams 24 72 11.6% -0.9 1.07 -1.97
Bub Carrington 20 82 3.0% -1.6 0.28 -1.88
Cody Williams 21 67 3.7% -1.5 0.34 -1.84
Jalen Green 23 32 21.7% 0.2 2.00 -1.80
Darius Garland 26 45 25.5% 0.6 2.35 -1.75
Ace Bailey 19 72 5.9% -1.2 0.54 -1.74
Jayson Tatum 27 16 35.0% 1.5 3.23 -1.73
Nolan Traoré 19 56 2.5% -1.5 0.23 -1.73
Rob Dillingham 21 65 4.3% -1.3 0.39 -1.69

The worst 10 are players with salaries over 20% of the cap who missed games. Of these, we have players not playing much (LaVine and Poole), playing even less than that (AD, Trae, Morant, Sabonis), and not playing at all (Haliburton, Lillard, Kyrie). Only Middleton played a reasonable number of games, but as was the case with many of these players, it was within a ridiculous unserious tanking context.

Further down the list we see a combination of young players on tanking teams (Carrington, Cody Williams, Ace Bailey, Traoré, Dillingham), busts on medium money (DeAndre Hunter, Patrick Williams), good players missing games (Tatum, Garland), and Jalen Green, a young player who missed games and hasn’t yet lived up to his 20%+ contract.

The New York Knickerbockers

Absent from the above list of top VOSE players is any New York Knick. How did they do it?

# Player Age Cap % Total VORP Expected VOSE
1 Jalen Brunson 29 22.6% 4.5 2.09 +2.41
2 Mikal Bridges 29 16.1% 3.9 1.49 +2.41
3 Josh Hart 30 12.6% 3.2 1.16 +2.04
4 OG Anunoby 28 25.6% 4.0 2.36 +1.64
5 Karl-Anthony Towns 30 34.4% 4.8 3.17 +1.63
6 Mitchell Robinson 27 8.4% 1.8 0.77 +1.03

The answer appears to be: 1) By overspending the cap by 34% ($207m payroll), 2) Peaking in the playoffs, and 3) By having 6 prime-age players with VOSE over 1. All of the Knicks in the playoff rotation returned some surplus, with even Shamet and McBride together contributed another point of VOSE. In a league of teams trying to hit grand slams, the Knicks won it all hitting singles and doubles.

reddit.com
u/jazz-nuggets — 14 days ago