Six seasons of realized contract value put us first in the league at +$371.4M and San Diego last at −$374.6M. That is a ranking, not an explanation. Split it against a price nobody in this league set, and it comes apart into a leg that is a decision and a leg that is an outcome — and the bigger of the two is the one that cannot be told apart from luck.
Realized surplus is what a contract returned in dollars minus what it was paid, season by season, using nothing that had not already happened. It reproduces exactly — every figure below is re-derived here, not quoted.
| Franchise | Surplus | Payroll / season | Record |
|---|---|---|---|
| Scranton | +$371.4M | $200.5M | 67–16 |
| West Waco | +$264.7M | $195.2M | 62–21 |
| South Park | +$220.4M | $164.4M | 45–38 |
| Willamette Valley | +$116.9M | $188.8M | 50–33 |
| San Antonio | +$115.1M | $182.4M | 45–38 |
| Hollywood | +$109.4M | $153.0M | 35–48 |
| Enniscorthy | +$64.5M | $177.6M | 42–41 |
| Washington | +$59.1M | $161.6M | 43–40 |
| Carbon County | −$4.6M | $166.5M | 38–45 |
| Oeiras | −$16.5M | $179.3M | 48–35 |
| Houston | −$53.5M | $173.3M | 46–37 |
| Chicago | −$60.0M | $169.3M | 35–48 |
| South Philly | −$101.3M | $143.0M | 31–52 |
| Kawasaki | −$341.0M | $167.9M | 24–59 |
| Las Vegas | −$369.9M | $157.5M | 19–64 |
| San Diego | −$374.6M | $178.6M | 34–49 |
The league-wide total is exactly zero, and that is a construction, not a finding. The exchange rate that converts production into dollars is defined as each season’s total committed salary divided by that season’s total delivered value, so realized value sums to salary by definition and surplus sums to zero. Nobody in this table is +$371.4M richer in any absolute sense. They are +$371.4M ahead of fifteen other people who are collectively −$371.4M behind.
It does track something real. Rank correlation between six-season surplus and six-season head-to-head record is 0.801 across the sixteen franchises. The two best surplus franchises own the two best records, and the three worst records in the league — 19–64, 24–59, 31–52 — all sit in the bottom four of the table. San Diego is the one that misses, last in surplus on a mid-table 34–49.
Directive D12 says contract asset value is trade points, not dollars. This piece is full of dollar signs, so the question has to be settled before any of them mean anything.
D12 governs the forward model and this is not one. The standing directive is about the ranking we build from 2026 opinion, where a dollar denomination has a specific, named defect: the salary market structurally cannot express what a cheap young player is worth, so a dollar-denominated asset value prices every rookie hit at zero. D18 then answered the exact question this article raises, out loud and in the owner’s words, when he looked at the live build and said the 2025 list was “pretty solid” while the 2026 tab was not: the realised surplus surface was left untouched, deliberately — it is not a model and it is honestly denominated. A measurement of scoring against salary paid belongs in the currency the salary was paid in. Converting it to points would be the error.
The half of it that is a model should still be labelled. The salary side of every row is observed — it is what MFL carried. The value side is not: it runs realized points through a replacement bar, then a position weight that the code itself calls “a KNOB, not a measurement,” then a linear points-to-dollars exchange rate. Every dollar in this article is therefore half observation and half modelling choice, and the ratios below inherit that. Change the position weight floor and the whole table moves.
If surplus is production minus a price-implied expectation, a franchise with the best roster scores surplus automatically and the metric quietly restates “we had good players.” That objection has to be answered with a number, not a paragraph.
| Against | Pearson r | Reads as |
|---|---|---|
| total realized value of the roster | 0.955 | nearly the same table |
| total salary paid | 0.462 | spenders do better |
At r = 0.955 the surplus ranking is very close to a redescription of whose roster scored the most. That is the honest starting position and it is not a small problem: 91% of the variance in a table that is supposed to be about valuation is shared with a table that is only about production.
The second row is the one that should have stopped the “price discipline” story before it started. Surplus is positively correlated with payroll, and we carry the largest payroll in the league — $200.5M a season against a soft $220M cap, more than any of the fifteen franchises we are beating. Whatever we are doing, spending less is not it.
Separating price from selection needs a statement of what a player was worth that comes from outside this league entirely. There is exactly one on disk.
market.player.aav is MFL’s global average auction value — what a player went for, on average, across roughly two thousand outside auction leagues, published per season before the season is played. It is a price nobody here set and no result here can move. Within each season and position group, fit two league-wide lines on log(AAV): what the league paid for a player the outside market priced there, and what the league got from him. Then every contract-season splits three ways, exactly:
PRICE = the league’s price − our salary
SELECTION = his realized value − the league’s return there
MIX = the league’s return − the league’s price
surplus = PRICE + SELECTION + MIX
Both fits carry an intercept, so the residuals sum to zero inside every stratum: PRICE and SELECTION are exactly zero-sum across the sixteen franchises and MIX carries the whole systematic part. The three re-add to the published surplus to the dollar, on all 3,141 rows, and the reproduction script asserts it.
The anchor joins 3,141 of 4,089 rows (76.8%). Within a stratum it explains 0.430 of the variance in what we paid and 0.288 of the variance in what we got — informative, and nowhere near deterministic.
Scranton’s +$344.9M on the priced rows, broken into its three parts
58% selection, 44% price, −2% position mix. On the like-for-like split, the bigger leg is the players, not the prices — which is the opposite of the framing this measurement has been carrying. We rank first of sixteen on price and second of sixteen on selection, behind West Waco.
All sixteen, on the 3,141 priced rows. The permutation p-values come from shuffling franchise labels within each season-and-position stratum four thousand times — the question they answer is “given the shape of the roster this franchise held, is this total beyond what a random draw produces.”
| Franchise | Priced surplus | Price | p | Selection | p | Mix |
|---|---|---|---|---|---|---|
| Scranton | +$344.9M | +$151.5M | 0.025 | +$199.4M | 0.013 | −$6.0M |
| West Waco | +$266.0M | +$56.9M | 0.225 | +$260.4M | 0.001 | −$51.3M |
| South Park | +$218.0M | +$74.7M | 0.173 | +$165.2M | 0.022 | −$21.9M |
| San Antonio | +$114.4M | +$27.8M | 0.387 | +$85.9M | 0.159 | +$0.7M |
| Hollywood | +$107.4M | +$58.4M | 0.224 | +$51.3M | 0.249 | −$2.3M |
| Willamette Valley | +$105.8M | +$41.9M | 0.296 | +$94.1M | 0.130 | −$30.2M |
| Enniscorthy | +$68.9M | +$69.3M | 0.212 | +$27.1M | 0.386 | −$27.5M |
| Washington | +$53.1M | +$111.6M | 0.088 | −$57.3M | 0.244 | −$1.2M |
| Carbon County | −$0.8M | −$7.8M | 0.455 | −$64.2M | 0.223 | +$71.2M |
| Oeiras | −$13.6M | −$85.8M | 0.114 | +$44.3M | 0.283 | +$27.9M |
| Houston | −$47.4M | +$21.8M | 0.398 | −$35.7M | 0.303 | −$33.5M |
| Chicago | −$67.9M | −$6.2M | 0.456 | −$85.7M | 0.158 | +$24.0M |
| South Philly | −$91.0M | −$99.3M | 0.093 | −$20.3M | 0.399 | +$28.6M |
| Kawasaki | −$334.1M | −$170.4M | 0.011 | −$195.2M | 0.008 | +$31.5M |
| Las Vegas | −$354.5M | −$111.5M | 0.057 | −$272.1M | <0.001 | +$29.0M |
| San Diego | −$366.6M | −$133.0M | 0.059 | −$197.2M | 0.008 | −$36.5M |
Washington is the league’s second-best price payer at +$111.6M and the only franchise in it with a positive surplus and a negative selection leg, at −$57.3M, which still nets a modest +$53.1M. Oeiras is the mirror: −$85.8M on price, +$44.3M on selection, and the only franchise in the bottom five on price with a positive selection leg. Neither is us. We are positive on both.
The three worst franchises are not bad at one thing. Kawasaki, Las Vegas and San Diego are negative on price and negative on selection, and each leg is worth nine figures on its own. There is no franchise in this league losing $340M by being unlucky with contracts it bought well.
Position mix — whether the strata you shop in are systematically profitable — is the leg with the largest structural effect in the league and the smallest effect on the standings, and the reason is that everyone has to field the same lineup.
| Group | n | Salary | Value returned | Return on salary |
|---|---|---|---|---|
| QB | 305 | $2,052M | $3,704M | 1.81× |
| LB | 359 | $839M | $975M | 1.16× |
| RB | 603 | $4,689M | $5,033M | 1.07× |
| DL | 379 | $997M | $1,041M | 1.04× |
| CB | 168 | $186M | $191M | 1.03× |
| S | 257 | $384M | $350M | 0.91× |
| WR | 763 | $5,568M | $4,076M | 0.73× |
| TE | 307 | $1,243M | $590M | 0.47× |
Quarterbacks return 1.81× their salary and tight ends 0.47×. That is a mispricing of a size nothing else in this piece comes close to, and the receiver half of it agrees with the standing finding that the league overpays for wideouts. The defensive-line half does not: that finding has DL returning essentially nothing, and measured this way DL returns 1.04×. The two use different bars — that one scores against the best bench player at the position, this one against a measured replacement rank — so a fungible position reads near zero there and near break-even here. Take the WR result as corroborated and the DL result as unsettled between the two. And it moves almost nothing between franchises: the cross-franchise standard deviation of the mix leg is $32.0M, against $90.8M for price and $142.3M for selection — and under the label-shuffle null, p = 0.975. The franchises are less spread out on position mix than random assignment would make them. Sixteen managers all have to start a quarterback and three receivers, so nobody can concentrate in the profitable strata, and the biggest mispricing in the league is the one nobody can exploit.
The decomposition can only be worth reading if the two legs are different kinds of thing. They are — but not in the way the phrase “price versus selection” suggests, and the difference has to be stated precisely enough to be checkable.
The price leg takes no result from any game played in this league. Its two inputs are the salary we paid and an auction price set by strangers before the season. It is fully computable in September, and it would be the same number if every week that followed had been rained off. Whatever it is, it is not a restatement of having good players.
The selection leg is a forecast error by definition, and no analysis can rescue it. It is realized value minus what the outside price implied. A franchise scores it either by evaluating better than two thousand outside auction rooms or by being on the right side of variance, and nothing inside a single measurement can tell those apart. Only repetition can, which is the next section.
Published because it is the obvious objection to the paragraph above: the price leg still correlates with production at r = 0.836. Franchises with a big price leg do have better rosters. That is not circularity — no outcome is an input — it is the outside market being informative: banking more consensus value per dollar gets you better players, which is the whole point of doing it. But “uses no outcome” and “is uncorrelated with outcomes” are different claims and only the first one is true here. For selection the same correlation is 0.931.
And the anchor is not neutral about position. The join is 90% at every offensive group, 73% at linebacker, 70% at safety, 61% at defensive line and 41% at corner, because outside auction leagues are largely offence-only. Unpriced rows are minimum-salary depth — $350k median salary against $1.69M, 43.9 mean points against 86.5. Everything after this point is a decomposition of the priced three-quarters of the roster.
This is the test that decides whether the six-season table is a skill ranking or one long run. Split the seasons in half, rank the franchises in each half, and see whether the two agree. There are ten balanced ways to cut six seasons into two threes, and the answer depends enormously on which one you pick — so all ten are printed.
| First half | Second half | ρ | Clears the null bar |
|---|---|---|---|
| 2020 / 2021 / 2022 | 2023 / 2024 / 2025 | 0.194 | no |
| 2020 / 2024 / 2025 | 2021 / 2022 / 2023 | 0.324 | no |
| 2020 / 2021 / 2024 | 2022 / 2023 / 2025 | 0.391 | no |
| 2020 / 2023 / 2025 | 2021 / 2022 / 2024 | 0.426 | no |
| 2020 / 2021 / 2023 | 2022 / 2024 / 2025 | 0.441 | no |
| 2020 / 2021 / 2025 | 2022 / 2023 / 2024 | 0.444 | no |
| 2020 / 2022 / 2023 | 2021 / 2024 / 2025 | 0.447 | no |
| 2020 / 2022 / 2025 | 2021 / 2023 / 2024 | 0.624 | yes |
| 2020 / 2023 / 2024 | 2021 / 2022 / 2025 | 0.662 | yes |
| 2020 / 2022 / 2024 | 2021 / 2023 / 2025 | 0.709 | yes |
The mean is 0.466 and three of ten clear the bar. Which is to say: on the average cut of the data, a franchise’s surplus rank in one half of the window is not a statistically distinguishable predictor of its rank in the other half. It is close — but the honest reading of 0.466 against a 0.503 null bar is “suggestive, not established.”
The best split and the worst split are not arbitrary, and the difference between them is the whole mechanism. The odd/even split — the one a writer reaches for first, and the one that returns 0.709 — interleaves the halves, so the same contracts appear on both sides of the comparison. 51.2% of the players a franchise held in odd seasons were also held by it in even seasons. The chronological split shares 21.7%, and it returns 0.194, the lowest of the ten.
So most of the apparent repeatability is contract persistence, not decision repeatability. One contract carried at the same salary for five consecutive seasons is one bet counted five times, and an interleaved split counts that bet on both sides of its own comparison.
| Leg | Split-half mean | Chronological | Odd/even | F(15,80) | p | ICC |
|---|---|---|---|---|---|---|
| surplus | 0.466 | 0.194 | 0.709 | 2.84 | 0.0014 | 0.234 |
| price | 0.335 | −0.065 | 0.565 | 1.88 | 0.038 | 0.128 |
| selection | 0.279 | 0.065 | 0.565 | 1.55 | 0.108 | 0.084 |
| mix | 0.286 | 0.085 | 0.291 | 1.83 | 0.045 | 0.121 |
Franchise is a real factor in total surplus — F = 2.84, p = 0.0014 — and it survives at conventional significance for price and does not for selection. That is the one place in this article where the ordering the backlog asserted comes out right, and it comes out right by a completely different route than the one it used. Price is the smaller leg in dollars and the more repeatable one across seasons. Selection is the bigger leg and the one whose year-to-year signature is indistinguishable from weather.
Run it on decisions only and both legs collapse. A franchise chooses a player in the season he arrives; every season after that is a retention, not an acquisition. Restricted to the 2,085 arrival rows, the split-half mean for price is −0.044 and for selection 0.208. Neither is distinguishable from nothing. Our own arrival seasons carry +$83.2M of the price leg and only +$60.2M of the selection leg — 55% and 30% of their six-season totals respectively, so the majority of what we are credited with picking well is what we did not sell.
| Season | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 |
|---|---|---|---|---|---|---|
| surplus | +$1.3M | +$101.9M | +$1.8M | +$40.2M | +$89.5M | +$136.7M |
| price | −$18.2M | +$63.1M | +$27.0M | +$16.7M | +$21.7M | +$41.3M |
| selection | +$14.7M | +$48.8M | −$29.3M | +$49.3M | +$46.4M | +$69.5M |
Two of six seasons are worth about a million dollars. The price leg was negative in 2020 and the selection leg was negative in 2022. Whatever this is, it is not a standing property that showed up every year — it is one flat pair of seasons, one very good one in 2021, and a rising run since 2023.
The chronological split cannot separate “no skill” from “different manager.” Six of the sixteen franchises changed name or owner across 2020–2026 — Oeiras, Hollywood, Carbon County and Kawasaki among them, Kawasaki twice. A test that compares 2020–22 against 2023–25 is partly comparing different people. That weakens the null result; it does not repair the positive one, because the interleaved splits that look strong are the ones contaminated by shared contracts.
And the intervals on a single franchise are enormous. Bootstrapping our own 136 distinct players with replacement, the price leg is +$151.5M with a 95% interval of [−$112.0M, +$407.0M] and the selection leg +$199.4M at [−$23.9M, +$449.6M]. Both contain zero. The label-shuffle test is what says these totals are unusual at all (p = 0.025 and p = 0.013); the bootstrap is what says you should not quote either one to three significant figures and expect it to mean something.
Every number above rests on contract.ledger, and the ledger is built from raw/rosters/YYYY.json — a roster export MFL stamps week 22. That is the roster as it stood after the season had finished. Everyone cut along the way is simply not in it.
This matters because the bylaws do not forget them. Cut a player in-season and 100% of his salary still lands on that season’s cap, plus 50% of his remaining contract years against the next one. The surplus construction charges a franchise only for the players it still owned in January.
| Quantity | Value | What it means |
|---|---|---|
| franchise-player-weeks in the weekly archive | 51,661 | every week a franchise actually held somebody |
| …with no week-22 ledger row | 22.0% | dropped or traded away before the snapshot |
| …share of all rostered points in those stints | 18.0% | production nothing in the table is charged for |
| player-seasons rostered with no ledger row at all | 1,076 | held by somebody all year, invisible to everybody |
| contract-seasons spent entirely with one franchise | 77.6% | the clean cases |
| ledger-credited points scored on another franchise’s roster | 6.5% | claim a man in week 9, get his September |
| ledger-credited points scored while unrostered | 1.7% | a 2025-only coverage seam, see method |
Both errors run the same way, and it is the flattering way. A bust you cut in October vanishes from your ledger; a hot pickup you claim in November arrives on it carrying his whole season’s scoring at your minimum salary. Churn is rewarded twice, and the correlation bears it out: rank correlation between a franchise’s share of clean single-franchise contract-seasons and its surplus is −0.424. The franchises that hold still measure worst.
So the construction gets rebuilt twice, with identical arithmetic — same replacement bars, same position weights, exchange rate recomputed so each variant still balances to zero.
| Construction | Rows | 1st | 2nd | 3rd | ρ vs published |
|---|---|---|---|---|---|
| as published | 4,089 | Scranton +$371.4M | West Waco +$264.7M | South Park +$220.4M | — |
| rows with no shared credit | 3,175 | West Waco +$273.6M | Scranton +$256.7M | South Park +$186.9M | 0.965 |
| points earned on that roster only | 4,089 | West Waco +$320.9M | Scranton +$252.5M | Hollywood +$179.0M | 0.859 |
The ordering is robust and the lead is not. At ρ = 0.965 and 0.859 the table barely moves as a ranking — the top three stay the top three, the bottom three stay the bottom three. But under either correction Scranton is second, not first, and the “first by $107M” framing does not survive contact with who actually owned the player in week 4. The defensible statement is that two franchises are clear of the other fourteen, and which of the two is first depends on how you handle players who changed hands.
This piece was commissioned off a backlog entry that had already been measured once. Every number in it re-derives here exactly; the inference on top of them does not.
4,089 rows over 16 franchises and 6 seasons. +$371.4M, +$264.7M, +$220.4M at the top; −$374.6M, −$369.9M, −$341.0M at the floor. AAV joins 3,141 of 4,089. Our dollars-per-unit-of-outside-AAV is 1.038, second cheapest behind South Park’s 1.008. Our points-per-unit-of-AAV is 18.7, and it really is thirteenth of sixteen.
“It is the price we pay, not the players we pick.” On a like-for-like decomposition price is the smaller leg — 44% against selection’s 58% — and we rank second on selection, not below average. And “first by $107M” becomes second under either survivorship correction.
Why the two ratios pointed the wrong way. Points per unit of AAV has no position control, no replacement bar and no salary in it at all. It rewards holding positions that score many points against a low outside auction price — which is the entire IDP half of the roster, and precisely where the AAV join is thinnest (41% at corner). It is a measure of roster composition wearing an evaluation costume. Dollars per unit of AAV is the better of the two and it does agree with the price leg where it matters: its three most expensive franchises — Kawasaki at 1.430, Las Vegas at 1.426, San Diego at 1.385 — are the same three the price leg puts at the bottom, and they remain the franchises to sell contracts to.
A companion piece takes up the owner’s compounding loop — good players at good prices generate surplus, surplus becomes cap slack, slack is redeployed on more studs. This decomposition has one thing to say about whether that loop can turn at all, and it is a constraint rather than a verdict.
Selection surplus does not free a single dollar. A player who outproduces what his price implied gives you points you did not pay for. That wins games. It does not create cap room, because the salary was the same either way. Price surplus is the only leg denominated in spendable money — it is literally the gap between what the league pays for a player at that market price and what we paid.
Which puts a number on the input to the loop. Our price leg is $151.5M over six seasons: $25.3M a season of cap room relative to what the rest of the league pays for the same outside market value, against a soft $220M cap. About one dollar in nine of a full cap, free. And the redeployment shows up exactly where a loop would predict: we hold more outside market value than any franchise in the league — 1,115 AAV units against West Waco’s 1,060 and Las Vegas’s 636 — on the league’s largest payroll. We do not buy cheaper players. We buy more player.
The constraint, stated plainly: if the loop is real it runs on 44% of the surplus, not on all of it. And that 44% is the leg that clears a franchise-trait test at p = 0.038 and fails a league-wide spread test at p = 0.175 — real enough to plan around, nowhere near proven. The other 58% is a forecast error that has been going our way. It is worth exactly as much in the standings and exactly nothing as fuel.
The quantity. insight.value.realized, spec 09: for each of 4,089 contract-seasons 2020–2025, realized fantasy points in this league’s own scoring, minus that season’s measured replacement level at the position, weighted by position, converted to dollars at that season’s own exchange rate (total committed salary ÷ total delivered weighted VORP), minus salary paid. Recomputed per season so six years of salary inflation cannot leak across years. Nothing in it is a projection.
The anchor. market.player.aav, MFL’s global average auction value across roughly two thousand outside leagues, published per season for 2020–2026 and measured before the season is played. It is exogenous in the only sense that matters — no result in this league moves it and no manager here sets it — and it is a bad instrument in every other sense: those leagues are largely offence-only, none of them use these coach slots, and their scoring is not ours. It is the best available exogenous price, not a good one.
The estimator. Within each of 48 (season × position group) strata, ordinary least squares of salary on log(AAV) and of realized value on log(AAV), both with intercepts. Fitted values give the league’s price and the league’s return at that outside price; the two residuals and their difference are the three legs, and they re-add to the row’s published surplus by construction. Inference is a 4,000-draw label permutation within stratum — which holds each franchise’s positional and price-tier shape fixed and asks only whether the total is unusual — and a 4,000-draw bootstrap clustered on player, because one man held five straight seasons is one bet and not five. Both are seeded; a moved interval means the data moved.
Five things it cannot see. Everyone cut — the ledger is a week-22 roster snapshot and dead money is real under the bylaws, which is quantified above rather than waved at. Draft picks and cap credit, neither of which appears in a salary ledger. The 23% of contract-seasons with no outside price, which are minimum-salary depth and disproportionately IDP. The counterfactual — every leg is measured against what the league did, so a league-wide error is invisible by construction. And a 2025 coverage seam: fantasy.player.points adds MFL’s league-wide export for 2025 weeks 1–14, so weeks a player spent unrostered exist as rows in 2025 and are absent in every other season — 100% of the “credited while unrostered” points above are that one season, and 2025 is also our largest surplus year.
Confidence 0.45 — realised, not forecast, and modelled at both ends. The arithmetic reproduces exactly and the ranking is robust to two survivorship rebuilds. What does not clear the bar is the interpretation: the average split-half is 0.466 against a 0.503 null, the leg that is bigger is the leg that is a forecast error, and the leg that repeats does not have a spread the league-wide test can distinguish from chance. This measures six seasons that happened. It is not a forecast that 2026 goes the same way, and it is not on its own a demonstration that anyone here is good at valuing contracts.