Navigation: Jump to content areas:


Pro Quality. Fan Perspective.
Login-facebook
Around SBN: Blake Griffin Slam Dunks: NBA Jam Style

Custom wOBA and Linear Weights Through 2010: Baseball Databank Data Dump 2.1

Accountant-_old_medium

A rare photo of Tom Tango, seen here calculating linear weights.

You know what wOBA is, right? If not, get hip to it. In short, wOBA (weighted On-Base Average) was created by Tom Tango as a way of more accurately expressing a player's offensive value (according to the linear weights of offensive events) than more traditional stats like batting average, on-base percentage, OPS, or whatever. While those numbers have their uses, linear weights more accurately reflect what a player has contributed since it does a better job of noting the relative value of walks, singles, doubles, etc. than those stats. wOBA is simply linear weights expressed as a "rate stat" scaled on on-base percentage, so, for example (depending on the run environment) .320-.330 are usually around average, .300 is terrible, and .400 is awesome. 

While the "original recipe" uses some pretty standard and effective weights, since then Tango has published a script that "customizes" wOBA for seasonal run environments. This has been implemented at FanGraphs, for example. However, many people now prefer these "custom" versions, but the values aren't readily available. I'm no sabermetric or SQL wizard, but I do have the script that these things are based. Due to overwhelming demand from my massive fanbase (okay, a couple of people on Twitter), I've run the script and have the weights through this season. I take no great claim to have invented this method or the script, but below you will find the wOBA coefficients updated for each MLB season through 2010.

Star-divide


A Few Boring Historical and Methodological Details (Feel Free to Skip)

 

In the original formulation given in The Book,  the linear weights used for events were: HR 1.70, 3B 1.37, 2B 1.08, 1B 0.77, uBB 0.62. To scale this to something resembling OBP, Tango divided all of these by 1.15 and did other stuff to make plate appearances (rather than outs, as in traditional linear weights) the denominator to come up with this formula  for caculating a player's (or any other entity's) wOBA:

(0.72xNIBB + 0.75xHBP + 0.90x1B + 0.92xRBOE + 1.24x2B + 1.56x3B + 1.95xHR) / PA

To convert to linear weights runs above average (what is called 'wRAA' at FanGraphs), simply take the players wOBA, subtract the league wOBA from that, and then divide by 1.15 (the 'wOBAScale') and multiply by plate appearances to get back to the actual runs scale.

Those weights work fine, actually, but Tango later published a SQL (for Access) script using the free database from Baseball Databank to give specific weights for each season (the run values of each event change for season-to-season depending on the run environment. Colin Wyers later adapted this script for MySQL, which is the script I use here. Again, check out the various links given herein for more detailed (and likely more accurate) information.

The "original recipe" was created to give one simple "rate stat" type to get a hitter-batter matchups in The Book, so stolen bases weren't included. It was easy enough to include them, though. Reached on Error isn't included in this version because they aren't recorded in the Baseball Databank (there are differing opinions as to whether they should be credited to the player, I say yes, but it isn't a big deal). What is or isn't included in a linear weights/wOBA calculation isn't a simple matter of right or wrong, it depends on what you want to do with it. For figuring out a batting order, for example, you'd probably want to use wOBA without steals/caught stealing, for overall offensive value, including steals/caught stealing gives a more accurate picture.

Note that Tango's script uses 0.2 and 1.4 as every season's linear weights for the stolen base and home run, respectively. Those are "quickie" workaround, but they work well enough. It might look like they change because their wOBA coefficients change, but that's simply because the scaling of wOBA to OBP changes each season.

These numbers will get you pretty close to what is used at FanGraphs, but there are some differences (likely due to things like methods of excluding pitchers from the initial calculations, overall data sources, rounding, etc.). I know that the league wOBAs for seasons I get and what FanGraphs get are sometimes different, but they are close enough. This is not 'official.' And again, these are not "my" weights, I just ran the script and wrote this interminable post... I do think these weights are very good for the most part, in early baseball there might be some problems because pitchers took a larger offensive role, and prior to 1956 or so iBBs weren't distinguished in the from uBBs, which also throws things off, but for most of modern baseball, and certainly for 2010, these will do the trick.

