Friday, October 07, 2016

End of Season Statistics, 2016

The spreadsheets are published as Google Spreadsheets, which you can download in Excel format by changing the extension in the address from "=html" to "=xls". That way you can download them and manipulate things however you see fit.

The data comes from a number of different sources. Most of the data comes from Baseball-Reference. KJOK's park database is extremely helpful in determining when park factors should reset. Data on bequeathed runners for relievers comes from Baseball Prospectus.

The basic philosophy behind these stats is to use the simplest methods that have acceptable accuracy. Of course, "acceptable" is in the eye of the beholder, namely me. I use Pythagenpat not because other run/win converters, like a constant RPW or a fixed exponent are not accurate enough for this purpose, but because it's mine and it would be kind of odd if I didn't use it.

If I seem to be a stickler for purity in my critiques of others' methods, I'd contend it is usually in a theoretical sense, not an input sense. So when I exclude hit batters, I'm not saying that hit batters are worthless or that they *should* be ignored; it's just easier not to mess with them and not that much less accurate.

I also don't really have a problem with people using sub-standard methods (say, Basic RC) as long as they acknowledge that they are sub-standard. If someone pretends that Basic RC doesn't undervalue walks or cause problems when applied to extreme individuals, I'll call them on it; if they explain its shortcomings but use it regardless, I accept that. Take these last three paragraphs as my acknowledgment that some of the statistics displayed here have shortcomings as well, and I've at least attempted to describe some of them in the discussion below.

The League spreadsheet is pretty straightforward--it includes league totals and averages for a number of categories, most or all of which are explained at appropriate junctures throughout this piece. The advent of interleague play has created two different sets of league totals--one for the offense of league teams and one for the defense of league teams. Before interleague play, these two were identical. I do not present both sets of totals (you can figure the defensive ones yourself from the team spreadsheet, if you desire), just those for the offenses. The exception is for the defense-specific statistics, like innings pitched and quality starts. The figures for those categories in the league report are for the defenses of the league's teams. However, I do include each league's breakdown of basic pitching stats between starters and relievers (denoted by "s" or "r" prefixes), and so summing those will yield the totals from the pitching side. The one abbreviation you might not recognize is "N"--this is the league average of runs/game for one team, and it will pop up again.

The Team spreadsheet focuses on overall team performance--wins, losses, runs scored, runs allowed. The columns included are: Park Factor (PF), Home Run Park Factor (PFhr), Winning Percentage (W%), Expected W% (EW%), Predicted W% (PW%), wins, losses, runs, runs allowed, Runs Created (RC), Runs Created Allowed (RCA), Home Winning Percentage (HW%), Road Winning Percentage (RW%) [exactly what they sound like--W% at home and on the road], Runs/Game (R/G), Runs Allowed/Game (RA/G), Runs Created/Game (RCG), Runs Created Allowed/Game (RCAG), and Runs Per Game (the average number of runs scored an allowed per game). Ideally, I would use outs as the denominator, but for teams, outs and games are so closely related that I don’t think it’s worth the extra effort.

The runs and Runs Created figures are unadjusted, but the per-game averages are park-adjusted, except for RPG which is also raw. Runs Created and Runs Created Allowed are both based on a simple Base Runs formula. The formula is:

A = H + W - HR - CS
B = (2TB - H - 4HR + .05W + 1.5SB)*.76
C = AB - H
D = HR
Naturally, A*B/(B + C) + D.

I have explained the methodology used to figure the PFs before, but the cliff’s notes version is that they are based on five years of data when applicable, include both runs scored and allowed, and they are regressed towards average (PF = 1), with the amount of regression varying based on the number of years of data used. There are factors for both runs and home runs. The initial PF (not shown) is:

iPF = (H*T/(R*(T - 1) + H) + 1)/2
where H = RPG in home games, R = RPG in road games, T = # teams in league (14 for AL and 16 for NL). Then the iPF is converted to the PF by taking x*iPF + (1-x), where x = .6 if one year of data is used, .7 for 2, .8 for 3, and .9 for 4+.

It is important to note, since there always seems to be confusion about this, that these park factors already incorporate the fact that the average player plays 50% on the road and 50% at home. That is what the adding one and dividing by 2 in the iPF is all about. So if I list Fenway Park with a 1.02 PF, that means that it actually increases RPG by 4%.

In the calculation of the PFs, I did not get picky and take out “home” games that were actually at neutral sites.

There are also Team Offense and Defense spreadsheets. These include the following categories:

Team offense: Plate Appearances, Batting Average (BA), On Base Average (OBA), Slugging Average (SLG), Secondary Average (SEC), Walks and Hit Batters per At Bat (WAB), Isolated Power (SLG - BA), R/G at home (hR/G), and R/G on the road (rR/G) BA, OBA, SLG, WAB, and ISO are park-adjusted by dividing by the square root of park factor (or the equivalent; WAB = (OBA - BA)/(1 - OBA), ISO = SLG - BA, and SEC = WAB + ISO).

Team defense: Innings Pitched, BA, OBA, SLG, Innings per Start (IP/S), Starter's eRA (seRA), Reliever's eRA (reRA), Quality Start Percentage (QS%), RA/G at home (hRA/G), RA/G on the road (rRA/G), Battery Mishap Rate (BMR), Modified Fielding Average (mFA), and Defensive Efficiency Record (DER). BA, OBA, and SLG are park-adjusted by dividing by the square root of PF; seRA and reRA are divided by PF.

The three fielding metrics I've included are limited it only to metrics that a) I can calculate myself and b) are based on the basic available data, not specialized PBP data. The three metrics are explained in this post, but here are quick descriptions of each:

1) BMR--wild pitches and passed balls per 100 baserunners = (WP + PB)/(H + W - HR)*100

2) mFA--fielding average removing strikeouts and assists = (PO - K)/(PO - K + E)

3) DER--the Bill James classic, using only the PA-based estimate of plays made. Based on a suggestion by Terpsfan101, I've tweaked the error coefficient. Plays Made = PA - K - H - W - HR - HB - .64E and DER = PM/(PM + H - HR + .64E)

Next are the individual player reports. I defined a starting pitcher as one with 15 or more starts. All other pitchers are eligible to be included as a reliever. If a pitcher has 40 appearances, then they are included. Additionally, if a pitcher has 50 innings and less than 50% of his appearances are starts, he is also included as a reliever (this allows some swingmen type pitchers who wouldn’t meet either the minimum start or appearance standards to get in).

For all of the player reports, ages are based on simply subtracting their year of birth from 2016. I realize that this is not compatible with how ages are usually listed and so “Age 27” doesn’t necessarily correspond to age 27 as I list it, but it makes everything a heckuva lot easier, and I am more interested in comparing the ages of the players to their contemporaries than fitting them into historical studies, and for the former application it makes very little difference. The "R" category records rookie status with a "R" for rookies and a blank for everyone else; I've trusted Baseball Prospectus on this. Also, all players are counted as being on the team with whom they played/pitched (IP or PA as appropriate) the most.

For relievers, the categories listed are: Games, Innings Pitched, estimated Plate Appearances (PA), Run Average (RA), Relief Run Average (RRA), Earned Run Average (ERA), Estimated Run Average (eRA), DIPS Run Average (dRA), Strikeouts per Game (KG), Walks per Game (WG), Guess-Future (G-F), Inherited Runners per Game (IR/G), Batting Average on Balls in Play (%H), Runs Above Average (RAA), and Runs Above Replacement (RAR).

IR/G is per relief appearance (G - GS); it is an interesting thing to look at, I think, in lieu of actual leverage data. You can see which closers come in with runners on base, and which are used nearly exclusively to start innings. Of course, you can’t infer too much; there are bad relievers who come in with a lot of people on base, not because they are being used in high leverage situations, but because they are long men being used in low-leverage situations already out of hand.

For starting pitchers, the columns are: Wins, Losses, Innings Pitched, Estimated Plate Appearances (PA), RA, RRA, ERA, eRA, dRA, KG, WG, G-F, %H, Pitches/Start (P/S), Quality Start Percentage (QS%), RAA, and RAR. RA and ERA you know--R*9/IP or ER*9/IP, park-adjusted by dividing by PF. The formulas for eRA and dRA are based on the same Base Runs equation and they estimate RA, not ERA.

