The method
How a season becomes a number
The short version
If you just want to know
Every season is graded against the seasons around it, not against history. A 1985 receiver is measured against other 1985-ish receivers, on the things 1985 actually wrote down. So a 1,200-yard year in a run-heavy decade can rate higher than a 1,400-yard year in a passing one.
Each position is scored on a handful of separate questions — how much did he produce, how efficient was he, did he score, did he move the chains — and those are averaged with some counting more than others. Being far better than everyone else at the heavily-weighted questions is what makes a high number.
Nobody hand-picks the top card. The ratings come out of the method, and the leaders you'd expect are the leaders that appear.
The long version
If you want to check it
Each component draws on an ordered list of metrics; the first with data for that season wins, and the card records which one was used. The value is z-scored against the same-position distribution for that era, then mapped through a fixed, monotonic curve: 0σ→75, +1σ→86, +2σ→93, +3σ→97.3.
Components are combined by weight. A component whose metrics all return null is dropped and its weight redistributed across the rest — never scored as zero, which would punish a season for what its era failed to record. The weighted mean is then calibrated per position onto the published scale, because averaging eight components compresses the top.
Every number in the panel below — z, component score, effective weight — is the value the build actually used.
The ledger
Every card, and its defence
Click any row and the rating takes the stand. Sort any column; the meter is on a fixed 55–100 scale so bars compare across filters.
| Player | Year | Pos | Franchise | Era | G | Rating |
|---|
What is missing
Four components are dark before 1999, and it is measurable
The 1980–1998 seasons come from season totals, not play-by-play, so the EPA-derived metrics have nothing to read. Rather than guess, the affected components are dropped and their weight redistributed.
- Quarterback peak dominance — ranks total passing EPA. No fallback exists.
- Explosive plays, at back and receiver — needs a count of 20-yard gains, not a longest.
- Defensive pressure — team sacks are not in the source at all.
The cost was measured rather than assumed: 2004 was rated twice from identical rows, once with every column and once with only the columns the pre-1999 source can supply. Raw ratings moved by 1.6–2.1 points on average and the order barely changed — ρ = 0.91 at quarterback, 0.96 at running back. Peyton Manning's 2004 stayed first either way.
Within an era this costs nothing: every card in it is scored on the same available metrics, which is the entire point of normalizing per era. It is worth knowing when comparing a card across the 1999 line.
Proof
Where the numbers came from
The pre-1999 seasons are hydrated one file per year, each listed with its own SHA-256, so a rebuild can be checked against exactly the bytes these ratings were computed from. 1999–2025 comes from nflverse.
| Year | G | Players | Teams | SHA-256 |
|---|
| Era | QB | RB | WR | TE | DEF | State |
|---|
The coverage table is the check that matters. An era clears its 80% floor on aggregate season count, which one healthy position can carry alone — that is how six seasons of missing receivers once shipped unnoticed. This table breaks it down per position, per era.
An era marked hydrating is still filling up, one season at a time. It is playable in a local build and is refused by the seed generator, so it cannot reach the server or set a ranked record — but the cards it does have are rated against a partial league, and are shown here so that is visible rather than implied.