No wasted roster spots
How to win an NBA title

One of the NBA’s burning questions: How do you beat the Knicks in the playoffs?
Almost nobody could. The Spurs, Cavaliers, and 76ers—three good teams—combined to win one measly playoff game, while losing a dozen, against New York.
But somehow, the Hawks won two in the first round. Everyone watched, just in April. the system looked a lot like: Give the ball to CJ McCollum and get out of the way. In the fourth quarter of Game 2 in Madison Square Garden, McCollum scored huge bucket after huge bucket, some over the likes of OG Anunoby or Karl-Anthony Towns.
In the very next game, back in Atlanta, the highlights got even better when McCollum nailed the game-winner to put the Hawks up 2-1.
When you’re all over SportsCenter winning playoff games against great teams, NBA history demonstrates that’s irrationally good for your income. It’s the unseen part of that highlight reel above. That 34-year-old was about to hit free agency, and that’s how you get paid.
Over the last three years, McCollum has made $36 million, $33 million, and $31 million. He’s at an age where it’s common to take a little pay cut to shore up an extra year or two of job security.
McCollum’s new deal comes with the biggest decline of his career. He’ll make a third less than last season: $21 million. And it’s just a one-year deal. (Norman Powell is a similar age, and—coming off an All-Star season in Miami—took a very similar deal from the Bulls, with the second year a team option.) This feels like a shift from how the NBA has done business in the past, now older and injury-prone players are slipping in value:
On the brink of his 30th birthday, Jaylen Brown returned a dispiriting trade haul for the Celtics.
The oft-injured and controversial Ja Morant was traded for Jerami Grant’s undesirable contract—even though he’s only 26 and says he’s 100 percent healthy.
Joel Embiid, the NBA MVP three years ago, probably can not be traded.
Giannis Antetokounmpo was traded for a rich package of players, but—headlined by Tyler Herro—a far cry from what top-five stars have fetched in the past.
LeBron James is a free agent and not expected to command big money.
We have long thought the NBA’s big challenge was: How do you get the most possible talent on your team? Here’s a new wrinkle: Maybe it’s about who can waste the least money and roster spots on bad contracts, which creates a halo of caution around certain high-risk players.
Because the truth is that the league is riddled with players who make a lot of money but don’t produce much for their teams, usually because of injury. The colors down the right side of this chart show that this league smiles on the teams that don’t employ them.
How we define “bad contracts”: We ranked every 2025-26 NBA contract worth at least $15 million by Earned Wins per million dollars of salary, using Dunks & Threes’ Estimated Plus-Minus. The 50 lowest-value contracts by that measure are what we call “bad.” The bar shows each team’s total salary tied up in those 50 contracts.
Over the last twenty four champions, twenty one title teams carried zero wasted max contracts. The average champ carried 0.1 wasted max contracts.
50-win teams convert 81 percent of their top-30 salary slots into elite production. 30-win teams convert 11 percent.
As measured by Earned Wins per dollar, the Knicks had the cleanest cap sheet, top to bottom, of any contender in the league—and won the title.
To be clear, no one’s saying this is all it takes to win a title. There’s no magic bullet, no one weird trick. Execution makes up for bad strategy all the time! A team might have a poorly constructed roster and run a basic play, and get a game-winning bucket anyway. People do miraculous things.
Instead, what we’re saying is: pay attention to the reality that teams with expensive and unproductive players are not merely inconvenienced, they are sunk. Excessive unproductive contracts appear to dog a team so profoundly that even brilliant execution can’t fix the problem. Teams don’t carry fat bad contracts and contend; every lottery team carries bad deals.
Maybe this analysis seems cheap. In one way, we’re asking: did your team’s star get hurt and miss a big chunk of the season? If the answer is yes, then two things happen: that player’s contract becomes bad value, and the team’s win total goes to hell. Unlucky.
On the other hand, this raises the question: if bad contracts ruin your team’s chances, can you build a roster around players who are less likely to become bad contracts?
Maybe. We are in an era when stars are missing more games than ever. We see the league responding with shorter deals, deals with team options, or smaller salaries. Digging through this data with Claude coughed up fascinating findings:
Each wasted big contract, on average, costs a team about eight wins.
Of the 30 worst-value contracts in the NBA last season, 21 of 30 were on lottery or play-in teams. Zero were on championship rosters.
72 percent of the 50 worst-value contracts ended their season in either the lottery or play-in. Zero made the Finals.
In other words: good teams convert nearly all their big-salary slots into elite production. Bad teams convert almost none of them.
50+ win teams carry, on average:
0.95 top-30 players
0.22 wasted top-30 contracts
81 percent of their high-paid players produce at elite level
30-or-fewer-win teams carry, on average:
0.09 top-30 players
0.78 wasted top-30 contracts
11 percent of their high-paid players produce at elite level
Is there any way to know which players are at risk of soon becoming bad contracts? The data has some clues which help explain some of what’s happening in the NBA’s free market this summer.
I believe there are many reasons that the Celtics traded Jaylen Brown when they did. David Thorpe told us in April that NBA insiders suspected Tatum and Brown would not keep playing together.
But also: I guaranteed the razor-sharp Celtics front office knows all about Jaylen Brown’s age, and its likely effect on his productivity going forward. The trade haul they got for him this summer might have been less than everyone expected, but it also might be a lot more than they could get next summer.
Why would last season’s missed games matter? Many reasons. Here’s one: in the granular movement data of elite athletes, it emerges that most non-contact injuries occur from landing. Some players have excellent landing form, where their hips, knees, and ankles flex in unison, capable of absorbing massive forces into strong soft tissues like the glutes. Those players have a huge advantage in avoiding injury.
Other players land with oddities, like not flexing their hips to absorb the force of landing. Or they have odd foot positioning landing on the outside of their foot. Or (this one’s subtle) in some cases, as athletes settle toward the ground, the long leg bones rotate beneath the muscle, which puts a ton of stress on joints.
Those movement patterns might work for a while, in a robust young body, but they can catch up to you over time with an array of new injuries to the knee, back, ankle … you name it. In some cases, I suspect this is what we’re seeing: players who missed a lot of games last year might be old players, or beat-up players.
But they might also be players who have always had high-risk movement patterns.
This applies to all of us, and is what my book Ballistic is about. There’s a whole chapter you can read on TrueHoop right here. Here are a zillion interviews about the book.
Sifting through the data, Claude sees some risk in age, more risk in games missed last season, and huge risk when old age and games missed combine. There’s also a bit of difference by position: guards and big men show up in the data as less durable than wings. Put it all together, though, and if you are an NBA player over the age of 28, and missed 31 or more games last season … WOW are you an incredibly high risk to become a bad contract.
So: who fits the bill of being high risk to become a bad contract in the upcoming season?
In my years writing about the NBA, I’ve learned how profoundly unkind it is to predict any one player will get hurt. People’s livelihoods are at stake. And frankly, I hope nobody gets hurt, injuries are terrible.
And if you wanted to predict such a thing the right way, with the best possible science you wouldn’t do it with Claude and performance data. You’d do it with the granular movement data that I wrote Ballistic about. That is where the best signal is.
But in working with the publicly available data, and Claude, we can still see the huge trends. Claude suggests that mega-star old players like Stephen Curry, Damian Lillard, LeBron James, Kyrie Irving, Jrue Holiday, Paul George, Anthony Davis, Fred VanVleet, Giannis Antetokounmpo, and Joel Embiid are among those most likely to become bad value contracts this upcoming season. Not far behind are names like Kawhi Leonard and Kevin Durant.
None of this should be surprising. They all make huge amounts of money, they are among the NBA’s oldest players, and they have all missed plenty of time to injuries.
What’s not as widely understood, though, is the degree to which any of these players becoming unavailable sabotages a team’s title hopes. You can’t win it all and pay big salaries to players who don’t produce.
Giannis missed 46 games last season. Imagine how bad the Heat will be if he misses 46 next season. Joel Embiid missed 44. Jayson Tatum’s new co-star Paul George missed 45. Damian Lillard missed all 82.
That reality goes a long way to understanding this offseason’s mysteries. This is why no team is preparing a max offer for LeBron James at his record-setting age.
And it might explain the Celtics’ thinking in trading Jaylen Brown. The 76ers’ new star is 29 now, and missed just 19 games last season. Right now, it’s easy to predict he’ll be productive next season, and thus fetched a two first-round and two second-round picks to go with a decent player in Paul George.
But Brown will turn 30 a few days before the season tips off, an age when many players have their production begin a steep decline. Jaylen Brown is in the middle of a SuperMax contract. As a 29-year-old, he made $53 million. But right now he’s eligible for his next extension, and after carrying the Celtics close to the top of the East without Jayson Tatum most of the season, it’s a sure thing he wants it. But the extension he’s eligible for will bring his salary over $70 million by the time he is 34. The choice of whether or not to employ that guy, at that price, comes now.
$70 million for a player of that age is a flaw in the Collective Bargaining Agreement. Players peak in their permitted maximum earning when past the age most players retire; there’s a flashing red light of warning over that future contract. The 76ers got a great player, but it’s a sucker’s bet any player will be worth $70+ million at 34.
That kind of thinking also explains McCollum’s modest salary.
The Hawks guard was healthy last year, and in P3’s movement data has been identified as a “kinematic mover” a player with a movement pattern that comes with a lower risk of injury. (A lot of P3’s training is teaching other kinds of players to move more like that.) But for a player going into this 35-year-old season, no matter how many buckets you just scored over the Knicks, the likelihood of two or three healthy years is very low. A one-year contract is the market speaking perfectly.
Thank you for reading TrueHoop!


