Scranton Stranglers lineup 2020–2025 · 96 franchise-seasons rebuilt

The projection reshuffles
the league. It cannot pay it.

Rebuild six seasons of standings with all sixteen managers obeying MFL’s projection and the league’s Victory Point total moves by exactly zero — because zero is the only answer the scoring rule permits. Rebuild them with one manager obeying it and the answer is not identified: the same quantity runs from −15 to +12 across six defensible coverage gates, and the bootstrap on the published cell spans −37 to +41. This piece published +3 as if it were a measurement. It is a specification. What survives is the arithmetic, the churn, and a direction.

1,149franchise-weeks
−0.276pts a week
0net Victory Points
−15 to +12the one-sided net, across gates

Correction, and what it changed

The first version of this piece reported +3 Victory Points as the measured half of its answer. That number is not identified, and the article did not say so. An adversarial reviewer rebuilt the engine independently from the raw archive and reproduced every arithmetic claim in it — 96 of 96, the league total of 1,984, the all-sixteen zero, 222 gross, 76 of 96 moving, the extremes of +7 and −6. Then he broke the part that was not arithmetic, in four ways, and he was right about all four.

The one-sided net moves from −15 to +12 depending on which projection-coverage gate you impose, and the first version reported only the one sensitivity that made its own case. Its bootstrap interval is −37 to +41, which was never printed. Its coach-multiplier correction, described as “a hard upper bound,” was a mean and not a bound at all; done properly it moves the number to −14. And the gate is applied to the wrong side of the counterfactual.

Everything below is rerun. The placebo figures also changed, because the random number generator underneath them was numerically broken — see the method. The conclusion the piece reaches is the same one, reached for a different and much narrower reason, and it is now stated as what it is.

The falsification, before the finding

This piece rebuilds six seasons of standings from scratch. If that rebuild is wrong, every number below is decoration. So the engine is checked against MFL’s own recorded standings before it is pointed at a counterfactual, and it is checked on the season most likely to break it.

Victory Points recomputed from raw weekly results match MFL’s own vp_official in 96 of 96 franchise-seasons. Not 95. The league total across 2020–2025 is 1,984, and that number is worth writing out: 24 Victory Points a week × 83 regular-season weeks is 1,992, less the eight top-half bonus points that were never awarded in week 14 of 2021.

That eight is not a fudge. league_2021.json carries lastRegularSeasonWeek=14 alongside victoryPointsEndWeek=13 — the top-half bonus simply stopped a week before the season did, that year and no other. This resolves a standing entry in open-questions.md: “2021 top-half Victory Points, 8 of 16 franchise-seasons off by exactly +1.” The eight franchises that were over-credited are exactly the eight highest scorers of 2021 week 14 — Hollywood, Willamette, West Waco, Scranton, South Philly, San Antonio, Enniscorthy, Houston. Honour the field and the discrepancy disappears at every franchise in every season.

The engine, checked before it is used.
CheckExpectedGot
Franchise-seasons matching MFL’s vp_official9696
League VP total, 2020–202524×83 − 8 = 1,9841,984
Franchise-weeks in the universe16 × 831,328
Exact score ties at the 8th/9th boundary, as played0

The rule decides the answer before the data does

Half of this article is arithmetic that holds no matter what any lineup scores, and saying so up front is the only way the measured half means anything.

Victory Points in this league are 2 for a head-to-head win, 1 each for a tie, plus 1 to each of the top eight scorers that week. Sixteen teams play eight games. Eight games always pay 16 points — a win-and-loss pays 2+0, a tie pays 1+1. The top-half bonus always pays 8. Every league-week pays exactly 24 Victory Points, whatever anybody scores.

So if all sixteen managers change their lineups, the league’s Victory Point total cannot move. Not approximately — at all. A counterfactual applied to everyone can only move points between franchises, never create one. That makes the headline the backlog carried for this idea — “six seasons of obeying the projection would have been worth 14 Victory Points across the whole league” — not merely unsupported but arithmetically impossible in the form it is stated. There is no lineup rule, no matter how good, that pays the league anything.

