How DARKO Calculates Fair Salary
On the Active Leaderboard, Fair Salary is labeled $ Value.
The underlying field is sal_market_fixed. It is an annualized estimate of a
player's projected on-court value, not a prediction of what contract the player will sign.
The calculation
- Estimate value above replacement. DARKO combines DPM with its time-decayed minutes estimate (
tr_minutes):Game value = (DPM + 2.0) × (tr_minutes ÷ 48)The 2.0 comes from a replacement level of −2.0 DPM. Both impact and workload therefore affect the result. After the regular season, the current snapshot uses each player's same-season regular-season MPG in place oftr_minutes. - Set one dollar rate for the season. The estimated league-wide payroll per regular-season game is divided by the average league-wide game value per game. Using one fixed seasonal exchange rate keeps a player's estimate from moving merely because the other players in a single daily snapshot changed.
- Annualize and smooth. Raw fair salary = game value × seasonal dollar rate × 82Historical daily values are Kalman-smoothed for each player, with higher-minute observations carrying more weight, so one game does not whipsaw the running estimate. After the regular season, the current snapshot shows the raw fixed-rate value described above.
Related fields
- Salary
actual_salary - Reported salary expressed in 2025–26 cap dollars by preserving the player's salary as a share of that season's cap.
- Surplus
surplus_value sal_market_fixed - actual_salary. A positive number means DARKO's fair-salary estimate is above the player's Salary; a negative number means it is below.
Fair Salary is deliberately an on-court value estimate. It does not apply the NBA's minimum- or maximum-salary rules, and it does not price age, contract length, options, negotiating leverage, roster fit, or positional scarcity. Below-replacement estimates can therefore be negative.