OPS and OPS+ Explained: What They Measure and What They Miss
How OPS adds on-base and slugging percentage, how OPS+ adjusts it for ballpark and league so that 100 is average, with worked examples and an honest list of what neither number captures.
OPS is the simplest useful hitting statistic in baseball: take a player's on-base percentage, add his slugging percentage, and you have a single figure that tracks run production better than batting average does. A hitter at .700 is roughly average in most modern seasons, one at .800 is good, one at .900 is a star, and one above 1.000 is in a class of his own. Babe Ruth's career figure in the historical record is 1.164, the highest among players with at least 3,000 at-bats.
OPS+ takes the same idea and fixes its biggest flaw. A .800 OPS means something very different in a pitcher's park in a low-scoring year than in a hitter's park in a high-scoring one, so OPS+ compares each player with the league average, adjusts for the park his team plays in, and sets the average at 100. An OPS+ of 130 is far better than average, and 70 is far worse, whatever the era. This article shows how to calculate both, works through examples, and then lays out what each number leaves out, because the most useful thing you can know about a statistic is where it stops being reliable.
How OPS is calculated
OPS stands for on-base plus slugging. It has two ingredients, and both are standard.
On-base percentage measures how often a hitter reaches base: hits, walks and hit-by-pitches divided by plate appearances that count in the formula.
OBP = (hits + walks + hit-by-pitch) / (at-bats + walks + hit-by-pitch + sacrifice flies)
Slugging percentage measures power: total bases divided by at-bats, where a single is one base, a double two, a triple three and a home run four.
SLG = total bases / at-bats
OPS is the sum: OPS = OBP + SLG. The two are written as decimals, so a hitter with a .388 OBP and a .476 SLG has a .864 OPS. For the deeper story of how the components work, see the article on batting average, on-base percentage and slugging.
Here is a full worked example with an invented hitter, so you can follow the arithmetic. He has 500 at-bats, 70 walks, 5 hit-by-pitches and 5 sacrifice flies. His 150 hits include 100 singles, 30 doubles, 2 triples and 18 home runs.
- Batting average: 150 / 500 = .300
- Total bases: 100 + (30 x 2) + (2 x 3) + (18 x 4) = 100 + 60 + 6 + 72 = 238
- Slugging: 238 / 500 = .476
- On-base: (150 + 70 + 5) / (500 + 70 + 5 + 5) = 225 / 580 = .388
- OPS: .388 + .476 = .864
A .864 OPS is a very good season in nearly any era. The ingredient most beginners overlook is the walk: our hitter's .300 average becomes a .388 on-base percentage because 75 of his plate appearances ended in a walk or hit-by-pitch, none of which count as at-bats and none of which a batting average sees.
What the numbers look like for real players
Career OPS figures from the historical record show the range from the immortal to the merely excellent.
| Player | Average | On-base | Slugging | OPS |
|---|---|---|---|---|
| Babe Ruth | .342 | .474 | .690 | 1.164 |
| Barry Bonds | .298 | .444 | .607 | 1.051 |
| Ichiro Suzuki (major leagues) | .311 | .355 | .402 | .757 |
The top of the career list, for players with at least 3,000 at-bats, runs Ruth at 1.164, Ted Williams at 1.116, Lou Gehrig at 1.080, Bonds at 1.051, Jimmie Foxx at 1.038, Turkey Stearnes at 1.033, Aaron Judge at 1.028 and Mule Suttles at 1.025. Two of those names are Negro leagues players. The historical record through 2025 includes Negro leagues statistics for 1920 to 1948 as major-league data, so they appear in the list, but those records are partial and the samples smaller, so read them as strong evidence, not as final.
The Ichiro line is a lesson in what OPS can hide. He had 3,089 hits and a .311 average in the majors, and his OPS of .757 is respectable but not special, because most of his hits were singles and he walked relatively rarely. His value also came from outfield defense and 509 stolen bases, neither of which an OPS counts. A hitter's OPS is a verdict on his bat, not on his career.
Notice also the gap between average and on-base in each line. Ruth's on-base percentage is 132 points above his average, and Bonds's is 146 points above his, while Ichiro's is 44 points above. That gap is the walk, and it is a large part of why Ruth and Bonds sit where they do.
Why a simple sum works so well
On paper, adding two different percentages should not make sense. On-base percentage and slugging percentage have different denominators, so the sum does not describe anything like a rate per plate appearance. Yet OPS tracks team runs scored remarkably well over a season, which is the reason it spread. On-base percentage tells you how often an offense avoids making outs, and slugging tells you how many bases it gets when it does not, and runs come from exactly those two things.
The statistic took hold in the 1980s, helped by The Hidden Game of Baseball, a book by John Thorn and Pete Palmer that argued for measuring hitters by their contribution to scoring, not by batting average. OPS was a way for anyone with a box score to do that. It requires no tables of run values and no software. You can compute it on the back of a scorecard, and the stat calculator on this site will do it for any line you enter.
What OPS misses
OPS has real limits, and a careful reader should keep them in mind.
- It weights on-base and slugging equally, which is not quite right. A point of on-base percentage is worth more than a point of slugging in producing runs, by most estimates. A hitter who gets on base is helping the offense more than the raw sum suggests, so OPS slightly undervalues the walk-drawer and slightly overvalues the free swinger with power.
- It ignores context. The statistic treats a home run in a 12-1 game the same as one in a 2-1 game, and it does not know the park, the pitcher, the weather or the year.
- It is not a measure of the whole player. Defense, baserunning and position are absent. A shortstop with a .720 OPS and excellent defense may be worth more than a first baseman at .800.
- It counts a hit twice. A single raises on-base percentage and slugging together, while a walk raises only on-base percentage. The sum does not reflect the true run value of each event, and it is only an approximation.
- Small samples mislead. An OPS over 20 games is mostly noise. Over a full season it is meaningful, and over a career it is reliable.
- Eras differ. A .800 OPS in a year when the league as a whole hit .650 is far more impressive than a .800 in a year when the league hit .780. OPS alone cannot say which year you are in.
The last two points lead directly to OPS+.
How OPS+ is calculated
OPS+, sometimes called adjusted OPS, answers the era problem by comparing a hitter with his league. The common formula is:
OPS+ = 100 x (OBP / league OBP + SLG / league SLG - 1)
The league figures are adjusted for the ballpark or parks in which the player's team plays. The result is scaled so that a player exactly at the league average gets 100. A score of 120 means the hitter was about 20 percent better than average on this measure, and 80 means about 20 percent worse. The scale is not exactly a measure of runs, so treat the percentages as a guide.
To see it work, suppose a league has an on-base percentage of .320 and a slugging percentage of .410, and ignore the park for now. These figures are illustrative, not from a particular year.
| Hitter | OBP | SLG | OPS | OPS+ |
|---|---|---|---|---|
| A | .400 | .550 | .950 | 159 |
| B | .330 | .400 | .730 | 101 |
| C | .300 | .450 | .750 | 104 |
| D | .380 | .370 | .750 | 109 |
Hitter A: .400 / .320 = 1.250, and .550 / .410 = 1.341, so 1.250 + 1.341 - 1 = 1.591, which is 159. Hitter B comes out at 101, almost exactly average. Hitters C and D are the interesting pair. They have the same .750 OPS, but D reaches base far more often and C hits for more power. OPS+ rates D higher, 109 against 104, because it gives a point of on-base percentage more weight than a point of slugging. The reason is built into the arithmetic: the league on-base percentage is smaller than the league slugging percentage, so each point of on-base is a larger share of the average.
That is a small but useful correction of the flat OPS sum. It moves in the right direction, though it does not go as far as the best run-value measures do.
The two adjustments: era and park
An OPS+ calculation does two jobs at once, and each deserves a worked example.
Era. Take a hitter with a .360 on-base percentage and a .470 slugging percentage, an OPS of .830. In a low-scoring league where the averages are .300 and .380, the formula gives 144. In a high-scoring league where the averages are .340 and .440, the same raw line gives only 113. Same hitter, same numbers, very different value, and OPS+ makes the difference visible. This is why you can compare a player from the dead-ball years with one from the late 1990s and mean something by it.
Park. The park adjustment works the same way, but the baseline is what an average hitter would do in the player's home ballpark. Some parks inflate offense and some suppress it. A hitter whose club plays at high altitude, where the ball travels farther, gets his raw numbers reduced, and one whose club plays in a large, cool park gets them raised. The adjustment is based on how many runs are scored in that park, home and away, over several seasons, and it is partial: it assumes half of the player's games are at home. The Angel Stadium guide shows how one park's quirks are described, and every ballpark guide on the site has similar notes.
Park factors are estimates, not facts. They depend on how many seasons are used, they change when a park is altered, and they treat all hitters the same although some hitters, such as pull-hitters in a short porch park, benefit more than others. So treat a park-adjusted number as better than an unadjusted one but not as exact.
Reading an OPS+ number
The scale is easy to learn.
- 100 is the league average for hitters, by definition.
- 110 to 120 is a solid regular, above average without being a star.
- 130 to 140 is an excellent hitter, the kind of player at the top of an all-star list.
- 150 and above is elite, MVP-contender territory in a given season.
- Below 90 is a weak bat, usually kept in the lineup for defense or position.
These bands are rules of thumb, not official categories. They also behave differently for a single season, when luck plays a role, and for a career, when luck washes out. A career OPS+ in the 130s is a strong Hall of Fame argument. One season at 150 is great, and one at 150 followed by 105 is closer to ordinary.
How OPS+ compares with the newer measures
OPS and OPS+ are a first step, and analysts have built better tools. wOBA weights each way of reaching base by its actual value in runs, so a double counts for more than a single by the correct amount, and a walk is credited at its true worth, not folded into a percentage. wRC+ takes wOBA and puts it on the same 100-is-average scale as OPS+, adjusted for park and league, with the added feature that it is built directly on runs. For a serious comparison between two hitters, wRC+ is the more precise number.
Why, then, does OPS+ still matter? Because it needs only a box score and two ratios, because it can be computed for most seasons back to the 1870s, and because it correlates strongly with the newer measures. For a historical question such as how good a hitter was in 1927, OPS+ is often the best available number, and the historical record carries everything you need to compute the raw version. Differences between sites exist: some compute league averages slightly differently, and rounding means two sources can disagree by a point. A one-point gap is noise.
A related statistic is ERA+, which does the same job for pitchers: it compares a pitcher's earned run average with the league's, adjusts for park, and sets 100 as average, with higher numbers better.
A short checklist for using OPS and OPS+
- Use OPS for a quick read on a hitter within a single season and league.
- Use OPS+ when you compare players from different years, leagues or parks.
- Look at the components. A .800 OPS built on a .380 on-base percentage and a .420 slugging percentage is a different player from one at .320 and .480.
- Pair the number with defense and position before you judge a player's total value.
- Ignore small samples. A hot month proves nothing.
- For a final comparison between two close players, check wRC+ or a similar run-based measure.
Common questions
What is a good OPS? In most modern seasons, around .700 is average, .800 is good and .900 is excellent. Check the league's own average for the year in question.
Is OPS+ the same as wRC+? No. Both use 100 as average and adjust for park and league, but wRC+ is built on run values and is considered more accurate. OPS+ is simpler.
Why do two sites show different OPS+ figures? Sites compute the league average and the park factor slightly differently, and they round. A gap of a point or two is noise. A gap of ten points means one of them is using a different method or a different set of players.
Does OPS+ include defense? No. It measures only batting.
Who has the highest career OPS? In the historical record, among players with at least 3,000 at-bats, Babe Ruth, at 1.164, followed by Ted Williams at 1.116.
Where to go next
If you want to build the numbers yourself, the stat calculator computes on-base percentage, slugging and OPS from raw totals, and the leaders pages rank hitters by the standard categories. To learn how to find the raw components in a game, read how to read a box score, and for the luck side of hitting, see the article on BABIP. The stats and analytics topic page collects more reading.