What it measures
Two questions a cap sheet alone cannot answer: whether a player's real salary is a bargain or an overpay, and — for players on maximum deals — whether the max is underwater.
The output is a verdict plus a dollar figure, not a grade. Saying a player is overpaid by a specific amount is falsifiable in a way that calling him "a bad contract" is not.
How it is computed
- 1. Value the production
- The projection engine's on-court value composite — the same one the GM tools use — is computed for the player.
- 2. Convert to market dollars
- That value is mapped onto a dollar figure calibrated against the league's real salary-to-value distribution, so the scale reflects what teams actually pay for production rather than an arbitrary curve.
- 3. Compare to the real salary
- The player's actual salary is read from the contracts dataset, not estimated.
- 4. Report the gap
- The difference becomes the surplus or overpay, with a verdict attached.
Where the salary figures come from, and where they stop
Current-deal money is real: guaranteed salary from the contracts dataset, from the 2025-26 season forward.
Earlier seasons are an explicit estimate. The repository holds real production history but not historical salaries, so the career-earnings arc reconstructs prior years rather than reporting them. Anywhere that estimate appears it is labeled as one. This is the sharpest limitation in the model and it is worth knowing before quoting a career-earnings total.
Which sport this works for
Both, for both. What a player is WORTH and whether his contract is an overpay are now published for basketball and football alike — but they rest on different evidence, and the difference is where the salary comes from rather than which league it is. Basketball grades a mix of reported and modeled salaries. Football grades a mix too, though a much thinner one: a few dozen widely published deals carry their reported figure and the rest are modeled, out by roughly 1.8x per player. Every row says which kind it is.
Basketball composites points, rebounds and assists into one number and maps it through a single league-wide curve to a share of the cap. Football cannot work that way. Passing yards and sacks are not the same quantity, so there is no weighting of them that means anything, and position is the first term in an NFL player's price rather than a modifier: the top of the quarterback market runs about $60M a year against roughly $20M for running backs. A single league-wide curve would price every good running back as a disaster and every replaceable quarterback as a steal.
So a football player is valued by RANK — his projected season graded against players at his own position — and that rank is priced on a market curve built for that position. Each position's curve is scaled to that position's real top-of-market deal, and across every active player the worths sum to $8.86B against 32 times the 2026 cap of $9.64B, or 0.92.
That total is a sanity check on the scale, and it is worth being precise about how little it proves: per-player errors cancel in a sum, so the league figure can land near the cap while individual players are badly wrong. Measured directly, they are. Against the thirty-three players whose 2026 salary is published and whose position ceiling was NOT set from their own deal, the modeled worth is typically about 1.7x off, and fewer than half land within 25%. That figure moves with which players are in the sample — it was about 2x before the published quarterback and cornerback deals were added — which is itself a reason to treat it as a range rather than a measurement of record.
The reason is a limit rather than a bug, and it is the same reason the rank is the honest part. Worth is box-score production ranked within position, and real NFL money prices what a box score cannot see. Patrick Mahomes models at under half his real figure because quarterback value is not a yardage percentile. A coverage cornerback's value is the throws that never come, so Devon Witherspoon models at a third of his. Trey Hendrickson and Jaelan Phillips model low because both played hurt, and the market paid them for what they are, not for last season.
So the position RANK is a measurement — it is the percentile of what a player actually produced. The dollar figure beside it is that rank read off a market curve, and it should be read as an order of magnitude, not a quote.
That error is not spread evenly, and it is worth knowing which side of the ball you are looking at. Measured against the players whose contracts are published, the model is about 1.3x off on offence and about 1.7x off on defence, and six of twenty defenders are priced at under half their real salary against one of fifteen on offence. A box score states most of what an offensive player did — yards, catches, touchdowns — and almost none of what a defender did. A shutdown cornerback records few tackles precisely because quarterbacks stop throwing at him. So a defensive verdict on these boards carries roughly twice the error of an offensive one, and the worst of them are defenders: several men on $25M a year or more read as albatrosses because the only thing countable about their season is thin.
The overpaid-or-earned verdict is published for both, and the difference between them is where the salary comes from. For basketball, most players carry real figures from the contracts dataset and the rest are modeled. For football there is no contract dataset at all, so the widely published deals are used where they exist and every other salary is modeled from the CBA's shape: the slotted rookie wage scale, which is genuinely fixed, fifth-year options, and for veterans an estimate of what their production was worth when the model places their last signing.
Measured against real published figures across twelve well-known players, that estimate is out by roughly 1.8x on average, and the errors are large enough to invert the answer rather than merely blur it. T.J. Watt, one of the highest-paid defenders in football, comes out a bargain. Trey Hendrickson, who held out over being underpaid, comes out an albatross. Those are the first two rows a reader checks.
The one open-data source that would fix this — nflverse's historical contracts release, properly licensed and built for programmatic use — is frozen at contracts signed in 2022, missing every current deal and all three recent draft classes. Stale figures presented as real are a worse failure than modeled figures labeled as models, so neither is used.
So the football money is published with its provenance attached rather than withheld: every football row is marked modeled, the board itself carries the accuracy note, and the downloadable dataset carries a salary_is_reported column that is false on every NFL row. A reader who wants the sounder number should use the position rank, which is a measured percentile of production; the salary and the verdict beside it inherit the 1.8x error.
What this is not
Not a cap sheet, and not a prediction of what a player will sign for next. It answers whether the money already committed is being earned, on the evidence of projected production.