Sources
Capmath's figures come from three things: licensed contract data, a hand-maintained overlay of the CBA inputs that data doesn't carry, and the public rules of the collective bargaining agreement. Here is what each one supplies.
Player contract salaries come from a licensed sports-data provider and form the base layer. This is the per-player, per-season cap-hit figure the engine counts toward a team's salary. It is refreshed on sync and never edited by hand, so the base layer always reflects the provider's current data.
The contract feed doesn't carry everything the cap math needs, so a maintained overlay supplies the rest:
Player, team, and early-termination options, and rookie-scale flags.
Free-agent cap holds, including each player's Bird bracket and prior salary.
Dead money from waived and stretched contracts.
The league threshold lines: salary cap, floor, luxury tax, both aprons, and the exception and minimum amounts.
The rookie salary scale used for draft-pick holds.
Draft-pick ownership, including swaps and protections, used for pick holds and the draft-capital pages.
This overlay is where most of the judgment lives, and it is the part that is maintained by hand against the public rules and reporting. The holds in particular are estimates; see below.
The percentages, brackets, and tier logic, Bird multipliers, the 120% draft-pick hold, apron restrictions, exception sizes, are set by the NBA and NBPA collective bargaining agreement. How Capmath applies each rule is written out in plain English on the methodology page and defined term by term in the CBA glossary.
Cap holds and any threshold line tagged projected or estimate are not official figures. The NBA does not publish team cap numbers, the prior-salary and bracket inputs to a hold can be read differently, and future cap lines are projections. Capmath labels projected and estimated figures wherever they appear and shows the inputs behind each hold, so you can judge the estimate for yourself.
Capmath is an independent project, not affiliated with, endorsed by, or sponsored by the NBA, the NBPA, or any team. Team and player names are used for identification only. See a number you think is wrong? The corrections page is the fastest way to flag it.