Audited ·Last updated ·6 citations·Tier 1·0 uses

OPS Calculator — On-Base Plus Slugging, With League-Adjusted OPS+

Free OPS calculator that also returns OPS+ against real MLB league baselines for 2023, 2024 and 2025, using MLB's own published OPS+ formula.

OPS Calculator

League baseline for OPS+
At-bats, not plate appearances.
All hits including the extra-base hits below — singles are derived by subtraction.
Two total bases each.
Three total bases each.
Four total bases each.
Intentional walks included. Walks move on-base percentage and are invisible to slugging percentage.
Behaves exactly like a walk for on-base percentage.
In the on-base denominator and nowhere else. Sacrifice bunts are not asked for because they appear in neither component.
Used only when the baseline above is set to Custom. Enter as a decimal — .312 is 0.312.
Used only when the baseline above is set to Custom. Enter as a decimal — .399 is 0.399.
OPS
1.1593
On-base percentage plus slugging percentage. A raw figure with no league context: .700 is roughly average in modern MLB, .900 is an All-Star season and 1.000 is elite.
OPS+ (park-neutral)
222.4106
On-base percentage
0.458
Slugging percentage
0.7013
League OBP used
0.3121
League SLG used
0.3992
Reading
An OPS of 1.159 against a league baseline of 0.711 gives an OPS+ of 222 — about 122% better than league average, before any park adjustment.

Background.

OPS is the simplest useful hitting statistic in baseball: add on-base percentage to slugging percentage and read the result. MLB's official glossary puts it plainly — OPS "adds on-base percentage and slugging percentage to get one number that unites the two", combining how often a hitter reaches base with how far he goes when he does. The two halves cover each other's blind spots. On-base percentage counts a walk and a home run as the same event; slugging percentage cannot see a walk at all. Added together they produce a number that correlates with run scoring far better than either alone, and far better than batting average, which is why OPS went from an obscure sabermetric curiosity in the 1980s to a figure printed on television graphics.

But a raw OPS is only interpretable against its own season, and that is the whole reason this page is more than an addition. A .900 OPS in 2024, when the Major League average was .711, is a very different accomplishment from a .900 OPS in 2000, when the league averaged well above .780. The fix is OPS+, and MLB publishes the formula in its own glossary: 100 × (OBP ÷ lgOBP + SLG ÷ lgSLG − 1), scaled so that 100 is exactly league average and 150 is fifty per cent better. This calculator computes it against real league baselines derived from official Major League season totals — every one of the 30 clubs' at-bats, hits, walks, hit-by-pitches, sacrifice flies and total bases, summed — for 2023, 2024 and 2025, with a custom mode for any other league.

Notice what OPS+ is not. It is not 100 × OPS ÷ league OPS. That shortcut appears all over the internet and it gives a materially different answer, because it weights the two components by their raw sizes rather than by how far each one deviates from its own league mean. Slugging percentage is numerically the larger of the two, so the shortcut systematically under-credits on-base ability — for the worked example on this page the shortcut returns about 163 where the published formula returns 222. The −1 in the real formula is what makes the scale work: at exactly league-average OBP and SLG each ratio is 1, so the bracket is 1 + 1 − 1 = 1 and the index is exactly 100. This calculator is unit-tested on that identity by feeding the league's own totals back in as a player line.

One honest limitation is stated up front, in the output label as well as here. MLB's glossary says OPS+ "accounts for external factors like ballparks", and it does so by park-adjusting the league rates before dividing. MLB does not publish the park factors it uses, and inventing one would be worse than omitting it, so this page computes a park-neutral OPS+ from unadjusted league rates. For most hitters the difference is a point or two; for a hitter in an extreme park it can be several points, and a published figure will not match exactly. What the page gives you instead is complete transparency: the league OBP and league SLG actually used are shown as outputs, so you can see precisely what the index was measured against.

The calculator takes the full box-score line — at-bats, hits, doubles, triples, home runs, walks, hit-by-pitches and sacrifice flies — and derives everything else. Singles come out by subtraction, total bases by the standard 1-2-3-4 weighting, on-base percentage from the four-term denominator in Official Baseball Rule 9.21(f), and slugging percentage from Rule 9.21(c). Sacrifice bunts are not asked for because they appear in neither component: they are not at-bats and they are not one of the four on-base denominator terms.

Below the widget you will find both component formulas with their rule citations, the OPS+ derivation and the reason the naive shortcut fails, a worked example reproducing a Most Valuable Player season from official MLB data against all three league baselines, the way the same line reads differently by era, and an honest account of where OPS runs out — the unequal treatment of its two components being the largest of them.

