Skip to Main Content
Fan Engagement, Fantasy, Industry Analysis Articles, Media & Tech, Team Performance

On the Offensive: Analyzing the Best Situational Hitters Using Count-Adjusted OPS

By: Evan Boyd

In 2018, we made the argument that Mookie Betts not only had the best season in MLB, but the best by a long shot.

One thing that made Mookie stand out above the rest was his ability to hit with two strikes. That year, he slashed .301/.378/.547 in 312 plate appearances ending with two strikes. For perspective, the MLB OPS in those situations in 2018 was .519, and the next best in baseball behind Betts’ .925 OPS was Jose Ramirez at .805. So Betts’ slugging percentage with two strikes was higher than the league-average OPS.

Mookie Betts

Betts would go on to win the AL MVP that season as the way he handled each count made him by far the best player. Stats Perform’s advanced metric, Count-Adjusted OPS, proved just that.

You might have heard broadcasters mention how the player is in a “hitter’s count,” which puts the pitcher in a tougher decision on what to pitch. Either that, or the batter “falls behind” in the count, perhaps leading to the pitcher throwing something out of the strike zone in an effort to get the hitter to chase.

There are pitches that are more likely to fall into the strike zone when the batter is ahead in the count and fall out of the strike zone when they fall behind.

For reference, here were the MLB OPS averages in each individual count in 2019:

2019 MLB Averages0 Balls1 Ball2 Balls3 Balls
0 Strikes.994.9911.0661.784
1 Strike.882.915.9901.423
2 Strikes.393.425.483.815

MLB averages indicate that OPS is way down with two strikes, and way up on 3-1, 2-0 and other hitter’s counts. This is no surprise. A batter is more likely to receive a pitch that he could hit in those counts because the pitcher would like to avoid a walk. Thus, they are more likely to get a hit. A 3-0 count has the highest MLB OPS, but those counts often only lead to a walk.

On the other hand, the league average on two strikes is quite small, as pitchers are looking to strike the batter out while the hitter is just looking to make contact. If a player is good at two-strike hitting, the difference in his OPS from the league average is likely to be much higher than if he’s only productive on 2-0 counts.  

Mike Trout hits a solo home run in Anaheim.

But what happens if a player gets a hit with two strikes, and what happens if he grounds out on a 2-0 pitch? That brings in Count-Adjusted OPS.

Count-Adjusted OPS takes a player’s specific OPS at each individual count (0-1, 2-1, etc.) and divides it by the league OPS at that count. This is adjusted by the number of plate appearances the player had in that specific count. This adjustment is made so that one count does not outweigh others.

The scaling of 100 is implemented for each count to better show how the player does relative to the league average. A completely average Count-Adjusted OPS would be 100, meaning that the player’s OPS is about the same as the MLB average at that specific count. This is inspired by a general equation that takes the relative average for any split. But in this case, it takes multiple splits – one for each count.

For example, if a player had a 2.000 OPS on 3-0 counts but only reached 3-0 10 times, that will not overshadow his numbers on all other counts. All of the counts divided by the league average are then summed up. Count-Adjusted OPS rewards players who are good in pitcher’s counts, and punishes players who struggle in hitter’s counts.

For you math-savvy folks, the formula is below:

The variables i and j represent the number of balls and strikes in the count (i is for strikes and j is for balls).

Let’s take a look at Mike Trout, the 2019 AL MVP and the game’s best player. Trout draws a ton of walks, so he’ll have a lot of plate appearances ending with three balls. But he’s also able to capitalize big earlier in the at-bat.

2019 Trout OPSO Balls1 Ball2 Balls3 Balls
0 Strikes1.5001.3581.3421.000
1 Strike.885.9351.7042.190
2 Strikes .305.277.8881.122

*Trout did not have an official at-bat with a 3-0 count, so his OPS on 3-0 pitches is the same as his on-base percentage.

Here are the number of plate appearances Trout had in each count:

2019 Trout PA0 Balls1 Ball 2 Balls3 Balls
0 Strikes44392028
1 Strike44442748
2 Strikes276589125

