If you didn’t read my post on slash lines, I highly suggest you do so that you have a general idea of what concepts we’ll be referencing a lot in this one.
OPS has taken a major foothold in Major League Baseball recently. In fact, when I’ve gone to watch the Mets play at Citi Field, they are now showing OPS instead of batting average for the hitters in the lineup. In my opinion, a step in the right direction.
This post I’ll discuss the concepts of OPS and OPS+, so for the sabermetric vets out there, feel free to skip this one or refresh yourself with relative simplicity!
OPS
OPS stands for On-Base Plus Slugging, which takes the wind out of the sails for a grand formula reveal:
OPS = ((Hits + Walks + Hit By Pitches) / (At bats + Walks + Hit By Pitches + Sacrifice Flies)) + ((1B + 2(2B) + 3(3B) + 4(HR)) / AB), which is to say:
OPS = On-Base Percentage (OBP) + Slugging Percentage (SLG)
If I were a decent teacher, you would already know that OBP simply refers to the rate that a hitter gets to at least first base, whether that be reaching by a hit, intentional or non-intentional walk or hit by pitch. On the other hand, SLG is a calculation of the total bases a hitter records over that hitter’s total number of at-bats. (Note that OBP and SLG have different denominators: OBP uses plate appearances, while SLG uses at-bats, which don’t include plate appearances that end in walks. So it’s slightly confusing and adds to the questionable construction of the stat, but it works and it’s more than popular in today’s baseball world.)
So when we add OBP to SLG to create OPS, what do we learn about a hitter? Firstly, we get a single number that is far more telling than batting average. OPS tells us how well a hitter gets on base and how well he hits for power. Let’s take a look at a blind example from the current 2025 MLB season:
→ Miami Marlins’ infielder Xavier Edwards is batting .307 with a .749 OPS thanks to a .366 OBP and a .384 SLG. He leads the entire MLB in singles, but has only hit 2 home runs this season.
→ Phillies’ DH Kyle Schwarber is hitting just .249, but he holds a .948 OPS. He’s getting on base at a good rate of .371, but he’s slugging .577 due in part to bombing 42 HR.
I don’t think there’s a debate to be had as to who’s the more valuable player for their club–that’s why Schwarber’s in the MVP discussion and Edwards is not. A .300+ hitter isn’t nearly as sacred as he once was, and it means absolutely nothing without production in the form of runs created for their squad.
For reference, Baseball-Reference notes that league-average OPS is generally between .700 and .750, with anything over .900 being elite. It can be found on virtually every baseball site these days, and even though the math doesn’t exactly math (I’ll talk a bit more on this), it’s become a very reliable snapshot of a hitter’s production. I guess I should say it’s a very reliable number until you factor in the ballpark the hitter plays in.
OPS+
That brings us to OPS+, which takes a hitter’s OPS and normalizes it to a league average scale. 100 OPS+ indicates the player’s OPS is exactly league-average when it is taken into context of the park the hitter plays in and the overall league context. A 90 OPS+ signals a player’s OPS is 10% below league-average, while a 110 OPS+ tells us a player’s OPS is 10% above league-average. OPS+ is heavily utilized on Baseball-Reference’s site (FanGraphs uses something called wRC+, which I’ll explain in a later post, but many see it as more descriptive of a player’s production.) Baseball-Reference lists OPS+’s exact formula as follows:
“The formula for is OPS+ = 100 × ((OBP÷ lgOBP)+(SLG÷ lgSLG) – 1), with lgOBP and lgSLG representing the league average for that statistic in that year, and OBP and SLG adjusted to BPF.”
What’s better about OPS+ than OPS is that it tells us how good a player has been relative to the league, adding much-needed context to the description of a player. For example, a slugger for the Colorado Rockies, where offensive statistics can be inflated at times, will be properly adjusted relative to league average based on their park and league factors so that they are not overvalued. It’s really a great way to compare players across not only the league and the ballaparks they play in, but across eras!
The Math Issue of OPS
I mentioned it briefly earlier, but there’s no statistic in baseball that doesn’t have issues, big or small.
If you remember from the slash line post, OBP and SLG’s formulas have different denominators. OBP uses plate appearances, while SLG excludes walks from its equation and uses at-bats as the denominator. So, right away we have a problem: SLG doesn’t take into account every time a hitter goes to the plate, just the results of batted balls.
Second, if you didn’t know already, OBP’s max is obviously 1.000, since no one can get on base at a rate greater than 100%. However, SLG’s max is 4.000. This would occur when a hitter with one career at-bat hits a home run in that at-bat (HR = 4) → 4 / 1 at-bat = 4.000 SLG.
Because of this, SLG is generally higher a higher number than OBP. This unfairly weighs power as more important than getting on base, when in fact, according to The Book (which you should read if this stuff interests you) and one of the brilliant minds out there Tom Tango, OBP is worth approximately 1.7x SLG.
What to take away from all this
OPS is a great number to reference when evaluating a hitter. It gives you a direct look at how productive a hitter has been when it comes to getting on base and slugging. Be sure to look a bit further at the player’s OBP and SLG specifically to better understand if they are excelling in a certain area. Use OPS+ to compare any two players you wish to compare, whether across the league or across baseball history.
Leave any questions below and I’ll do my best to answer them as well as I can!
