The ladder
The NBA has a soft cap. It did. Every tool a team can use to add a player, the exact line at which each one stops existing — and the point, reached in 2023, where the list runs out and a soft cap becomes the hardest ceiling in American sport.
Every NBA luxury-tax payer since the tax began
Thirty franchises against the lines, season by season: every taxpaying year, every repeater year derived from the rule itself, and the point at which crossing a line stopped costing money and started costing tools.
Thirty franchises, 25 seasons, one mark per team-season. An amber mark is a taxpaying season — a team that crossed the line and paid for it. From 2023-24 two more marks appear, in blue and red, for seasons spent above the first and second aprons. That change in the palette is the whole story: before it, crossing a line cost money; after it, crossing a line costs the ability to improve.
28 of the 30 have paid the tax at least once. 2 of them never have — Charlotte Hornets, New Orleans Pelicans. 6 finished a season above the second apron in 2023-24 or 2024-25, the two seasons for which certified end-of-season apron tables exist.
■ taxpaying season■ over the first apron■ over the second apron▁ repeater rate, derived from the rule
Select a franchise for its full record. The number at right is the active sort metric. Seasons 2001-02 and 2004-05 are blank for every team: a tax level was set and never levied. Apron standings run through 2024-25 only — 2025-26 taxpayers are drawn without an apron mark because the last published apron table for that season is a March snapshot taken with a month still to play, and this guide will not print a snapshot as a result.
Every franchise, in words
The same ledger as prose. Repeater seasons are computed from each team’s own record by the rule that applied in that season, not stored.
- Atlanta Hawks
- — 2 taxpaying seasons (02/03, 11/12).
- Boston Celtics
- — 11 taxpaying seasons (03/04, 07/08, 08/09, 09/10, 10/11, 11/12, 12/13, 18/19, 22/23, 23/24, 24/25); above an apron in 23/24, 24/25, above the second apron in 23/24, 24/25.
- Brooklyn Nets
- — 8 taxpaying seasons (02/03, 03/04, 12/13, 13/14, 14/15, 20/21, 21/22, 22/23).
- Charlotte Hornets
- — no taxpaying seasons.
- Chicago Bulls
- — 2 taxpaying seasons (12/13, 15/16).
- Cleveland Cavaliers
- — 8 taxpaying seasons (07/08, 08/09, 09/10, 14/15, 15/16, 16/17, 17/18, 25/26).
- Dallas Mavericks
- — 11 taxpaying seasons (02/03, 03/04, 05/06, 06/07, 07/08, 08/09, 09/10, 10/11, 11/12, 22/23, 24/25).
- Denver Nuggets
- — 6 taxpaying seasons (06/07, 07/08, 09/10, 22/23, 23/24, 24/25); above an apron in 23/24, 24/25.
- Detroit Pistons
- — 1 taxpaying season (03/04).
- Golden State Warriors
- — 9 taxpaying seasons (15/16, 17/18, 18/19, 20/21, 21/22, 22/23, 23/24, 24/25, 25/26); above an apron in 23/24, above the second apron in 23/24.
- Houston Rockets
- — 3 taxpaying seasons (10/11, 15/16, 25/26).
- Indiana Pacers
- — 3 taxpaying seasons (02/03, 03/04, 05/06).
- LA Clippers
- — 9 taxpaying seasons (13/14, 14/15, 15/16, 16/17, 20/21, 21/22, 22/23, 23/24, 25/26); above an apron in 23/24, above the second apron in 23/24.
- Los Angeles Lakers
- — 15 taxpaying seasons (02/03, 03/04, 07/08, 08/09, 09/10, 10/11, 11/12, 12/13, 13/14, 20/21, 21/22, 22/23, 23/24, 24/25, 25/26); above an apron in 24/25.
- Memphis Grizzlies
- — 2 taxpaying seasons (02/03, 05/06).
- Miami Heat
- — 9 taxpaying seasons (02/03, 07/08, 09/10, 11/12, 12/13, 13/14, 19/20, 23/24, 24/25); above an apron in 23/24.
- Milwaukee Bucks
- — 6 taxpaying seasons (02/03, 20/21, 21/22, 22/23, 23/24, 24/25); above an apron in 23/24, 24/25, above the second apron in 23/24.
- Minnesota Timberwolves
- — 6 taxpaying seasons (02/03, 03/04, 06/07, 19/20, 24/25, 25/26); above an apron in 24/25, above the second apron in 24/25.
- New Orleans Pelicans
- — no taxpaying seasons.
- New York Knicks
- — 12 taxpaying seasons (02/03, 03/04, 05/06, 06/07, 07/08, 08/09, 09/10, 12/13, 13/14, 14/15, 24/25, 25/26); above an apron in 24/25.
- Oklahoma City Thunder
- — 5 taxpaying seasons (14/15, 15/16, 17/18, 18/19, 19/20).
- Orlando Magic
- — 3 taxpaying seasons (05/06, 09/10, 10/11).
- Philadelphia 76ers
- — 4 taxpaying seasons (02/03, 03/04, 20/21, 21/22).
- Phoenix Suns
- — 7 taxpaying seasons (02/03, 07/08, 08/09, 09/10, 22/23, 23/24, 24/25); above an apron in 23/24, 24/25, above the second apron in 23/24, 24/25.
- Portland Trail Blazers
- — 6 taxpaying seasons (02/03, 03/04, 08/09, 10/11, 18/19, 19/20).
- Sacramento Kings
- — 2 taxpaying seasons (02/03, 03/04).
- San Antonio Spurs
- — 6 taxpaying seasons (02/03, 05/06, 06/07, 09/10, 11/12, 15/16).
- Toronto Raptors
- — 3 taxpaying seasons (02/03, 03/04, 18/19).
- Utah Jazz
- — 4 taxpaying seasons (09/10, 10/11, 20/21, 21/22).
- Washington Wizards
- — 1 taxpaying season (17/18).
What it did
The grid says where teams stood. These are the moves that standing forced — each one a transaction in which an apron, rather than a basketball judgement, decided what happened.
Golden State Warriors · 2021-22
The largest tax bill in NBA history — and it cost them nothing else
- Luxury tax paid: $170,331,194
- Next-highest bill that season: $45,117,195 (Lakers)
- Result: Won the title
This is what the old system looked like at its most extreme. Golden State paid more luxury tax in one season than every team in the league combined had paid in all but one previous season, kept the roster together, and won the championship. No tool was withheld from them. Nothing was frozen. The bill was enormous and the bill was the entire penalty — which is precisely the arrangement the 2023 CBA was written to end. A payroll like this one is no longer expensive. It is illegal.
Mark Deeks, “A Complete History Of NBA Luxury Tax Payments”, Forbes
Denver Nuggets · 2023-24
A champion loses its bench in the first week of the new deal
- Most Denver could offer Bruce Brown: about $7.8M
- What Indiana paid him: $45M over two years
- Rotation players lost: Brown and Jeff Green
Denver won the 2023 title in June and lost two of its most important reserves within days of free agency opening. A team that far over the line has no cap room and no full mid-level: it may re-sign its own players under whatever rights it holds and otherwise offer the minimum. Indiana had room and simply outbid them by a multiple. This was the first summer of the new agreement and the second apron’s restrictions were not yet fully phased in — the constraint here is the older one, that an expensive team has only small tools. It is the shape of everything that followed.
Denver Gazette and NBA.com free-agency reporting, July 2023
Boston Celtics · 2025-26
The reigning champion takes itself apart to get under the line
- Estimated tax penalties avoided: about $180M
- Finished under the second apron by: about $4.5M
- Starters traded: Jrue Holiday and Kristaps Porziņģis
Boston won the 2024 championship and, one summer later, traded two starters from that team for the express purpose of ducking the second apron. Holiday went to Portland for Anfernee Simons; Porziņģis went to Atlanta in a three-team deal that returned Georges Niang and a second-round pick. Al Horford and Luke Kornet were allowed to leave, because re-signing either would have put the team back over. ESPN’s Bobby Marks estimated the two trades saved roughly $180M in tax penalties. The moves left Boston about $4.5M below the line — a margin, on a payroll north of $200M, of about two per cent.
ESPN, CBS and NBC Sports Boston reporting, June–July 2025
Phoenix Suns · 2025-26
Paying $19.4M a year, for five years, to a player on another team
- Stretched salary carried: $19.4M a year to 2030
- Teams in the Durant trade: seven — a record
- After the move: under the second apron by: about $20.5M
The clearest demonstration of what the second apron is worth to a team that is over it. Phoenix traded Kevin Durant in a seven-team transaction — the largest in league history, and itself an apron artifact, since a team that cannot aggregate salaries needs more counterparties to move the same money — then waived Bradley Beal and stretched the remainder of his contract across five years. The Suns will pay him $19.4M a season until 2030 to play elsewhere. What they bought was not cap space but eligibility: the mid-level exception back, their 2033 first-round pick kept out of the freeze, and their 2032 pick on a path to being unfrozen. A franchise paid nearly a hundred million dollars for the right to use its own tools.
Arizona Sports and Opta Analyst reporting, July 2025
Boston Celtics · 2026-27
And then the Finals MVP
- Traded: Jaylen Brown, to Philadelphia
- Return: Paul George, two firsts and two seconds
- Time since the title: two years
A year after dismantling the supporting cast, Boston traded the player who had been Finals MVP of the 2024 championship team. Brad Stevens, the club’s president of basketball operations, put the reason plainly: the move was about the balance sheet and future flexibility, in a league where managing it now matters more than keeping several home-grown stars on large contracts at once. That sentence is the guide’s thesis said by the person it binds. The cap was never a budget — but it has become a rule about how many good players one team is allowed to pay.
NBA.com, reporting ESPN’s Shams Charania, July 2026
One penalty nobody has paid yet
None of the frozen first-round picks created since 2023-24 has come due yet — the freeze bites seven drafts out, so the earliest of them lands in 2031. The penalty is real and is already shaping decisions, as Phoenix’s summer shows, but no team has yet actually lost a pick to it, and this guide will not describe one as though it had.
How this ledger was checked
The grid was built from per-season taxpayer lists and then checked against two independently published aggregates that were not used to build it: the number of taxpaying teams in each season, and the number of taxpaying seasons each franchise has had. A row transcribed one column out of place breaks the first; a season attributed to the wrong team breaks the second. Both are asserted in 25 columns and 30 rows of tests. All 23 season counts reconcile, and 29 of the 30 franchise counts do.
The one that does not: Portland Trail Blazers. The published aggregate has 3; this ledger has 4. HoopsHype has Portland at three taxpaying seasons through 2017-18, omitting a payment of about $2.3M in 2010-11. Three independent constraints say that payment happened: Larry Coon’s 2010-11 column has exactly seven payers including Portland and sums to the published league total; Mark Deeks ranks the champion Mavericks “3rd of 7” that season, and without Portland there are only six; and Deeks’ own franchise total for Portland covers six seasons that only add up with 2010-11 included. The likeliest explanation is that the HoopsHype table was built from Deeks’ spreadsheet before he corrected it in July 2022, a correction his article still carries a note about. Both numbers are kept rather than one silently chosen, and a test asserts that this is the only place the two disagree.