* eRA is based on the actual results allowed by the pitcher (hits, doubles, home runs, walks, strikeouts, etc.). It is park-adjusted by dividing by PF.

* dRA is the classic DIPS-style RA, assuming that the pitcher allows a league average %H, and that his hits in play have a league-average S/D/T split. It is park-adjusted by dividing by PF.

The formula for eRA is:

A = H + W - HR
B = (2*TB - H - 4*HR + .05*W)*.78
C = AB - H = K + (3*IP - K)*x (where x is figured as described below for PA estimation and is typically around .93) = PA (from below) - H - W
eRA = (A*B/(B + C) + HR)*9/IP

To figure dRA, you first need the estimate of PA described below. Then you calculate W, K, and HR per PA (call these %W, %K, and %HR). Percentage of balls in play (BIP%) = 1 - %W - %K - %HR. This is used to calculate the DIPS-friendly estimate of %H (H per PA) as e%H = Lg%H*BIP%.

Now everything has a common denominator of PA, so we can plug into Base Runs:

A = e%H + %W
B = (2*(z*e%H + 4*%HR) - e%H - 5*%HR + .05*%W)*.78
C = 1 - e%H - %W - %HR
cRA = (A*B/(B + C) + %HR)/C*a

z is the league average of total bases per non-HR hit (TB - 4*HR)/(H - HR), and a is the league average of (AB - H) per game.

In the past I presented a couple of batted ball RA estimates. I’ve removed these, not just because batted ball data exhibits questionable reliability but because these metrics were complicated to figure, required me to collate the batted ball data, and were not personally useful to me. I figure these stats for my own enjoyment and have in some form or another going back to 1997. I share them here only because I would do it anyway, so if I’m not interested in certain categories, there’s no reason to keep presenting them.

Instead, I’m showing strikeout and walk rate, both expressed as per game. By game I mean not nine innings but rather the league average of PA/G. I have always been a proponent of using PA and not IP as the denominator for non-run pitching rates, and now the use of per PA rates is widespread. Usually these are expressed as K/PA and W/PA, or equivalently, percentage of PA with a strikeout or walk. I don’t believe that any site publishes these as K and W per equivalent game as I am here. This is not better than K%--it’s simply applying a scalar multiplier. I like it because it generally follows the same scale as the familiar K/9.

To facilitate this, I’ve finally corrected a flaw in the formula I use to estimate plate appearances for pitchers. Previously, I’ve done it the lazy way by not splitting strikeouts out from other outs. I am now using this formula to estimate PA (where PA = AB + W):

PA = K + (3*IP - K)*x + H + W
Where x = league average of (AB - H - K)/(3*IP - K)

Then KG = K*Lg(PA/G) and WG = W*Lg(PA/G).

G-F is a junk stat, included here out of habit because I've been including it for years. It was intended to give a quick read of a pitcher's expected performance in the next season, based on eRA and strikeout rate. Although the numbers vaguely resemble RAs, it's actually unitless. As a rule of thumb, anything under four is pretty good for a starter. G-F = 4.46 + .095(eRA) - .113(K*9/IP). It is a junk stat. JUNK STAT JUNK STAT JUNK STAT. Got it?

%H is BABIP, more or less--%H = (H - HR)/(PA - HR - K - W), where PA was estimated above. Pitches/Start includes all appearances, so I've counted relief appearances as one-half of a start (P/S = Pitches/(.5*G + .5*GS). QS% is just QS/(G - GS); I don't think it's particularly useful, but Doug's Stats include QS so I include it.

I've used a stat called Relief Run Average (RRA) in the past, based on Sky Andrecheck's article in the August 1999 By the Numbers; that one only used inherited runners, but I've revised it to include bequeathed runners as well, making it equally applicable to starters and relievers. I use RRA as the building block for baselined value estimates for all pitchers. I explained RRA in this article, but the bottom line formulas are:

BRSV = BRS - BR*i*sqrt(PF)
IRSV = IR*i*sqrt(PF) - IRS
RRA = ((R - (BRSV + IRSV))*9/IP)/PF

The two baselined stats are Runs Above Average (RAA) and Runs Above Replacement (RAR). Starting in 2015 I revised RAA to use a slightly different baseline for starters and relievers as described here. The adjustment is based on patterns from the last several seasons of league average starter and reliever eRA. Thus it does not adjust for any advantages relief pitchers enjoy that are not reflected in their component statistics. This could include runs allowed scoring rules that benefit relievers (although the use of RRA should help even the scales in this regard, at least compared to raw RA) and the talent advantage of starting pitchers. The RAR baselines do attempt to take the latter into account, and so the difference in starter and reliever RAR will be more stark than the difference in RAA.

RAA (relievers) = (.951*LgRA - RRA)*IP/9
RAA (starters) = (1.025*LgRA - RRA)*IP/9
RAR (relievers) = (1.11*LgRA - RRA)*IP/9
RAR (starters) = (1.28*LgRA - RRA)*IP/9

All players with 250 or more plate appearances (official, total plate appearances) are included in the Hitters spreadsheets (along with some players close to the cutoff point who I was interested in). Each is assigned one position, the one at which they appeared in the most games. The statistics presented are: Games played (G), Plate Appearances (PA), Outs (O), Batting Average (BA), On Base Average (OBA), Slugging Average (SLG), Secondary Average (SEC), Runs Created (RC), Runs Created per Game (RG), Speed Score (SS), Hitting Runs Above Average (HRAA), Runs Above Average (RAA), Hitting Runs Above Replacement (HRAR), and Runs Above Replacement (RAR).

Starting in 2015, I'm including hit batters in all related categories for hitters, so PA is now equal to AB + W+ HB. Outs are AB - H + CS. BA and SLG you know, but remember that without SF, OBA is just (H + W + HB)/(AB + W + HB). Secondary Average = (TB - H + W + HB)/AB = SLG - BA + (OBA - BA)/(1 - OBA). I have not included net steals as many people (and Bill James himself) do, but I have included HB which some do not.

BA, OBA, and SLG are park-adjusted by dividing by the square root of PF. This is an approximation, of course, but I'm satisfied that it works well (I plan to post a couple articles on this some time during the offseason). The goal here is to adjust for the win value of offensive events, not to quantify the exact park effect on the given rate. I use the BA/OBA/SLG-based formula to figure SEC, so it is park-adjusted as well.

Runs Created is actually Paul Johnson's ERP, more or less. Ideally, I would use a custom linear weights formula for the given league, but ERP is just so darn simple and close to the mark that it’s hard to pass up. I still use the term “RC” partially as a homage to Bill James (seriously, I really like and respect him even if I’ve said negative things about RC and Win Shares), and also because it is just a good term. I like the thought put in your head when you hear “creating” a run better than “producing”, “manufacturing”, “generating”, etc. to say nothing of names like “equivalent” or “extrapolated” runs. None of that is said to put down the creators of those methods--there just aren’t a lot of good, unique names available.

For 2015, I refined the formula a little bit to:

1. include hit batters at a value equal to that of a walk
2. value intentional walks at just half the value of a regular walk
3. recalibrate the multiplier based on the last ten major league seasons (2005-2014)

This revised RC = (TB + .8H + W + HB - .5IW + .7SB - CS - .3AB)*.310

RC is park adjusted by dividing by PF, making all of the value stats that follow park adjusted as well. RG, the Runs Created per Game rate, is RC/O*25.5. I do not believe that outs are the proper denominator for an individual rate stat, but I also do not believe that the distortions caused are that bad. (I still intend to finish my rate stat series and discuss all of the options in excruciating detail, but alas you’ll have to take my word for it now).

Several years ago I switched from using my own "Speed Unit" to a version of Bill James' Speed Score; of course, Speed Unit was inspired by Speed Score. I only use four of James' categories in figuring Speed Score. I actually like the construct of Speed Unit better as it was based on z-scores in the various categories (and amazingly a couple other sabermetricians did as well), but trying to keep the estimates of standard deviation for each of the categories appropriate was more trouble than it was worth.

Speed Score is the average of four components, which I'll call a, b, c, and d:

a = ((SB + 3)/(SB + CS + 7) - .4)*20
b = sqrt((SB + CS)/(S + W))*14.3
c = ((R - HR)/(H + W - HR) - .1)*25
d = T/(AB - HR - K)*450

James actually uses a sliding scale for the triples component, but it strikes me as needlessly complex and so I've streamlined it. He looks at two years of data, which makes sense for a gauge that is attempting to capture talent and not performance, but using multiple years of data would be contradictory to the guiding principles behind this set of reports (namely, simplicity. Or laziness. You're pick.) I also changed some of his division to mathematically equivalent multiplications.

There are a whopping four categories that compare to a baseline; two for average, two for replacement. Hitting RAA compares to a league average hitter; it is in the vein of Pete Palmer’s Batting Runs. RAA compares to an average hitter at the player’s primary position. Hitting RAR compares to a “replacement level” hitter; RAR compares to a replacement level hitter at the player’s primary position. The formulas are:

HRAA = (RG - N)*O/25.5
RAA = (RG - N*PADJ)*O/25.5
HRAR = (RG - .73*N)*O/25.5
RAR = (RG - .73*N*PADJ)*O/25.5

PADJ is the position adjustment, and it is based on 2002-2011 offensive data. For catchers it is .89; for 1B/DH, 1.17; for 2B, .97; for 3B, 1.03; for SS, .93; for LF/RF, 1.13; and for CF, 1.02. I had been using the 1992-2001 data as a basis for some time, but finally updated for 2012. I’m a little hesitant about this update, as the middle infield positions are the biggest movers (higher positional adjustments, meaning less positional credit). I have no qualms for second base, but the shortstop PADJ is out of line with the other position adjustments widely in use and feels a bit high to me. But there are some decent points to be made in favor of offensive adjustments, and I’ll have a bit more on this topic in general below.

That was the mechanics of the calculations; now I'll twist myself into knots trying to justify them. If you only care about the how and not the why, stop reading now.

The first thing that should be covered is the philosophical position behind the statistics posted here. They fall on the continuum of ability and value in what I have called "performance". Performance is a technical-sounding way of saying "Whatever arbitrary combination of ability and value I prefer".

With respect to park adjustments, I am not interested in how any particular player is affected, so there is no separate adjustment for lefties and righties for instance. The park factor is an attempt to determine how the park affects run scoring rates, and thus the win value of runs.

I apply the park factor directly to the player's statistics, but it could also be applied to the league context. The advantage to doing it my way is that it allows you to compare the component statistics (like Runs Created or OBA) on a park-adjusted basis. The drawback is that it creates a new theoretical universe, one in which all parks are equal, rather than leaving the player grounded in the actual context in which he played and evaluating how that context (and not the player's statistics) was altered by the park.

The good news is that the two approaches are essentially equivalent; in fact, they are precisely equivalent if you assume that the Runs Per Win factor is equal to the RPG. Suppose that we have a player in an extreme park (PF = 1.15, approximately like Coors Field pre-humidor) who has an 8 RG before adjusting for park, while making 350 outs in a 4.5 N league. The first method of park adjustment, the one I use, converts his value into a neutral park, so his RG is now 8/1.15 = 6.957. We can now compare him directly to the league average:

RAA = (6.957 - 4.5)*350/25.5 = +33.72

The second method would be to adjust the league context. If N = 4.5, then the average player in this park will create 4.5*1.15 = 5.175 runs. Now, to figure RAA, we can use the unadjusted RG of 8:

RAA = (8 - 5.175)*350/25.5 = +38.77

These are not the same, as you can obviously see. The reason for this is that they take place in two different contexts. The first figure is in a 9 RPG (2*4.5) context; the second figure is in a 10.35 RPG (2*4.5*1.15) context. Runs have different values in different contexts; that is why we have RPW converters in the first place. If we convert to WAA (using RPW = RPG, which is only an approximation, so it's usually not as tidy as it appears below), then we have:

WAA = 33.72/9 = +3.75
WAA = 38.77/10.35 = +3.75

Once you convert to wins, the two approaches are equivalent. The other nice thing about the first approach is that once you park-adjust, everyone in the league is in the same context, and you can dispense with the need for converting to wins at all. You still might want to convert to wins, and you'll need to do so if you are comparing the 2015 players to players from other league-seasons (including between the AL and NL in the same year), but if you are only looking to compare Jose Bautista to Miguel Cabrera, it's not necessary. WAR is somewhat ubiquitous now, but personally I prefer runs when possible--why mess with decimal points if you don't have to?

The park factors used to adjust player stats here are run-based. Thus, they make no effort to project what a player "would have done" in a neutral park, or account for the difference effects parks have on specific events (walks, home runs, BA) or types of players. They simply account for the difference in run environment that is caused by the park (as best I can measure it). As such, they don't evaluate a player within the actual run context of his team's games; they attempt to restate the player's performance as an equivalent performance in a neutral park.

I suppose I should also justify the use of sqrt(PF) for adjusting component statistics. The classic defense given for this approach relies on basic Runs Created--runs are proportional to OBA*SLG, and OBA*SLG/PF = OBA/sqrt(PF)*SLG/sqrt(PF). While RC may be an antiquated tool, you will find that the square root adjustment is fairly compatible with linear weights or Base Runs as well. I am not going to take the space to demonstrate this claim here, but I will some time in the future.

Many value figures published around the sabersphere adjust for the difference in quality level between the AL and NL. I don't, but this is a thorny area where there is no right or wrong answer as far as I'm concerned. I also do not make an adjustment in the league averages for the fact that the overall NL averages include pitcher batting and the AL does not (not quite true in the era of interleague play, but you get my drift).

The difference between the leagues may not be precisely calculable, and it certainly is not constant, but it is real. If the average player in the AL is better than the average player in the NL, it is perfectly reasonable to expect the average AL player to have more RAR than the average NL player, and that will not happen without some type of adjustment. On the other hand, if you are only interested in evaluating a player relative to his own league, such an adjustment is not necessarily welcome.

The league argument only applies cleanly to metrics baselined to average. Since replacement level compares the given player to a theoretical player that can be acquired on the cheap, the same pool of potential replacement players should by definition be available to the teams of each league. One could argue that if the two leagues don't have equal talent at the major league level, they might not have equal access to replacement level talent--except such an argument is at odds with the notion that replacement level represents talent that is truly "freely available".

So it's hard to justify the approach I take, which is to set replacement level relative to the average runs scored in each league, with no adjustment for the difference in the leagues. The best justification is that it's simple and it treats each league as its own universe, even if in reality they are connected.

The replacement levels I have used here are very much in line with the values used by other sabermetricians. This is based both on my own "research", my interpretation of other's people research, and a desire to not stray from consensus and make the values unhelpful to the majority of people who may encounter them.

Replacement level is certainly not settled science. There is always going to be room to disagree on what the baseline should be. Even if you agree it should be "replacement level", any estimate of where it should be set is just that--an estimate. Average is clean and fairly straightforward, even if its utility is questionable; replacement level is inherently messy. So I offer the average baseline as well.

For position players, replacement level is set at 73% of the positional average RG (since there's a history of discussing replacement level in terms of winning percentages, this is roughly equivalent to .350). For starting pitchers, it is set at 128% of the league average RA (.380), and for relievers it is set at 111% (.450).

I am still using an analytical structure that makes the comparison to replacement level for a position player by applying it to his hitting statistics. This is the approach taken by Keith Woolner in VORP (and some other earlier replacement level implementations), but the newer metrics (among them Rally and Fangraphs' WAR) handle replacement level by subtracting a set number of runs from the player's total runs above average in a number of different areas (batting, fielding, baserunning, positional value, etc.), which for lack of a better term I will call the subtraction approach.

The offensive positional adjustment makes the inherent assumption that the average player at each position is equally valuable. I think that this is close to being true, but it is not quite true. The ideal approach would be to use a defensive positional adjustment, since the real difference between a first baseman and a shortstop is their defensive value. When you bat, all runs count the same, whether you create them as a first baseman or as a shortstop.

That being said, using "replacement hitter at position" does not cause too many distortions. It is not theoretically correct, but it is practically powerful. For one thing, most players, even those at key defensive positions, are chosen first and foremost for their offense. Empirical research by Keith Woolner has shown that the replacement level hitting performance is about the same for every position, relative to the positional average.

Figuring what the defensive positional adjustment should be, though, is easier said than done. Therefore, I use the offensive positional adjustment. So if you want to criticize that choice, or criticize the numbers that result, be my guest. But do not claim that I am holding this up as the correct analytical structure. I am holding it up as the most simple and straightforward structure that conforms to reality reasonably well, and because while the numbers may be flawed, they are at least based on an objective formula that I can figure myself. If you feel comfortable with some other assumptions, please feel free to ignore mine.

That still does not justify the use of HRAR--hitting runs above replacement--which compares each hitter, regardless of position, to 73% of the league average. Basically, this is just a way to give an overall measure of offensive production without regard for position with a low baseline. It doesn't have any real baseball meaning.

A player who creates runs at 90% of the league average could be above-average (if he's a shortstop or catcher, or a great fielder at a less important fielding position), or sub-replacement level (DHs that create 3.5 runs per game are not valuable properties). Every player is chosen because his total value, both hitting and fielding, is sufficient to justify his inclusion on the team. HRAR fails even if you try to justify it with a thought experiment about a world in which defense doesn't matter, because in that case the absolute replacement level (in terms of RG, without accounting for the league average) would be much higher than it is currently.

The specific positional adjustments I use are based on 2002-2011 data. I stick with them because I have not seen compelling evidence of a change in the degree of difficulty or scarcity between the positions between now and then, and because I think they are fairly reasonable. The positions for which they diverge the most from the defensive position adjustments in common use are 2B, 3B, and CF. Second base is considered a premium position by the offensive PADJ (.97), while third base and center field have similar adjustments in the opposite direction (1.03 and 1.02).

Another flaw is that the PADJ is applied to the overall league average RG, which is artificially low for the NL because of pitcher's batting. When using the actual league average runs/game, it's tough to just remove pitchers--any adjustment would be an estimate. If you use the league total of runs created instead, it is a much easier fix.

One other note on this topic is that since the offensive PADJ is a stand-in for average defensive value by position, ideally it would be applied by tying it to defensive playing time. I have done it by outs, though.

The reason I have taken this flawed path is because 1) it ties the position adjustment directly into the RAR formula rather than leaving it as something to subtract on the outside and more importantly 2) there’s no straightforward way to do it. The best would be to use defensive innings--set the full-time player to X defensive innings, figure how Derek Jeter’s innings compared to X, and adjust his PADJ accordingly. Games in the field or games played are dicey because they can cause distortion for defensive replacements. Plate Appearances avoid the problem that outs have of being highly related to player quality, but they still carry the illogic of basing it on offensive playing time. And of course the differences here are going to be fairly small (a few runs). That is not to say that this way is preferable, but it’s not horrible either, at least as far as I can tell.

To compare this approach to the subtraction approach, start by assuming that a replacement level shortstop would create .86*.73*4.5 = 2.825 RG (or would perform at an overall level of equivalent value to being an average fielder at shortstop while creating 2.825 runs per game). Suppose that we are comparing two shortstops, each of whom compiled 600 PA and played an equal number of defensive games and innings (and thus would have the same positional adjustment using the subtraction approach). Alpha made 380 outs and Bravo made 410 outs, and each ranked as dead-on average in the field.

The difference in overall RAR between the two using the subtraction approach would be equal to the difference between their offensive RAA compared to the league average. Assuming the league average is 4.5 runs, and that both Alpha and Bravo created 75 runs, their offensive RAAs are:

Alpha = (75*25.5/380 - 4.5)*380/25.5 = +7.94

Similarly, Bravo is at +2.65, and so the difference between them will be 5.29 RAR.

Using the flawed approach, Alpha's RAR will be:

(75*25.5/380 - 4.5*.73*.86)*380/25.5 = +32.90

Bravo's RAR will be +29.58, a difference of 3.32 RAR, which is two runs off of the difference using the subtraction approach.

The downside to using PA is that you really need to consider park effects if you do, whereas outs allow you to sidestep park effects. Outs are constant; plate appearances are linked to OBA. Thus, they not only depend on the offensive context (including park factor), but also on the quality of one's team. Of course, attempting to adjust for team PA differences opens a huge can of worms which is not really relevant; for now, the point is that using outs for individual players causes distortions, sometimes trivial and sometimes bothersome, but almost always makes one's life easier.

I do not include fielding (or baserunning outside of steals, although that is a trivial consideration in comparison) in the RAR figures--they cover offense and positional value only). This in no way means that I do not believe that fielding is an important consideration in player evaluation. However, two of the key principles of these stat reports are 1) not incorporating any data that is not readily available and 2) not simply including other people's results (of course I borrow heavily from other people's methods, but only adapting methodology that I can apply myself).