What is ops calculator?

OPS (on-base plus slugging) is the arithmetic sum of a hitter's on-base percentage and his slugging percentage. It has no independent definition in the Official Baseball Rules; it is a derived statistic built from two that do — Rule 9.21(f) for on-base percentage and Rule 9.21(c) for slugging percentage — and MLB's glossary defines it as their sum. The scale runs from .000 upward with no fixed ceiling; roughly .710 has been the Major League average in recent seasons, .800 marks a good regular, .900 an All-Star, and 1.000 an elite year. The all-time career leader, Babe Ruth, finished at 1.164, with Ted Williams second at 1.116 and Lou Gehrig third at 1.079 according to MLB's own glossary. OPS+ is the league-normalised version: 100 × (OBP ÷ lgOBP + SLG ÷ lgSLG − 1), where 100 is league average by construction and every point above 100 is one per cent better than the league. Because it divides by the league's own rates, OPS+ makes hitters from different seasons and different run environments directly comparable in a way raw OPS cannot. Both statistics can also be applied from the pitcher's side, where the raw figure is called OPS against. Their main structural weakness is that adding two rates with different denominators and different spreads implicitly weights slugging percentage more heavily than the run-scoring evidence justifies — on-base percentage is worth roughly 1.7 to 1.8 times as much per point — which is the gap that weighted on-base average was designed to close.

How to use this calculator.

  1. Pick the league baseline first. It does not change OPS, but it changes OPS+ substantially, and using the wrong season is the same error as comparing a 1968 batting average to a 1999 one.
  2. Enter the full hitting line: at-bats, total hits, doubles, triples, home runs, walks, hit-by-pitches and sacrifice flies. Every figure appears in a standard season box score.
  3. Do not enter singles. They are derived as hits minus doubles minus triples minus home runs, and entering them in the hits field will understate both components.
  4. Do not look for a sacrifice-bunt field. Bunts are excluded from both components — they are not at-bats and they are not part of the on-base denominator — so they cannot affect OPS at all.
  5. For a league that is not pre-loaded, choose Custom and enter that league's own on-base and slugging percentages as decimals. College, high-school and amateur leagues have run environments nothing like MLB's, and using an MLB baseline for them will badly overstate OPS+.
  6. Read the two league outputs to see exactly what your index was measured against, and treat OPS+ as park-neutral: it does not know whether the hitter played half his games at altitude.

The formula.

OPS = OBP + SLG · OPS+ = 100 × ( OBP⁄lgOBP + SLG⁄lgSLG − 1 )

The OPS half is trivial and the OPS+ half is where the care goes.

On-base percentage, per Rule 9.21(f): hits plus walks plus hit-by-pitches, over at-bats plus walks plus hit-by-pitches plus sacrifice flies. Four denominator terms — sacrifice bunts are not one of them, and neither are interference awards.

Slugging percentage, per Rule 9.21(c): total bases over at-bats. Total bases weight each hit by how far the batter got: one for a single, two for a double, three for a triple, four for a home run. The fast form used here avoids computing singles at all: TB = H + 2B + 2×3B + 3×HR, because every hit is worth at least one base and each extra-base hit adds only the surplus.

Add them. That is OPS. Note that the two fractions have different denominators — one uses at-bats plus free passes, the other uses at-bats alone — so OPS is not a rate of anything in particular. It is a useful index whose units do not really exist, which is a fair criticism and does not stop it working.

OPS+ normalises each component separately before recombining: 100 × (OBP ÷ lgOBP + SLG ÷ lgSLG − 1). Work through why the −1 is there. If a hitter is exactly league average in both components, both ratios equal 1, the bracket is 1 + 1 − 1 = 1, and the index is 100. If he is ten per cent better in both, the ratios are 1.1, the bracket is 1.2, and the index is 120 — ten per cent better in each component reads as twenty per cent better overall, which is the intended behaviour, because being above average in both is compounding rather than merely additive.

The common shortcut, 100 × OPS ÷ league OPS, looks equivalent and is not. It effectively weights each component by its raw magnitude, and slugging percentage is the numerically larger of the two, so a hitter whose edge is concentrated in on-base ability is systematically short-changed. For the worked example on this page the shortcut returns about 163 against the published formula's 222 — not a rounding difference, a different statistic.