What a lineup rule can do is take Victory Points off the fifteen managers who do not use it. That is a real and valuable thing, it is what the one-sided rebuild measures, and it is a completely different sentence.

The points delta, reproduced

Before any standings arithmetic: what does obeying the projection actually do to a score? lineup.franchise.exante_best_actual is what the projection-optimal legal lineup went on to really score; started_actual_noncoach is what the manager’s own sixteen really scored. Gated at 90% projection coverage of the started lineup, which is what that metric family’s own description demands.

1,149 of 1,328 franchise-weeks clear the coverage gate.
QuantityValue
Mean, projection lineup minus manager’s lineup−0.276 pts/wk
Standard deviation15.79
t−0.59
Median week−0.20
Mean absolute change11.39 pts/wk
Weeks the projection lineup scored more505
Weeks it scored the same59
Weeks it scored less585
Total points the whole league would gain, six seasons−317.1

The counterfactual is violent even where the mean is not. It moves the average franchise’s weekly score by 11.39 points in one direction or the other — roughly a full starting slot — and it is better in 505 weeks and worse in 585. This is not a small perturbation whose standings effect can be waved away as rounding. It is a large two-sided shake that happens to average out.

The first version called that mean “a precisely-bounded nothing.” It is not precise. The standard error is 0.466, so the interval on −0.276 runs from −1.19 to +0.64 points a week — across 1,149 franchise-weeks, a total somewhere between −1,366 and +732 points, which at the league’s own exchange rate is anywhere from −28 to +15 Victory Points. It is a nothing. It is not a bounded one.

The confound the gate cannot see

The gate is applied to projection_coverage_started — the share of the players the manager started who had a projection. But the counterfactual lineup is chosen from the whole roster, and an unprojected bench player is scored 0.0 projected, which means he is treated as worthless rather than unavailable. That bias lives entirely on the roster side, where the started-side gate cannot reach it.

Roster coverage is much worse than started coverage: the median franchise-week has a projection for 83% of its roster, and only 22.7% of franchise-weeks reach 90%. If the counterfactual were well-defined, the delta would not care. It does.

Mean delta by quartile of roster coverage. Left: cut within the gated 1,149 the headline is computed on. Right: the same cut over all 1,328.
Quartile of roster coverageGated sampletAll 1,328t
Q1 — worst covered+0.06+0.07−0.33−0.40
Q2+1.24+1.28+1.59+1.65
Q3−0.99−1.04+0.26+0.28
Q4 — best covered−1.42−1.52−1.73−2.00

The strata disagree, and on both cuts the quartile where the counterfactual is best defined is the most negative one. On the full sample it is five to six times the pooled mean and clears nominal significance; on the gated sample — which is the sample the headline is actually computed from, and the fairer test — it is −1.42 at t −1.52 and does not. That distinction is worth drawing precisely because the reviewer’s version used the full-sample cut, and the significance he reported does not survive being restricted to the rows the estimate uses. The confound is real either way. −0.276 is a pooled average over strata that point different directions, and the gate does not fix it, because the gate is on the wrong side of the lineup.

One manager obeys

The rebuild the backlog described: take a franchise’s counterfactual score, leave its opponent on the score it really posted, and re-cut the top half against the other fifteen real scores. This is what one manager’s decision is worth against a league that does not change.

One-sided rebuild, 96 franchise-seasons. Both Victory Point legs reported separately.
QuantityValue
Net Victory Points, whole league+3
— head-to-head leg+20
— top-half leg−17
— of the +3, from one exact score tie at the cut line+1
Franchise-seasons that gain+91 total
Franchise-seasons that lose−88 total
Franchise-seasons that move at all72 of 96
Head-to-head results changed86 team-weeks of 1,328
Top-half places changed115 team-weeks

