One day I open up my Bluesky feed and see “Jalen Duren signs a $200 million contract.” A handful of thoughts immediately pop into my head:

  • $200M! That’s an insane amount of money.

  • Isn’t this the same Jalen Duren who really struggled in the playoffs?

  • How can the Pistons compete paying Cade, Duren, and Ausar this much money?

  • $200,000,000!

  • $40M per season… for Jalen Duren?

  • This is a bad contract.

Then I stepped back and thought to myself... Why do all contracts seem bad now?

The Problem

The main culprit is how we evaluate contracts in the first place, and that’s by looking at salary. The issue is that dollars do not hold the same value across seasons. Our frame of reference for new contracts is built from contracts signed in previous seasons. A $200M contract signed now is a much smaller contract than a $200M contract signed years ago. While the dollars are the same, the NBA salary cap, the pool of money teams can use to pay players, continues to rise each season. This is illustrated in the graph below.

To further illustrate this point, let’s look at what 30% of the salary cap would be for each of these seasons. This number is the max starting salary Jalen Duren could have signed for. Notice the vast change in how much a 30% max player makes in recent seasons. What you considered around a $30M-a-year player in 2020 is now equivalent to a $50M-a-year player this season.

The dollar amount is changing so rapidly that I think most people, even myself, have something we can call cap illusion: the sticker shock fans feel at new NBA contracts because they judge them against an outdated frame of reference, one built when the salary cap was much lower.

So how do we analyze contracts better?

The Fix

Use the percentage of the salary cap the team has allocated to the player. In the previous chart, the dollar figures continually rose, but giving a player 30% of the salary cap will always be 30%. It’s a measure that is not going to become outdated or hurt our frame of reference like looking solely at raw dollars does. We can look at a player making 30% of the salary cap and compare them with current and historical players making that same cap % to help judge the true value of the contract.

Let’s use the example of Brandin Podziemski. I’m not here to argue about the merits of the contract as that’s a whole different post. What I am here for is to try to give a proper frame of reference. Here is the contract extension he just signed: five years, $110M, starting in 2027-28 and running through 2031-32, with a mutual option on the final season.

$110M for Podz! Overpaid, right? But how misleading is that number because of cap illusion? If we look at cap %, the same exact extension starting in the 2019-20 season would have been five years, $67M. Eight seasons later, that contract is instead estimated to be $110M. Same exact contract. Here is the year-by-year breakdown of the same contract signed eight seasons apart, illustrating how much the dollar figures have increased due to the rise in the salary cap.

It may be hard to fathom paying Brandin Podziemski $25M for the final season of the contract, but that would be the equivalent of paying him $15.9M in the 2023-24 season.

Cap % may not be for everyone yet, because what cap % should a starter be at? What cap % should a high-end rotation player be at? I still need to research and define those numbers. What we can do now is compare a contract’s value by seeing where other players with similar cap hits are. Podziemski’s extension does not start until 2027-28, but here are guards with a similar cap % this season.

If you think Podziemski belongs in the conversation with these players, then it’s a fair contract.

Which brings us back to Jalen Duren, the one where cap illusion gave me the quick gut reaction that it’s a bad contract. Let’s go through the same steps we just did with Podziemski to analyze the Duren contract..

Duren’s contract is a little unusual. Instead of the typical raises each season, his cap % drops to 20.99% in year two before climbing to finish around 21.1% for the last three seasons.

Right now that makes Duren the sixth-highest-paid center in the league, and he will end up with roughly the same contract as Rudy Gobert or Alperen Sengun have this season.

Here is the cap % list using all positions. I included everyone below Duren down to 20%, as Duren’s cap % will be around 21% for four of the five seasons of the contract.

When I look at this list of players and think about how valuable centers are in the NBA nowadays, I look at how good Duren’s impact metrics are and that pick-and-roll fit with Cade Cunningham. I don’t think this is a bad contract at all, especially since making All-NBA made him eligible for a 30% max. Cap illusion made me see $200M and think bad contract. Now I think, not bad, Pistons. Not bad.

And look, yes, there was that playoff performance. Backup center Paul Reed was making a bigger impact. But Duren is young. This is his age-23 season. Offensively, it may be a little bit of a spacing issue, since no one has to guard Ausar Thompson. Are there fit issues between the two? Probably. But when I isolate this contract and look solely at it, I think it’s a fair contract now that I’ve added the proper context to it.

Limitations

Even if cap % is better than raw dollars, that doesn’t mean it’s without limitations. There are some things we have to consider.

Positional salary rank is skewed. Rookie-scale players are underpaid by design. So Duren being the sixth-highest-paid center doesn’t necessarily mean he should be the sixth-best center. Victor Wembanyama is arguably the best center, yet he’s not in the top ten in salary because he’s still on his rookie contract.

Cap % at signing is different from cap % in the final year. We saw this with Podz, who has normal raises, and with Duren, whose cap % drops after the first season. Raises can also rise faster than the cap. Nikola Jokic signed a 35% max contract with 8% raises. Because the cap hasn’t grown 8% a year on average since he signed, Jokic is making 35.79% of the cap this season. Still, a contract’s cap % season by season is typically going to be in the same ballpark. Don’t stress over the exact number; just compare it to players around the same range. But one limitation is that their cap% does not remain the same for each season of the contract.

We do not always know the details right away. What gets posted to socials is typically the player-friendly version of the contract, given to the media by the agent. This is more of an issue during summer free agency. Deals can look bad when the news breaks, but then we eventually find out the last two years are non-guaranteed, or that a two-year Zach Collins deal has a team option on the second year. Just understand that what we initially get is the agent’s rose-colored-glasses view of the contract, meant to make the agent look good.

Extensions start in the future, so part of the bigger number is just the cap going up. Jaden McDaniels just signed a one-year, $40M extension. That sounds like a lot of money, but that contract doesn’t start until the 2029-30 season. We have three seasons to play before getting to this contract, not to mention the salary cap should continue to rise. That is very hard to put into perspective without looking at cap %.

The NBA does not have a simple CBA. The NHL CBA is such an easy read. The front office rules are quite simple, and it’s not hard to pick it up and run an NHL team. The NBA, on the other hand? You need to be a lawyer to read the NBA CBA. In the NHL, teams can’t exceed the salary cap. In the NBA, almost every team is over the salary cap, and there are so many exceptions that allow teams to exceed it. So if I say a 30% max player takes up 30% of the salary cap, that doesn’t necessarily mean he takes up 30% of the team’s total payroll that season.

We don’t know what the salary cap will be in future years, so we won’t know what the cap % will be in future seasons either. All we can do is estimate. Still, cap % is a better measure of a contract than looking solely at the dollar figure.

Cap Tools

Use Spotrac to look up player pages and see cap % rankings.

Further Reading

Check out this article, where I have cap % visuals for each team.

Check out this article, where I dive into why Jaylen Brown got traded, which also has a lot of cap discussion.

Other Recent Extensions