Any fielding metric worth its salt will fail to meet either criterion--they use zone data or play-by-play data which I do not have easy access to. I do not have a fielding metric that I have stapled together myself, and so I would have to simply lift other analysts' figures.

Setting the practical reason for not including fielding aside, I do have some reservations about lumping fielding and hitting value together in one number because of the obvious differences in reliability between offensive and fielding metrics. In theory, they absolutely should be put together. But in practice, I believe it would be better to regress the fielding metric to a point at which it would be roughly equivalent in reliability to the offensive metric.

Offensive metrics have error bars associated with them, too, of course, and in evaluating a single season's value, I don't care about the vagaries that we often lump together as "luck". Still, there are errors in our assessment of linear weight values and players that collect an unusual proportion of infield hits or hits to the left side, errors in estimation of park factor, and any number of other factors that make their events more or less valuable than an average event of that type.

Fielding metrics offer up all of that and more, as we cannot be nearly as certain of true successes and failures as we are when analyzing offense. Recent investigations, particularly by Colin Wyers, have raised even more questions about the level of uncertainty. So, even if I was including a fielding value, my approach would be to assume that the offensive value was 100% reliable (which it isn't), and regress the fielding metric relative to that (so if the offensive metric was actually 70% reliable, and the fielding metric 40% reliable, I'd treat the fielding metric as .4/.7 = 57% reliable when tacking it on, to illustrate with a simplified and completely made up example presuming that one could have a precise estimate of nebulous "reliability").

Given the inherent assumption of the offensive PADJ that all positions are equally valuable, once RAR has been figured for a player, fielding value can be accounted for by adding on his runs above average relative to a player at his own position. If there is a shortstop that is -2 runs defensively versus an average shortstop, he is without a doubt a plus defensive player, and a more valuable defensive player than a first baseman who was +1 run better than an average first baseman. Regardless, since it was implicitly assumed that they are both average defensively for their position when RAR was calculated, the shortstop will see his value docked two runs. This DOES NOT MEAN that the shortstop has been penalized for his defense. The whole process of accounting for positional differences, going from hitting RAR to positional RAR, has benefited him.

I've found that there is often confusion about the treatment of first baseman and designated hitters in my PADJ methodology, since I consider DHs as in the same pool as first baseman. The fact of the matter is that first baseman outhit DH. There are any number of potential explanations for this; DHs are often old or injured, players hit worse when DHing than they do when playing the field, etc. This actually helps first baseman, since the DHs drag the average production of the pool down, thus resulting in a lower replacement level than I would get if I considered first baseman alone.

However, this method does assume that a 1B and a DH have equal defensive value. Obviously, a DH has no defensive value. What I advocate to correct this is to treat a DH as a bad defensive first baseman, and thus knock another five or so runs off of his RAR for a full-time player. I do not incorporate this into the published numbers, but you should keep it in mind. However, there is no need to adjust the figures for first baseman upwards --the only necessary adjustment is to take the DHs down a notch.

Finally, I consider each player at his primary defensive position (defined as where he appears in the most games), and do not weight the PADJ by playing time. This does shortchange a player like Ben Zobrist (who saw significant time at a tougher position than his primary position), and unduly boost a player like Buster Posey (who logged a lot of games at a much easier position than his primary position). For most players, though, it doesn't matter much. I find it preferable to make manual adjustments for the unusual cases rather than add another layer of complexity to the whole endeavor.

2016 League

2016 Park Factors

2016 Team

2016 Team Offense

2016 Team Defense

2016 AL Relievers

2016 NL Relievers

2016 AL Starters

2016 NL Starters