+3 Victory Points. Across sixteen franchises and six seasons. That is 0.03 a franchise-season, and one of the three comes from a single week where two counterfactual scores landed exactly equal on the 8th/9th boundary and the bonus was paid twice. The two legs point in opposite directions and nearly cancel: obeying the projection wins slightly more head-to-heads and misses slightly more top-half cuts.

And then the +3 stops being a number. This paragraph used to say that dropping the 90% coverage gate was “the only route to a double-digit number found here,” and that the gated +3 was the one to publish. Both halves of that were wrong, and they were wrong in the direction that flatters the sentence. Tightening the gate reaches a double-digit number too — further out, and with the other sign.

Every defensible coverage gate, and what each makes of the same six seasons. The published row is banded.
GatenMean delta
pts / wk
One-sided
net VP
All-sixteen
net VP
no gate at all1,328−0.053+120
started coverage ≥ 0.801,308−0.230+120
started coverage ≥ 0.901,149−0.276+30
started coverage ≥ 0.95806−0.623−140
roster coverage ≥ 0.90301−1.738−90
started ≥ 0.90 and roster ≥ 0.85544−1.385−150

Six gates, all of them arguable, and the one-sided net runs from −15 to +12 — a spread of 27 Victory Points around a published figure of +3. The one-sided number is not identified. Reporting only the loosening, as this piece first did, is selective sensitivity: it is the one direction that makes the published cell look like the conservative choice.

And the gate is on the wrong side of the problem, which is why more of it does not settle anything — the section above this one is the whole of that argument, and its conclusion is that the sample the +3 is computed from is not homogeneous with respect to the very thing the gate is meant to control.

Under all of that sits an error bar wide enough to hold every cell in the table. The net is a sum over 83 league-weeks; bootstrapping those weeks 20,000 times gives a mean of +2.7 with a standard deviation of 19.9 and a 95% interval of −37 to +41. The probability of drawing the backlog’s +14 or better is 0.29. So “+14 does not reproduce” is a true statement about a point estimate and about nothing else, and it should never have been written as though it settled something.

None of this touches the finding this piece is actually about. Look at the last column: the all-sixteen net is 0 in every row of the lattice, because it is not a measurement that a gate could move. It is conservation. The gate decides which franchise-weeks get counted; it cannot decide that sixteen managers splitting a fixed 24 Victory Points a week end up with more than 24.

The league’s own conversion rate gives a third reading of the same quantity, and it is worth being careful about what its agreement means. vp-per-point.js puts a marginal point at 2.02 Victory Points per 100; −317.1 points predicts −6.4 VP against a measured +3. The first version called these “two estimates of the same nothing, three Victory Points apart” — the gap is nine, not three, and more importantly two estimates landing nine apart is not corroboration when the standard deviation on one of them is 19.9. They could hardly have landed far apart. The exchange rate’s own interval, carried through from the points delta, runs from −28 to +15 Victory Points. Three wide bands overlapping near zero is what this piece has, and it is not the same thing as three measurements agreeing.

All sixteen obey

The rebuild the question actually asks for. If the projection is worth obeying, everybody obeys it. Every opponent’s score moves, and the top-half cut line is re-drawn against sixteen counterfactual scores rather than one.

moved111
net0

Victory Points that change hands, against the net the league ends up with

All-sixteen rebuild, same 96 franchise-seasons, same engine.
QuantityOne-sidedAll sixteen
Net Victory Points+30
— head-to-head leg+200
— top-half leg−170
Gross Victory Points moved179222
Victory Points changing hands89.5111
Franchise-seasons that move at all72 of 9676 of 96
Head-to-head results changed86 franchise-weeks138 team-weeks (69 games)
Top-half places changed115 franchise-weeks134 team-weeks (67 swaps)
Boundary ties inflating the net10