Finally, the Coefficients and Weights

Here it is, your 2010 wOBA formula (drumroll please):

(0.70 x uBB + 0.73 x HBP + 0.89 x 1B +1.27 x 2B +1.61 x 3B + 2.07 x HR +0.25 x SB + 0.50 x CS) / PA

The "wOBAScale" for 2010 is 1.25 and the league wOBA is .320, so for runs above average, use

( (wOBA - .320) /1.25) x PA

The "weights proper" (rounded to two places) for this season are 0.30 uBB, 0.33 HBP, 0.46 1B, 0.76 2B, 1.03 3B, 1.4 HR, 0.2 SB, 0.4 CS.

...and here is the "big table" for all of MLB. Enjoy, nerds!

(Click here for the full list of weights as well as unrounded wOBA coefficients and whatnot.)

 

wOBA Coefficients Through 2010
Year wOBA wScale wBB wHBP w1B w2B w3B wHR wSB wCS
2010 0.320 1.25 0.70 0.73 0.89 1.27 1.61 2.07 0.25 0.50
2009 0.328 1.21 0.71 0.74 0.89 1.26 1.58 2.02 0.24 0.51
2008 0.328 1.21 0.71 0.74 0.89 1.26 1.58 2.02 0.24 0.51
2007 0.330 1.19 0.71 0.74 0.90 1.25 1.57 1.99 0.24 0.52
2006 0.330 1.17 0.71 0.74 0.89 1.24 1.56 1.96 0.23 0.52
2005 0.325 1.20 0.70 0.73 0.89 1.25 1.58 2.01 0.24 0.51
2004 0.329 1.18 0.71 0.74 0.89 1.24 1.56 1.98 0.24 0.52
2003 0.327 1.19 0.71 0.74 0.89 1.25 1.57 2.00 0.24 0.51
2002 0.325 1.21 0.70 0.73 0.89 1.26 1.58 2.02 0.24 0.51
2001 0.326 1.18 0.70 0.73 0.89 1.24 1.56 1.98 0.24 0.52
2000 0.339 1.15 0.72 0.75 0.90 1.25 1.56 1.95 0.23 0.53
1999 0.340 1.16 0.72 0.75 0.90 1.25 1.56 1.96 0.23 0.53
1998 0.331 1.20 0.71 0.74 0.90 1.26 1.58 2.01 0.24 0.52
1997 0.332 1.20 0.72 0.75 0.90 1.26 1.59 2.01 0.24 0.52
1996 0.334 1.17 0.72 0.75 0.90 1.25 1.57 1.97 0.23 0.53
1995 0.332 1.20 0.72 0.75 0.90 1.26 1.59 2.01 0.24 0.53
1994 0.333 1.18 0.72 0.75 0.90 1.25 1.57 1.99 0.24 0.53
1993 0.327 1.24 0.71 0.75 0.91 1.28 1.61 2.06 0.25 0.52
1992 0.316 1.33 0.71 0.74 0.91 1.31 1.67 2.17 0.27 0.51
1991 0.317 1.30 0.71 0.74 0.91 1.30 1.65 2.13 0.26 0.51
1990 0.319 1.30 0.71 0.74 0.91 1.30 1.65 2.13 0.26 0.51
1989 0.313 1.32 0.70 0.74 0.91 1.31 1.66 2.17 0.26 0.51
1988 0.312 1.32 0.70 0.73 0.90 1.30 1.65 2.16 0.26 0.51
1987 0.325 1.21 0.71 0.74 0.89 1.26 1.58 2.01 0.24 0.52
1986 0.320 1.26 0.71 0.74 0.90 1.28 1.62 2.09 0.25 0.52
1985 0.317 1.28 0.70 0.73 0.90 1.28 1.63 2.11 0.26 0.51
1984 0.317 1.30 0.71 0.74 0.91 1.30 1.65 2.14 0.26 0.51
1983 0.319 1.29 0.71 0.74 0.91 1.29 1.64 2.12 0.26 0.51
1982 0.317 1.29 0.71 0.74 0.91 1.29 1.64 2.13 0.26 0.51
1981 0.313 1.36 0.71 0.74 0.92 1.33 1.69 2.22 0.27 0.51
1980 0.320 1.30 0.71 0.74 0.91 1.30 1.65 2.13 0.26 0.51
1979 0.324 1.26 0.71 0.74 0.91 1.29 1.63 2.09 0.25 0.52
1978 0.317 1.33 0.71 0.74 0.91 1.31 1.67 2.17 0.27 0.51
1977 0.322 1.26 0.71 0.74 0.91 1.28 1.62 2.09 0.25 0.52
1976 0.314 1.38 0.71 0.75 0.93 1.34 1.71 2.25 0.28 0.51
1975 0.320 1.33 0.72 0.75 0.92 1.32 1.68 2.18 0.27 0.52
1974 0.317 1.35 0.71 0.75 0.92 1.33 1.69 2.21 0.27 0.52
1973 0.317 1.32 0.71 0.75 0.92 1.31 1.67 2.17 0.26 0.52
1972 0.303 1.41 0.70 0.73 0.92 1.34 1.72 2.28 0.28 0.50
1971 0.310 1.37 0.70 0.74 0.91 1.33 1.70 2.23 0.27 0.50
1970 0.318 1.29 0.71 0.74 0.91 1.30 1.65 2.13 0.26 0.52
1969 0.312 1.35 0.71 0.74 0.92 1.32 1.68 2.20 0.27 0.52
1968 0.291 1.46 0.68 0.72 0.91 1.35 1.74 2.34 0.29 0.48
1967 0.298 1.39 0.69 0.72 0.91 1.32 1.70 2.25 0.28 0.50
1966 0.303 1.33 0.69 0.72 0.89 1.29 1.65 2.17 0.27 0.50
1965 0.303 1.34 0.69 0.72 0.90 1.30 1.66 2.18 0.27 0.50
1964 0.306 1.32 0.69 0.72 0.90 1.29 1.65 2.16 0.26 0.50
1963 0.303 1.34 0.69 0.72 0.90 1.30 1.66 2.18 0.27 0.50
1962 0.321 1.27 0.71 0.74 0.91 1.29 1.63 2.10 0.25 0.52
1961 0.321 1.25 0.71 0.74 0.91 1.28 1.62 2.07 0.25 0.52
1960 0.318 1.30 0.71 0.74 0.91 1.30 1.65 2.13 0.26 0.51
1959 0.318 1.27 0.71 0.74 0.91 1.29 1.63 2.10 0.25 0.52
1958 0.319 1.28 0.71 0.74 0.90 1.29 1.63 2.11 0.26 0.51
1957 0.318 1.29 0.71 0.74 0.91 1.29 1.64 2.13 0.26 0.51
1956 0.325 1.27 0.71 0.75 0.91 1.29 1.64 2.10 0.25 0.52
1955 0.326 1.27 0.72 0.75 0.92 1.30 1.64 2.11 0.25 0.53
1954 0.333 1.29 0.73 0.76 0.93 1.32 1.67 2.14 0.26 0.52
1953 0.335 1.26 0.73 0.76 0.92 1.30 1.64 2.10 0.25 0.53
1952 0.326 1.35 0.73 0.76 0.94 1.34 1.70 2.21 0.27 0.52
1951 0.335 1.28 0.73 0.77 0.93 1.32 1.66 2.13 0.26 0.54
1950 0.345 1.22 0.74 0.77 0.93 1.30 1.63 2.06 0.24 0.54
1949 0.343 1.27 0.74 0.77 0.94 1.32 1.67 2.12 0.25 0.54
1948 0.340 1.28 0.74 0.77 0.94 1.32 1.67 2.13 0.26 0.54
1947 0.335 1.30 0.73 0.77 0.94 1.33 1.68 2.16 0.26 0.53
1946 0.328 1.38 0.73 0.76 0.94 1.36 1.73 2.26 0.28 0.52
1945 0.329 1.38 0.74 0.77 0.95 1.36 1.73 2.26 0.28 0.53
1944 0.325 1.37 0.73 0.76 0.94 1.35 1.73 2.25 0.27 0.53
1943 0.322 1.42 0.73 0.77 0.95 1.38 1.76 2.32 0.28 0.52
1942 0.323 1.39 0.73 0.77 0.95 1.36 1.74 2.27 0.28 0.53
1941 0.334 1.30 0.74 0.77 0.94 1.33 1.68 2.15 0.26 0.54
1940 0.334 1.25 0.73 0.76 0.92 1.30 1.63 2.08 0.25 0.53
1939 0.342 1.23 0.74 0.77 0.93 1.30 1.64 2.07 0.25 0.55
1938 0.342 1.23 0.74 0.77 0.93 1.30 1.63 2.06 0.25 0.55
1937 0.344 1.23 0.74 0.77 0.93 1.30 1.63 2.06 0.25 0.54
1936 0.348 1.19 0.75 0.78 0.94 1.29 1.62 2.02 0.24 0.56
1935 0.341 1.23 0.74 0.77 0.93 1.30 1.63 2.06 0.25 0.55
1934 0.340 1.23 0.74 0.77 0.93 1.30 1.63 2.06 0.25 0.55
1933 0.329 1.30 0.73 0.76 0.93 1.33 1.68 2.15 0.26 0.54
1932 0.336 1.22 0.73 0.76 0.92 1.29 1.62 2.05 0.24 0.54
1931 0.339 1.25 0.74 0.77 0.93 1.31 1.65 2.09 0.25 0.55
1930 0.354 1.13 0.75 0.78 0.92 1.26 1.56 1.93 0.23 0.56
1929 0.352 1.18 0.75 0.78 0.93 1.28 1.60 2.00 0.24 0.55
1928 0.343 1.25 0.74 0.77 0.93 1.31 1.65 2.09 0.25 0.54
1927 0.344 1.25 0.74 0.78 0.94 1.31 1.65 2.10 0.25 0.54
1926 0.343 1.27 0.74 0.77 0.94 1.32 1.66 2.12 0.25 0.54
1925 0.353 1.21 0.76 0.79 0.94 1.31 1.63 2.05 0.24 0.56
1924 0.347 1.27 0.75 0.78 0.95 1.33 1.68 2.13 0.25 0.55
1923 0.346 1.27 0.75 0.78 0.95 1.33 1.68 2.13 0.25 0.55
1922 0.347 1.25 0.75 0.78 0.94 1.32 1.66 2.10 0.25 0.55
1921 0.347 1.26 0.75 0.78 0.94 1.32 1.66 2.11 0.25 0.55
1920 0.334 1.37 0.74 0.78 0.96 1.37 1.73 2.25 0.27 0.54
1919 0.318 1.38 0.72 0.75 0.93 1.34 1.72 2.25 0.28 0.51
1918 0.316 1.47 0.72 0.75 0.95 1.38 1.78 2.37 0.29 0.50
1917 0.311 1.47 0.71 0.75 0.94 1.38 1.77 2.36 0.29 0.50
1916 0.312 1.48 0.72 0.75 0.95 1.39 1.79 2.39 0.30 0.50
1915 0.318 1.46 0.73 0.77 0.96 1.40 1.79 2.36 0.29 0.53
1914 0.321 1.42 0.73 0.76 0.95 1.37 1.76 2.31 0.28 0.52
1913 0.324 1.35 0.72 0.75 0.93 1.34 1.70 2.22 0.27 0.51
1912 0.337 1.28 0.74 0.77 0.93 1.32 1.66 2.13 0.26 0.53
1911 0.336 1.29 0.73 0.77 0.93 1.32 1.67 2.14 0.26 0.53
1910 0.316 1.42 0.72 0.75 0.94 1.36 1.75 2.30 0.28 0.51
1909 0.306 1.48 0.71 0.75 0.94 1.38 1.78 2.38 0.30 0.51
1908 0.296 1.51 0.70 0.74 0.93 1.39 1.80 2.42 0.30 0.50
1907 0.304 1.48 0.71 0.75 0.94 1.39 1.79 2.38 0.30 0.51
1906 0.306 1.46 0.71 0.75 0.94 1.38 1.77 2.35 0.29 0.51
1905 0.307 1.41 0.71 0.75 0.93 1.35 1.73 2.28 0.28 0.52
1904 0.299 1.43 0.70 0.74 0.92 1.35 1.74 2.30 0.29 0.51
1903 0.315 1.31 0.72 0.76 0.93 1.32 1.67 2.15 0.26 0.55
1902 0.322 1.32 0.73 0.76 0.93 1.33 1.68 2.17 0.26 0.54
1901 0.324 1.25 0.74 0.77 0.93 1.30 1.64 2.07 0.25 0.57
1900 0.338 1.20 0.75 0.78 0.93 1.29 1.62 2.02 0.24 0.57
1899 0.341 1.19 0.76 0.79 0.94 1.30 1.62 2.01 0.24 0.58
1898 0.333 1.26 0.75 0.78 0.95 1.33 1.67 2.10 0.25 0.58
1897 0.353 1.11 0.76 0.79 0.94 1.27 1.57 1.91 0.22 0.59
1896 0.353 1.09 0.76 0.79 0.93 1.26 1.56 1.88 0.22 0.59
1895 0.359 1.04 0.77 0.80 0.94 1.25 1.53 1.82 0.21 0.62
1894 0.377 0.96 0.79 0.81 0.93 1.22 1.48 1.72 0.19 0.62
1893 0.356 1.08 0.78 0.81 0.95 1.27 1.56 1.87 0.22 0.62
1892 0.314 1.27 0.74 0.77 0.93 1.31 1.66 2.09 0.25 0.59
1891 0.329 1.19 0.76 0.78 0.94 1.30 1.62 1.99 0.24 0.61
1890 0.334 1.15 0.76 0.79 0.94 1.28 1.59 1.94 0.23 0.62
1889 0.332 1.14 0.75 0.78 0.93 1.27 1.57 1.92 0.23 0.60
1888 0.291 1.26 0.70 0.73 0.89 1.27 1.61 2.05 0.25 0.56
1887 0.330 1.07 0.74 0.76 0.90 1.22 1.51 1.82 0.21 0.60
1886 0.300 1.22 0.73 0.76 0.92 1.29 1.62 2.01 0.24 0.61
1885 0.286 1.33 0.73 0.77 0.94 1.34 1.69 2.14 0.27 0.62
1884 0.276 1.31 0.72 0.75 0.92 1.32 1.67 2.12 0.26 0.62
1883 0.284 1.24 0.73 0.76 0.92 1.29 1.63 2.02 0.25 0.63
1882 0.274 1.31 0.72 0.75 0.92 1.31 1.66 2.10 0.26 0.62
1881 0.287 1.33 0.72 0.76 0.93 1.33 1.69 2.15 0.27 0.60
1880 0.265 1.38 0.70 0.73 0.91 1.32 1.70 2.19 0.28 0.59
1879 0.269 1.33 0.71 0.74 0.91 1.31 1.67 2.13 0.27 0.60
1878 0.279 1.38 0.72 0.76 0.94 1.35 1.72 2.21 0.28 0.60
1877 0.290 1.30 0.73 0.76 0.93 1.32 1.67 2.11 0.26 0.61
1876 0.277 1.31 0.73 0.77 0.94 1.33 1.68 2.10 0.26 0.65
1875 0.257 1.32 0.73 0.76 0.93 1.33 1.68 2.11 0.26 0.66
1874 0.283 1.16 0.76 0.79 0.94 1.29 1.60 1.90 0.23 0.72
1873 0.303 1.05 0.79 0.82 0.95 1.27 1.55 1.77 0.21 0.76
1872 0.299 1.04 0.80 0.82 0.96 1.27 1.55 1.75 0.21 0.78
1871 0.312 0.92 0.80 0.82 0.94 1.22 1.47 1.61 0.18 0.78

