Sports Era Translator
See what a stat line from one season would look like in another, by scaling it against how each season's league average compares. Pick a sport and stat, enter your number, choose a "from" and "to" season, and get the translated equivalent.
How era translation works
League averages shift over time — MLB run-scoring rises and falls by decade, the NBA has added far more three-point volume, and NFL passing efficiency has climbed for 50 years under rule changes that favor the offense. This tool takes your raw stat and scales it by the ratio between the target season's league average and your season's league average, giving you a rough "translated" equivalent — what a similarly-above-or-below-average performance would look like in a different year.
How it’s calculated
Translated stat = your stat × (league average in the "to" season ÷ league average in the "from" season). For ERA specifically, a lower number is better, so scaling by lgTo/lgFrom naturally produces a lower translated ERA when moving into a lower-scoring era, and a higher one when moving into a higher-scoring era — matching how ERA+ handles the same relationship. League averages are pulled directly from Baseball-Reference (MLB ERA and OPS), Basketball-Reference (NBA points per game), and Pro-Football-Reference (NFL passer rating).
This is a simple league-average scaling, not a rigorous statistical translation. It ignores rule changes (three-point line, illegal defense, roughing-the-passer enforcement), ballpark or arena dimensions, schedule length, usage patterns (innings, minutes, pass attempts per game), strength of schedule, and position. Treat the output as a rough, single-number estimate for context and discussion — not a sabermetric-grade era adjustment like ERA+, OPS+, or advanced NFL/NBA analytics models.
Worked example
A 3.50 ERA in 2019 (MLB league ERA 4.49 that year, a relatively high-offense season) translates to 2.32 in 1968 (MLB league ERA 2.98, "The Year of the Pitcher"): 3.50 × (2.98 ÷ 4.49) = 2.32. That reflects how much lower ERAs generally were league-wide in 1968 — an equivalent level of above-average performance in that run-starved season required a noticeably lower raw ERA.
Common mistakes
- Treating the translated number as an exact historical equivalent rather than a rough scaling estimate.
- Ignoring the disclosed limitations — rule changes and park/arena effects can matter more than the league-average shift itself.
- Comparing translated stats across different metrics (e.g., translated OPS vs. translated ERA) as if they're on the same scale — they aren't.
Where it is used
- Casual "who was better, this era or that one" sports debates and social media arguments.
- Quick historical context when reading about a Hall of Fame or record-setting season.
- A starting point before digging into more rigorous indexed stats like ERA+, OPS+, or advanced analytics models.
Frequently asked questions
How exactly does the translation work?
Translated stat = your stat × (league average in the target season ÷ league average in your season). For example, a 3.50 ERA in 2019 (league ERA 4.49) translates to 3.50 × (2.98 ÷ 4.49) = 2.32 in 1968 (league ERA 2.98) — because 1968 was such a low-scoring year that the same ERA would need to be much lower to represent the same relative performance.
Is this the same thing as ERA+ or OPS+?
It's the same underlying idea — scaling by league average — but a different output. ERA+ and OPS+ give you an index number centered on 100 (park-neutral by design). This translator instead converts your stat directly into the equivalent raw number in a different season, which is more intuitive for a quick "what would this have looked like back then" comparison, but it is a simpler, less rigorous method than the official indexed stats.
What does this translator ignore that a real cross-era comparison would need?
A lot. It ignores rule changes (three-point line introduction, illegal-defense rules, roughing-the-passer enforcement), ballpark or arena dimensions, schedule length, usage patterns (pitch counts, minutes played, pass attempts per game), quality of competition, and position. It's a rough, single-number scaling — useful for a quick gut check, not a rigorous sabermetric or analytics-grade translation.
Why are the available seasons different for each stat?
Each league-average series only covers the seasons where NumberBench has directly verified, published league-average data for that specific stat. MLB league ERA runs 1950–2025 (76 seasons); NBA points-per-game averages are only sampled for select seasons back to 1979-80; NFL passer rating runs 1970–2025. The season dropdowns only offer years where a real published league average exists for that metric — no estimated or interpolated years are included.