What’s wOBA?
“All that matters on the chessboard is good moves.”
Bobby Fischer, Chess World Champion
One of my favorite quotes about baseball analytics is by none other than Hall of Fame legend, Jeff Bagwell:
“I just think Moneyball is a farce. They had the three best pitchers in baseball. You could’ve stuck anybody out there. My son’s 15-year-old team could have been out there..”
A couple weeks ago on the Houston Astros’ KBME 790AM broadcast, Bagwell made a similar comment on how he doesn’t believe in exit velocity, how it only matters how hard you hit the ball. Brusque, yet funny, Bagwell’s brevity still seems to lack the wry smile behind Fischer’s remarks. I’m not here to dunk on boomer takes. I am going to tip my hat to Hall of Fame hitters, even if they seem to eschew analytics for their own intuitive rebranding of it.
There is a fine line between being a luddite and getting lost in turbo obscurantism (obscuring knowledge with jargon). On one hand, one can disavow modern analytics in favor of eye-tests-only, and on the other, one can confuse readers, hiding behind eye-numbing, all-caps statistical abbreviations they barely understand, themselves. My goal here is to vernacular-ize advanced baseball statistics. I was at first afraid of writing this article because I felt like I needed to understand everything I’m about to say, beforehand. Good news: we’re in this together and we’re going to Gütenburg the stat sheets.
This is part one of a series where I attempt to answer the questions I had about modern baseball statistics and post the breadcrumb trail here. We’ll humbly start today with wOBA and revisit more metrics in later articles. This is the guide for those that were too afraid to ask what these stats meant. Hopefully, it will help you to use “wOBA”, with confidence. Big thanks to FanGraphs and sports.stackexchange.com for filling up my browser tabs with wonderfully-articulate information I’ll try to titrate here. From now on, PA means “plate appearance”.
wOBA - Weighted On Base Average
“Woba Fett” was the first thing that came to mind, so pardon the AI-interpreted image. Measuring good hitters with OPS felt like a cup of coffee for my childhood of “counting stats”: RBI, batting average, homeruns. OPS is the on base percentage of a hitter (walks included) plus their slugging percentage (how many bases they get each PA). We’ll shorten the latter to SLG from here on. OPS is an attempt to show the value of a hitter where batting average alone may make a slap-singles guy who strikes out a lot look as good as Juan Soto. Why, now, wOBA?
OPS undervalues getting on base. Take a hitter with 500 PA that mostly hits singles versus a slugger that hits around 20 home runs, makes decent contact, but does not walk. Each home run is worth 4x a single’s value so it inflates SLG into a big pretty number, fast. You could end up with a .600 SLG that does most of the work in a 1.000 OPS, while a guy gets on base through HBP, walk, single or double 35% of the time, but only has a .400 SLG. The latter will appear, statistically, like a below-league average ballplayer, even though they’re giving their team a better chance of scoring runs. Getting on base is the biggest factor in scoring runs.
First, here is the FanGraphs equation for wOBA:
First glance: it looks like you weight each PA event (offensive outcomes of walk, hit-by-pitch, single, double, triple, homer) by some number, then you average it over all at-bats. Intuitively, wOBA is saying that if you get on base, you’re a good player, and you get extra credit for certain types of offense, without doing it disproportionately, like SLG.
Where do these weights come from?
As an exercise, let’s comb this very helpful FanGraphs breakdown of the process. I’m going to take you through my thought process as I worked my way down a variety of explanations (including ChatGPT’s).
1.The one thing we have to know to unlock the following, is the idea of a “Run Expectancy Matrix”. This is a grid with 24 squares. It shows every possible scenario in a PA. Each square is called a “base-out state”. Scenario does not mean outcome, it’s simply the preamble of a radio broadcaster, e.g. “Two on, two out here in the bottom of the ninth..”
2.This grid is your point of reference for all other calculations. It’s the gold standard. Take the upper-leftmost box, that says, 0.461. Translate this as saying, “this is the number of runs produced, on average, from each no-out, bases empty scenario onward, until the end of the inning, this season.”
3. Looking back at each of our weights in the wOBA equation, we’ll first examine walks. Let’s translate what we are trying to get to here: “For every PA this season, based on each scenario in which it happened (x,y location in the RE grid), how valuable was that walk for creating runs?”. In other words, let’s total-up the nudges of moving from one grid to another based on walks. Let’s say Tony Kemp gets walked on April 24th, 2023 and there was a runner on 2nd with no outs. (Find the first column) Tony Kemp’s PA moves from 1.068 to 1.373 expected runs in that inning. So his PA added .305 runs of value, on average. Keep doing that, not just for Tony Kemp, but across every PA for the given time frame. Add up those walk-nudges into a total, and divide by the number of walks across the league that season. There is your weight for walks. Almost.
It can start to feel like that bit in Rick n’ Morty, “everything’s on a cob!”. Yep, it’s all a fractal of tables within tables, nudges within nudges, divisors over divisors. With each layer of abstraction, we gain the ability to be predictive, while losing a little clarity of where we started from. So, take a moment to recap: we made a grid that adds up the average runs scored from-each-scenario-onward per inning, over all baseball games in a given time frame. Then, to calculate how valuable walks were versus a single (double, triple, etc), we added up the value-add of each outcome based on the scenario it happened in. Yes, this means that in a year where, for whatever reason, a ton of people get walked but the defense turns triple plays like hotcakes, walks aren’t going to be as valuable that year. This kind of value makes practical sense, though SABR folks tend to measure value in isolation (not considering if the guy who singled ended up scoring or not).
—
4. So we now have a weight for each offensive outcome. We know how relatively valuable it is for a walk to occur in a baseball game. But to make the number more readable, we scale it to OBP. Here, I got pretty confused. The FanGraphs breakdown states, “[i]n OBP, an out is worth zero, so the first thing we want to do is adjust the run value scale so that an out is equal to zero”. This didn’t click intuitively for me, but I saw we had to do 2 sets of scaling: one to factor out outs and the other to make our weights look like OBP. Let’s break these scaling operations down.
5. “Out equal to zero” – what? Let’s take just a single state across 0, 1, and 2 outs, i.e., just the first row of our RE matrix. Instead of calculating nudges forwards, by moving down or diagonally-down the rows of the RE matrix, let’s move left to right across the columns. Moving from 0 to 1 out with the bases empty is -.23, from 1 to 2 outs, -.17. If we keep doing this for each scenario’s nudge between each out, sequentially, and average those nudges vertically, we get the average (negative) value of an out. Take this value and add it back to each offensive outcome weight we calculated in step #4.
6. Scale to OBP - Almost there; we are one more abstraction layer away. By now, we have the offensive outcome weights for every PA across the season, and they’re a bit bigger, because we added back the average penalty of an out. Remember our initial wOBA equation at the top? Let’s take each of our weights for each offensive outcome. We need to scale these to OBP. Let’s get the league-wide wOBA value by plugging these into the wOBA equation from the top as the weights, using the league total of each offensive outcome as their multiplier. Finally, take that league-wide wOBA and divide it by league-wide OBP. Don’t think of this as more rote, alchemical trickery. We’re just doing chemistry homework, converting Fahrenheit to Celcius. By dividing league-wide wOBA by league-average OBP, we get a ratio to scale apples to oranges. I have inserted the FanGraphs example below to show the 2015 weights of offensive outcomes, normalized of the out penalty.
7. We are left with a league-wide wOBA value we call the wOBA scale. Multiply each value in the above table by our wOBA scale we found in step #6 and we have our weights. Now, one can calculate the weighted, on base average of any MLB player.
Let’s compare four players to get an idea of wOBA in action and see if it clicks. Note: I’ve used these players to categorize contact versus power, with sub-categories of only-power (Soler) and sometimes-contact (Dubón). It’s a generalization, and I’ve cherry-picked Soler’s 2023 stats while the others are for this season.
Indeed, OPS alone inflates Jorge Soler’s ostensible value to a GM quick-scanning the free agent market, or a fantasy manager looking to win their league. Now, a fantasy manager may value the over-valuing of SLG that’s baked into OPS, points-wise, but to a GM whose job is to win games with runs, wOBA shows Luis Arráez as an elite choice over Soler. In the case of Dubon, his batting average is right up there with the best, but his OPS makes him look league-average. However, his wOBA raises him out of his mere status as a guy that’s good for a single. When you compare their total profiles as a GM would, of course, you would consider the offensive requirements for Mauricio Dubón are lower than Soler since he offers both defensive value and positional versatility. Therefore, Dubón doesn’t need the same wOBA Soler does to be productive, since there’s value in his other tools.
In my research, I was confused with the idea of scaling for “outs to zero” in the wOBA weights calculus. I needed an intuitive explanation of why. OBP is a running total of successful offensive outcomes over a denominator (PA) that implies outs. But the percentage yielded by OBP isn’t factoring how outs impacted each offensive outcome. It’s just the tip of the iceberg. Here it is simply: outs are built into each value in the RE matrix – it’s less likely for a PA to score more runs with more outs. Therefore, since wOBA weights are based on the run-creating values of an RE matrix, those weights and percentages are going to be lower than what OBP shows, since they have the probability of outs built in. Here’s a simpler way to put it: if you’re traveling to Italy on vacation, you could hop from coliseum to museum and refuel the calories you’ve burned on granola bars in between (OBP), or you could maximize your immersive travel experience by enjoying the local cuisine (wOBA), where the cultural tour is built into the flavor.
Feel free to correct me in the comments. I’ll be grateful to learn more. I’m a beginner here, and if you are too, or excited to just make statistics more conversational, I hope you’ll come back soon. This was part one of a series on breaking down baseball’s abstruse metrics into household abbreviations, soon to be as familiar as “RBI”.
FanGraphs RE24
FanGraphs Linear Weights
FanGraphs wOBA
*Stats are as of 6/3/24