This is the second article of my series discussing methods to evaluate hitters for fantasy baseball using Sabermetrics. Part one examined OPS and why it is a flawed statistical measure for individual hitters. In this article, I will explain wOBA (weighted On-Base Average) and explore its usefulness. Part three will introduce xwOBA (expected weighted On-Base Average) and use it to contrast it with wOBA to show how hitters have over/underperformed and what that might mean for fantasy baseball.
Please note that I have not invented or created any of the methodologies I will present and am merely trying to coalesce information already available in an easily digestible format that pertains to fantasy baseball.
How Did We Get Here
In the first part of this series, I presented OPS (On-base Plus Slugging), a commonly used statistical measure of a hitter’s performance. OPS has been around for decades and has become easy for most people to identify with. It is a decent measure (on the surface) that accounts for both a hitter’s ability to reach base and the quality of hits the batter produces. OPS is better than Batting Average (AVG).
However, I believe I made a decent case that OPS is a fundamentally flawed analytic for determining a hitter’s actual worth because of its derivation’s mathematical faults. OPS is derived from adding On-Base Percentage (OBP) and Slugging Percentage (SLG) together, and they use different metrics and denominators to arrive at their numbers. Additionally, by adding the two together, one assumes that they are of equal value, and statistically speaking, that is far from the truth, as it has been shown that OBP is worth up to 2X its value compared to SLG.
In the end, OPS works for the casual fan but will mislead the fantasy baseball general manager trying to determine who the better hitter is because it is imprecise. The answer to the OPS problem for a lot of analysts is wOBA.
wOBA: What is it?
Renowned Statistician Tom Tango first introduced wOBA (with his co-authors) in his book, The Book: Playing the Percentages in 2006, to evaluate the production of hitters on a scale that resembles OBP. Tango created wOBA to show how a batter’s performance at the plate translated into scoring production using data related to when the hitter had a bat in his hands. An essential item to note is that wOBA purposefully analyses the Plate Appearance (PA) of a hitter and ignores the game situation at hand or what that player does on the bases. MLB sums up wOBA as:
“wOBA is a version of an on-base percentage that accounts for how a player reached base — instead of simply considering whether a player reached base. The value for each method of reaching base is determined by how much that event is worth in relation to projected runs scored (example: a double is worth more than a single).”
The equation to derive wOBA is a bit complicated and changes from year to year because it involves linear weights assigned to events in the batter’s box specific to the analysis year. Here is the formula for the 2019 season via Fangraphs (the last full season of play available):
For those unfamiliar with the terms:
NIBB = Non-intentional bases on balls, HBP = Hit by pitch, 1B = Single, 2B = Double, 3B = Triple, HR = Home run / AB = at bat, BB = Base on balls, IBB = Intentional base on balls, SF = sacrifice flies, HBP = Hit by pitch
As noted before, wOBA is intended to look like OBP, and according to Fangraphs, here is how it ought to be evaluated:
wOBA Rule of Thumb | |
---|---|
Rating | wOBA |
Excellent | .400 |
Great | .370 |
Above-Average | .340 |
Average | .320 |
Below-Average | .310 |
Poor | .300 |
Awful | .290 |
For additional context, the league average for wOBA in the past four years has been .320 (2020), .320 (2019), .315 (2018), and .321 (2017).
Examining wOBA for 2020
First, let’s take a look at the leaders for 2020 based on 180 PAs (which was qualifying for last year’s shortened season), courtesy of Baseball Savant :
Player | Year | PA | AVG | SLG | OBP | OPS | wOBA |
---|---|---|---|---|---|---|---|
Juan Soto | 2020 | 196 | 0.351 | 0.695 | 0.490 | 1.185 | 0.470 |
Freddie Freeman | 2020 | 262 | 0.341 | 0.640 | 0.462 | 1.102 | 0.449 |
Marcell Ozuna | 2020 | 267 | 0.338 | 0.636 | 0.431 | 1.067 | 0.437 |
DJ LeMahieu | 2020 | 216 | 0.364 | 0.590 | 0.421 | 1.011 | 0.422 |
Jose Ramirez | 2020 | 254 | 0.292 | 0.607 | 0.386 | 0.993 | 0.408 |
Ronald Acuna Jr. | 2020 | 202 | 0.250 | 0.581 | 0.406 | 0.987 | 0.407 |
Trea Turner | 2020 | 259 | 0.335 | 0.588 | 0.394 | 0.982 | 0.406 |
Dominic Smith | 2020 | 199 | 0.316 | 0.616 | 0.377 | 0.993 | 0.405 |
Nelson Cruz | 2020 | 214 | 0.303 | 0.595 | 0.397 | 0.992 | 0.405 |
Jose Abreu | 2020 | 262 | 0.317 | 0.617 | 0.370 | 0.987 | 0.404 |
Mike Yastrzemski | 2020 | 225 | 0.297 | 0.568 | 0.400 | 0.968 | 0.400 |
Mike Trout | 2020 | 241 | 0.281 | 0.603 | 0.390 | 0.993 | 0.400 |
Michael Conforto | 2020 | 233 | 0.322 | 0.515 | 0.412 | 0.927 | 0.395 |
Bryce Harper | 2020 | 244 | 0.268 | 0.542 | 0.418 | 0.960 | 0.393 |
Wil Myers | 2020 | 218 | 0.288 | 0.606 | 0.353 | 0.959 | 0.393 |
Anthony Rendon | 2020 | 232 | 0.286 | 0.497 | 0.418 | 0.915 | 0.389 |
Corey Seager | 2020 | 232 | 0.307 | 0.585 | 0.358 | 0.943 | 0.387 |
Luke Voit | 2020 | 234 | 0.277 | 0.610 | 0.338 | 0.948 | 0.387 |
Fernando Tatis Jr. | 2020 | 257 | 0.277 | 0.571 | 0.366 | 0.937 | 0.386 |
Manny Machado | 2020 | 254 | 0.304 | 0.580 | 0.370 | 0.950 | 0.385 |
Mookie Betts | 2020 | 246 | 0.292 | 0.562 | 0.366 | 0.927 | 0.383 |
Brandon Nimmo | 2020 | 225 | 0.280 | 0.484 | 0.404 | 0.888 | 0.381 |
Paul Goldschmidt | 2020 | 231 | 0.304 | 0.466 | 0.416 | 0.882 | 0.381 |
Brandon Lowe | 2020 | 224 | 0.269 | 0.554 | 0.362 | 0.916 | 0.379 |
Teoscar Hernandez | 2020 | 207 | 0.289 | 0.579 | 0.338 | 0.917 | 0.378 |
Before we go any further, I would like to clarify how I interpret wOBA for fantasy baseball. I primarily use wOBA (and xwOBA – explained in my next article) when evaluating hitters for Total Points leagues or general analysis of hitters. wOBA can be somewhat misleading in traditional 5X5 Roto or Category Head-to-Head leagues. In Roto and Cats leagues, counting stats are of the utmost importance. If, as a fantasy GM, you are split between two players in those two other formats, then wOBA is an excellent deciding factor.
A look at the Top 25 performers according to wOBA in 2020 will reveal quite a few prominent names and some surprises. I am confident that most people would find Dominic Smith (tied with Nelson Cruz) at number eight unexpected. Further down the list, you will see Mike Yastrzemski and Mike Trout tied with wOBAs of .400. Will Myers in the Top 15 might catch some off guard, especially that he was tied with Bryce Harper at .393. Luke Voit outperforming Fernando Tatis Jr., Manny Machado, Mookie Betts, and Paul Goldschmidt is also a bit eye-opening.
Feel free to run these stats on Baseball Savant (link above) and see what else catches your eye.
Now let’s look at those that were the worst qualifying hitters (180 PAs) last year according to wOBA:
Player | Year | PA | AVG | SLG | OBP | OPS | wOBA |
---|---|---|---|---|---|---|---|
Nicky Lopez | 2020 | 192 | 0.201 | 0.266 | 0.281 | 0.548 | 0.250 |
Javier Baez | 2020 | 235 | 0.203 | 0.360 | 0.238 | 0.599 | 0.252 |
Eduardo Escobar | 2020 | 222 | 0.212 | 0.335 | 0.270 | 0.605 | 0.253 |
Evan White | 2020 | 202 | 0.176 | 0.346 | 0.252 | 0.599 | 0.257 |
Erik Gonzalez | 2020 | 193 | 0.227 | 0.359 | 0.254 | 0.613 | 0.258 |
Jonathan Villar | 2020 | 207 | 0.232 | 0.292 | 0.300 | 0.591 | 0.262 |
Marwin Gonzalez | 2020 | 199 | 0.211 | 0.320 | 0.286 | 0.606 | 0.265 |
Victor Robles | 2020 | 189 | 0.220 | 0.315 | 0.291 | 0.606 | 0.268 |
Bryan Reynolds | 2020 | 208 | 0.189 | 0.357 | 0.274 | 0.631 | 0.273 |
Jose Altuve | 2020 | 210 | 0.219 | 0.344 | 0.286 | 0.629 | 0.274 |
Yuli Gurriel | 2020 | 230 | 0.232 | 0.384 | 0.274 | 0.658 | 0.276 |
Josh Bell | 2020 | 223 | 0.226 | 0.364 | 0.305 | 0.669 | 0.282 |
Jorge Polanco | 2020 | 226 | 0.258 | 0.354 | 0.301 | 0.655 | 0.284 |
J.D. Martinez | 2020 | 237 | 0.213 | 0.389 | 0.291 | 0.680 | 0.285 |
Adam Frazier | 2020 | 230 | 0.230 | 0.364 | 0.296 | 0.659 | 0.286 |
Avisail Garcia | 2020 | 207 | 0.238 | 0.326 | 0.333 | 0.659 | 0.291 |
Joey Gallo | 2020 | 226 | 0.181 | 0.378 | 0.301 | 0.679 | 0.292 |
Nick Solak | 2020 | 233 | 0.268 | 0.344 | 0.326 | 0.671 | 0.293 |
Marcus Semien | 2020 | 236 | 0.223 | 0.374 | 0.305 | 0.679 | 0.294 |
Tommy Edman | 2020 | 227 | 0.250 | 0.368 | 0.317 | 0.685 | 0.297 |
Hanser Alberto | 2020 | 231 | 0.283 | 0.393 | 0.303 | 0.696 | 0.297 |
J.P. Crawford | 2020 | 232 | 0.255 | 0.338 | 0.336 | 0.674 | 0.298 |
Rio Ruiz | 2020 | 204 | 0.222 | 0.427 | 0.284 | 0.711 | 0.298 |
Keston Hiura | 2020 | 246 | 0.212 | 0.410 | 0.297 | 0.707 | 0.299 |
Josh Reddick | 2020 | 210 | 0.245 | 0.378 | 0.314 | 0.692 | 0.299 |
Based on Fangraphs Rule of Thumb graphic above, the Bottom 25 hitters all fell into the Awful category. If you look at the names, most will come as no surprise.
But what about players that fail to qualify with the regulatory 3.1 PA per game? Some players were unable to be eligible because of injuries or were on the cusp of winning/losing a regular job in a lineup. These lists also provide some exciting results for players.
Top 25 in wOBA with PAs between 100-179 for 2020:
Player | Year | PA | AVG | SLG | OBP | OPS | wOBA |
---|---|---|---|---|---|---|---|
Brandon Belt | 2020 | 179 | 0.309 | 0.591 | 0.425 | 1.015 | 0.420 |
Will Smith | 2020 | 137 | 0.289 | 0.579 | 0.401 | 0.980 | 0.404 |
Salvador Perez | 2020 | 156 | 0.333 | 0.633 | 0.353 | 0.986 | 0.403 |
Jose Iglesias | 2020 | 150 | 0.373 | 0.556 | 0.400 | 0.956 | 0.401 |
Alex Dickerson | 2020 | 170 | 0.298 | 0.576 | 0.371 | 0.947 | 0.390 |
Austin Slater | 2020 | 104 | 0.282 | 0.506 | 0.404 | 0.910 | 0.389 |
Willi Castro | 2020 | 140 | 0.349 | 0.550 | 0.379 | 0.929 | 0.387 |
Jared Walsh | 2020 | 108 | 0.293 | 0.646 | 0.324 | 0.971 | 0.386 |
Clint Frazier | 2020 | 160 | 0.267 | 0.511 | 0.394 | 0.905 | 0.382 |
Miguel Rojas | 2020 | 143 | 0.304 | 0.496 | 0.392 | 0.888 | 0.373 |
James McCann | 2020 | 111 | 0.289 | 0.536 | 0.360 | 0.896 | 0.372 |
Ryan Mountcastle | 2020 | 140 | 0.333 | 0.492 | 0.386 | 0.878 | 0.371 |
Justin Turner | 2020 | 175 | 0.307 | 0.460 | 0.400 | 0.860 | 0.370 |
Darin Ruf | 2020 | 100 | 0.276 | 0.517 | 0.370 | 0.887 | 0.369 |
Aaron Judge | 2020 | 114 | 0.257 | 0.554 | 0.333 | 0.888 | 0.368 |
Mitch Moreland | 2020 | 152 | 0.265 | 0.551 | 0.342 | 0.894 | 0.366 |
Max Stassi | 2020 | 105 | 0.278 | 0.533 | 0.352 | 0.886 | 0.364 |
Rowdy Tellez | 2020 | 127 | 0.283 | 0.540 | 0.346 | 0.886 | 0.363 |
Dylan Moore | 2020 | 159 | 0.255 | 0.496 | 0.358 | 0.855 | 0.362 |
Yandy Diaz | 2020 | 138 | 0.307 | 0.386 | 0.428 | 0.814 | 0.362 |
Gio Urshela | 2020 | 174 | 0.298 | 0.490 | 0.368 | 0.858 | 0.359 |
Garrett Cooper | 2020 | 133 | 0.283 | 0.500 | 0.353 | 0.853 | 0.359 |
Anthony Santander | 2020 | 165 | 0.261 | 0.575 | 0.315 | 0.890 | 0.358 |
Ty France | 2020 | 155 | 0.305 | 0.468 | 0.368 | 0.836 | 0.356 |
Josh Donaldson | 2020 | 102 | 0.222 | 0.469 | 0.373 | 0.842 | 0.356 |
Bottom 25 in wOBA with PAs between 100-179 for 2020:
Player | Year | PA | AVG | SLG | OBP | OPS | wOBA |
---|---|---|---|---|---|---|---|
Jo Adell | 2020 | 132 | 0.161 | 0.266 | 0.212 | 0.478 | 0.209 |
Willie Calhoun | 2020 | 108 | 0.190 | 0.260 | 0.231 | 0.491 | 0.214 |
Scott Kingery | 2020 | 124 | 0.159 | 0.283 | 0.226 | 0.509 | 0.224 |
Luis Rengifo | 2020 | 106 | 0.156 | 0.200 | 0.264 | 0.464 | 0.224 |
Roberto Perez | 2020 | 110 | 0.165 | 0.216 | 0.264 | 0.480 | 0.225 |
Gregory Polanco | 2020 | 174 | 0.153 | 0.325 | 0.213 | 0.537 | 0.228 |
Ender Inciarte | 2020 | 131 | 0.190 | 0.250 | 0.260 | 0.510 | 0.230 |
Cole Tucker | 2020 | 116 | 0.220 | 0.275 | 0.250 | 0.525 | 0.230 |
Shed Long Jr. | 2020 | 128 | 0.171 | 0.291 | 0.242 | 0.533 | 0.234 |
Tony Wolters | 2020 | 109 | 0.230 | 0.270 | 0.275 | 0.545 | 0.245 |
Kevin Newman | 2020 | 172 | 0.224 | 0.276 | 0.279 | 0.555 | 0.247 |
Austin Romine | 2020 | 135 | 0.238 | 0.323 | 0.259 | 0.582 | 0.249 |
Brock Holt | 2020 | 106 | 0.211 | 0.274 | 0.283 | 0.557 | 0.249 |
Eric Sogard | 2020 | 128 | 0.209 | 0.278 | 0.281 | 0.560 | 0.250 |
Roman Quinn | 2020 | 116 | 0.213 | 0.315 | 0.259 | 0.573 | 0.250 |
Elvis Andrus | 2020 | 111 | 0.194 | 0.330 | 0.252 | 0.582 | 0.251 |
Isaac Paredes | 2020 | 108 | 0.220 | 0.290 | 0.278 | 0.568 | 0.251 |
Ehire Adrianza | 2020 | 101 | 0.191 | 0.270 | 0.287 | 0.557 | 0.253 |
Rougned Odor | 2020 | 148 | 0.167 | 0.413 | 0.209 | 0.623 | 0.254 |
Daniel Murphy | 2020 | 132 | 0.236 | 0.333 | 0.273 | 0.606 | 0.255 |
Niko Goodrum | 2020 | 179 | 0.184 | 0.335 | 0.263 | 0.598 | 0.257 |
Johan Camargo | 2020 | 127 | 0.200 | 0.367 | 0.244 | 0.611 | 0.258 |
Omar Narvaez | 2020 | 126 | 0.176 | 0.269 | 0.294 | 0.562 | 0.258 |
Dylan Carlson | 2020 | 119 | 0.200 | 0.364 | 0.252 | 0.616 | 0.260 |
Justin Smoak | 2020 | 132 | 0.176 | 0.361 | 0.250 | 0.611 | 0.261 |
wOBA: What Does it All Mean?
In the end, wOBA lets you know how well a hitter did at the plate in a statistical vacuum – there is no regard for what game situation is at play. The reason wOBA is better than OPS is that it combines the insights of OBP (getting on-base) and SLG (hitting for power) but uses linear weights to help predict outcome (i.e., run production) to know and see who is a better hitter.
The implications for a fantasy baseball GM should be obvious. Taking wOBA into account when doing research can make decisions (drafting, free agent pick-up, trades, etc.) more informed. The real genius with wOBA will be explained in the next article when I explain xwOBA (expected weighted On-Base Average) and how the difference between the two can identify both breakout candidates and players who grossly over-performed and might be due for serious regression.
Connect with me on Social Media!
Twitter: @basiegel68 / Facebook: basiegel68 / Instagram: basiegel68