Both legs come back exactly zero, and that is the check passing rather than the result arriving. The interesting column is the one underneath. Making every manager obey the projection moves more of the standings than making one manager obey it, not less: 69 of the 664 games played over six seasons come out the other way, 67 top-half places swap hands, and 76 of the 96 franchise-seasons finish on a different Victory Point total. The mean franchise-season moves 2.31 Victory Points. The extremes are +7 and −6. (The one-sided rows count something different and smaller by construction — a franchise-week where this franchise’s result changes against an opponent who is not allowed to move — which is exactly why the two columns cannot be read as one scale.)

Change in a franchise-season’s Victory Points when all sixteen obey the projection — 96 franchise-seasons

−6
−5
−4
−3
−2
−1
0
+1
+2
+3
+4
+5
+6
+7

Twenty franchise-seasons finish exactly where they finished. The other seventy-six move, and they move symmetrically, because they have to.

Season by season. The net is zero in every one of the six, by construction; the churn is not.
SeasonOne-sided netOne-sided grossAll-16 netAll-16 gross
2020−337054
2021+925028
2022−232036
2023−531042
2024+628034
2025−226028

Is the reshuffle anything?

111 Victory Points changing hands would matter a great deal if the projection were moving them towards the managers who deserved them. The test is whether the same perturbations, handed out at random, move the standings the same amount.

Take the 1,328 counterfactual deltas exactly as measured and randomly reassign them among the sixteen franchises within each league-week — same sizes, same weeks, wrong owners. Four hundred deterministic draws.

Gross Victory Points moved, observed against the placebo. Rerun on a repaired generator — see the method for what was wrong with the old one.
 Gross |ΔVP|
Observed, all sixteen obeying the projection222
Placebo median204
Placebo 5th percentile174
Placebo 95th percentile236
Observed percentile of the placebo86th
One-sided p0.15

The real reshuffle sits at the 86th percentile of a reshuffle that is pure noise by construction. That is inside the band. The first version of this piece added “and nowhere near outside it,” which oversells a one-sided p of 0.15 — not significant, but not nowhere near either. Whatever information MFL’s projection contains, it does not show up as the standings moving further than random reassignment of the same-sized shocks would have moved them.

And this placebo is weaker than it was made to sound. It was described as “same sizes, same weeks, wrong owners,” as though the only thing destroyed were who received each shock. It is not. Within a league-week the counterfactual delta correlates −0.210 with the franchise’s own actual score — the counterfactual is systematically compressive, lifting the week’s low scorers and cutting its high ones — and reassigning at random destroys that structure as well. So the placebo differs from the real assignment in a second, uncontrolled way, and that difference is a live alternative explanation for the observed 222 sitting above the placebo’s 204. The test is directionally informative and it is not clean.

It also does not test what the question above it asks. “Is the projection moving Victory Points towards the managers who deserved them” is a question about direction; this measures the size of the churn and nothing else. Nothing in this piece tests the direction. That the 111 Victory Points are churn rather than merited redistribution is a claim this article is not entitled to make, and the first version made it.

Four brackets come out different anyway

Zero net Victory Points is not the same as nothing happening. Six teams make these playoffs — four division winners and one wild card per conference — and a 2.31-point average swing is more than enough to move the last one.

Playoff field and division winners under the all-sixteen rebuild, standings sorted MFL’s way: VP, win %, head-to-head, division %, conference %, points.
SeasonFieldDivision winnersSeedingWho swaps
2020changeschangechangesHollywood in, South Park out
2021changessamechangesHouston in, San Antonio out
2022samesamechanges
2023samechangechangessame six, reordered
2024changeschangechangesEnniscorthy in, Washington out
2025changeschangechangesHouston in, San Antonio out

The playoff field changes in 4 of 6 seasons, the set of division winners in 4 of 6, and the seeding in 6 of 6. A rule worth zero points and zero Victory Points to the league would still have sent a different team to the postseason in four seasons out of six — and, on the placebo, for no better reason than that shaking the standings by eleven points a week shakes something loose.

The home team. Scranton is the league’s best regular-season franchise over this window and obeying the projection does not improve on that.
SeasonActual VPOne-sidedAll sixteen
2020272122
2021353435
2022323028
2023343739
2024343134
2025373335
Total199186193