Notice that Trout, surprisingly, was below league average on 0-2 and 1-2 counts. However, he only had 27 plate appearances that ended on 0-2, so that will not be weighed on him as much. However, having 65 plate appearances on 1-2 counts and posting a .277 OPS is not strong. Yes, believe it or not, Trout was actually below league average on a specific count.

Where he really shines is on 2-2 counts. The pitcher is more likely to win battles on 2-2, as the league-average OPS is .483. His .888 OPS is almost double that. Count-Adjusted OPS will reward Trout for hitting well in that spot, especially when it happened over 89 plate appearances. His 1.704 OPS on 2-1 counts is also unbelievable but came with fewer chances (27 plate appearances).

Using the formula above, we can calculate his Count-Adjusted OPS at each pitch (each number is multiplied by 100 just for appearance):

Trout's Count-Adj. OPS0 Balls1 Ball2 Balls3 Balls
0 Strikes11.078.914.22.62
1 Strike7.367.497.7512.31
2 Strikes3.497.0627.2728.68

The largest discrepancies for Trout came on 2-2 and 3-2. Trout was able to work so many counts last season, forcing the pitcher to throw strikes or make mistakes. He also had more plate appearances in these counts than any other. Not only is the discrepancy between his OPS and the league average is large, but he had more than 200 plate appearances in those two situations combined.

Adding it all up, and Trout’s Count-Adjusted OPS is 128.2. That means that he was about 28.2% better than the league average at hitting the ball based on the count he was facing in 2019.

Trout’s Count-Adjusted OPS, however, was not the highest last year. That belonged to Nelson Cruz, who was about 37.7% better than league average.

Cruz had a tremendous season, hitting 41 home runs – 18 of which came with two strikes. He even had a 1.000 OPS on 36 plate appearances ending on 0-2. Christian Yelich, whose 1.100 OPS led all of MLB, fared well in Count-Adjusted OPS because he attacked early in counts.

He posted a 1.109 OPS on the first pitch, a 1.682 OPS in 48 plate appearances on 1-0, and a crazy 1.710 OPS in 37 plate appearances ending on 0-1. And how about Gio Urshela? He put the ball in play 64 times on 0-2 counts, posting a .703 OPS – over 300 points higher than the league average.

Trout likely doesn’t top this list because he was pitched around so many times. Pitchers that fall behind on Trout often don’t want to give in, which explains why he only had 20 plate appearances that ended on 2-0 and 76 on 3-0 and 3-1 combined.

However, if you look at this across seasons, Trout stands on top.

And for all of you wondering, here were the lowest numbers in 2019:

Jarrod Dyson had 62 plate appearances that ended on 1-2 counts in 2019 – his most of any specific pitch count – and posted a .387 OPS. He only got a hold of six balls on 2-0 counts, too. Of all players with at least 400 plate appearances last season, his .633 OPS was third lowest. Khris Davis’ power declined sharply last season – he had a .357 OPS with two strikes.

Since pitch counts have been tracked in 1988, the highest Count-Adjusted OPS in a single season was (no surprise) Barry Bonds in 2001 when he posted a 159.1. That was the year Bonds hit a record 73 home runs, posted a .515 OBP and had an all-time best .863 slugging percentage.

Barry Bonds celebrates his 756th career home run.

Count-Adjusted OPS is by no means a perfect statistic that should replace every other metric as the standard. The weighted correlation between Count-Adjusted OPS in 2019 and OPS in 2019 is .92, but the correlation between Count-Adjusted OPS in 2018 and OPS in 2019 is .49. This is lower than comparing OPS across seasons, too (the correlation between OPS in 2018 and 2019 is .57).

What it does do, however, is give an interesting perspective on how batters attack the situations that they are in during each plate appearance. If a player is a great two-strike hitter, Count-Adjusted OPS rewards that while regular OPS does not.

The same can be said for hitters who attack early in counts. A player could have a 1.000 OPS on the first pitch he sees in an at-bat, but when the league average on the first pitch is .994, it is not as impressive as, say, a .800 OPS on 2-2 (similar to what Trout has).

Not all counts are the same. If a player is a tremendous two-strike hitter, he can make a huge difference versus someone who is not.