Skip to content
MLB

What Is OPS in Baseball? OBP Plus SLG Explained with Real Math

OPS adds on-base percentage to slugging percentage. Learn both formulas, follow a full worked example step by step, see how OPS+ adjusts for league and park, and what counts as good.

Author: All American Sports Cafe Editorial TeamPublished:

OPS in baseball stands for on-base plus slugging: you add a hitter's on-base percentage (OBP) to his slugging percentage (SLG) and get one number that rewards both getting on base and hitting for power. A hitter with a .360 OBP and a .456 SLG has an .816 OPS, which by the usual rules of thumb is comfortably above average.

That is the whole idea. The rest of this guide shows where each half comes from, walks through a full hypothetical season one step at a time, explains OPS+ (the league and park adjusted version you see on stat sites), and covers what OPS gets wrong. If you are newer to the sport, our explainer on how many innings are in a baseball game covers the basic structure first.

What OPS measures and why it caught on

For most of the 20th century, the number printed next to a hitter's name was his batting average: hits divided by at-bats. Batting average has two big blind spots. It ignores walks and hit-by-pitches entirely, and it treats a bloop single exactly like a home run.

OPS fixes both problems with very little effort. On-base percentage answers one question: how often does this hitter avoid making an out and reach base? Slugging percentage answers another: when he gets a hit, how much damage does it do? Add them together and you have a quick, readable snapshot of offensive value. MLB's own glossary describes OPS in exactly these terms, as a stat meant to capture a hitter's ability to reach base and to hit for power.

The same calculation also works in reverse for pitchers. When you see OPS against, it is the combined OBP and SLG of all the hitters a pitcher has faced, so lower is better.

How to calculate on-base percentage

The Official Baseball Rules spell out the on-base formula in Rule 9.21(f). Written as a formula:

OBP = (H + BB + HBP) / (AB + BB + HBP + SF)

Here is what each abbreviation means:

  • H: hits (singles, doubles, triples and home runs all count the same here)
  • BB: bases on balls, or walks, including intentional walks
  • HBP: times hit by a pitch
  • AB: at-bats, which leave out walks, hit-by-pitches, sacrifices and catcher's interference
  • SF: sacrifice flies, a fly ball out that scores a runner from third

A few details trip people up. Reaching base on an error or a fielder's choice does not count as reaching base for OBP; it goes into the books as an at-bat without a hit, so it lowers the number. Sacrifice flies sit in the denominator, so they count against a hitter's OBP even though they are not at-bats. Sacrifice bunts are left out completely. And the rulebook says to ignore times a batter is awarded first base on interference or obstruction.

How to calculate slugging percentage

Slugging percentage is total bases divided by at-bats. Rule 9.21(c) puts it as the total bases of all safe hits divided by total times at bat. Total bases weights each hit by how far the batter got: a single is worth 1 base, a double 2, a triple 3 and a home run 4.

So the formula is SLG = (1B + 2 x 2B + 3 x 3B + 4 x HR) / AB.

Walks and hit-by-pitches play no part in slugging, and the denominator is at-bats, not plate appearances. Despite the name, slugging percentage is not really a percentage. It is an average number of bases per at-bat, which is why it can, in theory, go as high as 4.000 for a hitter who homers in every at-bat.

A full worked example, step by step

The numbers below belong to a made-up player, not anyone real. They are chosen to look like a solid everyday hitter over a full season.

The hypothetical stat line

  • At-bats (AB): 500
  • Hits (H): 140, made up of 90 singles, 30 doubles, 2 triples and 18 home runs
  • Walks (BB): 60
  • Hit by pitch (HBP): 5
  • Sacrifice flies (SF): 5
  • Sacrifice bunts: 3 (these will not appear in any formula)

First, a sanity check on the hits: 90 + 30 + 2 + 18 = 140. Good. His batting average, for comparison, is 140 / 500 = .280.

Step 1: on-base percentage

Numerator, the times he reached base: 140 hits + 60 walks + 5 HBP = 205.

Denominator: 500 AB + 60 BB + 5 HBP + 5 SF = 570.

OBP = 205 / 570 = 0.35965, which rounds to .360. The three sacrifice bunts never enter the calculation.

Step 2: slugging percentage

Work out total bases one hit type at a time. Singles: 90 x 1 = 90. Doubles: 30 x 2 = 60. Triples: 2 x 3 = 6. Home runs: 18 x 4 = 72.

Total bases = 90 + 60 + 6 + 72 = 228.

SLG = 228 / 500 = .456.

Step 3: add them

OPS = .360 + .456 = .816.

If you keep the unrounded OBP, you get 0.35965 + 0.456 = 0.81565, which still rounds to .816. Stat sites usually show OPS to three decimal places and, like batting average, drop the leading zero, so you will see it written as .816. A hitter above 1.000 keeps the leading digit, as in 1.025.

OPS+: the adjusted version

Raw OPS has a problem: the same .816 means different things in different seasons and ballparks. A hitter who plays half his games in a hitter-friendly park, or in a year when offense is up across the league, gets a boost he did not fully earn.