2016 AL Hitters

2016 NL Hitters

Monday, October 03, 2016

Crude Playoff Odds--2016

These are very simple playoff odds, based on my crude rating system for teams using an equal mix of W%, EW% (based on R/RA), PW% (based on RC/RCA), and 69 games of .500. They account for home field advantage by assuming a .500 team wins 54.2% of home games (major league average 2006-2015). They assume that a team's inherent strength is constant from game-to-game. They do not generally account for any number of factors that you would actually want to account for if you were serious about this, including but not limited to injuries, the current construction of the team rather than the aggregate seasonal performance, pitching rotations, estimated true talent of the players, etc.

I say “generally” since this year, the team I am a fan of (Cleveland) lost two key starting pitchers, and I wanted to account for that in the ratings. While other teams have injuries of note as well, I did not consider those. This approach is basically being as conservative as reasonably possible in estimating the Indians strength. Using a runs allowed approach (and not adjusting for bullpen support and park factor because I haven’t had time to dig into the numbers yet) Carlos Carrasco and Danny Salazar combined for about 5.9 WAR, which over 161 games is a .037 hit to the Indians’ W%. Of course, the real impact is not necessarily equal to the WAR impact; generic replacements don’t apply and the impact of starting pitchers in the playoffs can be muted. Still, this adjustment is better than nothing. I should also note that not park adjusting is mildly conservative since Cleveland tends to be a pitchers park.

Knocking .037 points off of Cleveland’s three W% metrics, the resulting CTRs are:

One thing to note here is just how good Boston is assumed to be; they were excellent in the W% estimators. The Cubs were even better in each of those metrics their 103 wins would suggest, but the Red Sox close the gap on strength of schedule, 104 to the Cubs’ 93 (implying that Boston’s average opponent would have a .528 W% against Chicago’s average opponent). With the injury adjustment the Indians are the weakest team on paper, but not so much so that they have significantly lower odds (last year, the Mets at 104 were the lowest-rated team and we know how that worked out).

Wildcard odds are the least useful, since it is the round where pitching matchup has the biggest effect:

Since we’re assuming the home team wins 54.2%, there’s very little difference in assumed strength in these two matchups (of course, the Mets suffer from even more extreme pitching maladies than do the Indians).

In the charts that follow, “P” is the probability that the series occurs; P(H win) is the probability that the home team wins should the series occur; and P(H) is the probability that the series occurs and that the home team wins [P*P(H win)].


My guess, based on no calculations but including my inherent knowledge of the team’s statistical records and characteristics, was that Cleveland would have a 45% chance against Boston. So strike one for homerism there. Texas/wildcard figures will be the closest DS matchup on paper, although I’m most eager to see WAS/LA (other than the Indians, of course).


You’ll note that the Cubs have a higher probability against stronger teams than they do in the NLDS thanks to the extra games. Cubs/Dodgers is the most lopsided potential LCS, while Dodgers/Mets is the closest.

World Series:

The AL is favored in 13 of the 25 possible matchups, but 13 of 20 that don’t involve Chicago. It doesn’t help the stronger circuit that it’s two highest seeds have the two lowest CTRs in the field.

Putting it all together:

This gives the NL a 51.1% chance to win, a 84% chance of an outcome I like, a 79% chance of an outcome I really like, and a 7.9% chance of an outcome that would be the best thing that’s ever happened in baseball. Plus a 100% of being a better outcome than 2015.

Tuesday, July 26, 2016

The Willie Davis Method and OPS+ Park Factors

This post is going to lay out the math necessary to apply the so-called "Willie Davis method" of Bill James to his Runs Created and to Base Runs. The last three posts have explained how you can use it with Linear Weights. This is offered in the interest of comprehensiveness, should you decide that you’d like to fiddle with this stuff yourself.

The Willie Davis method as explained by Bill James is based on the most basic RC formula, (H + W)*TB/(AB + W). You could use one of the technical RC versions too, of course, but then you would introduce the problem of what to do with all of the ancillary categories that are included in those versions. A minor modification that would help matters is to give a weight to walks in the B factor (which is simply TB in the basic version), but James has never done that as it would complicate the basic version and mess up all of the neat little RC properties like OBA*SLG*AB = runs.

While I tried to emphasize that I wouldn’t take any of the results from the linear weight translations too seriously, the output of the Willie Davis method is actually used by Sean Forman to calculate OPS+ at So while James used it in the vein that I advocate, Forman uses it to park-adjust the most-looked at total offensive statistic at his site. For this reason, I’ll compare park-adjusted OPS+ figured by his method to what I would do later in the post.

To apply the Willie Davis method to RC, first define a = 1 + W/H, b = TB/H, and outs as AB-H. You also need to calculate New RC, which I will abbreviate as N. That is just regular RC times the adjustment factor you are using (in a park case, if the PF is 1.05 then N is RC*1.05). Then this relationship holds:

N = (a*H)*(b*H)/(a*H + Outs)

This can be manipulated into a quadratic equation:

abH^2 - NaH - N*Outs = 0

And then we can use the quadratic equation to solve for H, which we’ll call H’:

H' = (Na + sqrt((Na)^2 + 4ab(N*Outs)))/(2ab)

The adjustment factor for all of the basic components (S, D, T, HR, W with outs staying fixed) is simply H'/H. So we multiply the positive events by H'/H and the result is a translated batting line.

Since we have applied this type of approach to RC and LW, we might as well do it for Base Runs as well. Allow me to start with this particular BsR equation, published some time ago by David Smyth:

A = S + D + T + W
B = .78S + 2.34D + 3.9T + 2.34HR + .039W
C = AB - H = outs
D = HR

BsR is of course A*B/(B + C) + D, and New BsR (N) is BsR*adjustment factor. To write everything in terms of singles, let’s define a, b, and c (of course, I didn’t realize until after I wrote this that a, b, and c are terrible abbreviations in this case, but I already had them in my spreadsheet and it would have been a real pain to change everything):

a = (S + D + T + W)/S

b = (.78S + 2.34D + 3.9T + 2.34HR + .039W)/S

c = HR/S

Then we need to solve for S' (the new number of singles) in this equation:

aS'*bS'/(bS' + Outs) + cS' = N

This results in a quadratic equation just as the RC approach does, and it can be solved:

S' = (Nb - cOuts + sqrt((cOuts - Nb)^2 + 4(NOuts)(ab + bc)))/(2*(ab + bc))

S'/S is then the multiplier for all of the positive events.

So we have three different approaches based on three different run estimators to accomplish the same task. Which one should be used? Unfortunately, there’s no good empirical way to test these approaches; the entire point of having them is to make estimates of equivalent value under different conditions…i.e. conditions that did not occur in reality.

However, I think it should be self-evident that the quality of the model from which the estimate is derived says a lot about its value. I don’t need to beat that horse again, but it is well-known that Basic RC is not a very good estimator when applied to individuals, which is exactly what we are doing here.

It would also follow that the Linear Weights-based approach should be marginally better than the Base Runs-based approach since BsR should not be applied directly to individuals. Since BsR is better constructed than RC, though, the discrepancies shouldn’t be as bothersome.

I am going to use the three approaches to derive park-adjusted BA, OBA, and SLG for the 1995 Rockies. In all of the calculations, I am using a 1.23 park factor for Coors Field. The unshaded columns are the players’ raw, unadjusted numbers; the pink columns are adjusted by the RC approach, orange by the ERP approach, and yellow by the BsR approach:

From eyeballing the numbers, I’d say that there is a strong degree of agreement between the ERP and BsR estimates, with the RC estimates as the outliers. As mentioned above, this is along the lines of what I would have expected to see, as both ERP and BsR are better models of the run scoring process than RC. That the ERP and BsR results are close should not come as a surprise, as both estimators give similar weight to each event.

Using RC results in a less severe park adjustment for most players. Why is this? My guess is that it is because RC, with it’s well-known flaw of overvaluing high-end performance, naturally needs to draw down the player’s OBA and SLG less then ERP or BsR to still maintain a high performance. In other words, RC overestimates Larry Walker’s run contribution to begin with, and since the problem only gets worse as OBA and SLG increase, it doesn’t take that that big of a change in OBA or SLG to reduce run value by X%.

As I mentioned earlier, I think it is worth looking at the Willie Davis method closely since some sources (particularly Baseball-Reference) use it for serious things like park-adjusting OPS+. This is in contrast to the position of its creator, Bill James, who presented it more as a toy that yields a rough estimate of what an equal value performance would look like in a different environment.

So, here are the OPS+ figures for the 1995 Rockies figured seven different ways. Let me note off the bat that I am using OBA = (H + W)/(AB + W); for this reason and the fact that I am using my own Coors PF, we should not anticipate exact agreement between these OPS+ results and the ones on Baseball-Reference. The league OBA in the 1995 NL was .328, and SLG was .408, so the basic formula for OPS+ is:

OPS+ = 100*(OBA/.328 + SLG/.408 - 1)

The first column of the table, "unadj" uses the player’s raw stats with no park adjustment. The second column, "trad", reflects the traditional method of figuring OPS+ used by Pete Palmer in The Hidden Game of Baseball, Total Baseball, and the ESPN Baseball Encyclopedia: simply divide OPS+ by the runs park factor (1.23) in this case.

The third column, "sqrt", adjusts OBA and SLG separately by dividing each by the square root of park factor, and uses these adjusted figures in the OPS+ formula above (*). The fourth column, "reg", uses the runs factor to estimate an OPS+ park factor based on a regression equation that relates OPS+ to adjusted runs/out (this is covered in the digression as well).

Finally there are three shaded columns, which use the translated OBA and SLG results from RC, ERP, and BsR respectively as the inputs into the OPS+ equations:

What can we see from this? The traditional approach is more severe than any of the Willie Davis approaches, while the square root approach is a pretty good match for the Willie Davis approaches. Thus, I suggest that the best combination of ease and accuracy in calculating OPS+ is to divide OBA and SLG by the square root of park factor, then plug the adjusted OBA and SLG into the OPS+ equation.

Of course, I should point out that 1995 Coors Field and its 1.23 park factor is one of the most extreme cases in the history of the game. For run of the mill environments, we should expect to see little difference regardless of how the park adjustments are applied, and so I am NOT saying that you should disregard the OPS+ figures on Baseball-Reference (although I do wish that OPS+ would be pushed aside in favor of better comprehensive rate stats). On the other hand, though, I see no reason to use a complicated park adjustment method like the Wille Davis approach when there are much easier approaches which we have some reason to believe better reflect true value.

(*) I shunted some topics down here into a digression because it covers a lot of ground that I’ve covered before and is even drier than what is above. And a lot of sabermetricians are sick and tired of talking about OPS, and I don’t blame them, so just skip this part if you don’t want to rehash it.

As I’ve explained before, OPS+ can be thought of as a quick approximation of runs/out. Some novice sabermetricians are surprised when they discover that OPS+ is adjusted OBA plus adjusted SLG minus one rather than OPS divided by league OPS. And it’s true that the name OPS+ can be misleading, but it is also true that it is a much better metric. One reason is that OPS/LgOPS does not have a 1:1 relationship with runs/out; it has a 2:1 relationship. If a team is 5% above the league average in OPS, your best guess is that they will score 10% more runs. So the OPS/LgOPS ratio has no inherent meaning; to convert it to an estimated unit, you would have to multiply by two and subtract one.

The other reason why OPS+ is superior is that it gives a higher weight to OBA. It doesn’t go far enough--the OBA weight should be something like 1.7 (assuming SLG is weighted at 1), while OPS+ only brings it up to around 1.2--insufficient, but still better than nothing.

Anyway, if you run a regression to estimate adjusted runs/out from OPS+, you find that it’s pretty close to a 1:1 relationship, particularly if you include HB in your OBA. I haven’t though, and so the relationship is something like 1.06(OPS+) - .06 = adjusted runs/out (again, it should be very close to 1:1 if you calculate OPS+ like a non-lazy person). The "reg" park adjustment, then, is to substitute the park factor for adjusted runs/out and solve for OPS+, giving an OPS+ park factor:

OPS+ park factor = (runs park factor + .06)/1.06

The slope of the line relating OPS+ to runs/out is not particularly steep, and so this is an almost negligible adjustment--for Coors Field and its 1.23 run park factor, we get a 1.217 OPS+ park factor.

Now a word about the traditional runs factor v. the individual square root adjustments. Since OPS+ is being used as a stand-in for run creation relative to the league average, I would assume that the goal in choosing a park adjustment approach is to provide the best match between adjusted OPS+ and adjusted runs/out. It turns out that if you figure relative ERP/Out for the ’95 Rockies players, the results are fairly consistent with the ERP/BsR translated OPS+. Thus, I am going to assume that those are the “best” adjusted OPS+ results, and that any simple park adjustment approach should hope to approximate them.

As a consequence, the square root adjustments to OBA and SLG look the best. Why is this? I’m not exactly sure; one might think that since OPS+ is a stand-in for relative runs/out, we should expect that the best adjustment approach once we already have unadjusted OPS+ is to divide by park factor. Yet we can get better results by adjusting each component individually by the square root of PF. OPS+ is far from a perfect approximation of relative runs/out, though, so it may not be that surprising that applying OPS+ logic to park factors is not quite optimal either.

Interestingly, the justification for the square root adjustment can be seen by looking at Runs Created in its OBA*SLG form. While OBA*SLG gives you an estimate of runs/at bat, not runs/out, it is of course related. If you take OBA/sqrt(PF)*SLG/sqrt(PF) you get OBA*SLG/(sqrt(PF)*sqrt(PF)) = OBA*SLG/PF

It is quite possible that there is a different power you could raise PF to that would provide a better match for our ERP-based OPS+ estimates, but getting any more in-depth would defeat the purpose of having a crude tool. In fact, I think that adjusting OPS+ by the Willie Davis method goes too far as well. Regardless, I would be remiss if I didn’t again emphasize that the 1995 Rockies are an extreme case, and so while the differences between the approaches may appear to be significant, they really aren’t 99% of the time.

Monday, July 11, 2016

The Good News Is...

The good news is that OSU baseball had its most successful season under coach Greg Beals. The Buckeyes qualified for the NCAA Tournament and won a Big Ten title of any kind (tournament or regular season) for the first time since 2009 and won the Big Ten Tournament for the first time since 2007. Six Buckeyes were drafted, the most since 1998.

That’s the good news, and it is legitimately good news. The bad news is they finished third in their NCAA regional, knocked out by an in-state foe with no particular history of being a quality baseball program (Wright State); the six drafted players are part of a mass exodus of talent that will leave the 2017 team with little returning production; and the relative success of the season should solidify Beals’ position.

I am not the type of fan that roots for my team to lose because I think that they would be better off if the coach was fired, or other similar reasoning (given the perverse incentives created by pro sports drafts, it may some times be in the team’s best interest to lose, but that never applies to college sports). So the last bit of bad news is worth it given a new trophy for the case. Nevertheless, it remains a cost associated with the season.

At first, it did not appear as if this would be the best season of Beals’ tenure. While OSU embarked on Big Ten play with a 12-6-1 record, it was not particularly impressive given the quality of competition. OSU took two out of three at home from Northwestern in the first Big Ten series, needing a come-from-behind walkoff homer to pull the series out on Sunday (Northwestern would finish twelfth in the Big Ten at 7-17). The Bucks were then swept at Maryland, won a home series against Rutgers and lost a series at Illinois to sit at 5-7 halfway through the Big Ten schedule.

Both road series featured memorable losses. In the second game against Maryland, John Havird took a no-hitter into the ninth, but was pulled with a 1-0 leading and 98 pitches after plunking the leadoff hitter. Maryland pushed across the run without the benefit of a hit, giving OSU a combined nine no-hit innings, but two hits lead to a Terrapin run in the tenth and a 2-1 loss. The opener against Illinois wound up as a 1-0 loss in fifteen innings on a wild pitch, in a game in which Illini starter (and future Baltimore first rounder) Cody Sedlock was allowed to make 132 pitches in 10 2/3 innings (one of Beals’ redeeming qualities as a coach is that he rarely pushes the envelope with his pitchers--Tanner Tully was done after 9 and 106 pitches).

The Buckeyes opened the second half with a sweep of hapless (2-22) Purdue, then won a home series from Iowa and swept Michigan at home to get to 13-8, technically still alive in the conference race heading into the finale at Minnesota (first place at 15-5). The Buckeyes won two out of three, finishing 1.5 games behind the Gophers and 1 behind Nebraska, tied for third with Indiana. At this point it could be noted that OSU had a favorable Big Ten schedule; only three of the thirteen teams finished under .500 in conference play, and OSU played all of them (Purdue, Northwestern, Rutgers), while not playing Nebraska or Indiana.

The Buckeyes opened the tournament with a win over Michigan, but melted down in the ninth inning against Iowa by coughing up a 4-0 lead before losing in ten. Their next contest with Michigan was delayed by weather, forcing the Buckeyes to beat both Michigan and Michigan State on Saturday to stay alive. On Sunday morning, the Buckeyes beat MSU again to claw back through the loser’s bracket, into the winner-take-all final against Iowa that afternoon. The Bucks led 7-4 going into the eighth, but Iowa scored three to tie it. This time, OSU would answer with a run in the ninth and hold on for an 8-7 win to cap a remarkable two days of baseball with a long overdue championship.

OSU was made a #2 seed of the NCAA Tournament, but was deemed one of the weaker #2s and placed in a bracket with #2 national seed Louisville, #3 seed Wright State, and #4 seed Western Michigan. In a recurring tournament theme of losing leads, the Buckeyes opened up 5-0 on the Raiders through three before allowing two in the fourth and four in the fifth. WSU’s 6-5 lead held until the Buckeyes rallied for two in the ninth and a 7-6 win. Alas, Louisville’s offense proved too potent, burying the Bucks 15-3, and WSU extracted revenge with a 7-3 win that ended OSU’s season at 44-20-1.

OSU lead the Big Ten (all games) in W% at .688, was a close third in EW% at .676 (Minnesota led with .685), and was second in PW% (.679 to Minnesota’s .728). OSU had a balanced team, finishing third with 5.83 R/G and fourth with 3.98 RA/G (although it should be noted that Bill Davis Stadium appears to be a solid pitcher’s park). OSU was not a strong fielding team, with a .951 mFA compared to a conference average of .946, and more importantly a below-average DER (.675 to .681 average).

OSU’s offense was power-driven, leading the conference with 57 homers and a .151 ISO and a slightly above-average .348 OBA. Beals rode junior catcher Jalen Washington hard; Washington appeared in 63 of 65 games and created 4.3 RG. Junior Jacob Bosiokovic bounced back from injuries as the primary first baseman, creating 5.9 RG on the strength of power (11 homers, .213 ISO) rather than on base skills (.335 OBA). He was drafted by Colorado in the 19th round. Troy Kuhn settled back in at second base, but had his worst offensive season of three as a starter as a senior (just 4.3 RG). L Grant Davis struggled mightily at the plate (.194/.257/.256 in 151 PA), requiring OSU to sacrifice defense for offense at the keystone.

Nick Sergakis was third on OSU with 13 homers and was second on the team with 8.8 RG and +26 RAA with a .332/.420/.542 line, enough to be a 23rd selection by the Mets (Sergakis played three years at OSU after transferring from this year’s national champions, Coastal Carolina). Shortstop Craig Nennig, who Beals’ refusal to pinch-hit for was a running frustration of mine, made that less of an issue by turning in the best offensive season of his career, although .256/.313/.366 on the strength of five longballs hardly erased any concerns about production.

The outfield was led by junior Ronnie Dawson, who while productive in his first two years really played up to his potential with a team-high 13 homer, 9.3 RG, +32 RAA, .331/.415/.611 season that netted him several All-America honors and a second-round selection by Houston. Classmate Troy Montgomery had a fine season in center, hitting .297/.420/.466 for 7.7 RG and +20 RAA and was drafted in the 8th round by the Angels. Right field was filled by a combination of Bosiokovic and sophomore Tre’ Gantt, who couldn’t match the production from his freshman season (.255/.311/.314 for 3.6 RG in 158 PA).

Freshman Brady Cherry started the year on fire at DH with five homers, but settled into a .218/.307/.411 performance over 143. Senior Ryan Leffel (.205/.283/.301 in 96 PA) took some of his playing time as the year went on. Zach Ratcliff hit better than them early (.268/.362/.341 in 52 PA), but an injury ultimately resulted in a medical redshirt.

The pitching staff was anchored by junior Tanner Tully, who continued to be the perfect image of a finesse lefty with a 3.18 RA, 3.31 eRA, 1.9 W/9, 6.5 K/9, +19 RAA over 108 innings season. Tully was picked by Cleveland in the 26th round. Senior John Havird made it two lefties at the top of the rotation, pitching solidly (4.50 RA and +2 RAA, but 3.91 eRA and 5.8 K/1.5 W in 94 innings). Sophomore Adam Niemeyer was the #3, with similar results to Havird (4.56 RA for +1 RAA, 4.37 eRA, 8.9 K/1.5 W in 71 innings). As you can see, the strength of OSU’s starters was avoiding free passes. Freshman Ryan Feltner was the most frequent mid-week starter (11 starts out of 20 appearances) and wasn’t bad for a freshman (4.72 RA for 0 RAA, 5.67 eRA, 8.0 K/3.9 W in 69 innings). Senior transfer lefty Dalton Mosbarger got a few mid-week, limited inning starts (5 of 13 appearances) and was effective (3.31 RA for +5 RAA, 4.11 eRA, 8.3 K/4.1 W in 33 innings, in addition to his 35 PA as a reserve outfielder). Sophomore transfer Austin Woody rounded out the starters (3 of 19 appearances, 6.92 RA for -10 RAA, 7.75 eRA, 6.7 K/4.2 W in 39 innings).

OSU’s bullpen was terrific, with four key relievers chipping in. Sophomore Yianni Pavlopoulos was closer out of the gate despite just nine career innings and a medical redshirt in 2015, and recorded 14 saves and solid performance numbers (3.03 RA, 3.72 eRA, 10.3 K/3.3 W in 30 innings). Sidearm sophomore Seth Kinker was the workhorse, making 38 appearances and pitching great (1.98 RA for +17 RAA, 3.27 eRA, 7.4 K/1.6 W over 55 innings). Senior Michael Horejsei’s LOOGY role expanded a little, but not too extensively, working 31 innings in 34 appearances with a 3.19 RA, and excellent 1.93 eRA and 11.3 K/2.6 W). His selection in the 21st round by the White Sox as a situational reliever capped a remarkable career arc for a pitcher who began his college career at a regional campus (OSU-Mansfield) and had just 26 career innings entering 2016. Finally, sophomore Kyle Michalik chipped in +9 RA with a 2.25 RA, 2.29 eRA, 5.1 K/1.4 W performance over 32 innings, but was definitely fourth on Beals’ bullpen pecking order. Other pitchers who saw action include junior Joe Stoll and freshman Conor Curlis, who will presumably compete for the LOOGY role next year.