Comment 19 comments  |  5 recs  | 

Do you like this story?

Comments

Display:

Typo?

“+ 0.50 x CS” should be -.50, no? Otherwise you’re counting caught stealing’s as a positive.

by garik16 on Jan 4, 2011 1:20 PM EST reply actions  

Matt must secretly be Dusty Baker

/cheap joke

Skip Schumaker is a scapegoat

by vivaelpujols on Jan 4, 2011 3:33 PM EST up reply actions  

yup, typo

Making watching baseball as fun as doing your taxes.
My Twitter feed.

by Matt Klaassen on Jan 5, 2011 1:05 AM EST up reply actions  

Thanks, but

in case I didn’t make it clear enough in the original post, I really just ran the SQL. Tango came up with the idea of wOBA and wrote the original script, and I just ran Colin’s MySQL adaption (follow the links in the post.). That’s why I consider this just a “data dump” that I hope people will find useful.

Also, although I knew Stat Corner was the first data site to implement wOBA, Graham MacAree informs me that they’ve been using custom weights for a while now , I thought that at first they were just using the “standard” formula. They’ve used custom weights for a while since they were doing minor league stuff, too.

I’m not capable of anything this original and useful. Really, what took me the most time and work for me (and what I’m personally most proud of) was getting that freaking table formatted inthe SB Nation post editor.