One scope note, repeated here because it matters. MLB park-adjusts the league rates before dividing and does not publish the park factors. This calculator does not park-adjust, so its OPS+ is park-neutral. Both league rates used are reported as outputs so you can see exactly what the comparison was against, and the presets are stored as raw season totals rather than pre-rounded ratios so that no transcription rounding enters the calculation.

A worked example.

Example

Aaron Judge's 2024 Most Valuable Player season is the clearest modern demonstration of why OPS needs a league baseline. MLB's official data feed gives his line as 559 at-bats, 180 hits, 36 doubles, 1 triple, 58 home runs, 133 walks, 9 hit-by-pitches and 2 sacrifice flies. On-base percentage: (180 + 133 + 9) ÷ (559 + 133 + 9 + 2) = 322 ÷ 703 = .4580. Total bases: 180 + 36 + (2 × 1) + (3 × 58) = 392, matching MLB's published total-bases figure, so slugging percentage is 392 ÷ 559 = .7013. Add them and OPS is 1.1593, printed as 1.159 — again exactly MLB's published figure. Now the league context. The 2024 Major League baselines, derived from all 30 clubs' season totals, are a league on-base percentage of .3121 and a league slugging percentage of .3992. Judge's ratios are .4580 ÷ .3121 = 1.4675 and .7013 ÷ .3992 = 1.7566. Sum them, subtract one, multiply by a hundred: 100 × (1.4675 + 1.7566 − 1) = 222.4. He produced roughly 122% more than a league-average 2024 hitter, on a park-neutral basis. Switch the baseline to 2023 and the same line reads 212.4, because 2023 was a higher-offence season with a league OPS of .734 against 2024's .711; switch to 2025 and it reads 219.0. The raw OPS never moves — it cannot, it is a property of the hitter's own line — but the index does, and that difference is the entire point of the statistic. For contrast, the widely circulated shortcut 100 × 1.1593 ÷ .7113 returns 163, which is not a rounding disagreement but a different and considerably less flattering number produced by the wrong formula.

hits180
sacrifice Flies2
walks133
triples1
home Runs58
doubles36
hit By Pitch9
at Bats559
league Slg0.399
league Baselinemlb2024
league Obp0.312

Frequently asked questions.

What is the OPS formula?
OPS = on-base percentage + slugging percentage. MLB's glossary defines it in prose rather than algebra — it "adds on-base percentage and slugging percentage to get one number that unites the two" — because the sum is unambiguous. The components come from the Official Baseball Rules: OBP is (H + BB + HBP) ÷ (AB + BB + HBP + SF) under Rule 9.21(f), and SLG is total bases ÷ at-bats under Rule 9.21(c).
What is a good OPS?
Against a modern Major League baseline near .710, an OPS of .800 marks a good regular, .900 an All-Star-calibre season and 1.000 an elite one. Anything below .650 for a full season is a serious problem at almost any position. MLB's glossary records the all-time career leaders as Babe Ruth at 1.164, Ted Williams at 1.116 and Lou Gehrig at 1.079. Because the baseline moves, always check OPS+ alongside the raw figure — the same .900 can be a 120 index or a 150 depending on the season.
How is OPS+ calculated?
MLB publishes the formula as 100 × (OBP ÷ lgOBP + SLG ÷ lgSLG − 1). Each component is divided by its own league average first, then the two ratios are added and one is subtracted, so that a hitter who is exactly league average in both scores exactly 100. The scale is linear in per cent: 150 means fifty per cent better than the league. This calculator applies that formula against league rates computed from official Major League season totals for 2023, 2024 and 2025, or against rates you supply.
Is OPS+ just OPS divided by league OPS?
No, and this is the most common OPS+ error on the internet. The shortcut 100 × OPS ÷ lgOPS weights the two components by their raw magnitudes; slugging percentage is numerically larger, so on-base ability gets systematically under-credited. For the 2024 season worked through on this page the shortcut returns about 163 where MLB's published formula returns 222. The two are not approximations of each other — they are different statistics that happen to share a scale marker at 100.
Why doesn't this calculator adjust for ballparks?
Because the park factors would have to be invented. MLB's glossary says OPS+ "accounts for external factors like ballparks", and the adjustment enters by park-adjusting the league rates before dividing — but MLB does not publish the factors it uses, and different public sources use different ones. Rather than guess, this page computes a park-neutral OPS+ and tells you so, and it reports the exact league OBP and SLG used so the comparison is fully transparent. For most hitters the park effect is a point or two of index; in an extreme park it can be several.
Do sacrifice bunts affect OPS?
Not at all, which is why there is no field for them. A sacrifice bunt is not an at-bat under Rule 9.02(a)(1), so it cannot touch slugging percentage, and it is not one of the four terms in the Rule 9.21(f) on-base denominator, so it cannot touch on-base percentage either. Sacrifice flies are the opposite case: they are in the on-base denominator and will lower your OPS, which is why this calculator does ask for them.
What is the main criticism of OPS?
That it adds two rates with different denominators and implicitly gets their relative importance wrong. Run-scoring studies consistently find a point of on-base percentage worth roughly 1.7 to 1.8 times a point of slugging percentage, but OPS weights them one to one. Two hitters with identical OPS can therefore differ measurably in real offensive value, with the higher-on-base hitter being the better one. Weighted on-base average was built to fix this by fitting each event's coefficient to observed run scoring instead of adding two ready-made rates.
Can OPS or OPS+ be used for pitchers?
Yes. MLB's glossary notes that OPS "can also be used in evaluating pitchers; when used in that context, it is referred to as OPS against". Enter the line the pitcher allowed rather than the line a hitter produced, and read the result as the OPS of the average hitter facing him. The league baselines here are league-wide hitting rates, which is the correct comparison for that use as well — an OPS-against index above 100 means opposing hitters did better against him than they did against the league.
Which league baseline should I use?
The league and season the player actually played in. The three presets are Major League Baseball for 2023, 2024 and 2025, each computed from the complete season totals of all 30 clubs. For anything else — a minor league, a college conference, a high-school district, a fantasy league, or a specific split such as left-handers only — use Custom and enter that population's own on-base and slugging percentages. Applying an MLB baseline to an amateur league will inflate OPS+ dramatically, because amateur run environments are far higher.
Why is the league OBP shown to ten decimal places?
So you can see that nothing was rounded before it was divided. The presets store the raw season totals — at-bats, hits, walks, hit-by-pitches, sacrifice flies and total bases for all 30 clubs — and recompute the rates here at full precision, rather than storing a three-decimal figure such as .312 and dividing by that. Dividing by a rounded league rate introduces error in the second decimal place of the index, which is enough to move a reported OPS+ by a point.