OPS+ solves that by comparing a hitter to the league and adjusting for his home park. It is scaled so that 100 is exactly league average. Every point above or below 100 is roughly a percentage point better or worse than average, so a 150 OPS+ is about 50 percent better than the league, and an 80 OPS+ is about 20 percent worse.

MLB's glossary gives the core formula as 100 x (OBP / league OBP + SLG / league SLG - 1), with the league figures adjusted for the park the player calls home. Here is a simplified version using our hypothetical hitter and made-up league averages of .315 OBP and .400 SLG, with no park adjustment.

Start with the two ratios: .360 / .315 = 1.1429 for on-base, and .456 / .400 = 1.1400 for slugging. Add them to get 2.2829. Subtract 1 to get 1.2829. Multiply by 100 and round, and the OPS+ is 128.

An OPS+ of 128 says this hitter was roughly 28 percent better than a league-average hitter. Real OPS+ figures on sites like Baseball-Reference include the park factor, so they will not match a back-of-the-envelope calculation exactly, but the logic is the same. The biggest advantage of OPS+ is comparison: you can line up a catcher from the 1960s and a designated hitter from last season and get a fair read on who was further above his league.

What counts as a good OPS

There is no official scale. League-wide offense rises and falls, so any fixed table goes out of date. With that warning, the rule-of-thumb chart in the FanGraphs stat library is a fair starting point:

  • 1.000 or higher: excellent, the kind of season that draws MVP votes
  • Around .900: great
  • Around .800: above average
  • Around .710: roughly average
  • Around .670: below average
  • Around .600 or lower: poor

By that scale, our hypothetical .816 hitter sits in the above-average tier. Position matters too. A shortstop or catcher with a .750 OPS may be more valuable than a first baseman at .800, because the defensive job is harder and teams expect less hitting from it.

Where OPS falls short

OPS became popular because it is easy, not because it is perfect. Here is the honest scorecard.

Pros

  • Simple to calculate from any standard box score or season line
  • Captures both reaching base and hitting for power in one number
  • Shown on nearly every stat site and broadcast graphic, so it is easy to look up
  • OPS+ version adjusts for league and ballpark, so comparisons across eras get fairer

Things to consider

  • Weights OBP and SLG equally, although getting on base is worth more per point
  • Adds two fractions with different denominators
  • Ignores baserunning, stolen bases and defense
  • Misleading over small samples, such as a hot or cold week
  • Raw OPS depends heavily on the run environment of the season and ballpark

The first limitation is the big one. FanGraphs' explainer estimates that a point of OBP is worth about twice as much as a point of SLG, so OPS tends to flatter power hitters and undersell patient, high-walk hitters. That is why many analysts prefer weighted on-base average (wOBA), which gives each way of reaching base its own value, or wRC+, an adjusted version on the same 100-is-average scale as OPS+.

Sample size matters too. Fifty plate appearances can produce a 1.100 OPS from a bench player or a .500 OPS from a star. Wait for a few hundred before drawing conclusions.

OPS quick reference

Keep this handy the next time you are reading a stat page or a broadcast graphic:

  • OBP = (H + BB + HBP) / (AB + BB + HBP + SF)
  • SLG = total bases / AB, where total bases = 1B + 2 x 2B + 3 x 3B + 4 x HR
  • OPS = OBP + SLG, shown to three decimals
  • OPS+: 100 is league average, adjusted for league and park; 120 means about 20 percent better than average
  • Rough guide only: .800 is above average, .900 is great, 1.000 is excellent

Pitching has its own equivalent of this shortcut stat. See our guide to ERA in baseball for how pitchers are measured.

OPS questions

What does OPS stand for in baseball?

On-base plus slugging. It is a hitter's on-base percentage added to his slugging percentage.

Is a .700 OPS good?

It is close to average. Public rule-of-thumb scales such as the one in the FanGraphs library put league average somewhere around .710, though the real figure moves from season to season. Treat any such scale as a general guide, not an official rating.

Why can OPS be higher than 1.000?

Because slugging percentage is bases per at-bat, not a true percentage, so it can exceed 1.000 on its own. Add an OBP on top and a great season can land above 1.000.

What is the difference between OPS and OPS+?

OPS is the raw sum of OBP and SLG. OPS+ compares that production to the league average and adjusts for the hitter's home ballpark, then scales it so 100 is average. OPS+ is better for comparing players across seasons and parks.

Do sacrifice bunts lower OPS?

No. Sacrifice bunts are not at-bats and are left out of the OBP formula, so they do not affect OBP or SLG. Sacrifice flies are different: they are in the OBP denominator and lower OBP slightly.

Does reaching on an error help OPS?

No. Reaching on an error counts as an at-bat without a hit, so it lowers both OBP and SLG, just like any other out.

About the author

The All American Sports Cafe Editorial Team explains how US sports work for fans everywhere. Every rule, format and formula is checked against the leagues' own rulebooks and official sites, and articles are dated and updated when the rules change.