Making watching baseball as fun as doing your taxes.
My Twitter feed.

by Matt Klaassen on Jan 4, 2011 4:16 PM EST up reply actions  

.320 can't be correct

Remember, at the league level (or more accurately, whatever players are in your population), the OBP must equal wOBA.

So, if you apply the wOBA equation to whatever population of players you are looking at, it has to equal to their OBP.

by tangotiger on Jan 4, 2011 8:44 PM EST reply actions  

I wondered about that bit couldn't find any obvious issue

What do you get when you your version of the script with bb? I’m on my phone right now, but I thinl Far Graphs comes up with a number very close to this (maybe .321).

Making watching baseball as fun as doing your taxes.
My Twitter feed.

by Matt Klaassen on Jan 4, 2011 11:28 PM EST via mobile up reply actions  

In fact

now I’m looking at Scott Rolen’s page at FanGraphs and ‘showing averages’ on his advanced tab, and the league wOBA isn’t equal to OBP for any of those seasons. Now, I don’t know if Appelman is using exactly the same script (I know fhe source data might be slightly difference), and I also don’t know what population he’s using for the league averages of the non-wOBA stats like OBP. I know what the script is supposed to do in terms of scaling league wOBA to OBP, but this is how it has always functioned for me (not speaking for FanGraphs, just using it as an example). Curious as to what you get in your version.

