Findings · performance through 2021-22 · salaries through 2023-24
How NBA pay tracks production
A salary benchmark built from public production data, compared with what players were paid that season and one and two seasons later. The results describe historical pay patterns. They do not measure a player's worth or prove that anyone was mispriced.
Finding 1 · descriptive
The most productive players earn far less in their first four seasons
Among each season's most productive third of players, those 0–3 years from their debut averaged 4.5% of the salary cap and those 8+ years in averaged 17.9%. The pattern fits rookie-scale and restricted free agency rules, but it is not proof of them. Contract status is not in the public data.
At the same salary, a higher benchmark goes with higher pay next season, most of all early in careers
Holding current cap share, career stage and season fixed, one more point of cap in the benchmark goes with 0.45 more points next season on average (95% CI 0.37 to 0.55). Per point it is 1.78 for players 0–3 years in and 0.40 and 0.34 later. Early-career benchmarks vary less, so per standard deviation the contrast is smaller (2.1 against 1.5 and 1.4 points). The average leans on large pay changes: without the most influential rows it is 0.28, and the median response (post hoc) is 0.09.
1,651 player-seasons with an observed later salary; missing salaries are unknown, not zero. Details
Finding 3 · forecast
But it adds little to a one-season pay forecast beyond current salary and career stage
Adding the benchmark to a regression on current salary and career stage moves mean absolute error from 2.66 to 2.65 points of cap (difference −0.003, 95% CI −0.065 to 0.061). Simply repeating this season's cap share scores 2.33. That edge mostly reflects the loss function: refitted by median regression (post hoc), the best regression scores 2.30, and the benchmark lowers error by a small 0.035 points. The benchmark does reduce large misses (lower root mean squared error).
1,325 forecasts made at the end of each season, trained only on salaries already known. Details
Finding 4 · model accuracy
The salary model is accurate on average and least reliable for the highest-paid players
Gradient boosting, statistically tied with random forest, misses held-out salaries by $3.82M on average, 17.3% less than linear regression. Its 80% range held 80.4% of held-out salaries overall, and 14 of 26 at 20–30% of the cap and 3 of 15 at 30% or more. Every miss in those tiers was a salary above the range.
Salary is published annual earnings from a research workbook. Its upstream permissions are not independently established, and it lists about 450 players a season, so a missing salary is unknown, not zero. Newer seasons are not covered: see Methodology & Data for the source audit.
Aggregate-only build
Model evidence, without player pages
This build publishes the analysis, the model's held-out evidence and the methodology. Player-level pages are left out because they need player-level source data. The repository's full local build adds them.