The NBA tends to adapt to new collective bargaining agreements in a fairly cyclical way. The immediate aftermath is caution. The last CBA began during the 2018 season. The biggest contract any free agent got by changing teams in the 2018 offseason went to LeBron James, who earned a predictable four-year max. The second-biggest deal? That went to Kyle Anderson, who got a four-year mid-level contract from the Grizzlies. In 2011 only four total free agents got contracts worth eight figures annually. Teams know what the new rules are before the deal is even signed, but it takes a year or two for them to learn how to actually apply them in practice. They tend to get a bit more aggressive in the years that follow.
That’s going to be tricky under the 2023 CBA because the new rules were designed to be restricting. In exchange for a few minor allowances given to lower-payroll teams, the NBA made it significantly harder for teams at the higher end of the payroll spectrum to add talent. Those changes are already rippling outward. The slower free agent market is creating a leverage imbalance when it comes to contract extensions. Teams are struggling to trade their high-end veterans because so many of the suitors who might normally be interested are financially locked out of the trade market, which in turn lowers prices for teams that do have clean books. Some of the harshest of these new rules hasn’t even taken effect yet. The league’s luxury-tax code is becoming more punitive for the heaviest spenders starting the 2025-26 season.
With time, teams will learn to adapt to some of the 2023 CBA’s changes. Some of them have altered the league’s financial landscape for the rest of the decade in irreversible ways. We’ve now more or less finished our first offseason with the bulk of these new rules in place. So what are the lessons teams can take away from the summer of 2024 that they may be able to apply moving forward? Here are some of the biggest.
1. The end of the speculative contract
A possible Denver Nuggets dynasty may have been killed in the crib by one of the worst players on the team. Zeke Nnaji played 576 minutes last season. He wasn’t in the playoff rotation. None of this was especially surprising. He hadn’t shown much in his first three seasons either. But he was the No. 22 pick in the 2020 NBA Draft. The Nuggets were high enough on his long-term outlook to give him a four-year, $32 million extension last offseason. The thought process was straightforward and relatively common in the old world: if he pans out, he’s a rotation player at a sub-rotation price. If he doesn’t? He’s matching salary that can be used in a trade down the line, a luxury winning teams don’t always have.
Well, what happened this offseason? The Nuggets made the firm decision not to top the second apron for any reason. That was at odds with their desire to re-sign starting shooting guard Kentavious Caldwell-Pope, who ultimately left on a three-year, $66 million deal from the Orlando Magic. Denver was able to get rid of the $5 million it owed Reggie Jackson. It couldn’t find anyone to take on Nnaji’s $8.9 million, and so it couldn’t fit Caldwell-Pope under the self-imposed second-apron restriction. Denver’s decision to keep a player it wasn’t using may have cost it one of the five pieces of the NBA’s best starting lineup.
Again, these kinds of contracts weren’t uncommon in the old world. Portland gave one to Nassir Little, the No. 25 pick in 2019, for $28 million over four years. It was the same idea, a shot at locking down a high-upside prospect who hadn’t proven anything yet before he established real market value. The Blazers were ultimately able to move Little… but the Suns weren’t. Phoenix waived Little using the stretch provision in order to trim its tax bill. The Suns will pay him for the next seven years.
There is value to be found in long-term contracts for role players right now. As we’ve covered, the new television deal means they’re all assured to grow less onerous on a relative basis with time. It’s just that, well, as obvious as this might sound… the player has to be good for this strategy to make sense, because teams aren’t taking on your mistakes as matching salary anymore. The Nuggets assumed that Nnaji’s seven-figure salary, even on a lengthy deal, was going to be small enough to use productively whether or not he could play. This offseason proved that it was not. Every dollar needs to be spent with intention, because moving bad money has never been harder.
As has so often been the case in the uncomfortable adjustment period between CBAs, Daryl Morey has been one of the quickest executives to adjust. He just re-signed no-name forward KJ Martin to an inflated contract for the express purpose of trading it, unless of course he surprises the team and becomes a productive role player. Here’s the difference: the Martin contract has only one guaranteed season. Nnaji got four. There is direct intention here. The 76ers didn’t keep Martin to potentially trade one day. He’s either going to be a weapon for them on the trade market this season or they’ll be able to wash their hands of him next summer if they choose. No risk. High reward.
We’re seeing this new reality unfold first at the bottom of the league’s balance sheets. It’s going to start creeping upward. The Houston Rockets are going to be one of our first real test cases here. They have two highly regarded youngsters in Alperen Sengun and Jalen Green that are currently eligible for rookie extensions. In the past, they would have been near-locks to re-up at massive, long-term numbers. But The Athletic’s Kelly Iko reported in July that is unlikely that Sengun or Green will receive max rookie extensions.
That makes plenty of sense in the context of both their own performance and Houston’s long-term outlook. Neither Sengun nor Green have been All-Stars yet. Sengun made a run at a spot this season but fell short. As promising as he looks, the Rockets ran a below-average offense through him for most of the season. Green only took off after Sengun got hurt, as he averaged over 24 points in Houston’s final 18 games of the year when he could control the ball. It’s unclear if they fit together long-term. It’s unclear if either is the best young player on a roster full of them. The Rockets have lofty short-term star-chasing ambitions. Why should they sign Sengun or Green to contracts that reflect who they might be rather than who they currently are?
In the past, such extensions were common. Remember when the Timberwolves maxed out Andrew Wiggins because he promised to try harder? Michael Porter Jr. got the max. Steven Adams came $6 million shy of the max, signing a deal that was nearly identical to the one that the Bucks gave Giannis Antetokounmpo that same summer. That’s how rookie extensions have so often gone. Teams pay for the player they want rather than the one they have. The Rockets may just be the first team to test that concept. If it works, others may follow.
2. The max contract double standard
On the other end of the rookie max convention we have the Orlando Magic. Franz Wagner is more accomplished than Sengun or Green, but his numbers hardly scream “instant max.” He’s never averaged 20 points. He’s good but not great at pretty much everything and he’s coming off of a very concerning 28% 3-point shooting season. The Magic didn’t force him to find a better off in restricted free agency. They didn’t even drag his negotiations out into September or October hoping to find a minor concession or two. He got his full max pretty much right away.
There are benefits to the blind max. If nothing else it maintains harmony in the locker room and prevents bad blood from festering years down the line. But it’s a very old-CBA type of decision for the Magic to make on a player that may never make an All-Star team. They still have to pay Jalen Suggs, and Paolo Banchero deserves the max he’s going to get. The Magic might have room for one more medium-sized salary, but they more or less have their team at this point.
Look around at the 2021 draft class and you’ll see your fair share of max contracts. Cade Cunningham, Evan Mobley and Scottie Barnes got maxes pretty quick. All three deserve them, but we’re not talking about, say, 2021 Luka Doncic here. The trio has one All-Star appearance between them. They all have star potential. None of them are top-30 players yet. But, the Houston situation aside, what we’ve mostly seen out of the 2023 CBA thus far is a continued willingness to pay potential stars the rookie max.
And this is where we see a major divergence from CBAs past, because that openness used to extend pretty comfortably to the next two max contract tiers as well so long as the player was arbitrarily deemed max-caliber. Zach LaVine got a no-brainer five-year max. Bradley Beal got a five-year max with a no-trade clause. It’s just generally been understood for most of NBA history that if you have a player that crosses a certain, undefined threshold of productivity, you pay him whatever it takes to stay and then you figure the rest out later.
Those days are over. The Pelicans can’t give Brandon Ingram away because he’s an impending free agent that wants to get paid. The Hawks traded Dejounte Murray for several reasons, but one of them, as Brian Windhorst noted on his Hoop Collective Podcast, was that there just wasn’t value available for Trae Young and Atlanta had to move one of their guards. Young, aside from being a poor defender and tricky offensive fit on many teams, is notably on a 30% max rather than a 25% max because he met the Rose Rule criteria prior to his rookie extension kicking in. He’s eligible for free agency in two years through a player option and will surely expect to be paid then.
Third-year players tend to have more upside than players in their fifth, sixth or seventh year. A 25% max carries far less risk than a 30% max. But the contrast here is stark. Is Wagner a better player than Ingram today? They’re in the same general vicinity. But one is payable and the other, seemingly, is not.
This isn’t just an issue of age and contract value, though. Consider Lauri Markkanen. He is the same age as Ingram. They are both one-time All-Stars, though Markkanen was chosen more recently. It seemed as though half of the league was lined up to trade a bundle of picks for Markkanen and then hand him a max contract. Markkanen is better than Ingram, though only by subtle means. Markkanen’s shot-selection is far more palatable. He’s a far more scalable offensive player than Ingram. But Ingram is more athletic and a more talented passer. With the right mindset, he’s a similarly-valuable player. They are both fringe All-Star types in a strong Western Conference. Yet the difference in their value within the league is easily apparent.
What exactly is behind that difference is a bit harder to figure out, but what we seem to be witnessing right now is a recalibration that seemingly arbitrary “max vs. non-max” line. The bar is higher today, and so are the consequences of failing to clear it. If there was an easy compromise to the Ingram situation, someone would have found it. But teams aren’t looking at slightly sub-max players as slightly sub-max contracts anymore. Either you’re a max player and you’re given the same, no questions asked treatment, or you’re not, and suddenly your negotiations become far more complicated. Ingram wants the $50 million or so per year he is eligible for. The league might view him as something closer to the $30 million per year player Murray is for the Pelicans now. The NBA doesn’t seem to have room for anything in between anymore.
The Pelicans are feeling this change today through Ingram’s apparent lack of trade value, but in a sense, they’re getting off easy. Ingram is on an expiring contract. What happens to the Timberwolves if they fail to make another deep playoff run? Karl-Anthony Towns is on a four-year, 35% max and has never remotely looked like a max player in the playoffs. It’s going to be very hard for them to find a taker for Towns if they feel they need to, and for reasons we’ll explain shortly, they are probably going to need to. Denver will soon face this problem with Michael Porter Jr. Nikola Jokic is on a super max deal and Jamal Murray and Aaron Gordon are eligible for new contracts themselves. Good luck offloading the max contract that has produced only around 14 points per game in the past two postseasons.
Teams are willing to take a chance on the 25% max for their own third-year players figuring the reward outweighs the risk. But veteran max players? There’s not going to be any more risk tolerance. If there is any doubt that a player deserves such a contract, he won’t get it. If a player has that contract and doesn’t deserve it, nobody is taking it. You’d better be comfortable with your max players because you’re not escaping those contracts if they go wrong.
3. The two-year tango
The Nuggets let Caldwell-Pope go because they decided internally that they were not willing to operate above the second apron yet under any circumstances. Meanwhile, the Celtics re-signed practically everyone and haven’t even pretended to care about the second apron. The Timberwolves are paying an even heftier tax bill than we expected because of their draft night maneuvering for Rob Dillingham. So what’s the deal here? Why are some teams more scared of the second apron than others?
There’s one rule informing all of this, and it is the single biggest second-apron deterrent in the new CBA. Once a team finishes a season over the second apron, its first-round pick seven years in the future becomes frozen, meaning it cannot be traded. From there, a four-year clock begins. If the team finishes below the second apron in at least three of the following four years, the pick becomes unfrozen at the end of that period. If, however, a team finishes above the second apron in at least two of those four seasons, that frozen pick remains frozen permanent. It cannot be traded, and it drops to No. 30 overall in the first round. For now, this appears to be the line no team is willing to cross. The cost is simply too high. Dropping a pick to No. 30 means effectively sacrificing a possible rebuilding year after your current core has likely aged out of contention. No team is going to sacrifice the chance to tank unless it is in the middle of a dynasty.
The Celtics and the Timberwolves looked at their balance sheets and evaluated where they stand in the championship race. Both feel as though they have realistic chances to win the 2025 championship, and neither felt as if there was a way for them to retain that chance while dipping below the second apron. So both shrugged and dove all the way into what will effectively be a two-year all-in window. They’ll stay above the second apron for the next two years, and then they’ll dip back under it afterwards to prevent their pick from falling to the end of the first round. Both teams have obvious mechanisms for doing so. Kristaps Porzingis will be an unrestricted free agent in 2026, so the Celtics can merely let him walk to achieve their necessary savings. Rudy Gobert will either expire after the 2025-26 season or opt out next summer, so Minnesota has a path to saving money, though a Towns trade likely makes more sense if possible given Gobert’s necessity to their defensive identity. But basically, the Celtics and Timberwolves are operating under two-year clocks. They’re trying to win the title right now, and then they’ll re-assess in two years.
The Nuggets are likely a bit more instructive on how the rest of the league will approach this problem. They chose to let Caldwell-Pope go for the sake of delaying their second-apron clock. They didn’t really have a choice. Assuming they can’t trade Porter, they are going to be stuck paying him the max for the next three seasons. Murray and Gordon will have new, expensive contracts next summer. Jokic is making the super max. They will be a second-apron team when the 2025-26 season rolls around, so they are treating 2025-26 and 2026-27 as their two-year second-apron window before Porter expires and they can duck back down. They have effectively traded away the championship equity Caldwell-Pope would have given them for the next two years for a third year on this core’s window without stomaching the pick drop.
Was that the right call? Well, that’s subjective. It’s going to vary on a team-by-team basis. Some teams are going to try to keep their windows open as long as possible. Others will play for the highest possible odds in the shorter, two-year windows. It will depend on age, health and the state of the league as a whole. But this is more or less going to be how teams function moving forward. Once they’ve gone above the second apron, they aren’t going to do it more than once in the ensuing four-year period. Most of the time, that is going to mean simply doing it in back-to-back years, creating this hyper-aggressive two-year windows before the team in question needs to take a step back.
4. So much for the improved mid-level exception
There’s been a fair bit of criticism lobbed at the NBPA for accepting the 2023 CBA. Some of it is fair and some of it isn’t. Ultimately, the players didn’t actually sacrifice any money. They are still guaranteed between 49-51% of basketball related income every season. What’s changed is how that money is getting distributed, and the class of players that has undeniably taken the biggest hit are veteran role players.
The irony here is that this was supposed to be a growth area for the players. One of the appeals of this CBA for the players was an expanded mid-level exception. Not only would the non-taxpayer mid-level exception be worth more money, but it would be usable in trades for the first time. The problem is that nobody wants to use it. In the past two offseasons, only 10 free agents have signed mid-level deals that would have been too expensive for the taxpayer mid-level exception. Only two of those players earned the full mid-level exception in terms of annual salary, but those players only did so on short-term deals. De’Anthony Melton got one year from the Warriors. Dennis Schroder got two from the Raptors. The 2023 CBA tried to reinvigorate the the mid-level market. Instead, it more or less killed it. The same has been true on the taxpayer mid-level front. Only one team has used the taxpayer mid-level exception in the past two seasons: the Nuggets, who have done so twice.
This one should have been relatively predictable. The NBA’s middle class was already struggling. The restrictions at the top of the market were always going to scare teams away from spending in some areas, and extensions and trades are usually going to take priority over non-star free agents. Most of the teams that actually want to spend a mid-level exception are trying to win now, but most of those teams are likely projecting bigger expenditures in the near future if they hope to have a true chance to contend. At that point, the thought of paying a role player in his late 20’s signed from another team for decent bench money probably isn’t a priority. In the past, teams would stack mid-level exceptions year after year to build depth because there was less of a penalty for spending deep into the tax. Now, obviously, the second apron is terrifying teams to such an extent that this sort of spending becomes too risky. Do you really want to find yourself in a Zeke Nnaji-type situation because you gave a seventh man a four-year deal?
There are gems to be had on the mid-level market. The Nuggets got Bruce Brown for the taxpayer mid-level before they won the championship. But given the caliber of player that tends to make it to free agency now vs. even five years ago, the pickings tend to be slimmer. There’s a bit of a feedback loop here. Teams are prioritizing extending their own players. That keeps good players off of the free-agent market, which tells teams that they won’t be able to replace players they lose, which in turn leads to them prioritizing retention even more. If an impending free agent in the mid-level tier can re-sign at similar money early on, he probably should. Just ask Caleb Martin, who turned down a five-year, $65 million pact to stay with the Heat only to land in Philadelphia for roughly half of that.
5. The forbidden trades
As of today, there are functionally nine teams in the NBA that can’t trade with one another, at least if players are involved. They are the nine teams currently above the first apron: the Suns, Timberwolves, Celtics, Bucks, Lakers, Heat, Nuggets, 76ers and Knicks. Why can’t they trade with one another? Because any team that takes back more money in a trade than it sends out is instantly hard-capped at the first apron. Therefore, unless two of those teams managed to make a trade in which they are sending exactly the same amount of money down to the dollar in each direction, any player-for-player trade would automatically violate this hard-cap rule. The teams nearing this line are more or less limited in the same way. Yes, the Mavericks and Warriors have a bit of wiggle room, but with less than $1 million in apron space, neither of them are likely to be flexible enough for a significant trade with any of the apron teams.
The short-term effect here is that it’s going to make trade deadlines less exciting because it makes it significantly harder for surprise sellers to emerge. Think about Jimmy Butler, for instance. He was in trade rumors earlier this summer and can become a free agent next summer. Let’s say Miami has a disappointing season and decides to move Butler at the deadline. Well… most of the contenders that would want to trade for him are on that apron list. Even if Miami wants to trade Butler, the Heat can’t drum up a fair market with so many suitors immediately off of the board.
In theory, this should just shift bigger trades more towards the offseason and away from the deadline, but teams tend to be unreasonably optimistic during the offseason. The Heat probably aren’t championship contenders anymore. They’ll have an easier time acknowledging that in February if they’re .500 than they do over the summer, before teams have committed to whatever sort of roster they’re building. Star trades therefore are likelier to just become rarer than to move toward the deadline.
We’re moving into speculative territory here… but if there is a 2023 CBA rule teams are likely to lobby to change before the deal expires, this would be it. It’s just not clear who exactly benefits from such harsh trade restrictions. Teams want to be more flexible to make changes, not less. Players don’t lose money in trades and some even make money through trade kickers, so as a group, it’s not exactly in their interest to collectively bargain against trades. The league as a whole uses player-movement to drive fan interest.
Trades are a net good for the NBA. Perhaps the NBA’s old rules, in which any trade was feasible so long as no team took in more than 125% of the salary it sent out, were too lenient. But dollar-for-dollar trade restrictions at the first apron level is a swing too far in the other direction. Something has to give. Maybe that should be a second-apron restriction. Maybe there should be a 105% allowance for all trades. But this rule is going to be a thorn in the league’s side until it gets changed, and there’s nothing teams can do about that other than lobby for a fix.