Making watching baseball as fun as doing your taxes.
My Twitter feed.

by Matt Klaassen on Jan 5, 2011 12:10 AM EST up reply actions  

Intentional Walks

The way the SQL is set up, it actually scales it to OBP without intentional walks. If you look at any pre 1950-something year where IBBs aren’t part of the baseball-databank, the average is exactly the same as OBP.

by dkappelman on Jan 5, 2011 12:37 AM EST up reply actions  

thanks

should have figured that out myself

Making watching baseball as fun as doing your taxes.
My Twitter feed.

by Matt Klaassen on Jan 5, 2011 12:41 AM EST up reply actions  

Tango has the numbers through 2008 on his blog

They are available here:
http://tangotiger.net/bdb/lwts_woba_for_bdb.txt

I don’t know if there are any differences for earlier seasons, but maybe it’s worth a check?

My Work: Henkakyuu

by jmaciel on Jan 7, 2011 4:16 AM EST reply actions  

Comments For This Post Are Closed


User Tools

We use numbers and stuff.
Community Guidelines
Why be a member?

Follow us on Facebook!

Follow us on Twitter!

SaberGraphics

Yahoo_full_count

MLB Daily Dish

Get the latest MLB Trade Rumors, Transactions, and News at MLB Daily Dish!


Managing Editor:

Jbopp-kc_small Justin Bopp

Columnists:

Adam_small adarowski

Dme_small Satchel Price

Closeup4_small J-Doug

Carlosicon_small Julian Levine

Billy_and_daddy_4th_of_july_small Bill Petti

Featuring:

Dayton_small Jeff Zimmerman

12475953_small Jacob Peterson

Recent_pic_pg_small Patrick Gordon

Btbpro_small Dave Gershman

Me_small Bryan Grosnick

229331_10150183361996591_674441590_6760167_6637860_n3_small Lewie Pollis

Img_3830_small David Fung

30472_1481067225243_1190689185_1381415_997334_n_small Glenn DuPaul

1mnvxku7_small joshuaworn

Set_small MattFilippi18

Photo0011_small Nathaniel Stoltz