You Down in OPS?

Rarely is OPS (on-base percentage plus slugging percentage) a fantasy stat. It’s off many people’s radar but it’s widely available and closely mimics a position player’s overall hitting talent. While other stats (e.g. wOBA and wRC+) also give a hitter an overall value, these stats aren’t available at every website. Most sites have their own unique blend but OPS is commonly available. Because of this availability, I’ve been using it as a baseline in recent articles on adjusting projections based on prospect pedigree and when hitters get platooned ($$). Now, it’s time to use OPS to help predict the individual categories.

The process I used for this study was to simply see how much various stats changed when OPS changed a certain amount. For rate stats (e.g. batting average) the conversion is straightforward. For counting categories, I put the stats on a per 600 plate appearance scale. Additionally, I only compared data from 2015 to 2017 during the current “juiced” ball era. I know the process is not close to being 100% precise and that is fine. I’m just trying to create general adjustments and can look to hone the process later. I’m putting in 20% effort to get 80% of the answer.

For the study, I matched hitters who had 100 PA in each season. I grouped OPS changes into 50 point categories to find the adjustments and here is are the resulting graphs.

The rate stats almost line up perfectly while each of the counting stats has an r-spared over .90. From the best fit lines, I collected the average change for 1-point OPS (.001) change. The counting stats are adjusted to 600 PA.