Six seasons of deferring to the projection costs this franchise 13 Victory Points if it does it alone and 6 if everyone does. Neither is a large number against a 199-point total, and neither is evidence of anything about this franchise in particular — the same churn that hands Kawasaki +7 in 2022 hands Scranton −5 in 2020. It is here because a piece that reports a null result should show what the null did to the franchise that commissioned it.

The control — a counterfactual that is worth something

A method that returns zero is only interesting if it can return something else. So the identical engine, over the identical seasons, is handed the one lineup counterfactual this desk has already shown to be worth a great deal: re-start last week’s lineup and never look at it again.

The lineup hour buys hygiene, not judgment put that at +20.08 points a week over 786 strictly comparable franchise-weeks, and +25.26 over all 1,232 when a dropped starter is scored as the zero he really was. That second figure reproduces here exactly, and it is the one this rebuild uses, because a standings rebuild needs all sixteen teams in every week.

solo−649
all+3

Victory Points lost to autopilot — solo, and with all sixteen doing it

Two counterfactuals, one engine, one archive. Weeks 2–14 for the autopilot rows, since week 1 has no previous lineup.
CounterfactualPoints / wkOne-sided VPAll-16 VPAll-16 gross
Re-start last week’s lineup−25.26−649+3255
Start the projection’s best lineup−0.28+30222

The engine is not a machine for printing zero. Hand it a real effect one-sidedly and it prints −649 Victory Points — 6.76 a franchise-season, more than a sixth of a 42-point maximum. Hand the identical effect to all sixteen managers at once and it prints +3, of which every one of the three is an exact-tie artefact at the cut line. Going on autopilot alone is catastrophic. Everyone going on autopilot together costs the league nothing, because there were only ever 24 Victory Points a week to go round.

This is also the comparison that survives everything above. The one-sided value of obeying the projection cannot be pinned down: it is somewhere between −15 and +12 depending on the gate, further negative once the coordinators are handled properly, and its bootstrap band is forty points wide. But every one of those readings is small. The widest of them, −15, is 0.16 Victory Points a franchise-season. The autopilot control is −6.76 — forty-three times larger, and it does not depend on which gate you pick, because there is no coverage gate on “did you notice this man is not playing.” You do not need to identify a quantity to know it is not the one that matters.

That is the reconciliation between the two pieces, and it is stronger than “they do not contradict.” Measured one-sidedly, in the currency the standings are actually kept in, lineup hygiene is worth −649 Victory Points and lineup judgment is worth something between −15 and +12 — and measured league-wide both are worth exactly nothing. Every lineup edge in this format is positional. It is not a thing you gain; it is a thing you take.

How this could mislead you

The strongest objection is that the half of this piece which is not arithmetic is not identified, and it is correct. The first version named a softer objection here — that the zero is unfalsifiable — and then rebutted it, which reads as rigour and is not. The zero was never the weak point. The weak point is the one-sided number that was offered as the measured complement to it: it moves 27 Victory Points across defensible coverage gates, it moves another 17 when the coordinator multipliers are handled correctly, its bootstrap interval is −37 to +41, and the strata of the sample it is computed on disagree with each other. Any reader who took +3 as a measurement of what obeying the projection is worth was misled by this article, and the sentence that misled them was “the gated figure is +3. Publish that.” What the exercise supports is a bound and a direction, not a value.

The zero, separately, is unfalsifiable, and that objection is half right. The all-sixteen net had to be zero — it is conservation, printed here as a self-check rather than a discovery, and a reader who takes it as evidence about MFL’s projection has also been misled. The control exists precisely so the conservation claim is not doing work it cannot do: the same engine returns −649 when handed a counterfactual that is genuinely worth something.

