Three estimation steps stand between a possession of basketball and a dollar figure: isolating a player's effect on scoring margin, converting that margin into wins, and pricing a win against what teams actually pay. Each is estimated, none is assumed, and each is wrong in ways worth stating.
The raw material is the stint — a stretch of play with one fixed set of ten players on the floor. Every substitution ends one stint and begins another. For stint s with point differential ys per 100 possessions, let xs be a vector with +1 for each home player, −1 for each away player, zero otherwise. The estimator is ridge regression:
weighting each stint by its possession count ps. The penalty is not a convenience. Teammates who always share the floor are collinear, and unpenalized least squares responds by handing one an enormous positive coefficient and his partner an offsetting negative one. Ridge shrinks toward zero, which is the right prior for a player about whom the data is nearly silent.
Multi-season pooling. One season is too few possessions for stable estimates, so each target season T pools stints from a window around it, weighting season t by δ|t−T| with δ = 0.7 over a four-season lookback. Recent basketball counts most; older basketball still counts.
The window has two forms, and the distinction matters more than it looks. A symmetric window (T−L … T+L) uses seasons after T and yields the best retrospective estimate of how good a player was — the right choice for a label. A backward window (T−L … T) uses only information available by T and is the only honest input to a forecast. Mixing them is how a model appears to predict the future while quietly reading it.
Standard errors by wild-cluster bootstrap. Residuals are resampled with sign flips, clustered on the game, 400 replications. This is load-bearing rather than decorative. The analytic ridge diagonal gets the sign of the problem wrong: it correlates about −0.3 with |θ̂|, implying that extreme estimates are the precise ones, and lets marginal players with few possessions post ratings above +20. The bootstrap correlates about +0.5, correctly flagging collinearity-unstable players as uncertain so that the next step can shrink them.
Empirical-Bayes shrinkage toward a box-score prior. A statistical plus-minus model is fit on per-100-possession box production, and each raw estimate is pulled toward its own prediction in proportion to its uncertainty:
where σ̂i is the bootstrap standard error and τ̂² the estimated between-player variance. A player with 200 minutes is mostly his box prior; a player with 3,000 minutes is mostly his own plus-minus. This is the step that separates the public metrics which retrodict well from plain RAPM, which does not.
Two priors, not one. "Box production" understates what the retrospective prior sees. The label prior is deliberately rich — current per-100 box production, plus the same quantities lagged one and two seasons, plus player tracking where it exists — because a label is allowed to use everything known about a season after the fact, and the richer prior fits materially better. The forecast rating shrinks toward a deliberately lean prior: current box production only.
The asymmetry is the same discipline as the symmetric/backward window split above. It does carry one honest limitation worth stating: tracking data begins in 2013-14, so the label prior sees a different feature set before and after that season. Retrospective ratings are therefore not perfectly era-consistent at the margin. The forecast rating, which is what the value board and the trade tool actually price, uses the lean prior throughout and is not affected.
The resulting panel is 13,988 player-seasons covering 2,390 players from 1996-97 to 2025-26.
Impact is expressed in points per 100 possessions. Converting to wins is usually done with a rule of thumb; here it is estimated. For game g, construct the minutes-weighted rating differential of the players who actually appeared:
Each of the five floor slots covers 2,880 seconds of a 48-minute game, so Xg is the expected home margin implied by who played. Estimated on 37,895 games:
The R² of 0.18 is not a weakness. A single NBA game is close to a coin flip; what is being estimated is the slope, and with 37,895 games it is pinned tightly — β̂ is roughly 102 standard errors from zero. Value accrues over a season, where the noise averages out.
A player logging sec seconds at rating θ̃ therefore contributes
Replacement level is the freely available alternative, not zero. Setting it at −1.77 rather than 0 is why a strong season here reads near 20 rather than the 10 familiar from public win-value statistics. It is a different ruler, not a bigger number.
The final step asks what a win costs. Observed salaries cannot answer directly, because they are censored on both sides: the collective bargaining agreement caps individual pay, so a fifteen-win superstar earns the maximum rather than his worth, and the minimum props up the bottom. Ordinary least squares on observed pay therefore underprices exactly the players the question is about — the naïve slope is 0.0151 cap share per win, against 0.0673 here.
Treat both bounds as censoring and estimate the latent curve by full-information maximum likelihood:
with pay measured as a share of that season's salary cap so seasons are comparable, and w the player's trailing two-season mean wins at signing. Fitting on new contracts only — first years of deals — matters: within-contract raises are mechanical escalators, while a new deal is the market actually clearing.
That two-sided fit alone is not what ships, and the difference matters enough to state plainly. Capping individual pay does not merely truncate the top of the distribution; it removes the observations that would identify the slope at all. What a team is willing to pay for a win is unobserved precisely where wins are most valuable.
The shipped curve is built in three pieces:
The identifying assumption is the ordinary one for a revealed-preference bound: a team that voluntarily pays the tax values the player at no less than the tax-inclusive cost. It does not require teams to be right about the player, only to be willing.
This is what produces the headline result. The cap-constrained rate — what teams actually pay, censoring and all — is 0.0228 of the cap per win. The free-market rate is 0.0673, a 2.96× premium. Every market value, every surplus figure and every trade verdict on this site is denominated at the free-market rate, and the section below on superstar value follows directly from it. A reader who rejects the tax-censoring argument should read all of those numbers as roughly 3.0 times too large.
Sample: 1999-2025, new deals, svc>=4.
Value in dollars is then max(â + b̂w + ĉw², 0) × cap(season), floored at zero
because a team cannot be paid to hold a roster spot. Negative surplus is perfectly
possible and is where the interesting players are.
The curvature term is not statistically significant, and the page should say so. Its 95% interval is [-0.00189, 0.00272], straddling zero, with P(ĉ > 0) ≈ 0.36. The point estimate is mildly concave: each additional win is priced a little below the one before, so at twenty wins the curve sits 12.1% of the cap below a straight line with the same slope. The term was introduced as a star premium, on two lines of outside evidence that still lean convex — roster-slot scarcity, and stars outperforming their total win contribution in the playoffs — but the fit itself no longer does — and a reader who prefers the linear curve is not arguing against the data.
Put the three steps together and a result falls out that looks like an error and is not. On the open market a win costs 0.0673 of the cap, so a twenty-win season is worth about 124% of it, while no individual salary may exceed 35%. A superstar's estimated market value can therefore exceed his team's entire payroll ceiling. The curvature term does not produce this; the slope does.
This is the central economic fact about NBA labour, not an artifact: the collective bargaining agreement transfers enormous surplus from the very best players to the teams that employ them, and the transfer is largest precisely for the players who are best. The value board's headline column is a measurement of that transfer.
Two different things on this site are called a value board, and only one of them is retrospective.
They are not a record of what the model would have said beforehand, and they are not evidence that anyone could have been identified early. A genuine forecast test requires refitting the aging curve, the price curve and the win calibration on data available at the time, on pain of the estimates quietly importing their own future.
And the most recent season is less retrospective than the rest. The label rating pools stints over a symmetric window, T−4 … T+4. At the end of the panel there is no forward half to pool, so the newest season's "symmetric" window is silently one-sided — it is the backward window wearing the label estimator's name. Its playing time is fully realized; its rating simply has less evidence behind it. Measured on players at 10+ minutes per game, the most recent season carries about 16% more standard error than an interior season and shrinks about 18% harder toward the box-score prior (0.47 against 0.40).
Read the newest season's ratings as provisional. They firm up as the seasons after them arrive and the window fills in on both sides — which also means a player's value for a given season can move slightly in later builds. That is the estimator working as designed, not a revision of history.