A one-page look under the hood. I'm keeping the exact formulas and weights to myself, but this is the honest shape of how it works — including where it falls short.
The premise
Spin a wheel of the 60 Super Bowl-winning teams (1966–present). Draft one player from whichever champion you land on. Fill your roster, then run it through the actual four-round playoff bracket against real historical opponents. About 1 in 10 well-built rosters wins it all — losing is the point, and losing to a specific team ("eliminated by the '85 Bears") is the story you share.
Under that simple loop is my attempt at a genuinely hard question: how do you put a 1972 fullback and a 2023 edge rusher on the same 0–99 scale, fairly? I don't think anyone has a perfect answer. Here's mine.
Layer 1 — Player ratings, normalized across eras
The core problem with all-time comparisons is that the game changed. A 3,000-yard passing season meant something very different in 1978 than in 2013. So every stat is z-scored against position peers within its own era before anything is combined — raw volume never crosses era boundaries. On top of that base:
- Rate stats, weighted season + playoff — per-game production, not career volume, so a short brilliant peak isn't buried by longevity.
- A clutch adjustment — measured as a player's playoff production relative to their own regular-season baseline, minus the league-average January drop-off for that era and position. It rewards players who actually rose when it mattered, not just anyone who happened to play in January. The first time I ran it, the names it surfaced on its own — Playoff Lenny, Vinatieri, Montana — were the moment I started trusting it.
- An awards modifier — MVP, DPOY, Super Bowl MVP, etc., as a capped bump.
- A pre-1999 fallback — box-score data doesn't exist that far back, so those players are rated from career honors (All-Pro / Pro Bowl selections) on a prime-weighted curve, and clearly flagged as estimated.
The result is a 0–99 scale where the "99 club" comes out looking a lot like an inner-circle Hall of Fame, and no single decade dominates — which was the sanity check I cared about most.
Layer 2 — Roster fit
A team is more than the sum of its ratings. The model scores archetype synergies (a deep-ball QB paired with a deep threat; a power back behind a mauling line) and penalties (a bomber behind a weak line; blitzers with no press corner to hold up). In the 23-man mode you also name a captain for a leadership bonus built from rings, documented captaincy, and command of the huddle. Every rule is transparent — it fires by name as you draft, so fit is a lever you pull, not a black box.
Layer 3 — The gauntlet
Opponents aren't invented. They're the actual teams that played each playoff round in history, drawn round-by-round, each carrying a strength rating built from regular-season point differential blended with the Vegas line (the betting market's opinion, which has ~100% coverage since 1999). Each game is a logistic function of the strength gap, plus home field, an "any given Sunday" noise term, and a rising difficulty curve. Identical rosters get different runs — that's the replayability.
Keeping myself honest: the tuning
I didn't want to hand-tune numbers until they felt right. Every tunable value lives in a single config file, and a deterministic bulk-simulation harness drafts thousands of rosters across several strategies and runs ~120,000 gauntlets, scoring the outcomes against explicit balance targets:
- championship rate for a typical roster lands near 10%;
- a top-decile roster wins roughly 45% of the time;
- no single exit round absorbs the field;
- stacking defense is not a degenerate winning strategy (an early guardrail the harness actually caught and forced a fix for);
- the fit system is load-bearing — it flips a measurable share of close games, or it isn't pulling its weight.
Because the simulation is fully deterministic, every result is reproducible, and re-tuning is a measured experiment rather than vibes.
Where it's imperfect
Worth saying plainly:
- Box scores are kinder to quarterbacks and skill positions than to linemen and defensive backs — those ratings lean more on snap counts, honors, and judgment.
- Pre-1999 players are rated from career honors, not stats (the data simply doesn't exist), and they're flagged as estimated in the game.
- Any single number for a 1972 fullback involves a judgment call somewhere. The harness keeps the ratings consistent and the game balanced — it can't make them "true."
If you can poke a hole in it, I genuinely want to hear about it.
Data & stack
Player and game data from nflverse (1966–2025). Build pipeline in Python; the game is a dependency-free static site with a shared, pure-JavaScript engine (the exact same rating/simulation code powers both the browser and the tuning harness — no drift between what's tested and what ships).
Questions, holes to poke, or partnership ideas: @FBGauntlet — I read everything.