While 2016 was a measured success, the outlook for 2017 is murkier. OSU had a total of 84 offensive RAA contributed by individuals--83 of those contributed by non-returning players (1B Bosikovic, 3B Sergakis, LF Dawson, CF Montgomery). Additionally, OSU must replace Kuhn at second, Nennig at short (who was a very good fielder, at least to this observer’s eyes), and Leffel at utility/DH. It will essentially be a new offense and it will lack any proven plus performers. The rotation will lose two of its top three, but profiles as a more likely strength with Niemeyer and Feltner as two obvious members. To the extent that college bullpens can be predicted, OSU is well-positioned for 2017.

However, my concerns regarding player development were only slightly allayed, and Beals’ tactics may have been toned down a little bit (even he could see that he had power and should probably give away fewer outs on the bases), but one season does not a program make. It’s a positive step, at least, which is more than can be said for most of the previous seasons of Beals’ tenure. And that’s the good news.

Thursday, July 07, 2016

Great Moments in Yahoo! Box Scores

Mike Trout, the center field player, made a point in the match by "stealing" 4th base.

Monday, June 20, 2016


I have a love-hate relationship with Cleveland.

I was born and raised in the exurbs. I left for college but eventually came back to the suburbs but only because I had to, not because that’s where I wanted to live. When it comes to sports, I always rooted for the Cleveland teams, but in all honesty have never been a diehard Cavs fan, that description being much more apt for how I follow the Indians and the Browns. Even in those cases it might not fully apply, since I pride myself on striving to be too rational about baseball to fall into the sheer emotion of fandom (post-childhood), and the Browns have been too bad for too long to not laugh at rather than lament the losses. My sheer sports fan emotions, assigning good v. evil to every game and opponent, living and dying with the team was transferred to my future alma mater around adolescence and will never be directed elsewhere.

