Four teams each. All thirty-two owned. Pup
Eight people snake-draft four NFL teams apiece and total regular-season wins is
the only criterion. Every number below is read from
/data/draft-2026.json.
Wins tracker
Solid segments are wins banked; the hatched extension ends at each roster's current projection. The dot marks its preseason expectation. The checkered line marks the highest current expected season wins across all eight rosters — the target to chase.
Round by round, as a table
Spin wheel
The ring is finishing probability — each slice is how often that roster comes first across the simulated seasons in the payload, so the wheel is the answer and not a decoration. Press the button and it plays one whole season, 272 games, and stops on whoever actually won it. Spin it enough and the tally converges on the slices.
Monte Carlo
The same machine, without the theatre. Each trial plays all 272 games once — a win goes to exactly one side, so every simulated season pays exactly 272 and a roster owning both sides of a game cannot bank both. That is why this is simulated game by game instead of by drawing each team's win total: drawing totals independently would break the conservation and hand a division-stacked roster a spread it does not have.
Expected wins, all 32
Bars show current expected wins: banked wins plus expected wins from remaining games, anchored at zero. The vertical tick is the draft-day posted line for comparison. The rule at 8.5 is par per team. Colour is the owner and the owner is also written out; undrafted teams are hatched.
Every bar is a button — pick one and the Team sheet opens on it.
Who plays whom
The 32×32 head-to-head grid, ordered by division so the twice-a-year rivalries form the blocks down the diagonal. This is the visual that makes the pool make sense: a game between two teams pays exactly one win, so when one person owns both sides it is a win they are guaranteed to collect and guaranteed to lose. Those cells are painted in that drafter's colour.
Hover or focus any cell for the two teams and the weeks they meet.
The board
Snake order, eight columns, four rounds. Each pick carries the gap between the team taken and the best expected wins still on the board at that moment. That is a description of the board, not a grade of the pick — and it is a statement about draft day, computed against the numbers as they stood then. It will not be recomputed against live ratings later, because that would make it retroactively wrong.
The eight rosters
Sorted by current expected wins: banked wins plus the remaining-game projection. “Internal” is games the roster plays against itself — the wins that cannot help. Every card is a button.
Week by week
Seventeen weeks of per-game win probability. Games where the same drafter owns both sides are outlined — those are the ones that wash. With four strips stacked, a collision lines up vertically.
How a season lands
Probability mass over final win counts, 0 through 17, from the current simulation. Settled results are banked; uncertainty comes from the games still to play.
In-season curves use the same remaining-game probabilities as expected wins. Their means may differ slightly because the curves are estimated by simulation.
Every game
The same 17 games as a table, with where each number came from.
What the numbers agree with, and what they don't
Every check below is measured off
/data/draft-2026.json on the run that built it,
by scripts/team_draft_pool.py. A diagnostics panel that only ever prints OK is
decoration, so the ones that report drift are the point.
Every team, every figure
The table view of the same numbers the charts draw. Line is what was posted, EW is the historical draft-day devigged expectation, Δvig is the difference. Σp sums the 17 game probabilities. μdist is the mean of the win distribution.
The rules, and where the numbers come from
The league's own rules, plus an honest account of what each figure on this page is and is not.
What each number is
- Posted line — the median regular-season win total on the board. Half-points are the book's, not a rounding convenience.
- Expected wins — banked wins plus the sum of remaining-game win probabilities. These current projections update with the data feed. Draft-day expected wins remain available on the historical draft board and in Diagnostics, labelled separately.
- Where each game's number comes from — resolved per game, in order: a settled result if it has been played; a market price if one exists for an unplayed game; the model beyond the market's horizon; and, before the season starts, the frozen preseason devig. Every game on the Team sheet carries its own tier. The switch is data-driven — one settled game anywhere and the whole payload flips — so no date is hardcoded.
- Why not just switch to the model in September? Because market primacy does not lapse when the season starts. The reason to move off a frozen preseason total is not that the model beats the market; it is that a number frozen on 9 August stops being true the moment a starting quarterback tears an ACL, and a live pipeline reprices that in a week where a snapshot never does.
- Win distribution — probability mass by final win count. Preseason it is the upstream curve (mean can sit up to 0.36 wins from draft-day expected wins at the truncated edges). In-season it is rewritten from the same Monte Carlo as the roster sim / tracker — banked floor plus live remaining — so P(final < banked) = 0 and the curve's mean is the projected total, not frozen ew.
- Internal games — head-to-head meetings inside one roster, counted off the overlap matrix. The only figure here that is purely structural: it does not depend on anybody's price being right.
- Finishing probabilities — Monte Carlo over the schedule, game by game, on top of whatever is already banked. Not a forecast. No tie outcome is modelled, so the league's half-win-for-a-tie rule does not appear; and a tie for first is broken at random, because the real tiebreakers are playoff wins and point differential and neither is in this payload.
- Nothing is graded. There is no result on this page, no leaderboard, and no claim that any of these prices are right.
The same page for machines
/data/draft-2026.json— the whole surface: 32 teams with line, expected wins, SD, the 0–17 distribution and a 17-game schedule carrying each game's tier; the sparse head-to-head matrix; the draft log; and the derived rosters, tracker, board, simulation and diagnostics./data/nfl-schedule.jsonand/data/survivor.json— the results feed and the price feed the in-season composite reads. This page holds no copy of either.scripts/team_draft_pool.pyis the pipe, and.github/workflows/draft-picks.ymlruns it from the Actions tab so recording a pick needs no laptop.
This is a private pool between eight people. It is on the public site because the arithmetic is interesting, not because anybody can enter it. There is no signup, no money handled here, and no contact detail on this page.