Contract Value Model
Normalise NBA salaries across seasons by cap share and attach the CBA context needed to read them honestly.
What it measures
A salary only means something relative to the cap it was signed against, so cap share is the unit and dollars are the display.
How to read it
cap_share; cap_equivalent_salary; cba_rule_set; cba_max_salary_share; cba_salary_tier
Why it exists
Every cross-season salary comparison rests on a choice of deflator, and choosing CPI here would be a category error: player salaries are contractually a share of a negotiated cap, so the league compensation economy is the only relevant inflation measure. The source says so explicitly and this model is built around that one commitment. The second commitment is a refusal. Public contract rows do not record designated-veteran or supermax eligibility, option and guarantee structure, trade restrictions, or apron position, so the model labels the standard maximum tier by service time and the CBA era, and stops there. Labelling the era matters even where the max percentages did not change between agreements, because the exception, apron, and extension rules around them are not interchangeable. Anything the rows cannot support is left unstated rather than inferred.
Limits
- Historical rows are only comparable where a salary-cap reference and source lineage are present.
- Option years, guarantees, trade bonuses, and apron position are absent from public rows and are not modelled.
- Cap share treats every dollar as equivalent and ignores the timing of payments within a deal.
Calculation, evidence, and implementation
Calculation
Inputs
Salary, Cap Hit, Season, Season Salary Cap, Years Experience, Position, Age, Minutes
Method
No fitting step. The tier boundaries and era cutoffs are encoded from the collective bargaining agreements themselves.
Evaluation
Unit tests cover cap-share conversion, CBA tier boundaries, output-first peer selection, and the direction of the surplus. Calibration against realized contracts and historical holdouts remains outstanding and is not claimed.
Outputs
Cap Share, Cap Equivalent Salary, Cba Rule Set, Cba Max Salary Share, Cba Salary Tier
Sources
Src/Sports Intelligence/Leagues/NBA/Contracts/Value.Py, Src/Sports Intelligence/Leagues/NBA/Contracts/Valuation.Py
Implementation
Registry identifier: CONTRACT_VALUATION. Version 1.0.0; status drafted.