I’m a big fan of Weighted On-Base Average, or wOBA. And if you love baseball statistics, chances are pretty good that you’ve heard of it, or have used it before.

But how do you calculate those darn coefficients? Well, you can get there in about five steps:

1. Find the run value of each event (i.e. linear weight values)

2. Add the run value of the out to all batting events.

3. Multiply the modified run values by the frequency of the event and divide the total sum by plate appearances (sans intentional walks)

4. Solve for the scale needed to match your desired rate (usually between 1.15-1.20).

5. Multiply each modified run value by the scale.

Then you apply the coefficients to the player’s batting line and divide by their plate appearances (again, sans intentional walks), and voilá! You’ve got your wOBA. It’s not super complicated; it just takes a few steps and you’ve got it. Really, the only tricky part is getting the initial run values—and once you have those, you’re set. Luckily for us, we don’t actually have to do any of the work—sites like StatCorner and FanGraphs already do the heavy lifting for us. But what if we want to calculate it ourselves, and have a bit more control over the output?

I’ve put together a nifty little wOBA calculator that does just that. It’ll likely spit out slightly different results than the ones you’ll find on FanGraphs or StatCorner, and that’s because it works a bit differently than they do. First and foremost, I’m allowing you to set the league rate to whatever you would like it to be. One of the criticisms I’ve heard of wOBA is that the rate it’s scaled to (OBP) isn’t as intuitive as, say, batting average. And this is true. So if you feel inclined, plug in your desired league rate—say .260—and you’ve got yourself a weighted batting average. Or, you can keep the OBP scale and set it so that the league average is always set to .330 (that’s a feature of Baseball Prospectus’ TAv that I’ve always admired—no matter the season, you always know what “average” is).

Secondly, I’m excluding stolen bases and caught stealing. This is a personal preference; I prefer to separate value provided by the lumber and value provided on the basepaths. So it will differ from FanGraphs in that regard as well. I’m including reaching base on an error (which can be found on Baseball-Reference under “splits”), and I believe StatCorner does the same.

Thirdly, the calculator generates the linear weight values through a process referred to as the “+1 Method,” which squeezes the run values out of Base Runs (BsR)*, a dynamic run estimator that does an exceptional job at modeling the run-scoring process. The cool thing about BsR is that you can tweak the coefficients to match your run environment (the ones I’m using are ones from Tom Tango’s extensive BsR equation), which the spreadsheet does, and this generates values that closely match the empirical “value-added” method. I’m uncertain as to how StatCorner extracts their run values, but I do know that FanGraphs follows Tango’s approximated run value process. The relative weights used are the same no matter the run environment (i.e. a single is 0.155 runs more than a non-intentional walk, a double 0.3 runs more than a single, a home run held at 1.40, etc.). Using the +1 Method will be a bit more sensitive to the actual frequency of the events, which should provide a modest, albeit small, improvement in theoretical accuracy.

The calculator, of course, will also generate Weighted Runs Above Average (wRAA, or straight Linear Weights), Weighted Runs Created (wRC), and Weighted Runs Created Plus (wRC+). It includes an option for a park adjustment as well. If you’re uncertain as to what the park factor is, just leave it as 1.00.

Enjoy!

wOBA Calculator

*The method I use is the same one outlined by Brandon Heipp in his essay on BsR, which I strongly recommend everyone read.

Jeffrey Gross said...

Brilliant. Love it

Dave Studeman said...

JT, this is awesome. I’m still digesting it, but thanks for throwing it together.