Yet there's no question that my baseball team is the Indians, my football team is the Browns, and my basketball team is the Cavaliers. At times this has been embarrassing. Not due to the failure to win championships, but more due to the Cleveland fan culture. Cleveland fans have taken pride in their victimhood, with the heartbreaks (sometimes more real than imagined) a perverse source of pride. Where else does a 35 year distant divisional playoff game (i.e. two games removed from the championship) have a name that every young Browns fan learns ("Red Right 88")? Cleveland had some bad breaks, but more often than not they just had bad teams. Bad management, a little bad luck, and on the rare occasions when the teams had a chance to win it all, the dice rolls were not kind. But the only way one can reasonably expect to win championships is to put multiple championship-caliber teams on the field and let the chips fall where they may. Cleveland's three largely failed in that regard.

Of course, franchise ineptitude is largely not the fault of the fanbase, but there's an important distinction to be made between losing because you're bad and losing because fate didn't look kindly upon you on a given day. Cleveland fans too often conflated the two, resulting in a fatalistic feedback loop that took the former as evidence of the latter.

The other maddening element of the sports culture is the unique grip that the Browns have on the city. For all of the elation that the Cavs victory has brought, it will pale into comparison to the day the Browns win or even make a Super Bowl. The Browns still rule the landscape, and benefit from a remarkable double standard. The Indians, a franchise that has achieved more in any one of nine seasons in the last twenty-five than the Browns have in any, are struggling with attendance. There is an overwhelming cynicism towards the Indians, rooted in a lack of understanding of the economics and nature of baseball. Every trade of a free agent to be furthers the downward spiral of the relationship between the city and the team, even as those trades bring back the future objects of lament (e.g. as Bartolo Colon becomes Cliff Lee becomes Carlos Carrasco). This is not to absolve the Indians of their very real failures in drafting/international signings that only now appear to be reversing, but the Indians have run rings around the Browns and yet it is the former that I will be pleasantly surprised to see take the field in Cleveland rather than Montreal or Portland or San Antonio in, say, 2030.

Cleveland fans have also had the opportunity to root for a winner, but many have passed it up, and I cannot feel too sorry for them. In the last twenty years, OSU has won two national titles in football and been to three Final Fours in basketball. A college team might always belong to the students and alumni most dearly, but the surely the flagship state university is as much an available rooting interest as a private entity that can be moved to Baltimore at the owner's whim.

Sports irrationality aside, one thing I will say for Cleveland and Northeast Ohio is that there is a real pride in their hometown among people here. I'm not well-traveled enough to declare that this feeling is unique, but I can contrast it to my other hometown, Columbus. People in Columbus don't generally exhibit the same pride in their city that Clevelanders do in theirs. Columbus residents might be proud of OSU or proud of Ohio, but they aren't as proud of Columbus per se. Some of this may be due to sports teams; minus the recent (and so far unsuccessful) addition of the Blue Jackets, Columbus' sporting identity ties to OSU and thus more to the state than the city.

This is why it is so appropriate that Cleveland's title drought was ended about as single-handedly as one could be by one man, LeBron James. LeBron was a native son, and that meant something here. Everyone probably feels some sort of connection to LeBrown, however tenuous or forced. Mine is that LeBron and I are the same age. LeBron was a first-name basis celebrity by the time we were freshmen in high school. The night of the 2003 NBA Draft Lottery, I was in a cabin at a state park in Southeast Ohio on our mandatory "senior trip" watching as the Cavs came up with the #1 pick (and a parent chaperone insisted that they had to draft Carmelo Anthony).

LeBron was asked to shoulder the burden of the city himself, and unfair ask for anyone but especially for a rookie. And when he dragged a ragtag bunch to the team's first ever Finals appearance, he simultaneously hurt both his "legacy" in the ridiculous media environment when the Cavs were swept and obliterated any remaining thought of patiently building a worthy team around him. For the next three seasons the Cavs chased in vein, leaving him with the impossible choice of staying to try to drag this motley crew to the promised land, or going to chase titles with a group of stars.

Of course, the way “the Decision” went down was an extra gut punch, but while many Cleveland fans condemned LeBron, I’d like to think that I was fairly level-headed (this comment on The Book Blog is as intemperate towards LeBron as I got, and I still didn't lose sight of who the real villain in sports is):

The real villain in this whole thing, IMO, is ESPN. They cannot try to pass themselves off as a news outlet of any sort when they are willing to whore themselves out for an hour as a player’s personal press corps.

It has been apparent for years that ESPN wants to be part of the stories it reports on, but it has never been more plain to see then it was last night.

On another note, I do not support the childness of the Cleveland fans, but it is worth noting where they are coming from. Cleveland has not won a major sports title since 1964 despite fielding three teams (at least since 1970)--and that one isn’t even celebrated by anyone outside of Cleveland because of the NFL’s whitewash of its pre-Super Bowl history.

Yet here, nearly miraculously, was a local player who just so happened to be the best basketball prospect in anyone’s memory. He was not called the Chosen One for no reason. He was the one who was destined to finally break through the wall, to give Cleveland its championship. Twice the team has looked liked the NBA’s best team in the regular season, only to fold in the playoffs.

I’m not saying that those expectations and hopes were fair, that they all should have been thrown on LeBron’s shoulder. They plainly weren’t. Still, I may be a little biased, but I think that all things considered, this has to be one of the biggest kicks in the gut that an athlete leaving a team as a free agent has ever delivered. That doesn’t excuse Dan Gilbert or Cavs fans, but this is not just ARod leaving the Mariners.

The truth of the matter is that I was still a LeBron fan. The most endearing quality of LeBron in a sports sense to me was his support of OSU. He was on that bandwagon prior to the 2002 national championship (an article on his senior season of high school included an account of his enthusiastic celebration of this victory with his teammates), and he remained a friend of the program even after going to Miami, which he didn’t have to do. Sure, OSU is an important college asset of Nike, but Nike has contracts with a million other colleges, there was no need to keep up appearances.

It seemed like a crazy pipe dream in the spring of 2014, but was realistic by summer, and then remarkably came true. LeBron was coming back, to try to lead a new supporting cast, rebuilt largely through the fruits of the lottery picks that never would have come had he stayed (Kyrie Irving, Tristan Thompson, Dion Waters, Kevin Love via trade). For all of the fury that surrounded The Decision, had LeBron’s goal all along been to win a title in Cleveland, he couldn’t have done any better.

However, nothing is assured, and being Cleveland the natural insecurities were ratcheted up a few levels. Had the moment for LeBron passed, was he just far enough past his prime that he could not deliver? Was the supporting cast good enough (or in the case of Irving, healthy enough) to provide him support? Unexpectedly a new question emerged--would the suddenly dominant Warriors serve an insurmountable foil?

Hopefully the answers to those questions will reduce some of the irrationality of Cleveland sports observers (of course, the probability of the Cavs winning when down 3-1 was greater than the probability of a collective of sports fans becoming more rationally). Whatever small change to the city’s sports mindset might result, Cleveland’s overall inferiority complex is not going to change. On the very morning after the Cavs won the world championship, a new banner appeared on the side of a building bragging that the first traffic light was installed in Cleveland in 1914. This will certainly make the political hacks in town next month to do political hack-y things real impressed. Cleveland is a weird place.

And yet I can watch a ridiculously hokey, wildly overproduced local news commercial from 1995 and find it tugging at my inner childhood Indians partisan in a manner I can’t rationally describe. "Give me a reason for believing in Cleveland." Cleveland can surprise you.

Wednesday, May 25, 2016

Great Moments in Yahoo! PBP

Today Yahoo! unveiled a completely new design for their MLB page. Alas, the PBP now reads backwards and is as ill-equipped to deal with unusual plays as ever: