League History audit package
Nothing in MFL, production D1 or Discord was changed. Nothing was merged, deployed or published.
- Sources:
- MFL's archived exports for every season (read 2026-10-17)
- a production D1 snapshot (2026-10-17), checked again today: final standings, every playoff game and every stored division and record are unchanged
- the rookie-pick trade replay
- Production reads this stage: 4 queries, 10,531 rows read, 0 written. The projections table was 6,861 rows; the three history fingerprints were 192, 3,285 and 193.
- Other reads: 7 public MFL reads (the NFL schedule for Weeks 1–6 and the player list).
1. What League History is today
| Where | What it shows | Source | Problems found |
|---|---|---|---|
| Desktop History → Playoff Bracket | Any season's bracket, with a season picker | /api/playoff-bracket (D1 games + recorded seeds) | Old formats (2010–2015 toilet, 2011–2013 conferences) are listed by week rather than drawn as a bracket. This is correct since #1334. |
| Desktop → Draft Order Finish | Finish → rookie pick | /api/playoff-bracket | The stored finishes are wrong in 2011, 2015 and 2023. |
| Desktop → Hall of Champions | Champion cards, IDX, stories | /api/hall-of-champions; the stories are hard-coded |
|
| Desktop → Historical Finishes | A season × team grid of finishes, by owner or by franchise slot | /api/historical-finishes (D1 final standings) |
|
| Desktop → 3-Year Eras | Owner totals by realignment cycle, with stories | /api/eras | Code bug: counts Hawk Tuah wins as finish 12, but the title is finish 7. Stories are hard-coded, some "per Keith's recollection". |
| Desktop → Division Power Rankings | Division strength by season | /api/division-power-rankings | 2012 marks the wrong Division 00 leader (it skips the H2H tiebreak), and 2010 uses D1's 4 divisions. |
| Phone → League → Standings (any finished year) | Final standings, trophies, playoffs, Tale of the Tape | /api/historical-finishes, champions_panels.json (built 2026-02-16 from the legacy DB), h2h_history.json | The phone has no History area. Its trophies come from a separate stale file. |
| UPS Wire | H2H series, record book, owner careers, the Survival line | D1 tables directly (HeadToHead, record_book, season_history, ups_owner_career_stats) |
|
Missing everywhere: an owner page, head-to-head game lists, records with sources, and any per-season confidence. The only flag today is one yellow banner on every past year.
2. Proposed layout (information architecture)
History becomes one area with seven sub-views, the same on desktop and phone. The default is Seasons.
- Seasons, one page per season:
- the UPS champion and runner-up, and the Hawk Tuah Bowl champion and finalist
- final standings 1–12, with seed, division title, record, All-Play, Points For and the rookie pick it earned
- both brackets with real scores
- a status chip on every fact, and a "How we know" panel listing the sources and every discrepancy
- Champions: the Hall of Champions list. IDX is renamed "Scoring vs league" (section 7). The stories stay behind the review banner until checked.
- Owners: one page per person: titles, finals, playoffs, division titles, Hawk Tuah titles and every season. The identity questions (7a–7e) show as Provisional until you rule.
- Head to head: owner v owner. Records are shown for every season; games are listed only where MFL kept them (2012 and 2020 on).
- Records: league records, each with its season, its source and a status. A record built on a Provisional season says so.
- Divisions: names and members each season, division titles, and division strength over equal-week samples (section 8). It replaces Division Power Rankings and absorbs Eras.
- Draft order: each season's finish → pick table. It's on desktop only; the phone shows the pick on Seasons.
The rule on screen: every fact carries its status. Facts with a Conflict or Unknown status are shown as such, never as a plain number. Stories and records only use Verified or Reconciled facts (section 9).

Desktop: History → Seasons (wireframe; chips: V Verified, R Reconciled).

Desktop: History → Owners.

Phone: League → History → Seasons.
3. Source hierarchy
- MFL's archived exports for that season's own league: playoff brackets and placement games,
leagueStandingsrecords, divisions and names, and the schedule and weekly results where they were kept.- This is the authority for what happened.
- League ids: 2010 60671 · 2011 40832 · 2012 37227 · 2013 42721 · 2014 30590 · 2015 29015 · 2016 27191 · 2017 on 74598.
- Canon (
docs/league_context_v1.md): the authority for rules, such as finish → pick (§A1) and seeding (§F.1). Today's rules are never applied backward to a finished season. - Your approved rulings: the corrections overlay (canon §E). This is the only way a judgment call or identity decision changes a stored value.
- D1
src_*tables: the stored copy the screens serve. They're checked against tier 1 and never edited directly. - The pick-trade replay and the legacy local database: corroboration only.
- Stories, the forum, Discord and recollection: never a source for a fact, and they can't raise a status.
- Verified 92 · Reconciled 14 · Provisional 3 · Conflict 1 · Unknown 2 (for 2010–2025 × 7 facts)
- Verified: two or more independent sources agree.
- Reconciled: a stored copy is wrong, and MFL's own record settles it with evidence. It needs your approved correction.
- Provisional: rests on one source, or on a rule question you haven't ruled on.
- Conflict: sources disagree and nothing settles it.
- Unknown: no source holds it.
4. Season-by-season confidence audit, 2010–2025
| Season | UPS champion + runner-up | Hawk Tuah champion + finalist | Finishes 1–12 | Playoff seeds | Division winners | Finish → draft pick | Bracket teams + scores |
|---|---|---|---|---|---|---|---|
| 2010 | V | P | P | V | R | U | V |
| 2011 | V | R | R | V | R | V | V |
| 2012 | V | V | V | V | R | V | V |
| 2013 | V | V | V | P | R | V | V |
| 2014 | V | V | V | V | V | C | V |
| 2015 | V | R | R | V | V | V | V |
| 2016 | V | V | V | V | R | V | V |
| 2017 | V | V | V | V | R | V | V |
| 2018 | V | V | V | V | R | V | V |
| 2019 | V | V | V | V | V | V | V |
| 2020 | V | V | V | V | V | V | V |
| 2021 | V | V | V | V | V | V | V |
| 2022 | V | V | V | V | V | V | V |
| 2023 | V | V | R | R | V | V | V |
| 2024 | V | V | V | V | V | V | V |
| 2025 | V | V | V | V | V | U | R |
| 2026 | In progress: not a finished season (Standings and Forecast own it) | ||||||
Tap a season for each fact's status, what disagrees and the sources.
2010 · league 60671 · Reconciled
- Verified UPS champion + runner-up: Tom Roussin (0008) beat Matt Witulski (0012)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Provisional Hawk Tuah champion + finalist: 2010's toilet bracket had the LOSER advance; MFL titles its final winner Brian Grigas (0003), D1's 7th is Jessica Rubinow (0004); whether 2010 had a Hawk Tuah title is decision 6Sources: MFL toilet bracket final; D1 final_finish 7/8
- Provisional Finishes 1–12: 1-2 and 9-12 follow MFL's games; places 3-6 had no games (no 3rd- or 5th-place game in 2010) and are ordered by seed; 7/8 depends on the loser-advances toilet ruling (decision 6) · 2010: no 3rd-place or 5th-place games; 3/4 = semifinal losers, 5/6 = first-round losers (unplayed)Sources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 = MFL's bracket seeds = D1 regular_season_finishSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Reconciled Division winners: MFL had 2 divisions in 2010; D1 stores 4 (division badge moves from 0012 to 0001)Sources: MFL 2010 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Unknown Finish → draft pick: 2010 had no rookie draft (2011 began with the dispersal draft)Sources: —
- Verified Bracket teams + scores: 10 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2010 playoffBrackets + playoffBracket (league 60671); D1 src_schedule is_playoff=1
2011 · league 40832 · Reconciled
- Verified UPS champion + runner-up: Shawn Blake (0010) beat Kyle Creelman (0005)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Reconciled Hawk Tuah champion + finalist: MFL: Jon Jacques (0003) beat Tom Roussin (0007); D1 has 7th Jon Jacques (0003), 8th Keith Creelman (0008)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Reconciled Finishes 1–12: D1 differs from MFL's bracket for Tom Roussin (0007): D1 11 → MFL 8, Keith Creelman (0008): D1 8 → MFL 11Sources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: two 3-team conference brackets (seeds P1-P3 / J1-J3); no league-wide seed. D1 regular_season_finish is a league All-Play rank, not a seedSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Reconciled Division winners: division winners by MFL's standingsSort are in MFL's field, but D1 stores a wrong division for: 0002,0003,0006Sources: MFL 2011 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 29 picks in the 2012 draft came from the franchise whose 2011 finish maps to that slot; 31 untraceable; known quirks: 2012 1.10 stored as 1.01 (legacy draft-results quirk); 2012 round 2 has 9 picks; 2012 round 3 has 10 picks; 2012 round 4 has 11 picksSources: D1 transactions_trades + 2012 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2011 playoffBrackets + playoffBracket (league 40832); D1 src_schedule is_playoff=1
2012 · league 37227 · Reconciled
- Verified UPS champion + runner-up: Kris Lake (0003) beat Shawn Blake (0010)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Bear Dunn (0009) beat Eric Mannila (0011)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: two 3-team conference brackets (seeds P1-P3 / J1-J3); no league-wide seed. D1 regular_season_finish is a league All-Play rank, not a seedSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Reconciled Division winners: division winners by MFL's standingsSort are in MFL's field, but D1 stores a wrong division for: 0002, 0010 vs 0011Sources: MFL 2012 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 25 picks in the 2013 draft came from the franchise whose 2012 finish maps to that slot; 35 untraceableSources: D1 transactions_trades + 2013 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2012 playoffBrackets + playoffBracket (league 37227); D1 src_schedule is_playoff=1
2013 · league 42721 · Reconciled
- Verified UPS champion + runner-up: Derrick Whitman (0002) beat Keith Creelman (0008)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Ryan Bousquet (0001) beat Steve Bousquet (0006)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Provisional Playoff seeds: two 3-team conference brackets (seeds P1-P3 / J1-J3); no league-wide seed. D1 regular_season_finish is a league All-Play rank, not a seed · D1 regular_season_finish has two 6s and no 7 (0003, 0007): a tie MFL ordered Martel 6th (decision 6)Sources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Reconciled Division winners: division winners by MFL's standingsSort are in MFL's field, but D1 stores a wrong division for: 0002Sources: MFL 2013 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 22 picks in the 2014 draft came from the franchise whose 2013 finish maps to that slot; 38 untraceableSources: D1 transactions_trades + 2014 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2013 playoffBrackets + playoffBracket (league 42721); D1 src_schedule is_playoff=1
2014 · league 30590 · Conflict
- Verified UPS champion + runner-up: Ryan Bousquet (0001) beat Shawn Blake (0010)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Brian Cutting (0004) beat Josh Martel (0007)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 = MFL's bracket seeds = D1 regular_season_finishSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Verified Division winners: every winner by MFL's standingsSort on MFL's records is in MFL's playoff fieldSources: MFL 2014 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Conflict Finish → draft pick: 18 picks in the 2015 draft came from the franchise whose 2014 finish maps to that slot; 2 don't: 2015 2.03 from 0003 (finish 10 → slot 4); 2015 5.04 from 0005 (finish 9 → slot 3); 40 untraceableSources: D1 transactions_trades + 2015 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2014 playoffBrackets + playoffBracket (league 30590); D1 src_schedule is_playoff=1
2015 · league 29015 · Reconciled
- Verified UPS champion + runner-up: Shawn Blake (0010) beat Ryan Bousquet (0001)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Reconciled Hawk Tuah champion + finalist: MFL: Kris Lake (0003) beat Bear Dunn (0009); D1 has 7th Bear Dunn (0009), 8th Brian Cutting (0004)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Reconciled Finishes 1–12: D1 differs from MFL's bracket for Kris Lake (0003): D1 6 → MFL 7, Brian Cutting (0004): D1 8 → MFL 9, Bear Dunn (0009): D1 7 → MFL 8, Chris Klingenberg (0012): D1 9 → MFL 10Sources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 = MFL's bracket seeds = D1 regular_season_finishSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Verified Division winners: every winner by MFL's standingsSort on MFL's records is in MFL's playoff fieldSources: MFL 2015 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 21 picks in the 2016 draft came from the franchise whose 2015 finish maps to that slot; 39 untraceableSources: D1 transactions_trades + 2016 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2015 playoffBrackets + playoffBracket (league 29015); D1 src_schedule is_playoff=1
2016 · league 27191 · Reconciled
- Verified UPS champion + runner-up: Bear Dunn (0009) beat Steve Bousquet (0006)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Eric Mannila (0011) beat Kyle Creelman (0005)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 and H1-H6 (7-12) = MFL's bracket seeds = D1 regular_season_finishSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Reconciled Division winners: winners agree with MFL's field; D1 division W-L is 0-0 (MFL kept no game-by-game schedule; MFL's own divwlt is the record)Sources: MFL 2016 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 14 picks in the 2017 draft came from the franchise whose 2016 finish maps to that slot; 46 untraceableSources: D1 transactions_trades + 2017 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2016 playoffBrackets + playoffBracket (league 27191); D1 src_schedule is_playoff=1
2017 · league 74598 · Reconciled
- Verified UPS champion + runner-up: Steve Bousquet (0006) beat Chris Klingenberg (0012)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Matt Gerardi (0003) beat Shawn Blake (0010)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 and H1-H6 (7-12) = MFL's bracket seeds = D1 regular_season_finish · an All-Play tie in the field was broken on points for (MFL), not Overall record as canon §F.1 now reads: history stays as recordedSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Reconciled Division winners: winners agree with MFL's field; D1 division W-L is 0-0 (MFL kept no game-by-game schedule; MFL's own divwlt is the record)Sources: MFL 2017 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 17 picks in the 2018 draft came from the franchise whose 2017 finish maps to that slot; 43 untraceable; known quirks: 2018 round 4 has 11 picksSources: D1 transactions_trades + 2018 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2017 playoffBrackets + playoffBracket (league 74598); D1 src_schedule is_playoff=1
2018 · league 74598 · Reconciled
- Verified UPS champion + runner-up: Steve Bousquet (0006) beat Josh Martel (0007)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Matt Gerardi (0003) beat Brian Cutting (0004)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 and H1-H6 (7-12) = MFL's bracket seeds = D1 regular_season_finishSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Reconciled Division winners: winners agree with MFL's field; D1 division W-L is 0-0 (MFL kept no game-by-game schedule; MFL's own divwlt is the record)Sources: MFL 2018 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 17 picks in the 2019 draft came from the franchise whose 2018 finish maps to that slot; 43 untraceableSources: D1 transactions_trades + 2019 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2018 playoffBrackets + playoffBracket (league 74598); D1 src_schedule is_playoff=1
2019 · league 74598 · Verified
- Verified UPS champion + runner-up: Josh Martel (0007) beat Keith Creelman (0008)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Shawn Blake (0010) beat Steve Bousquet (0006)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 and H1-H6 (7-12) = MFL's bracket seeds = D1 regular_season_finishSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Verified Division winners: every winner by MFL's standingsSort on MFL's records is in MFL's playoff fieldSources: MFL 2019 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 12 picks in the 2020 draft came from the franchise whose 2019 finish maps to that slot; 48 untraceableSources: D1 transactions_trades + 2020 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2019 playoffBrackets + playoffBracket (league 74598); D1 src_schedule is_playoff=1
2020 · league 74598 · Verified
- Verified UPS champion + runner-up: Josh Martel (0007) beat Steve Bousquet (0006)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: AJ Balderelli (0002) beat Rico Balderelli (0005)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 and H1-H6 (7-12) = MFL's bracket seeds = D1 regular_season_finish · an All-Play tie in the field was broken on points for (MFL), not Overall record as canon §F.1 now reads: history stays as recordedSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Verified Division winners: every winner by MFL's standingsSort on MFL's records is in MFL's playoff fieldSources: MFL 2020 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 14 picks in the 2021 draft came from the franchise whose 2020 finish maps to that slot; 46 untraceableSources: D1 transactions_trades + 2021 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2020 playoffBrackets + playoffBracket (league 74598); D1 src_schedule is_playoff=1
2021 · league 74598 · Verified
- Verified UPS champion + runner-up: Ryan Bousquet (0001) beat Steve Bousquet (0006)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Eric Mannila (0011) beat Rico Balderelli (0005)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 and H1-H6 (7-12) = MFL's bracket seeds = D1 regular_season_finish · an All-Play tie in the field was broken on points for (MFL), not Overall record as canon §F.1 now reads: history stays as recordedSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Verified Division winners: every winner by MFL's standingsSort on MFL's records is in MFL's playoff fieldSources: MFL 2021 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 10 picks in the 2022 draft came from the franchise whose 2021 finish maps to that slot; 50 untraceableSources: D1 transactions_trades + 2022 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2021 playoffBrackets + playoffBracket (league 74598); D1 src_schedule is_playoff=1
2022 · league 74598 · Verified
- Verified UPS champion + runner-up: Matt Gerardi (0003) beat Brian Cutting (0004)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Eric Mannila (0011) beat Josh Martel (0007)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 and H1-H6 (7-12) = MFL's bracket seeds = D1 regular_season_finishSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Verified Division winners: every winner by MFL's standingsSort on MFL's records is in MFL's playoff fieldSources: MFL 2022 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 23 picks in the 2023 draft came from the franchise whose 2022 finish maps to that slot; 37 untraceableSources: D1 transactions_trades + 2023 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2022 playoffBrackets + playoffBracket (league 74598); D1 src_schedule is_playoff=1
2023 · league 74598 · Reconciled
- Verified UPS champion + runner-up: Shawn Blake (0010) beat Ryan Bousquet (0001)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Chris Klingenberg (0012) beat Matt Gerardi (0003)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Reconciled Finishes 1–12: D1 differs from MFL's bracket for Bear Dunn (0009): D1 9 → MFL 10, Eric Mannila (0011): D1 10 → MFL 9Sources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Reconciled Playoff seeds: D1 regular_season_finish differs from MFL's bracket seeds for Ryan Bousquet (0001): D1 4 → MFL 5, Josh Martel (0007): D1 5 → MFL 4Sources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Verified Division winners: every winner by MFL's standingsSort on MFL's records is in MFL's playoff fieldSources: MFL 2023 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 22 picks in the 2024 draft came from the franchise whose 2023 finish maps to that slot; 38 untraceableSources: D1 transactions_trades + 2024 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2023 playoffBrackets + playoffBracket (league 74598); D1 src_schedule is_playoff=1
2024 · league 74598 · Verified
- Verified UPS champion + runner-up: Eric Martel (0005) beat Derrick Whitman (0002)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Chris Klingenberg (0012) beat Josh Martel (0007)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 and H1-H6 (7-12) = MFL's bracket seeds = D1 regular_season_finishSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Verified Division winners: every winner by MFL's standingsSort on MFL's records is in MFL's playoff fieldSources: MFL 2024 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Verified Finish → draft pick: 23 picks in the 2025 draft came from the franchise whose 2024 finish maps to that slot; 37 untraceableSources: D1 transactions_trades + 2025 draft results (trade-chain replay); canon §A1 finish→slot
- Verified Bracket teams + scores: 14 bracket games: same teams and scores in MFL's bracket and D1Sources: MFL 2024 playoffBrackets + playoffBracket (league 74598); D1 src_schedule is_playoff=1
2025 · league 74598 · Reconciled
- Verified UPS champion + runner-up: Brian Cutting (0004) beat Josh Martel (0007)Sources: MFL championship bracket final; D1 final_finish 1/2; D1 src_schedule final game
- Verified Hawk Tuah champion + finalist: Eric Mannila (0011) beat Chris Klingenberg (0012)Sources: MFL toilet bracket final; D1 final_finish 7/8
- Verified Finishes 1–12: all 12 places: MFL's bracket games = D1 final standingsSources: MFL bracket games (placement by game result); D1 src_final_standings.final_finish
- Verified Playoff seeds: seeds 1-6 and H1-H6 (7-12) = MFL's bracket seeds = D1 regular_season_finishSources: MFL playoffBracket seeds; D1 src_final_standings.regular_season_finish
- Verified Division winners: every winner by MFL's standingsSort on MFL's records is in MFL's playoff fieldSources: MFL 2025 league (divisions) + leagueStandings; MFL bracket field; D1 src_franchises.division
- Unknown Finish → draft pick: the 2026 draft's pick trades aren't in the 10-17 trace; not checkedSources: —
- Reconciled Bracket teams + scores: participants and winners agree; D1 src_schedule kept the pre-correction score (MFL's bracket and D1's weekly team scores have the corrected one): wk17 Josh Martel (0007) 192.1-233.2 Brian Cutting (0004): D1 src_schedule 192.1-233.7; wk17 Chris Klingenberg (0012) 158.3-294.4 Eric Mannila (0011): D1 src_schedule 157.8-294.4; wk17 Bear Dunn (0009) 196.4-206.8 Eric Martel (0005): D1 src_schedule 195.4-206.8Sources: MFL 2025 playoffBrackets + playoffBracket (league 74598); D1 src_schedule is_playoff=1
5. Playoff-matchup data by season
Every season keeps its playoff games with teams and scores in MFL's brackets and in D1, and they match.
- 2025: D1's game rows kept three Week 17 scores from before MFL's stat corrections. The winners are unchanged.
- Regular-season games: listed only for 2012 and 2020 on. The other seasons keep only MFL's official records.
| Season | Bracket games | Brackets (games) | Regular-season games listed | Status |
|---|---|---|---|---|
| 2010 | 10 | UPS BOWL I 5, Toilet Bowl 5 | No (MFL kept records only) | V |
| 2011 | 14 | Primetime Conference Championship 2, Juice Conference Championship 2, Toilet Bowl Championship 3, Toilet Bowl Semi-Finals 3, # 7 Pick 1, Championship 1, UPS 3rd Place Game 1, 5th Pick 1 | No (MFL kept records only) | V |
| 2012 | 14 | Primetime Conference Championship 2, Juice Conference Championship 2, Toilet Bowl Championship 3, Toilet Bowl Semi-Finals 3, # 7 Pick 1, Championship 1, UPS 3rd Place Game 1, 5th Pick 1 | Yes, 156 games | V |
| 2013 | 14 | Primetime Conference Championship 2, Juice Conference Championship 2, Toilet Bowl Championship 3, Toilet Bowl Semi-Finals 3, # 7 Pick 1, Championship 1, UPS 3rd Place Game 1, 5th Pick 1 | No (MFL kept records only) | V |
| 2014 | 14 | UPS Championship 5, Toilet Bowl Championship 3, Toilet Bowl Semi-Finals 3, # 7 Pick 1, 3rd Place Game 1, 3rd Place Game 1 | No (MFL kept records only) | V |
| 2015 | 14 | UPS Championship 5, Toilet Bowl Championship 3, Toilet Bowl Semi-Finals 3, # 7 Pick 1, 3rd Place Game 1, 3rd Place Game 1 | No (MFL kept records only) | V |
| 2016 | 14 | UPS Championship 5, Toilet Bowl Championship 5, 5th/6th Place Game 1, 11th/12th Place Game 1, 3rd Place Game 1, 3rd Place Game 1 | No (MFL kept records only) | V |
| 2017 | 14 | UPS Championship 5, Toilet Bowl Championship 5, 5th/6th Place Game 1, 11th/12th Place Game 1, 3rd Place Game 1, 3rd Place Game 1 | No (MFL kept records only) | V |
| 2018 | 14 | UPS Championship 5, Toilet Bowl Championship 5, 5th/6th Place Game 1, 11th/12th Place Game 1, 3rd Place Game 1, 3rd Place Game 1 | No (MFL kept records only) | V |
| 2019 | 14 | UPS Championship 5, Toilet Bowl Championship 5, 5th/6th Place Game 1, 11th/12th Place Game 1, 3rd Place Game 1, 3rd Place Game 1 | No (MFL kept records only) | V |
| 2020 | 14 | UPS Championship 5, Toilet Bowl Championship 5, 7/8 Game 1, Hawks Bowl 1, 3rd Place Game 1, 3rd Place Game 1 | Yes, 156 games | V |
| 2021 | 14 | UPS Championship 5, Toilet Bowl Championship 5, 7/8 Game 1, Hawks Bowl 1, 3rd Place Game 1, 3rd Place Game 1 | Yes, 222 games | V |
| 2022 | 14 | UPS Championship 5, Toilet Bowl Championship 5, 7/8 Game 1, Hawks Bowl 1, 3rd Place Game 1, 3rd Place Game 1 | Yes, 222 games | V |
| 2023 | 14 | UPS Championship 5, Toilet Bowl Championship 5, 7/8 Game 1, Hawks Bowl 1, 3rd Place Game 1, 3rd Place Game 1 | Yes, 222 games | V |
| 2024 | 14 | UPS Championship 5, Toilet Bowl Championship 5, 7/8 Game 1, Hawks Bowl 1, 3rd Place Game 1, 3rd Place Game 1 | Yes, 222 games | V |
| 2025 | 14 | UPS Championship 5, Toilet Bowl Championship 5, 7/8 Game 1, Hawks Bowl 1, 3rd Place Game 1, 3rd Place Game 1 | Yes, 222 games | R |
6. Genuine pregame projections
- MFL serves projections live and never stores them.
- Any past-season numbers pulled later are revised after the games, so they're hindsight, not pregame (
season_sim.pybacktest note). - Unknown for every week.
2026, Weeks 1–6: ups_player_projections (MFL projectedScores).
- What counts: a row is genuine pregame only if its capture time is before that player's own NFL kickoff (MFL
nflSchedule). - First capture: the table keeps each player's first capture (
first_projected,first_captured_at), and that's pregame for nearly everyone. - Latest value: it's overwritten by the Wednesday re-capture, so it's post-game for about 95%.
| Week | Rows | First capture pregame | First capture after kickoff | Latest value after kickoff | Main capture time | Frozen file |
|---|---|---|---|---|---|---|
| 1 | 1502 | 1427 | 8 | 1066 | Sun Aug 02 00:59Z (1347), Fri Sep 04 16:13Z (57) | Yes |
| 2 | 1121 | 1034 | 75 | 1047 | Fri Sep 18 16:17Z (1104), Wed Sep 23 15:50Z (10) | No |
| 3 | 1118 | 1033 | 74 | 1019 | Fri Sep 25 17:02Z (1113), Sun Sep 27 18:52Z (5) | Yes |
| 4 | 1106 | 1012 | 84 | 1037 | Fri Oct 02 17:47Z (1089), Wed Oct 07 18:11Z (9) | Yes |
| 5 | 1038 | 962 | 69 | 973 | Fri Oct 09 18:17Z (1027), Sun Oct 11 19:18Z (8) | Yes |
| 6 | 976 | 897 | 73 | 919 | Fri Oct 16 16:30Z (957), Sun Oct 18 17:45Z (17) | Yes |
- Why 70–85 rows a week are late: the first capture runs on Friday, after Thursday night's kickoff, so those players have no pregame number. The fix is a Thursday pre-kickoff capture, a Wire automation change for a separate PR.
- Week 1 was first captured Aug 2: pregame but stale.
- Frozen evidence files (
site/wire/data/projection_evidence_2026_wkNN.json) exist for Weeks 1 and 3–6, not Week 2. - Team-level pregame forecasts exist as the Wire's week previews and season simulations:
- Week 2: generated 2026-09-17 00:01Z
- Week 4: 09-30 12:22Z
- Week 6: 10-14 01:56Z
- Week 7: 10-21 14:02Z
Recommendation: History and the Wire call a projection "pregame" only from a capture taken before that player's kickoff, and never from the latest value. Weeks without one say "no pregame projection kept".
7. IDX: plain English and a recommendation
- 1.16 means the champion scored 16% more than the average team.
- IDX Rank orders the champions by it. It exists so a 2025 score can be compared with a 2011 score, since scoring has grown.
What's wrong:
- "IDX" means nothing to an owner.
- 2011: the stored Points For includes the playoffs, and the champion played the most playoff games. That inflates 2011 to 1.179, ranked #1; on regular-season scores it's 1.130, #6.
- 2010: rests on reconstructed scores.
- 2012–2025: already exact.
| Season | IDX today (rank) | Regular-season weekly scores (rank) | Shown as | Status |
|---|---|---|---|---|
| 2010 | 1.127 (#6) | 1.150 (#5) | +15% | P |
| 2011 | 1.179 (#1) | 1.130 (#6) | +13% | R |
| 2012 | 1.090 (#10) | 1.090 (#10) | +9% | V |
| 2013 | 1.154 (#5) | 1.154 (#4) | +15% | V |
| 2014 | 1.155 (#4) | 1.155 (#3) | +16% | V |
| 2015 | 1.034 (#15) | 1.034 (#15) | +3% | V |
| 2016 | 1.163 (#2) | 1.163 (#1) | +16% | V |
| 2017 | 1.156 (#3) | 1.156 (#2) | +16% | V |
| 2018 | 1.103 (#7) | 1.103 (#7) | +10% | V |
| 2019 | 1.083 (#11) | 1.083 (#11) | +8% | V |
| 2020 | 1.092 (#8) | 1.092 (#8) | +9% | V |
| 2021 | 1.091 (#9) | 1.091 (#9) | +9% | V |
| 2022 | 1.030 (#16) | 1.030 (#16) | +3% | V |
| 2023 | 1.067 (#14) | 1.067 (#14) | +7% | V |
| 2024 | 1.081 (#12) | 1.081 (#12) | +8% | V |
| 2025 | 1.079 (#13) | 1.079 (#13) | +8% | V |
Recommendation:
- Rename it "Scoring vs league" and show it as "+16%" with a one-line note.
- Compute it from regular-season weekly scores, not the stored Points For.
- Mark 2010 Provisional.
- Fixing the 2011 Points For (correction C10) makes the stored number agree.
8. Maddie Mondays, validated on equal weeks
- Population: all 64 three-team division-seasons, 2011–2026. 2010 had two six-team divisions, so it's excluded.
- Members: each season's own MFL division list.
- Scores: D1 weekly team scores, which equal MFL's records for 2011–2025, and MFL's 2026 results.
- All-Play, Weeks 1–6: Verified
- 67–131 (.338), the lowest of all 64.
- But only by one All-Play win over 2018 MAKE IT RAIN (68–130). A single stat correction could tie it. Say "lowest through six weeks", not "worst ever".
- Scoring vs league: 0.918, #3 lowest.
- Head to head against other divisions: 24–39 (.381), #5 worst of 32.
- Only 2012 and 2020 on can be compared, because only those seasons list their games.
- 2026 plays more interdivisional games, so compare rates, not counts.
- Division history: "Maddie Mondays" is new in 2026. It's division 02, which was MAKE IT RAIN 2014–2025 and Raytorious L52 2011–2013.
- Members were re-drawn every cycle, and 2026 was owner-drafted.
- So no lineage claim by division id holds. Compare division-seasons, as here.
Lowest All-Play through Week 6
| # | Season | Division | Owners | All-Play | Pct | Scoring vs league |
|---|---|---|---|---|---|---|
| 1 | 2026 | Maddie Mondays | Ryan Bousquet, Josh Martel, Keith Creelman | 67–131 | 0.338 | 0.918 |
| 2 | 2018 | MAKE IT RAIN | Ryan Bousquet, Brian Cutting, John Richard, Jarrade Nieber | 68–130 | 0.343 | 0.935 |
| 3 | 2014 | DOG POUND 4 LIFE | Brian Cutting, Shawn Blake, Eric Mannila | 69–129 | 0.348 | 0.884 |
| 4 | 2017 | DOG POUND 4 LIFE | Keith Creelman, Bear Dunn, Eric Mannila | 69–129 | 0.348 | 0.926 |
| 5 | 2019 | LEGION OF BOOM | Matt Gerardi, Steve Bousquet, Chris Klingenberg | 72–126 | 0.364 | 0.930 |
| 6 | 2016 | LEGION OF BOOM | Kris Lake, Kyle Creelman, Steve Bousquet | 73–125 | 0.369 | 0.929 |
Worst head to head against other divisions through Week 6
| Season | Division | W–L | Pct |
|---|---|---|---|
| 2021 | MAKE IT RAIN | 9–27 | 0.250 |
| 2024 | LEGION OF BOOM | 11–25 | 0.306 |
| 2022 | ICE UP SON! | 13–23 | 0.361 |
| 2025 | MAKE IT RAIN | 13–23 | 0.361 |
| 2026 | Maddie Mondays | 24–39 | 0.381 |
| 2023 | ICE UP SON! | 14–22 | 0.389 |
Division names and stored membership, by season
| Season | Divisions (MFL) | D1 vs MFL | |
|---|---|---|---|
| 2010 | two divisions (names in MFL's 2010 archive) | src_franchises wrong for 10; src_standings wrong for 0001, 0002, 0003, 0004, 0005, 0006, 0008, 0009, 0011, 0012 | R |
| 2011 | Straight Cash Homey · The Ochocinco Show · Raytorious L52 · Dog Pound 4 Life | src_standings wrong for 0002, 0003, 0006 | R |
| 2012 | Straight Cash Homey · The Ochocinco Show · Raytorious L52 · Dog Pound 4 Life | src_standings wrong for 0002 | R |
| 2013 | Straight Cash Homey · The Ochocinco Show · Raytorious L52 · Dog Pound 4 Life | src_standings wrong for 0002 | R |
| 2014 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | D1 = MFL | V |
| 2015 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | D1 = MFL | V |
| 2016 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | division W-L stored 0–0 | R |
| 2017 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | division W-L stored 0–0 | R |
| 2018 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | division W-L stored 0–0 | R |
| 2019 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | D1 = MFL | V |
| 2020 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | D1 = MFL | V |
| 2021 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | D1 = MFL | V |
| 2022 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | D1 = MFL | V |
| 2023 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | D1 = MFL | V |
| 2024 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | D1 = MFL | V |
| 2025 | ICE UP SON! · LEGION OF BOOM · MAKE IT RAIN · DOG POUND 4 LIFE | D1 = MFL | V |
| 2026 | Outlast PG Time · LEGION OF BOOM · Maddie Mondays · DOG POUND 4 LIFE | new owner-drafted alignment | V |
9. Proposed shared UPS Wire story-lead contract
The problem today: the Wire computes history its own way, straight from D1 (H2H series, record book, Survival line), and Standings does it another way. Nothing marks a fact's confidence, and a lead can't say which season it left out.
Proposal: one module computes historical facts once, and both the Wire and History read them.
- The module is
pipelines/etl/history/history_facts.py. - Every week it writes
site/wire/data/history_leads_<season>_wkNN.json. - Wire: the UPS Center's story box lists them as suggestions.
- History: the Records and Divisions views show the same facts.
{
"schema": "ups.history_lead.v1",
"lead_id": "division-allplay-low-thru-wk06-2026-02",
"kind": "division_through_week", // also: first_since, streak, h2h_series, record, season_compare
"subject": {"season": 2026, "division_id": "02", "owners": ["Ryan Bousquet", "Josh Martel", "Keith Creelman"]},
"sample": {"weeks": [1, 6], "basis": "regular season", "through_week": 6},
"population": {"what": "three-team division-seasons", "seasons": [2011, 2026], "n": 64,
"excluded": [{"season": 2010, "why": "two six-team divisions"}]},
"facts": [
{"key": "allplay", "value": [67, 131, 0], "rank": 1, "of": 64, "margin_to_next": 1,
"status": "Verified",
"sources": [{"name": "D1 src_franchise_weekly_score", "read_at": "2026-10-17T14:45Z"},
{"name": "MFL weeklyResults 2026 W1-6", "read_at": "2026-10-21T14:06Z"}]}
],
"status": "Verified", // the lowest status of its facts
"publishable": true, // Verified, or Reconciled with an approved correction
"caveat": "Lowest by one All-Play win; a stat correction could tie it.",
"generated_at": "2026-10-21T00:00:00Z", "code_sha": "…"
}
Rules:
- Numbers live only in
facts. The editor writes the words; the Wire's existing check refuses digits in lead text. - Conflict and Unknown are never publishable. Provisional appears in the editor box only, with its caveat. Reconciled is publishable only after its correction is approved.
- Every comparison names its population, its sample weeks and its exclusions. "Ever" may only be used when the population is every season.
- Game-level claims (series, streaks, "first time since") use only seasons with listed games: 2012 and 2020 on. Record-level claims may use every season.
- Owners are people, not franchise ids. Until identity 7a–7e are ruled, any claim touching those seasons is Provisional.
- The validator re-computes every fact from the sources before the UPS Center can publish, like today's Heat Check check.
10. Every proposed historical correction needing your approval
Nothing below has been written.
- How a correction lands: after your ruling, through the corrections overlay (canon §E), with a dry run shown first and the same fix in the local database.
- Size: about 120 stored rows across all groups. The exact count comes from the dry run.
- Order: one decision at a time.
A. Settled by MFL's own record (decision 5)
| # | Season | Correction | Evidence |
|---|---|---|---|
| C1 | 2011 | Final and regular-season finish: Tom Roussin (0007) 8th (D1 11th); Keith Creelman (0008) 11th (D1 8th) | MFL's toilet final and 11th/12th game; the 2012 draft (1.02 used by 0007) |
| C2 | 2015 | Finishes 7–10: Kris Lake (0003) 7th, Hawk Tuah champion (D1 6th); Bear Dunn (0009) 8th; Brian Cutting (0004) 9th; Chris Klingenberg (0012) 10th | MFL toilet bracket; the 2016 draft (1.01 0003, 1.02 0009) |
| C3 | 2023 | Final finish: Eric Mannila (0011) 9th, Bear Dunn (0009) 10th (swapped in D1) | MFL 3rd-place toilet game; the 2024 draft (1.03 0011) |
| C4 | 2023 | Seeds: Josh Martel (0007) 4, Ryan Bousquet (0001) 5 (swapped in D1) | MFL bracket seeds |
| C5 | 2025 | Week 17 game scores in src_schedule: Cutting 233.7 → 233.2, Klingenberg 157.8 → 158.3, Dunn 195.4 → 196.4. No winner changes, and it ends the Standings Week 17 hold-back. | MFL bracket = D1 weekly team scores (stat corrections) |
| C6 | 2010 | Divisions: MFL's two divisions replace D1's four (the division badge moves from 0012 to 0001) | MFL 2010 league export |
| C7 | 2011–13 | Stored division in src_standings: 2011 0002, 0003, 0006; 2012 0002; 2013 0002 | MFL league exports (src_franchises is already right) |
| C8 | 2016–18 | Division W-L from MFL's divwlt (stored as 0–0) | MFL leagueStandings |
| C9 | 2010 | H2H record without the playoff games mixed in (11 of 12 teams) | MFL 2010 leagueStandings |
| C10 | 2011 | Points For as regular season only (it includes the playoffs today). This fixes IDX. | MFL; D1 weekly scores |
| C11 | 2011–17 | Team names: 0008 2011–12 "Bad Newz Kennels"; 0002 2014–17 spelling; 0001 2011–13 capitalization | MFL league exports |
B. Judgment calls (decision 6)
| # | Season | Question | Recommendation |
|---|---|---|---|
| J1 | 2010 | Hawk Tuah: the loser advanced. MFL titles Brian Grigas (0003); D1's 7th is Jessica Rubinow (0004). | Follow MFL |
| J2 | 2010 | Places 3–6 had no games | Label them "not played, ordered by seed" |
| J3 | 2010 | MFL kept only a per-game Points For average | Use average × 13, labeled "reconstructed" |
| J4 | 2013 | A 6th/7th tie (two 6s stored) | Josh Martel 6th, as MFL ordered it |
| J5 | 2014 | Regular-season 10th/11th (low confidence) | Follow MFL's toilet seeds |
| J6 (new) | 2014 | Conflict 9th/10th:
| Keep MFL's game result unless you recall the 2014 pick rule being different. Either way, mark it Conflict. |
C. Still open from before
- Identity 7a–7e (comments on #1329):
- 2010 → 2011 franchise lineage
- Dave/David Murray
- 0002 in 2018
- 0005 in 2017–18
- the 0006 handover date in 2024
- Decision 8: owner career stats (#1335). It needs a production rebuild.
- Decision 9: recorded seeds in the API.
D. Code fixes (no history change; for the build stage)
/api/erascounts Hawk Tuah wins as finish 12. It should be 7.- Hall of Champions: the seed heuristic and the fallback champion guess.
- IDX basis and its name (section 7).
- The migration 0033 comment says "12 = Hawktuah champion".
Not verified:
- 2025's finish → pick (the 2026 draft's trades aren't in the trace).
- 2010's weekly scores, which are partly corrupt; a reload needs one more MFL read.
- Owner names before 2011, beyond what's listed.