The placebo is not a matched null, and the section that uses it now says so. Random reassignment destroys the −0.210 within-week correlation between the delta and the franchise’s own score as well as destroying who received it, so the gap between the observed 222 and the placebo’s 204 has more than one candidate explanation. And it measures the size of the churn, never its direction.

The counterfactual lineup is the noisiest series in the store, and it says so itself. exante_best_actual warns that when two legal lineup shapes tie on projected points the choice between them is arbitrary, and that 32 of 1,328 franchise-weeks carry up to 28.5 points of that tie noise. Those weeks are 2.4% of the sample and they inflate the churn rather than the net. A bracket change that turns on one such week is a coin flip dressed as a finding, which is one more reason the bracket table is reported as churn and not as “who should have made the playoffs.”

The playoff brackets cannot be checked against a real bracket. The archive holds regular-season weeks only — playoff results have never been pulled, per open-questions.md — so the reconstruction is validated at the Victory Point layer (96 of 96) and at no layer above it. Two of MFL’s six tiebreakers are implemented from the configured standingsSort string rather than observed in use, and whether a wild card with better Victory Points can outseed a division winner is genuinely unknown. Read “four of six fields change” as “the standings are loose enough at the wild-card line that an eleven-point weekly shake moves them,” which is what it measures.

Coach scores are held fixed, two of the three are multipliers on the lineup, and the correction for that was wrong. The offensive and defensive coordinator slots score a rate times the franchise’s own weekly total, so a lineup that scores less drags its coordinators down with it — an omission this rebuild does not model. The first version scaled the whole delta by 1.123 and called it “a hard upper bound.” It is a mean, and a mean bounds nothing: the per-franchise-week coach share has a median of 10.5%, a 90th percentile of 22.0%, a 99th of 34.5% and a maximum of 59.7%. Scaling each week by its own actual ratio — the version that matches the mechanism — moves the one-sided net to −14, not −3. That is a 17-point swing on the one-sided figure against the 6 originally reported.

The all-sixteen zero is genuinely untouched by any of it, at every scaling, because conservation does not care what the scores are. But the first version’s closing sentence — “it cannot change the sign of a conclusion that is already zero” — was true of the all-sixteen net and false of the one-sided net, which is the one the article was publishing as evidence. Handled properly, the coordinator correction pushes the one-sided reading firmly negative, and it does so in the same direction as every tightening of the coverage gate.

And this is one league’s scoring rule, not a general truth about fantasy football. Conservation holds because both Victory Point legs are rank-based. A league that paid a bonus for clearing a fixed points threshold would not conserve, and a lineup rule there really could make everybody better off at once. The general claim is narrower than it looks: in this format, lineup skill is a positional good.

What to do with it

Never price a lineup change in league-wide VP

2.02 / 100

The exchange rate in vp-per-point.js is a one-sided quantity — it is what a point is worth when your score moves and fifteen others do not. That is exactly right for pricing a coach, a free agent or a trade, where only your roster changes. It is wrong for anything the whole league would adopt, where the correct answer is always zero. Nothing on the coach board needs changing; the label on the number does.

Retire “points left on the bench”

−15 to +12 VP

Not because the measurement came back zero — it came back unidentified, which is a different and in some ways better reason. Six defensible specifications of the same question span 27 Victory Points and disagree on sign, and every one of them is worth less than a fifth of a Victory Point a franchise-season. A stat whose value cannot be pinned to a sign after six seasons and 1,149 franchise-weeks is not a franchise-quality stat. Do not build lineup automation against it, and do not rank managers by it.

And keep spending the Sunday hour on hygiene. The two counterfactuals in this piece bracket the lineup hour, and they are not close. The part that checks whether nineteen men are actually playing this week is worth 649 Victory Points across six seasons against a league that skips it. The part that agonises over which of two live starters to pick is worth somewhere in a band that is at its widest forty-three times narrower than that, and which straddles zero. The decision this piece asks you to make is unchanged from the first version; the reason is weaker and more honest. It is no longer “lineup judgment is worth nothing, measured” but “lineup judgment is too small to locate, and everything that sharpens the measurement makes it worse rather than better.”

