A hitter's OPS or a pitcher's ERA only means something relative to the run environment they played in. A 3.00 ERA in 1968 is ordinary; in 2000 it's elite. ERA+ and OPS+ fix the scale to 100 = league average, normalized to each player's own season and league — AL, NL, and every historical and Negro league measured separately, never blended across eras.
How this is computed — and what it isn't
Built in-house from the season batting/pitching lines StatVault already holds. Park-unadjusted: the corpus carries no park factors, so these are league-relative but not park-corrected (true Baseball-Reference ERA+/OPS+ also divide by a park factor — expect these to run a touch higher). OBP baseline uses a consistent (H+BB)/(AB+BB) reached-base rate for both the player and the league, because the source feed has no HBP or SF — applied identically on both sides, so the ratio stays unbiased. SLG is exact.
Board qualifiers: career ERA+ ≥ 1000 career IP, career OPS+ ≥ 3000 career AB, single-season ERA+ ≥ 140 IP in the season, single-season OPS+ ≥ 400 AB in the season. Short-season leagues (Negro leagues, the deadball fringe) rarely clear these MLB-standard bars, so many of those greats carry full per-season ERA+/OPS+ on their profiles without appearing on a career board here.
On-base + slugging vs the player's own league-seasons, career-long.
Showing 30 of 250 ranked entries.
Earned-run average against the player's own league-seasons, career-long.
Showing 30 of 250 ranked entries.
The most dominant offensive seasons relative to their league.
Showing 30 of 250 ranked entries.
The most dominant run-prevention seasons relative to their league.
Showing 30 of 250 ranked entries.
The best qualified ERA+ and OPS+ seasons of every decade, each measured only against its own run environment — deadball aces and steroid-era sluggers on one honest scale.
| Decade | Best OPS+ Season | OPS+ | Best ERA+ Season | ERA+ |
|---|---|---|---|---|
| 2020s | Aaron Judge · 2024 NYY | 227 | Jacob Misiorowski · 2026 MIL | 236 |
| 2010s | Bryce Harper · 2015 WSH | 209 | Clayton Kershaw · 2016 LAD | 245 |
| 2000s | Barry Bonds · 2002 SF | 272 | Pedro Martínez · 2000 BOS | 287 |
| 1990s | Mark McGwire · 1998 STL | 230 |
The best era-adjusted hitter and pitcher tenures in every active club's history (≥ 1500 AB with the club · ≥ 500 IP with the club). Relocated eras fold into the modern franchise; short Negro-league tenures below the volume floor stay on player profiles.
Indianapolis Athletics · ATH
Jimmie Foxx 187 OPS+ · 4,397 AB
Lefty Grove 149 ERA+ · 2,401 IP
Atlanta Black Crackers · ATL
Hank Aaron 167 OPS+ · 11,628 AB
Greg Maddux 152 ERA+ · 2,527 IP
Arizona Diamondbacks · AZ
Paul Goldschmidt 158 OPS+ · 3,975 AB
Randy Johnson 156 ERA+ · 1,630 IP
Baltimore Orioles · BAL
| Greg Maddux · 1994 ATL |
| 268 |
| 1980s | George Brett · 1980 KC | 207 | Dwight Gooden · 1985 NYM | 236 |
| 1970s | Dick Allen · 1972 CWS | 210 | Jim Kern · 1979 TEX | 260 |
| 1960s | Willie McCovey · 1969 SF | 222 | Bob Gibson · 1968 STL | 264 |
| 1950s | Ted Williams · 1957 BOS | 251 | Warren Spahn · 1953 ATL | 200 |
| 1940s | Ted Williams · 1941 BOS | 250 | Ray Brown · 1940 Homestead Grays | 252 |
| 1930s | Babe Ruth · 1931 NYY | 224 | Slim Jones · 1934 Philadelphia Stars | 280 |
| 1920s | Babe Ruth · 1920 NYY | 273 | Bullet Rogan · 1925 Kansas City Monarchs | 259 |
| 1910s | Ty Cobb · 1910 DET | 228 | Ferdie Schupp · 1916 SF | 290 |
| 1900s | Honus Wagner · 1908 PIT | 217 | Mordecai Brown · 1906 CHC | 252 |
| 1890s | Ed Delahanty · 1896 PHI | 196 | Clark Griffith · 1898 CHC | 192 |
| 1880s | Fred Dunlap · 1884 St. Louis Maroons | 243 | Denny Driscoll · 1882 PIT | 223 |
| 1870s | Paul Hines · 1879 Providence Grays | 183 | George Bradley · 1876 St. Louis Brown Stockings | 188 |
Hoyt Wilhelm 157 ERA+ · 616 IP
Boston Americans · BOS
Ted Williams 207 OPS+ · 7,706 AB
Pedro Martínez 184 ERA+ · 1,384 IP
Chicago Cubs · CHC
George Gore 164 OPS+ · 2,963 AB
Mordecai Brown 157 ERA+ · 2,329 IP
Cincinnati Reds · CIN
Frank Robinson 162 OPS+ · 5,527 AB
John Franco 148 ERA+ · 528 IP
Cleveland Spiders · CLE
Joe Jackson 194 OPS+ · 2,502 AB
Addie Joss 145 ERA+ · 2,327 IP
Columbus Buckeyes · COL
Larry Walker 176 OPS+ · 4,076 AB
Ubaldo Jiménez 113 ERA+ · 851 IP
Chicago White Sox · CWS
Joe Jackson 168 OPS+ · 2,439 AB
Hoyt Wilhelm 178 ERA+ · 676 IP
Detroit Wolverines · DET
Dan Brouthers 193 OPS+ · 1,511 AB
Tarik Skubal 136 ERA+ · 863 IP
Houston Colt 45's · HOU
Yordan Alvarez 168 OPS+ · 3,022 AB
Roger Clemens 189 ERA+ · 539 IP
Kansas City Cowboys · KC
Danny Tartabull 146 OPS+ · 2,327 AB
Dan Quisenberry 156 ERA+ · 920 IP
Los Angeles Angels · LAA
Mike Trout 163 OPS+ · 6,480 AB
Troy Percival 156 ERA+ · 587 IP
Los Angeles Dodgers · LAD
Shohei Ohtani 171 OPS+ · 1,770 AB
Kenley Jansen 170 ERA+ · 705 IP
Miami Marlins · MIA
Gary Sheffield 161 OPS+ · 1,870 AB
Josh Johnson 132 ERA+ · 917 IP
Milwaukee Cream Citys · MIL
Prince Fielder 148 OPS+ · 3,527 AB
Brandon Woodruff 138 ERA+ · 790 IP
Minnesota Twins · MIN
Harmon Killebrew 157 OPS+ · 7,835 AB
Walter Johnson 152 ERA+ · 5,914 IP
New York Mutuals · NYM
Darryl Strawberry 149 OPS+ · 3,903 AB
Jacob deGrom 163 ERA+ · 1,326 IP
New York Yankees · NYY
Babe Ruth 217 OPS+ · 7,217 AB
Mariano Rivera 206 ERA+ · 1,284 IP
Philadelphia Phillies · PHI
Gavvy Cravath 166 OPS+ · 3,618 AB
Zack Wheeler 146 ERA+ · 1,141 IP
Pittsburgh Pirates · PIT
Brian Giles 169 OPS+ · 2,541 AB
Kent Tekulve 137 ERA+ · 1,017 IP
San Diego Padres · SD
Ken Caminiti 150 OPS+ · 2,010 AB
Trevor Hoffman 158 ERA+ · 952 IP
Seattle Pilots · SEA
Edgar Martinez 146 OPS+ · 7,213 AB
Félix Hernández 125 ERA+ · 2,730 IP
San Francisco Giants · SF
Barry Bonds 204 OPS+ · 6,263 AB
Bill Swift 149 ERA+ · 507 IP
St. Louis Brown Stockings · STL
Mark McGwire 191 OPS+ · 1,739 AB
George Bradley 188 ERA+ · 573 IP
Tampa Bay Devil Rays · TB
Yandy Díaz 128 OPS+ · 3,644 AB
Drew Rasmussen 149 ERA+ · 600 IP
Texas Rangers · TEX
Alex Rodriguez 162 OPS+ · 1,863 AB
Yu Darvish 121 ERA+ · 783 IP
Toronto Blue Jays · TOR
Fred McGriff 155 OPS+ · 1,944 AB
Tom Henke 164 ERA+ · 563 IP
Washington Nationals · WSH
Juan Soto 168 OPS+ · 1,954 AB
Max Scherzer 149 ERA+ · 1,229 IP