You Aren't a FanGraphs Member
It looks like you aren't yet a FanGraphs Member (or aren't logged in). We aren't mad, just disappointed.
We get it. You want to read this article. But before we let you get back to it, we'd like to point out a few of the good reasons why you should become a Member.
1. Ad Free viewing! We won't bug you with this ad, or any other.
2. Unlimited articles! Non-Members only get to read 10 free articles a month. Members never get cut off.
3. Dark mode and Classic mode!
4. Custom player page dashboards! Choose the player cards you want, in the order you want them.
5. One-click data exports! Export our projections and leaderboards for your personal projects.
6. Remove the photos on the home page! (Honestly, this doesn't sound so great to us, but some people wanted it, and we like to give our Members what they want.)
7. Even more Steamer projections! We have handedness, percentile, and context neutral projections available for Members only.
8. Get FanGraphs Walk-Off, a customized year end review! Find out exactly how you used FanGraphs this year, and how that compares to other Members. Don't be a victim of FOMO.
9. A weekly mailbag column, exclusively for Members.
10. Help support FanGraphs and our entire staff! Our Members provide us with critical resources to improve the site and deliver new features!
We hope you'll consider a Membership today, for yourself or as a gift! And we realize this has been an awfully long sales pitch, so we've also removed all the other ads in this article. We didn't want to overdo it.
Stat Change Based 1 OPS Point Change
Stat Change
AVG 0.00030
OBP 0.00033
SLG 0.00067
Runs 0.09150
HR 0.04530
RBI 0.10450

It’s nice to idiot-check the change with on-base (.00033) and slugging (.00067) adding up to the OPS change. Taking the data one step future, here are the changes in each stat at different OPS intervals. Again, the counting stats are adjusted to 600 PA.

Stat Change Based OPS Change
OPS change AVG OBP SLG Runs HR RBI
.150 .045 .050 .100 13.7 6.8 15.7
.125 .038 .042 .083 11.4 5.7 13.1
.100 .030 .033 .067 9.2 4.5 10.5
.075 .023 .025 .050 6.9 3.4 7.8
.050 .015 .017 .033 4.6 2.3 5.2
.025 .008 .008 .017 2.3 1.1 2.6
.000 .000 .000 .000 0.0 0.0 0.0
-.025 -.007 -.008 -.017 -2.3 -1.1 -2.6
-.050 -.015 -.017 -.033 -4.6 -2.3 -5.2
-.075 -.023 -.025 -.050 -6.9 -3.4 -7.8
-.100 -.030 -.033 -.067 -9.2 -4.5 -10.5
-.125 -.038 -.042 -.083 -11.4 -5.7 -13.1
-.150 -.045 -.050 -.100 -13.7 -6.8 -15.7

Here’s an example of how to use these values with top prospect, Ronald Acuna.

From my prospect work, I found top-ranked prospects exceed their OPS projections by 50 points. For a reference, here is Acuna’s pre-season Steamer projection.

Ronald Acuna’s 2018 Steamer Projection
PA AVG OBP SLG R HR RBI
432.7 .280 .329 .450 48.7 13.8 53.7

The changes to his rate stats are easy to calculate. With the counting stats, I needed to adjust them to the 600 PA rate, add in the extra stats, and then adjust back to the original PA total. From these values, here are his new projections.

Ronald Acuna’s 2018 Adjusted Steamer Projection
PA AVG OBP SLG R HR RBI
432.7 .295 .346 .483 52.0 17.1 57.1

The improvement isn’t jaw dropping but going off historical projections, it’s more likely to be close to his 2018 results.

For future study, I don’t mind one bit finding the adjustment for other common fantasy scoring methods (e.g. CBS points). If you want me to run the adjustment on a common scoring platform, let me know in the comments. I may answer them in the comments or likely write a second article with the answers.





Jeff, one of the authors of the fantasy baseball guide,The Process, writes for RotoGraphs, The Hardball Times, Rotowire, Baseball America, and BaseballHQ. He has been nominated for two SABR Analytics Research Award for Contemporary Analysis and won it in 2013 in tandem with Bill Petti. He has won four FSWA Awards including on for his Mining the News series. He's won Tout Wars three times, LABR twice, and got his first NFBC Main Event win in 2021. Follow him on Twitter @jeffwzimmerman.

11 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
drhoa3Member since 2016
8 years ago

Put me down as a vote for CBS points.

luke.shigeo
8 years ago

My league uses OPS. Finding a decent catcher is murder.

RotoholicMember since 2016
8 years ago

Good stuff. Only issue is if Steamer themselves starts using a variable that accounts for this mystery “prospect pedigree boost” and you’re double-counting it!!

BigTunaMember since 2023
8 years ago

So, as a person whose league uses OPS, are we suggesting simply that being in an OPS league bumps up the offensive numbers across the board but RBI and Runs are the most affected as a player’s OPS rises? Just trying to find the application to player valuation in season. Thanks

scotman144Member since 2016
8 years ago

My favorite league has switched to 6×6 from classic 5×5:

SLG and OBP replace BA
added K/BB and changed SV to SVHLD

The “good fantasy player : meh real life player” sorts nearly vanish and so many more members of the player pool have some value.

Adding K/BB and converting to SVHLD both profoundly impact player valuations: I’d love to read more on your methodology for those cases.

Great stuff as always Jeff!

EDIT: net SB would be cool too!

Gavin
8 years ago
Reply to  scotman144

What do you think about SVHLD? One of my leagues went that way this year and it’s silly.

scotman144Member since 2016
8 years ago
Reply to  Gavin

What’s silly about it? I’d rather play in a league where Archie Bradley is valuable than pulling my hair out over who’s getting the saves in LAA right now for instance. The scarcity created for a stupid stat (saves) drives me nuts. I want to value players closer to their real life contributions. There are way more SV + HLD to go around so you tend to roster talent over compilers of [artificially rare] stats.

Aaron
8 years ago

There’s an article on The Athletic that suggested max exit velo is meaningful beyond 108 MPH — specifically, each MPH above 108 might be worth roughly 8 points in OPS. Love this work, Jeff — we can use your research here to marry the work at The Athletic and get a sense for the fantasy 5×5 impact of those changes. Thanks!

RugbyDMember since 2025
8 years ago

What does this analysis say for valuing players in an auction where Ops is one of the roto stats? If I’m assigning weights to each of the other standard 5 categories through which dollars are allocated in addition to Ops, does this tell us what those should be and is assigning any value to Ops duplicative? SBs are likely their own thing.