References& sources.

  1. [1]Major League Baseball. Official MLB Glossary, "On-base Plus Slugging (OPS)": "OPS adds on-base percentage and slugging percentage to get one number that unites the two… It can also be used in evaluating pitchers; when used in that context, it is referred to as OPS against." Also the source of the all-time career leaders quoted here — Babe Ruth 1.164, Ted Williams 1.116, Lou Gehrig 1.079.
  2. [2]Major League Baseball. Official MLB Glossary, "On-base Plus Slugging Plus (OPS+)": "The formula 100 x (OBP/lgOBP + SLG/lgSLG - 1)", with "a score of 100 is league average, and 150 is 50 percent better than the league average" and the note that the statistic "accounts for external factors like ballparks". This is the formula implemented here, applied park-neutrally.
  3. [3]Office of the Commissioner of Baseball (2025). Official Baseball Rules, 2025 Edition, Rule 9.21(f) for on-base percentage — "divide the sum of hits, bases on balls and times hit by pitch by the sum of at-bats, bases on balls, times hit by pitch and sacrifice flies" — and Rule 9.21(c) for slugging percentage — "divide the total bases of all safe hits by the total times at bat". The two components of OPS.
  4. [4]Major League Baseball. Official MLB Glossary, "Total Bases (TB)": one total base for a single, two for a double, three for a triple, four for a home run, and no credit for bases taken on the basepaths. Source of the total-bases weighting used to build the slugging component.
  5. [5]MLB Stats API (statsapi.mlb.com), club season hitting totals for all 30 clubs. Summing them gives the league baselines stored in this calculator: 2024 — 163,687 at-bats, 39,823 hits, 14,929 walks, 2,020 hit-by-pitch, 1,261 sacrifice flies, 65,347 total bases, for a league OBP of .3121 and league SLG of .3992. The derived league batting average of .243, OBP .312 and SLG .399 match MLB's published 2024 league rates. The same query gives the 2023 and 2025 baselines.
  6. [6]MLB Stats API (statsapi.mlb.com), season hitting statistics for player 592450 (Aaron Judge), 2024: 559 at-bats, 180 hits, 36 doubles, 1 triple, 58 home runs, 133 walks, 9 hit-by-pitch, 2 sacrifice flies, totalBases 392, published obp ".458", slg ".701", ops "1.159". Source of the worked example.

In this category

Embed

Quanta Pro

Paid features are coming later.

  • All 590 calculators remain free
  • No billing is enabled
Coming soon