OPS+ Calculator
OPS+ takes a hitter's on-base and slugging numbers and indexes them to league average for that specific season, so a 1968 season and a 2019 season land on the same 100-centered scale. Enter your OBP and SLG, pick a season, and see your OPS+.
How your OPS+ compares
100 is league average by definition — where do you land
Why OPS+ instead of raw OPS
Raw OPS (on-base percentage plus slugging percentage) is easy to compute but hard to compare across seasons — a .750 OPS was excellent in the low-offense late 1960s and merely average in the high-offense late 1990s. OPS+ fixes that by indexing your OBP and SLG separately to that season's league average, then combining the two ratios into one number centered on 100. A player with exactly league-average OBP and league-average SLG always scores 100, whatever year it is — which is what makes OPS+ useful for comparing hitters decades apart.
How it’s calculated
OPS+ = 100 × (OBP ÷ league OBP + SLG ÷ league SLG − 1). League OPS is published directly for every MLB season from 1950 to the present (Baseball-Reference). League OBP and SLG, however, are only directly available in our dataset for nine sampled seasons: 1990, 1995, 2000, 2005, 2010, 2015, 2020, 2024, and 2025. For any other season, we estimate league OBP and SLG by taking the nearest sampled season's OBP/SLG split and scaling both numbers by the ratio of that season's published league OPS to the sampled season's league OPS — which keeps OBP + SLG equal to the season's real, published league OPS. Within the 1990–2025 range this tool covers, the nearest sampled season is never more than 2 years away, so the estimate stays close.
This tool does not apply a park factor, which real OPS+ (as published by Baseball-Reference) does use to adjust for hitter- or pitcher-friendly home ballparks. Treat results here as a park-neutral estimate, not an exact match to a published OPS+ figure. Results are for context and entertainment, not a substitute for official league statistics.
Worked example
A hitter with a .350 OBP and .480 SLG in the 2019 season (estimated league OBP ≈ .330, league SLG ≈ .428, from a published league OPS of .758) scores an OPS+ of about 118 — roughly 18% better than a league-average hitter that year.
Common mistakes
- Comparing raw OPS across different seasons instead of indexing to that season's league average.
- Forgetting that real, official OPS+ also applies a park factor — this simplified version does not.
- Assuming OPS+ is a percentage rather than an index — 150 means "50% better than average," not "150%."
Where it is used
- Comparing a modern hitter's season to a Hall of Famer's from a different offensive era.
- Quickly checking whether a batting line is actually good once league context is applied.
- Fantasy baseball and sabermetric discussions that need an era-neutral offense number.
Frequently asked questions
What counts as a good OPS+?
100 is league average by definition. Roughly 120 is a solidly above-average regular, 140 is an All-Star-caliber season, and 160 or higher is MVP-caliber. Below 90 is below-average offense for the era.
Does this calculator adjust for ballpark?
No. Real, official OPS+ (as published by Baseball-Reference) multiplies by a park factor so hitter-friendly or pitcher-friendly home parks don't skew the number. This tool omits that step, so it is a simplified, park-neutral-assumption version — treat it as an estimate, not the exact figure you'd see on Baseball-Reference for the same player.
Why do you need my OBP and SLG separately instead of just OPS?
OPS+ weighs on-base ability and power differently than a simple OPS sum — it compares your OBP to the league OBP and your SLG to the league SLG, then combines those two ratios. That's more accurate than comparing total OPS to total league OPS, especially in eras where the OBP/SLG mix has shifted.
Where do the league OBP and SLG numbers for my season come from?
League-wide OPS is published for every season back to 1950, but this tool's underlying data only has directly published league OBP and SLG for specific sampled seasons (1990, 1995, 2000, 2005, 2010, 2015, 2020, 2024, 2025). For any other season in the 1990–2025 range, we estimate league OBP and SLG by scaling the nearest sampled season's OBP/SLG split by the ratio of that season's league OPS to the sampled season's league OPS. This is disclosed in the methodology section above and is why the season dropdown is limited to 1990–2025.
Is 100 always exactly league average?
Yes, by construction — OPS+ is built so that a hitter with exactly league-average OBP and league-average SLG scores precisely 100, no matter what season it is. That's the whole point of the stat: it lets you compare a 1968 season to a 2019 season on the same 100-centered scale.