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, teams generally spend 20% more on average, and that needs to be accounted for. 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:
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 an even rounder number, 10%. So:
a fair value contract returned a point of VORP per $16.75 million dollars last season.
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:
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 |
|---|---|---|---|---|---|---|
| 1 | Victor Wembanyama | 22 | 8.6% | 8.0 | 0.80 | +7.20 |
| 2 | Shai Gilgeous-Alexander | 27 | 24.8% | 9.0 | 2.29 | +6.71 |
| 3 | Nikola Jokić | 30 | 35.7% | 9.8 | 3.30 | +6.50 |
| 4 | Luka Dončić | 26 | 29.7% | 6.6 | 2.75 | +3.85 |
| 5 | Tyrese Maxey | 25 | 24.5% | 5.4 | 2.27 | +3.13 |
| 6 | Amen Thompson | 23 | 6.3% | 3.7 | 0.58 | +3.12 |
| 7 | Jalen Duren | 22 | 4.2% | 3.5 | 0.39 | +3.11 |
| 8 | Julian Champagnie | 24 | 1.9% | 3.1 | 0.18 | +2.92 |
| 9 | Chet Holmgren | 23 | 8.9% | 3.7 | 0.82 | +2.88 |
| 10 | Deni Avdija | 25 | 9.3% | 3.7 | 0.86 | +2.84 |
| 11 | Ausar Thompson | 23 | 5.7% | 3.2 | 0.52 | +2.68 |
| 12 | Cade Cunningham | 24 | 30.0% | 5.4 | 2.77 | +2.63 |
| 13 | Scottie Barnes | 24 | 25.0% | 4.9 | 2.31 | +2.59 |
| 14 | Payton Pritchard | 28 | 4.7% | 3.0 | 0.43 | +2.57 |
| 15 | Collin Gillespie | 26 | 1.5% | 2.7 | 0.14 | +2.56 |
| 16 | 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, 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 in 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 a grand slam, the Knicks won it all hitting singles and doubles.