Method, and what it can’t see

The universe. Every regular-season franchise-week 2020–2025 — 16 franchises × 83 weeks = 1,328, with 2020 running 13 weeks and the rest 14. Scores, matchups and starters come from raw/weekly_results; divisions, conferences and the Victory Point rule from each season’s own TYPE=league snapshot rather than from anything typed by hand, which is how the 2021 bonus window was found at all.

The counterfactual. A franchise’s counterfactual score is its real score plus exante_best_actual − started_actual_noncoach, applied only where projection_coverage_started ≥ 0.9 — below that the exante family is measuring absent projections, each counted as zero, rather than a decision. Where the gate fails the manager keeps the lineup he set. That 0.9 is a choice, not a requirement, and this version reports all six of them rather than asserting one; the metric’s description demands a gate and names neither a threshold nor which of the two coverage series to use.

The coverage series, both of them. projection_coverage_started is the share of started players carrying a projection; projection_coverage_roster is the share of the roster. The exante counterfactual selects from the roster, so the roster series is the one that governs whether the counterfactual lineup is well-defined, and it is the worse-covered of the two. Gating on it, alone or in combination, is in the lattice above.

The two rebuilds. One-sided: this franchise on its counterfactual score, its opponent on the score it really posted, and the top-half cut re-drawn against fifteen real scores and one counterfactual. All sixteen: every franchise on its counterfactual score, both legs recomputed together. Head-to-head pays 2 for a win and 1 each for a tie; the top eight scorers take 1 more, except in 2021 week 14. Exact ties at the eighth/ninth boundary pay both teams and are counted and reported separately, because they are the only way an all-sixteen net can come back non-zero.

The interval. The one-sided net is a sum over 83 independent league-weeks — each week’s sixteen franchises are rebuilt against that week alone, so the per-week nets add to the total exactly, which the selftest asserts. That makes a nonparametric bootstrap over weeks the right interval, and it is reported everywhere the point estimate is. The points delta carries the ordinary standard error of its own mean.

The placebo reassigns the observed deltas among the sixteen franchises within each league-week, preserving the size and timing of every shock, on a seeded generator so nobody can re-roll until they like the answer. It is a weak null and the piece says where. It destroys the −0.210 within-week correlation between a franchise’s delta and its own score along with the ownership, and it speaks to the magnitude of churn rather than its direction. The generator itself was broken in the first version: it was written as s = (s * 1103515245 + 12345) & 0x7fffffff, and in JavaScript that product exceeds 253 for any seed above roughly four million, so it is rounded before the mask is applied and the low bits the mask keeps are floating-point residue rather than the generator’s output. It still produced numbers. They were not the sequence claimed, and the placebo band published off it (202 / 178 / 234) is not reproducible. Every placebo figure here comes from mulberry32.

Five things it cannot see. Playoff weeks, since the archive stops at week 14 and the postseason has never been pulled — so “made the playoffs” is where this stops and it cannot say who would then have won. The coordinator multipliers, held fixed, and not bounded — the correction runs to −14 when each week is scaled by its own ratio and the underlying share reaches 59.7% in the worst franchise-week. Which specification is right: nothing in the archive adjudicates between a 0.90 and a 0.95 coverage gate, and the two disagree by 17 Victory Points. Behaviour: a league where everyone obeys the projection is a league where everyone knows everyone obeys it, and nothing here models the second-order response. And the projection itself, which is MFL’s and is already documented as barely beating a trailing mean — a better projection is a different question, and this method would answer it the same way, since the ceiling on any of them is still 24 Victory Points a week.

Confidence 0.49 — realised, not forecast, per data/findings/README.md. That number is unchanged from the first version and it should not be read as unchanged confidence in the same claims: the arithmetic half carries no uncertainty at all and is now independently reproduced by a second implementation, while the empirical half is weaker than it was published as. The confidence is the same because it was always doing the work of averaging those two.