Looking at xK% and xBB% Using StatCast Zones

Mike Podhorzer has recently been publishing articles regarding his xK%, primarily using Baseball-Reference’s strike rates. I have been trying for a few years now to come up with my own using StatCast numbers, and you’d be surprised how little data is required to get a very close xK% and xBB% for both hitters and pitchers.

I love Mike’s work, but that xK% equation is a bit unwieldy, including seven inputs, two of which have a correlation of -.829. It also uses roughly 63% of the pitches seen by hitters by accounting for all strikes, in addition to three other variables on top of that. I wanted to come up with something simpler that didn’t require so much input and wasn’t so overly constrained. After all, if we throw so much data in there that we basically know the outcome before we start, what good is it going forward? To that end, I dove into StatCast to see what might work. Read the rest of this entry »


Introducing Probabilistic Pitch Scores and xWhiff Metrics

With the advent of the Statcast era, a lot of research has been done in attempts to measure the effectiveness of a particular pitch based on its flight characteristics. As has been noted in the past, quantifying a pitcher’s stuff and command is no easy task. However, over the past few months I have worked to build my own models in an attempt to evaluate the “filth” of any given pitch, taking more of a probability-based approach. I introduce to you my Probabilistic Pitch Scores and xWhiff metrics.

When evaluating the quality of a particular pitch, I focused my interest on three different binary outcome variables: whether or not the batter swung at a pitch, whether or not the batter whiffed on a pitch, and whether or not a pitch was thrown for a strike. Thus, my goal was to train three different types of classification models corresponding to each of these variables: a swing, a miss, and a called strike. For the actual outcomes of these models, I was less interested in the model’s decision and more interested in the predicted probability. For example, if a batter swings on a pitch with given flight characteristics, what is the probability that he will whiff? These probabilities were utilized as the basis of my metrics.

Read the rest of this entry »


Can One Month of Statcast Data Be Used To Evaluate Hitters?

You have probably done this if you know about Statcast, “xStats,” and Baseball Savant. You pull up the xStats list, sort by under- or over-performers, and use it to draw broad and sweeping conclusions about your fantasy teams. Which of your fantasy players are poised for quick resurgence, or which of your opponents’ players are prime trade targets? Which guys should you be selling high on before the bottom drops out?

But in the same way that you can’t really sort the FanGraphs leaderboards by ERA minus FIP and just magically find pitching diamonds in the rough (homer rates complicate things…), this is maybe not the best way to be applying our vast wealth of fancy Statcast-based metrics. I’ve personally found that early-season Statcast data is difficult to trust, so I decided to dive in and see what exactly we can learn from one month of xStats.

It turns out there may be something useful here — the method I arrived at after this work would have advised you to buy-in on José Ramírez after his rough start to 2019! But we’ll get to that.

I will dive into gritty details below, but first to quickly outline, here are the major questions I’m setting out to answer (and what I ended up finding):

Read the rest of this entry »


Marcell Ozuna Has a Slice

This article was originally published at Birds on the Black, a St. Louis Cardinals blog. You can find the blog (@birdsontheblack), author (@zjgifford), and artist (@cardinalsgifs) on Twitter.

Back in November, the FanGraphs staff ranked Marcell Ozuna as the seventh-best available free agent. In that article, Kiley McDaniel and the FanGraphs crowd both expected Ozuna would receive a four-year deal, with the median crowdsource estimate coming in at $64 million ($16 million per year) while McDaniel was a little higher at $70 million ($17.5 million per year). Teams could dream on Ozuna’s potential and a return to his 2017 production with relatively minimal risk — since his 2013 debut, Ozuna has consistently produced as an average or better player. Coming into this offseason, he had produced more than 2 WAR in four straight seasons dating back to 2016. Free agents are never a sure bet, but Ozuna seemed pretty close to one at a reasonable price.

Ozuna ended up betting on himself by taking a one-year deal with Atlanta, which was a bit of a surprise. With that context, I wanted to see what happened during his breakout 2017 campaign and what might be holding him back from tapping back into that potential. We’ll start with some numbers: Read the rest of this entry »


Stealing First May Not Be a Crazy Idea

Earlier this year, Major League Baseball reached an agreement with the Atlantic League that allowed MLB to test any new playing rules in Atlantic League games. Five new rules already went into effect in the first half of the season, and a day after the Atlantic League All-Star Game, in addition to testing the electronic strike zone using TrackMan radar, MLB announced four new rules that would go into effect in the second half of the Atlantic League season. One of the four seems to have received stronger criticism on the Internet than others, and that is the idea of stealing first base.

According to this new rule, if a pitch is not caught in flight, the batter has the right to “steal” first base. In essence, this is an extended version of the dropped-third-strike rule that has long been engrained in the baseball rule books. Of course, a dropped third strike has many criteria: it must occur with two strikes, the pitch must be a strike, and unless it occurs with two outs, there cannot be a runner occupying first base. With this new rule, however, batters now have the right to go for first base in any count, regardless the pitch is a ball or strike, and in any base situations. And recently, we witnessed the first steal of first in professional baseball history:

On the second pitch in the bottom of the sixth inning, Alejandro Chacin of the Lancaster Barnstormers threw a wild pitch, which allowed Southern Maryland Blue Crabs outfielder Tony Thomas to steal first base. From the video, we can clearly tell that the players were still adjusting to this new rule, as neither the catcher nor the batter reacted at first. The fact that catcher Anderson De La Rosa took time to react was probably the main reason that allowed Thomas to reach first without a throw. Interestingly, the term “stealing first” might actually be a misnomer, as the play was scored as a fielder’s choice and counted as an 0-for-1, according to Somerset Patriots southpaw Rick Teasley. Read the rest of this entry »


The White Sox Might Have Found A No. 2 Starter For Nothing

The White Sox’ rotation this year can charitably be described as “rocky”. They began the year projected to have the worst rotation in the majors by WAR and thus far they’ve ranked 28th, between the Jeter-decimated Marlins and the aging Rangers. That’s not terribly surprising considering they’ve given out the most walks by far at 4.61 BB/9; besides them, only the Cubs’ rotation is over 4 at 4.21. The White Sox’ rotation also has the lowest strikeout rate in the majors this year at 6.20 K/9. The only thing preventing them from having the worst FIP of any team’s starters is middle-of-pack home run prevention, but their home field is a launching pad come summer.

As I stated before, they weren’t expected to have a good roster of starters, but being a rebuilding club filled with young and therefore volatile players, there was at least theoretically the chance that they made the jump to competence and beyond earlier than expected and surprise people like the Braves have this year. That obviously has not happened, but back in February, when everything is possible, Rian Watt took a look at the surprisingly large error bars in the projections for Chicago’s starters. The backstories of their projected starters agreed with what those large error bars said about a wide range of outcomes.

Lucas Giolito, a former No. 1 global prospect traded to the Sox last year from the Nationals, looked very sharp in spring training, having apparently rediscovered the massive 12-6 curve and some of the fastball velocity that had made him such a vaunted prospect and pairing it with newly found command and an improving, fading changeup. Reynaldo Lopez, fellow right-hander and former top-100 prospect who came over from the Nationals, had disappointing strikeout numbers despite big stuff, between a fastball that averaged 95 MPH, above-average curve and average slider and change– perhaps an improvement in sequencing or location would tap into the strikeouts he clearly had the talent to produce. Carson Fulmer, former No. 7; overall draft pick, has a lively arsenal in which everything moves in unpredictable ways that hitters dislike, albeit unpredictable to him too; perhaps he could make a mechanical adjustment and find the control and therefore success he had in college. Carlos Rodon, former No. 3 overall pick, was out with minor shoulder surgery (bursitis) until June but can flash complete dominance with his overpowering fastball/slider combo from the left side. Everyone knows about the world-class talent of Michael Kopech, who is currently stuck vaporizing poor saps in Triple-A (12.13 K/9!) until he limits his walks to acceptable levels. Bringing up the rear were Miguel Gonzalez, Hector Santiago, and James Shields, three veterans for whom the reasonable hopes were “eat innings better than cannon fodder”.

This article is not about any of the eight pitchers above, or their struggles with control (Giolito, Fulmer), relative successes (Shields), or weirdness (Lopez, who is having some success despite still not getting many strikeouts). Instead, it’s… Dylan Covey?

Yes, the Dylan Covey who ran both an ERA and FIP over seven last year in seventy innings as a rookie, good for -1.1 WAR. Pitching like, well, cannon fodder is not exactly an auspicious start to one’s major league career. Brief background of Covey: He was considered an elite high school arm, the riskiest category of draft picks, thought of high enough to be selected fourteenth overall in 2010 by Milwaukee– one pick after the White Sox selected a certain stick-figure lefty at a little-known Florida college whom Covey out-dueled earlier this June. During his pre-signing medicals, though, Covey was diagnosed with Type 1 diabetes, and he decided not to sign in order to learn how to deal with the disease before the stresses of pro ball. He chose to attend San Diego State and three years later was selected in the fourth round by Oakland.

After another three years of middling results hampered by injuries, Oakland left him off the 40-man roster despite an encouraging AFL and Chicago pounced in the Rule V draft. It was a bit of an unusual choice in that Covey was quite raw, almost akin to the Padres’ Rule V hijacking of prospects straight from A-ball, because Covey had thrown all of six starts at his highest level (Double-A). After hearing that, it probably makes a lot more sense why A) he got rocked the way he did last year and B) there was and is still hope for him. Although he was 25, the rawness showed, but the White Sox were entirely alright with absorbing the losses, as they would only help them pick higher in the 2018 Draft anyways (Nick Madrigal says hello).

Ironically, when he was drafted fourteenth overall in 2010, he was considered as safe as any high school arm could possibly be, on the basis of a low to mid-nineties sinker, above-average curve, ideal workhorse frame (currently listed at 6-2/195), and remarkably clean mechanics for his age. Ground balls, control, good health, and a reasonable number of strikeouts sounds like the perfect profile of a high-floor starter prospect. Of course, it didn’t work out that way in 2010, nor did he really come around while with Oakland. Thus, one might reasonably conclude, this article is being written because he appears to be finally delivering on his talent in his second year with the White Sox.

And so he has. Of course, the disclaimer of “small-sample size” applies here, as Covey has seven starts, and 35.1 innings total in those starts this year, but still, those 35.1 innings have been a complete reversal from his performance in 2017. He’s gotten a shot only because two rotation spots needed filling before Kopech was ready (i.e. past his Super Two deadline). First, Gonzalez went down with a shoulder injury in mid-April; that spot was filled by Santiago sliding from the bullpen into the rotation as he was signed to do. By mid-May, Fulmer’s wildness became too much to bear, and he was sent down to Triple-A to work on that, and Covey was called up to Chicago to get his second shot in the bigs. He’s taken that chance and run with it.

Thus far this year, Covey is the proud owner of a 2.29 ERA, 2.17 FIP, 3.31 xFIP, and 3.48 SIERA, good for a 1.3 fWAR (!) that currently leads all White Sox pitchers. No, I don’t think Covey is suddenly the third-best pitcher in baseball, and yes, that SIERA is a over a run higher than the FIP, and that’s because Covey has yet to give up a home run. That SIERA is still really good, though: among starters this year with at least 30 IP, the highest bar Covey clears, that would be good for 29th, slotting between Blake Snell and Alex Wood. Other pitcher evaluation metrics mostly agree: Baseball Savant’s xwOBA-against judges him at .293, 21st-best among starters. Baseball Prospectus’ DRA, how ever, does not like what he’s done, as his DRA this year is 5.38. There have been 4 unearned runs against him this year, so BBRef’s RA/9 dings him for that but still evaluates him well at 3.31 (Note: two of those unearned runs scored as inherited runners off a reliever). I cannot say why DRA hates him, but when a black-box statistic is in complete disagreement with literally every other ERA estimator, I have to ignore it.

Of course, the instinct of any saber-savvy fan is dismiss this as a fluke, small sample, etc. Anything can happen in small samples– once upon a time, Philip Humber threw a perfect game! That’s what I said, so when I trawled through Covey’s peripherals just to make sure this was a fluke, I kept expecting to find something or another that screamed regression. If there is a statistical red flag for harsh regression beyond his steadfast refusal to give up a home run, it remains as elusive to me as the average Bigfoot. His K% is a bit above average at 22.2% (starters’ average this year is 21.7%), his walk rate is a little better than average at 7.4% (avg is 8.2%), for a just above average K-BB% of 14.8% (avg of 13.6%). His LOB% is a bit low at 71.1% (avg 73.0%), and his BABIP-against is maybe a touch unlucky at .333 (avg .288). His WHIP is a smidge worse than average at 1.30 (avg 1.28). There is, in sum, absolutely nothing out of the ordinary there; by those measures he looks like a league average or slightly above starter. Which isn’t bad, as it suggests that his floor is that of a perfectly cromulent major-league starter, which is already a great outcome for a Rule V pick and vast improvement over last year.

Where Covey starts getting real interesting is when you start looking at the ways in which he might be suppressing home runs. I already told you that Covey’s primary pitch as a high schooler was a heavy sinker, and he’s gone back to his roots with it this year. In 2017, he threw fastballs about 60% of the time, splitting usage about evenly between his sinker and a four-seam. This year, he’s throwing even more fastballs, up to 68.3%, but he’s ditched the four-seam almost entirely; those are nearly exclusively sinkers he’s thrown. The point of a sinker is to get ground balls, and boy oh boy has his sinker done so.

Put simply, Covey’s been a ground ball machine. Among all starters with at least 30 IP this year, he’s tops in ground ball rate at 61.0%. The sinker has done most of that work; when batters put it in play, they beat it into the ground 68.1% of the time, 8th among starters. As one would expect, he’s also not allowed many fly balls; his FB% is a tiny 23.5%, seventh-lowest among his peers. Also unsurprisingly, he’s got the fourth-highest GB/FB, at 2.56, of starters. If his FIP is low because he’s not allowed a home run, well, it’s at least in part because it’s rather difficult to get a home run out of a grounder. When examined more closely, the metrics on his sinker back up its excellent results.

First of all, he’s added some velocity to it. This year his sinker is averaging 94.4 MPH, compared to last year’s 92.9 MPH. The addition of 1.5 to 2 MPH this year versus last is found in all his other pitches, too. Throwing harder across the board: always a good sign! It’s more than just respectably hard. Although Statcast classifies it as a 2-seamer, the pitch has the 29th-lowest average spin rate among either sinkers or 2-seamers this year.

While that and the velocity of the pitch (26th-fastest in the same mix of starters’ 2-seams & sinkers) are both good-not-great numbers, the combination of the two is actually pretty unusual– fastball velocity and spin rate usually have a positive correlation. Less spin is good in this case; the spin is mostly backspin, and the less backspin on a sinker, the more it sinks and (probably) the better it is. Of the 25 starters that throw their 2-seamers/sinkers harder than Covey does, only two– Erick Fedde and Fernando Romero, both rookies with small sample sizes themselves, also have lower spin rates. Stephen Strasburg and Sal Romano also throw harder and barely missed the spin rate cutoff. For comparison, the 2018 preview on Fedde’s FG page describes his sinker as “potentially premium”, Romano and Romero both have their fastballs graded by the FG prospect experts as 70s (plus-plus), and Strasburg rarely throws his 2-seamer.

In short, his sinker is elite for the sum of its parts. It’s generated an exactly league-average 6.8% whiff rate, which doesn’t sound special, but when it’s put in play, hitters can’t help but beat it into the ground. Its grounder/ball in play rate is an incredible 68.1%, 4th among starters and 10th among all pitchers this year. As would be expected, hitters haven’t done too well against it, with a xwOBA against of 0.324, checking in at 13th of all starters’ sinkers/2-seamers.

The three guys ahead of him on the starter list– Trevor Cahill, J.A. Happ, and Marcus Stroman— are interesting for comps, too. None strike out a ton of guys– all have career K/9s under eight– and none walk too many either, like Covey. Unsurprisingly, Stroman and Cahill, sinker/slider righties like Covey, are No. 2 and  No. 3 in starter GB% after Covey. Cahill’s having his best year yet in the A’s rotation, having upped his strikeouts to almost 9 K/9, cut his walks to 2 BB/9, and limiting home runs enough that ERA & ERA estimators are all around 3. Stroman, though he’s been hurt and not pitched well this year, has a track record of four years of being a solid No. 2 starter, especially according to SIERA.

Covey’s secondary pitches– slider (15.6% usage), curve (8.2%) and split-finger changeup (8.7%)– are all about average or better. The slider’s whiff rate is 13.5%, not spectacular but solidly above the league-average slider whiff of 9.0%. It’s not been murdered when it gets hit, either; Statcast’s xwOBA against the pitch is a pitiful .209, good for 16th among starters’ sliders. The change is an effective swing-and-miss pitch too, also with an above-average whiff rate at 15.6%. Hitters haven’t hit the change well either, with a xwOBA against of just .220, 16th among starters’ changeups. The curve hasn’t generated many swings-and-misses (just 2 out of 44 thrown, 4.5%) but hasn’t killed him at an xwOBA of .273, about middle of the pack for starters.

Baseball Savant sure doesn’t think that Covey’s just been extremely lucky in home-run suppression, but just to be sure, I went to go see what xStats.org thought of him. It thinks he should have given up 1.5 homers so far. Ignoring for a moment the fact that one cannot in fact hit half a home run, although a ground rule double seems close to it, that works out to a deserved rate of 0.382 HR/9. Which, in case you’re wondering, would still be good for fourth-lowest HR/9 of starters— Covey of course currently has the lowest of all at 0. Not perfect, then, but damn close to it. The other names in the top 10 lowest HR/9 are unsurprisingly for the most part really good to great pitchers: Arrieta, Nola, Severino, Bauer, Chatwood (???), deGrom, Buehler, Cueto, and Carlos Martinez, in ascending (towards lowest) order.

So that’s Dylan Covey in 2018: a pitcher with an excellent bread-and-butter sinker, two very good secondaries, and a passable fourth pitch. He’s not walking many, striking out close to a batter per inning, getting ground balls like they’re going out of fashion, and bucking the home run trend. I’m particularly reminded of Stroman in overall profile, but Covey has the advantages of size, a bit of youth, a home field with dirt instead of turf (grounders come off turf faster, meaning more hits), and a considerably younger and rangier infield behind him. He’s also got Don Cooper and Herm Schnieder on his coaching staff, which makes it less likely that he’ll be derailed by either mechanical or health issues. I for one didn’t see this coming, but the White Sox’ patience has already been rewarded with an unexpected breakout by Matt Davidson, so why couldn’t they have found another post-prospect gem? It’s at least interesting to note that Dallas Keuchel and Jake Arrieta, probably the best examples of guys who became great pitchers out of more or less nowhere after given time to reinvent themselves on rebuilding squads, are both in the top 20 in ground ball rate for starters– the category, of course, wherein Covey currently reigns supreme. I don’t really know what more to say. Small sample size notwithstanding, how about Dylan Covey, No. 2 starter?

Notes on process: with a small sample size of just seven starts at time of writing, the minimum cutoffs I employed to compare Covey to other pitchers were usually the minimum that he himself cleared– 30 IP with his 35.1 IP, 10 PA for his xwOBA against his curveball that has 13 PAs, etc. As he gets more starts, the exact numbers and rankings will of course change; the rankings are there not to be exact but rather to give some context for the raw numbers, most of which are obscure enough that the average reader likely cannot evaluate how “good” it is. Everyone knows a 2.29 ERA & 2.16 FIP are great, but I doubt many readers can instantly discern how good, say, a xwOBA of .220 against a certain pitcher’s changeup is. I also made the decision to evaluate almost exclusively against other starters’ 2018 years, as the baseball is again different this year and relievers are increasingly a different, turbo-powered breed of pitcher that cannot fairly be compared to starters.


What Would it Have Taken for Aaron Judge to be Clutch?

During one of my recent visits to the Fangraphs home page, while scrolling across the leaberboards, I was confronted by a fact I had once known but had long ago forgotten over this slow and tired off-season. Aaron Judge led the league in WAR! as a rookie?! and by quite a wide margin. That happened last season? Shoot just over a year ago Judge was still relatively unknown and Jeff Sullivan was telling us not to underestimate his power.

This realization conjured up memories of last season’s AL MVP vote, how one of Sabermetrics’ patron saints shook the foundations of Sabermetrics’ most prominent statistical achievement, and how article after article were written about clutch hitting.

This, in turn, reminded me of another leaderboard Judge topped last season, this one more dubious. He led (lagged?) the league with the lowest Clutch score. He was fourth in WPA/LI with 5.85 Wins, trailing only this generation’s Mickey Mantle, Judge’s clone, and some guy who plays for the Reds and just a fractional win behind the leader. In contrast, he ranked just 38th in WPA tied with some guy who used to play in Korea. Add this up and he had by far the lowest Clutch score at -3.64 wins, a full win lower than the rest of MLB save for one blue-eyed Cub.

Which led me to ask the question: What would Aaron Judge have had to do to be a clutch batter? And I don’t mean the obvious answer, “Hit better in high leverage situations“. Duh! He batted an astounding 190 wRC+ in low leverage situations to just a 107 in high leverage at bats. But that’s not the answer I was looking for. I wanted to know specifically, what would Aaron Judge have had to do to be a clutch batter? as in what could we change from his epic near MVP season to bring his Clutch stat into the positive?

So I set to find out.

Using Fangraph’s own Play Log, and with plenty of assistance from BaseballSavant.com and Statcast, I decided to play as one of the “Baseball Gods” and see if I could tweak a few of Judge’s plays to make him more clutch. As a “Fair and Just Baseball God” I wouldn’t be aiming to increase Judge’s overall stat line. If I nudge a groundball a little to turn an out into a single in a high leverage situation, I’d do the opposite in a low leverage situation (Judge had nearly 50 PA’s with a Leverage Index, LI, of effectively 0) nudging another grounder into a fielder’s glove for an out.

Thus his overall stat line and his WPA/LI would remain effectively the same, and since in those low leverage situations no (or nearly no) WPA was added, we’ll only be looking at how the play’s I change increase Judge’s WPA.(And I’ll only be going through the plays I add not the ones I’d need to take away.) I also won’t worry about any of the time traveler unintended consequences stuff, I’ll assume that only the single event changes without it affecting other plays in the same game or others. (I’ll let some of the other “Baseball Gods” worry about that stuff…)

Recall the Equation for Clutch:

Clutch = (WPA)/(pLI) – (WPA/LI)

With my rule that Judge’s pLI (0.95) and WPA/LI (5.85) will remain fixed we are just looking to increase Judge’s WPA.

With that lengthy explanation out of the way, let’s begin!:

Judge Initial WPA = 2.10
_________________________________________________________
Situation #1:

July 27th, Bottom 9, 1 Out, Runner on Third, Yankees down 1.
LI = 5.81 – Actual Play – Judge Fly’s Out to Right. – WPA = -.252

We’ll start with a big one, in fact Judge’s second highest leverage play of his season!
With a chance to tie the game in the 9th, Judge just miss-hits the ball sending it not quite far enough to allow the speedy Brett Gardner to score from third. As you can see, similar hit balls all had the same result:

”7/27/2017”
But as my first act as “Baseball God” I’m gonna adjust this hit ever so slightly, notching Judge’s bat up a millimeter to two to lower the Launch Angle of this hit and allow it to carry just a bit further. Something more like this:

”7/27/2017_Alt”
That should be far enough out to score Gardner giving Judge a Sac Fly.

New Play – Sac Fly – New WPA = .112 – Net WPA Change = .364

Judge’s New WPA = 2.46
_________________________________________________________
Situation #2:

August 2nd, Bottom 8, No Outs, Runner on Second, Yankees down 2.
LI = 2.72 – Actual Play – Strike out swinging. – WPA = -.08

Sometimes the job of a “Baseball God” is rather easy. In this case I’ll just need to do some umpire convincing. In this at bat Judge struck out on a 3-2 slider, but earlier in the at bat, after three wild pitches, here was the 3-0 offering from Bruce Rondon:

”8/2/2017”

Ok, sure, most umpires probably call this a strike on a 3-0 count, but I’m gonna go ahead and give this one to Judge. Ball Four!

New Play – Walk – New WPA = .087 – Net WPA Change = .167

Judge’s New WPA = 2.63
_________________________________________________________
Situation #3:

September 19th, Bottom 2, 2 Outs, Runners on Second and Third, Tie Game.
LI = 2.03 – Actual Play – Fly out to Center. – WPA = -.061

Judge crushed a Jose Berrios offering at 107 MPH:

Here’s what it looked like.

He was just a little under this one, wouldn’t take much more to send this ball out. So we’ll make the charge and turn this loud out into a bomb.

New Play – Three Run Home Run – New WPA = .249 – Net WPA Change = .310

Judge’s New WPA = 2.94
_________________________________________________________
Situation #4:

September 9th, Top 9, No Outs, Runner on First, Tie Game.
LI = 3.40 – Actual Play – Fielder’s Choice to third, out at second. – WPA = -.084

Judge grounds one to third, and nearly into a double play.
Here’s what it looked like.

Thing is, Rougned “De La Hoya” Odor is in such a hurry to turn two that it almost looks like he jumps off Second too early. Take a closer look:

”8/2/2017”

Your guess is as good as mine, but here’s the thing: As a “Baseball God“, I don’t have to guess. I’ll just make the throw from third just a little higher and wider pulling Odor off the bag and leaving both runners safe on a throwing error. Did you know that errors count as positive WPA plays?!

New Play – Reach on Error, Throwing Error at Third, Runners safe at First and Second – New WPA = .109 – Net WPA Change = .193

Judge’s New WPA = 3.13
_________________________________________________________
Situation #5:

August 18th, Top 6, 2 Outs, Bases Loaded, Yankees down 1.
LI = 4.52 – Actual Play – Ground Out to Shortstop. – WPA = -.119

Judge hits a sharp ground ball at 103 MPH.

Here’s what it looked like.

Hit hard, but right into Xander Bogaerts‘ glove for a routine out. But per Statcast balls hit at that Velocity and at that Launch Angle become hits about half the time.

One can imagine Judge hitting this ball just a little closer to the pitcher’s mound, and seeing it get past a diving Bogaerts. With the runners going, that hit would easily score 2.

New Play – Ground Ball Single up the Middle Scoring 2, – New WPA = .275 – Net WPA Change = .394

Judge’s New WPA = 3.53
_________________________________________________________
Situation #6:

June 14th, Top 7, No Outs, Runners on First and Second, Tie game
LI = 2.89 – Actual Play – Fly Out to Left. – WPA = -.085

Judge ropes one into left field, where Eric Young Jr. makes an awkward dive for it.

Here’s what it looked like.

Young makes the out, but just barely. Imagine if his dive is just a little more awkward… That ball probably gets by him and clears the bases.

New Play – Bases Clearing Double to Left Field – New WPA = .219 – Net WPA Change = .304

Judge’s New WPA = 3.83
_________________________________________________________
Situation #7:

June 15th, Top 9, No Outs, Bases Empty, Yankees down 1.
LI = 2.88 – Actual Play – Strike Out Looking. – WPA = -.073

Were picking up steam now! And as a “Baseball God” I haven’t had to work very hard changing these last few plays. Now it’s time to work just a little harder.

Leading off a do or die ninth, Judge took three easy balls, then saw and fouled consecutive fast balls. This set up a full count pitch where Santiago Casilla froze him with a beautiful knuckle curve. Here’s what it looked like.

”6/15/2017”
No doubt that’s a beautiful pitch. But guess what? Umpires sometimes miss calls, especially when they get some inadvertant dust in their eye…

New Play – Walk – New WPA = .110 – Net WPA Change = .183

Judge’s New WPA = 4.02
_________________________________________________________
Situation #8:

September 10th, Top 3, 1 Out, Bases Loaded
LI = 2.26 – Actual Play – Sac Fly to Right. – WPA = -.002

In an RBI situation, Judge blasts one.

Here’s what it looked like.

So Judge clearly gets under this pitch… but he still hit it over 300′ and scores a run.
The thing is the next two times up he did this and this!
I’m just gonna do a little rearranging on when these homers take place…

New Play – Grand Slam to Right – New WPA = .256 – Net WPA Change = .258

Judge’s New WPA = 4.27
_________________________________________________________
Situation #9:

April 18th, Bottom 9, 2 Outs, Bases Loaded, Yankees Down 3
LI = 3.86 – Actual Play – Fielder’s Choice to Shortstop, Out at Second. – WPA = -.100

Judge ends the game on a weakly hit grounder to shortstop.

Here’s what it looked like.

Looks like a routine grounder, but per Statcast similar balls become hits about a third of the time. And we don’t really need a hit here, Tim Anderson looks a little shaky fielding the grounder as it hops to his glove. In a critical situation like this who’s to say he doesn’t boot one? The answer is me, the “Baseball God“. I say he boots it…

New Play – Fielding Error at Shortstop, 1 Run Scores – New WPA = .090 – Net WPA Change = .190

Judge’s New WPA = 4.46
_________________________________________________________
Situation #10:

July 21st, Top 3, 1 Out, Runners on First and Third, Tie Game
LI = 2.12 – Actual Play – Sac Fly to Center. – WPA = +.016

Another well struck ball that just stays in the yard for a sac fly.

Here’s what it looked like.

But Judge would get one more try at Andrew Moore that game, and you may remember it. Judge’s next at bat was that time he broke Statcast!

I’m just gonna move that Statcast breaking smash up one AB if you don’t mind…

New Play – Three Run Home Run – New WPA = .216 – Net WPA Change = .200

Judge’s New WPA = 4.66
_________________________________________________________
Ok, awesome we’re 10 plays in, and as a “Baseball God” I don’t feel like I’ve had to work all that hard. But were still only at 4.66 WPA, nearly a win short of our target. It’s time to pull out the big guns. It’s time to perform a MIRACLE!

Situation #11:

July 30th, Bottom 9, 1 Out, Runners on First and Second, Yankees down 2.
LI = 4.78 – Actual Play – Foul out to First. – WPA = -.112

Representing the go ahead run, Judge pops up in foul ground to the first baseman. You can see his hit in blue in the image below.

”7/30/2017”
(As to why this shows up as a -57° LA I think sometimes Miracle Work messes with Statcast…)

Just a lazy pop-up. Not much a “Baseball God” can do to affect this play without revealing myself to the world. So I’ll just void the play and blows this ball a little further to the right and into the seats where Trevor Plouffe can’t catch it!

So I’ve just given Judge a new lease on this particular at-bat. I hope he uses it wisely. I’ll just assume it goes something like this!

New Play – Walk Off Three-Run Home Run – New WPA = .793 – Net WPA Change = .905

What?! You don’t think that’s fair. Tough! I am Beerpope the Baseball God and this is my Miracle, don’t tell me what’s fair!

Judge’s New WPA = 5.57

And with that spectacular finish, we check Judge’s Clutch score:

5.57 / 0.95 – 5.85 = +.01 Wins

And there you have it. Aaron Judge – CLUTCH BATTER. My work here is done.

So what does this all mean? Really I’m not sure. Does the fact that it took 10 twists of fate and one walk-off miracle just to bring Judge barely into the positive show just how deeply un-clutch he was last season? Maybe. But it may also show us how futile it is to focus of how clutch or un-clutch a batter is if an ump call, miss hit, or bounce here or there in just 10 at bats can invalidate the other 600 plus plate appearances in a player’s season.

I’ll leave that determination to the readers.

Now enough with the 2017 Season. It’s time for me to begin contemplating what Miracles to perform thus upcoming season…

Cheers!


Joe Biagini’s xwOBA and RISP Spread

Would you believe me if I told you that Joe Biagini did a better job minimizing contact quality last year than Marcus Stroman?  I didn’t believe it at first, but it turns out he had slightly better contact quality control on the whole. See the arranged summary table below: (min 500 pitches, showing data for batted balls)

player_name xwOBA
1 Danny Barnes 0.306589888
2 Aaron Loup 0.307355422
3 Roberto Osuna 0.326513158
4 Joe Biagini 0.334128342
5 Ryan Tepera 0.33518593
6 J.A. Happ 0.339169336
7 Dominic Leone 0.340634286
8 Marco Estrada 0.341392086
9 Marcus Stroman 0.355793677
10 Joe Smith 0.368621951
11 Francisco Liriano 0.371231373
12 Aaron Sanchez 0.37646281
13 Mike Bolsinger 0.378370079

xwOBA in this case is a statcast proxy for contact quality, based on launch speed and angle. I’d go on a limb to say it essentially imputes an expected number of wOBA based on the quality of how the hitter squared up the ball, irrespective of what happens after that. Last year, the average xwOBA for a Blue Jays pitcher included in this sample above was 0.344.

Interesting. Biagini’s contact quality was fourth best on the team, but his ERA was third highest among the group. The two higher ERAs were Liariano and Bolsinger (also 11th and 13th highest expected wOBA). This is an example of how situational pitching can ruin you if you let it. Let’s factor in runners in scoring position and compare the same analysis. Below is the same table, except now showing one for runner in scoring position (RISP), 0 for not:

player_name RISP xwOBA
1 Joe Biagini 0 0.299694737
2 Aaron Loup 0 0.302101695
3 Roberto Osuna 0 0.309736842
4 Ryan Tepera 0 0.325156463
5 Danny Barnes 0 0.339150794
6 J.A. Happ 0 0.350223214
7 Marco Estrada 0 0.350911628
8 Marcus Stroman 0 0.352419087
9 Francisco Liriano 0 0.363611702
10 Dominic Leone 0 0.364512605
11 Aaron Sanchez 0 0.369082353
12 Mike Bolsinger 0 0.372388235
13 Joe Smith 0 0.395754386
14 Danny Barnes 1 0.227692308
15 Dominic Leone 1 0.289892857
16 J.A. Happ 1 0.30239604
17 Joe Smith 1 0.30676
18 Marco Estrada 1 0.308904762
19 Aaron Loup 1 0.320270833
20 Ryan Tepera 1 0.363538462
21 Marcus Stroman 1 0.369462185
22 Roberto Osuna 1 0.376842105
23 Mike Bolsinger 1 0.39047619
24 Francisco Liriano 1 0.39261194
25 Aaron Sanchez 1 0.393888889
26 Joe Biagini 1 0.444393258

Look at the two Biaginis! At the very top and very bottom. Without runners in scoring position, Biagini was the best pitcher on the roster in terms of limiting contact quality. Put a guy in scoring position, and he starts getting lit up. Here’s that same table, but sorted by the differences.

player_name RISP.x xwOBA.x RISP.y xwOBA.y diff
1 Danny Barnes 0 0.339150794 1 0.227692308 -0.111458486
2 Joe Smith 0 0.395754386 1 0.30676 -0.088994386
3 Dominic Leone 0 0.364512605 1 0.289892857 -0.074619748
4 J.A. Happ 0 0.350223214 1 0.30239604 -0.047827175
5 Marco Estrada 0 0.350911628 1 0.308904762 -0.042006866
6 Marcus Stroman 0 0.352419087 1 0.369462185 0.017043098
7 Mike Bolsinger 0 0.372388235 1 0.39047619 0.018087955
8 Aaron Loup 0 0.302101695 1 0.320270833 0.018169138
9 Aaron Sanchez 0 0.369082353 1 0.393888889 0.024806536
10 Francisco Liriano 0 0.363611702 1 0.39261194 0.029000238
11 Ryan Tepera 0 0.325156463 1 0.363538462 0.038381999
12 Roberto Osuna 0 0.309736842 1 0.376842105 0.067105263
13 Joe Biagini 0 0.299694737 1 0.444393258 0.144698522

Biagini was not the same person on the mound when threatened with a runner past first. To offer some perspective, that very difference is larger than that between Mike Trout (1st @ 0.437) and Kevin Pillar (130th @ 0.302). You must wonder what some possible explanations of this could be .Sign stealing? The yips? Pitch selection? Let’s look at the 2016 differences table and see if this affected him at all. (min 500 pitches)

player_name RISP.x xwOBA.x RISP.y xwOBA.y diff
1 Jason Grilli 0 0.429316 1 0.229538 -0.19978
2 Drew Storen 0 0.475368 1 0.320645 -0.15472
3 Joe Biagini 0 0.345207 1 0.270319 -0.07489
4 R.A. Dickey 0 0.39697 1 0.337583 -0.05939
5 Aaron Sanchez 0 0.366077 1 0.328248 -0.03783
6 Roberto Osuna 0 0.386113 1 0.350638 -0.03547
7 Brett Cecil 0 0.411931 1 0.379067 -0.03286
8 Marcus Stroman 0 0.362472 1 0.334 -0.02847
9 Francisco Liriano 0 0.351901 1 0.369333 0.017432
10 J.A. Happ 0 0.363058 1 0.386705 0.023646
11 Marco Estrada 0 0.335267 1 0.359102 0.023835
12 Jesse Chavez 0 0.340885 1 0.48161 0.140725

Runners on second and or third in 2016, Biagini pitched to better contact quality.  He was coming out of the bullpen, but it still leaves our question of consistency from last year unresolved. It wasn’t Biagini’s pitch selection either. Based on the table below, his distribution of pitches with and without RISP last year was more or less the same. It’s not as though he wasn’t throwing the breaking ball with RISP.

pitch_type RISP n Frequency
1 CH 0 207 0.146393
2 CU 0 278 0.196605
3 FC 0 145 0.102546
4 FF 0 784 0.554455
5 CH 1 80 0.154739
6 CU 1 138 0.266925
7 FC 1 39 0.075435
8 FF 1 260 0.502901

I don’t know what the real explanation for this is. It likely could just be chance, but I’d like to think there’s a more probable explanation for it. I say the yips! Pitchers aren’t robots, some pitchers must get phased more than others by the pressure of potential runs scoring. But last year on the whole Toronto pitching allowed very similar contact quality regardless of having runners in scoring position.

RISP xwOBA
1 0 0.343178
2 1 0.345718

P.S. first time posting! let me know what you think. had a lot of fun doing this.


Can Wobble Rob(ble) Hitters? Fly Ball Distance and Baseball Precession

In the chase to break the story of the “smoking gun” behind the recent surge in MLB home runs, many a gallon of digital ink hath been spilt exploring possible modifications to the MLB balls, home-run-optimized swing paths, and even climate change. In my field of Earth Science (atmospheric chemistry, to be more exact), it’s rare that a trend in observations can be easily attributed to a single causal factor. Air quality in a city is driven by emissions of pollutants, wind conditions, humidity, solar radiation, and more; this typically leads to a jumble of coupled differential equations, each with a different capacity to impact overall air quality. To my untrained eye, agnostic to the contents of the confidential research commissioned by MLB and others, this problem is no different: a complex mixture of factors, some compounding each other and some canceling others, is likely fueling the recent home-run spike.

This article will examine the potential for a change in the MLB ball minimally explored thus far: reduction of precession due to decreased internal mass anisotropy. What a mouth full! “Precession” and “anisotropy” don’t have the same ring as “juiced ball” or “seam height” (though they may be on par with “coefficient of restitution”). But these words can be replaced with a more familiar (though funny-sounding) word: wobble. This wobble can occur for many reasons, but the most probable explanation in baseball is that the internal baseball guts are slightly shifted from the center of the ball. This could be due to manufacturing imperfection, or in the course of a game, contact-induced deformation of the ball.

Precession, in general, occurs when the rotational axis of an object changes its own orientation, whether due to an external torque (such as gravity) or due to changes in the moment of inertia of the rotating object (torque-free). Consider a spinning top: the top spins about its own axis (symmetrically spinning about the “stem” of the top) while the rotational axis itself (as visualized by the movement of the stem) can trace out a coherent pattern. If imparted with the same initial “amount” of spin in different ways, the total angular momentum (from both rotation and precession) of the top will be the same whether it’s spinning straight-up or precessing (wobbling) in an elliptical path.

Figure 0: Perhaps the most hotly debated spinning top in the world

As with other potential explanations relating to a physical change in the ball, a change in mass distribution could have occurred unintentionally due to routine improvements in manufacturing processes. By getting the center of mass (approximately, the cork core of the baseball) closer to the exact geometric center of the ball, backspin originally “lost” to precession (in the form of wobble-inducing sidespin) could remain as backspin while conserving total angular momentum; increased backspin has been shown to increase the “carry” of a fly ball, therefore increasing the distance (potentially extending warning-track shots over the fence). A deeper discussion of angular momentum can be found in any mechanics textbook or online resource (such as MIT OCW handouts), but the key takeaway when considering a particular batted fly ball is that productive backspin gets converted to non-productive precession (roughly approximated as sidespin in one axis) when mass is not isotropically (uniformly from the center in every direction) distributed. This imparts a torque-free precession on the spinning ball, causing the rotational axis to trace out a coherent shape.

Precession in baseball has not been deeply studied; in fact, when explicitly mentioned in seminal baseball physics resources, it is noted as a potential factor that will be ignored to simplify the set of physical equations. Together, dear reader, we shall peek behind the anisotropic veil and explore how precession might impact fly-ball distance, and by extension, home-run rates.

***

For those of us with some experience throwing a football, even just in the park, we can picture the ideal “backyard Super Bowl” pass: a tight spiral that neatly falls into the outstretched hands of the intended receiver. The difficulty of executing such a perfect throw is evident in the number of nicknames for imperfect throws that wobble (precess) on their way up the field short of their intended target (see “throwing ducks” re: Peyton Manning). In football, the wobbly precession of a ball in flight is typically blamed on the passer or credited to a defender for deflecting it (or in some cases, allegedly, a camera fly wire). It’s not as easy to imagine such behavior in baseball: even in slow-motion video shots of fly balls, the net spin of the ball is dominated by backspin. In addition, the nearly-spherical shape of a spinning baseball has significantly different aerodynamics than the tapered ellipsoid used in football. However, even a small amount of precession has the potential to shave yards off the distance of a football pass; therefore, impacts of precession are certainly worth exploring in the game of baseball.

As a sometimes-teacher (I have taught two laboratory classes at MIT), I strongly believe in the power of simple physical models to qualitatively inform trends in the not-so-simple real world. Therefore, for the first step of exploring the effect of ball precession in the game of baseball, I have turned to the wonderful Trajectory Calculator developed by Dr. Alan Nathan. The Calculator numerically solves the trajectory of a batted ball by computing key physical properties in discrete time steps. While many physical attributes of the ball are calculated in the various colored fields, any of them can be overwritten with custom values.

Figure 1: Fly Ball Distance with Nathan Trajectory Calculator defaults, conversion of backspin to sidespin

In Figure 1, I use the Trajectory Calculator to explore the effect of sidespin conversion on a single fly ball with the same initial contact conditions as the default (100mph exit velocity, 30-degree launch angle, default meteorological conditions), with the total spin set to 240 radians per second. Backspin is not converted to sidespin in a one-to-one fashion: because of the Pythagorean relationship between these factors, total spin is equal to the square root of the sum of the squares of sidespin and backspin. Therefore, to conserve angular momentum, a 10% reduction in backspin (216 rad/s) yields 104.6 rad/s of sidespin, which together lead to a ~1% decrease in fly ball distance from 385.3 ft to 381.3 ft.

With all of the assumptions made here, notably that introduction of precession can be simulated as pure conversion to sidespin to conserve angular momentum, the effect of precession on the flight path is clear but rather modest in this simple approach. However, the Calculator results show that by reducing the “wobble” in a ball’s trajectory, it will carry further. A league-wide reduction in precession would mean that balls would, on average, travel further, leading to an uptick in home runs. If decreased precession would also decrease the effective drag the ball experiences in flight, the effect of increased fly-ball distance could be even further enhanced.

A more realistic exploration of precession will require further modification to the modeling tools at hand. Following Brancazio (1987), which studied the effects of precession on the trajectory of a football, and additional follow-on work, a precession-only physical model can be developed to explore more complex aspects of the problem posed here. Elements of this precession-only model can be fed back into the Nathan Trajectory Calculator, but without a full understanding of some unconstrained physical constants and mechanical aspects of the pitch-contact-trajectory sequence, a tidy figure in the style of Figure 1 will be difficult to produce.

Again, as I mentioned above, I find simple models to be effective tools for teaching concepts. Therefore, let’s consider a “perfect” baseball to be a completely uniform, isotropic sphere, as in Figure 2. This perfect ball is axially symmetric and should not have any precession in its trajectory due to changes in its moment of inertia (I). Now, let’s add a small “spot mass” (that doesn’t add roughness to the surface) on the surface of the ball along the axis of rotation corresponding to pure backspin (the x-axis here). This ball with a spot mass should approximately represent an otherwise-perfect sphere whose center of mass is slightly shifted in the x-direction.

Figure 2: (A) real baseball, (B) perfect sphere, (C) sphere with a point mass at the surface, and (D) sphere with slightly offset center of mass approximately equivalent to (C)

If the model ball has a mass m1 that is isotropically distributed through the entire sphere, and a point mass with mass m2 that is located on the surface along the x-axis, the moment of inertia can be calculated in each direction, summing the contributions from the bulk mass m1 and the point mass m2 (Figure 3).

Figure 3: Moments of inertia for isotropic ball (mass m1) with a point mass (m2) at the surface

Of course, the mass of a real baseball isn’t isotropically distributed, and there is no such thing as a “point mass” in reality; however, by exploring different combinations of m1 and m2 that sum to to mass of an actual MLB baseball (5.125 oz, as used in the Nathan Trajectory Calculator), the ball can be distorted in a controlled manner to explore the effects on precession and fly-ball distance.  Using a set of equations derived from Brancazio (1987) Equation #7, the initial backspin of a ball (omega_x0) can be calculated given an initial total spin (omega), the variable B (the “spin-to-wobble” ratio indicating the number of revolutions about the x-axis per precession-induced “wobble”, a function of the moments of inertia I_x and I_yz), and the angle of precession (built into the variable C, with theta being the angle between the x-axis and the vector of angular momentum when precessing, similar to the angle between a table and the “stem” of a spinning top).

Equation Block 1: Derivations from Brancazio (1987) used in a simple model of baseball precession

The limitation of this approach is that in order to explore the theta-m2 phase space, we must prescribe a priori an angle theta at which the precession occurs. By instead solving for theta from equation 5 above (Figure 4), we can get a sense of the possible values for theta by prescribing the fraction of omega that is converted to precession (the variable A, a mixture of omega_y and omega_z, also called “effective sidespin”).

Figure 4: Contour plot of theta (degrees) with respect to ranges of m2 and variable A (effective total sidespin)

Figure 4 shows that angles between 0 and 6 degrees are reasonable for the conditions explored using the approach from Brancazio (1987) as translated to baseball. So let’s turn to equation 6, using a range of angles from 0 to 6 degrees, to explore the effects of precession on backspin omega_x (Figure 5).

Figure 5: Contour plots of backspin (omega_x) and effective sidespin (variable A) with respect to m2 (as % of m) and theta (degrees)

Great, the effect of a point mass along the x-axis of the ball can be quantified in this model! The effect is modest, but has the potential to slightly decrease the distance of an identically struck isotropic ball. But there is one major limitation to the model as currently shown: when the angle theta is chosen a priori, there is no capacity of the model to correct to a more physically stable angle. In fact, along the entire x-axis of the plots in Figure 5, where m2 = 0, the ball should be completely isotropic and therefore no precession would occur; a small initial theta would likely be damped out over a small number of time steps. In addition, the contours of constant omega_x in Figure 5a curve in the opposite sense than might be expected: increasing m2 should lead to more pronounced procession. On the other hand, this very simple model does not take into account the possible effects of torque-induced precession caused by gravity (extending the effect of mass anisotropy alone), nor does it account for additional drag impacting a precessing ball. More study is needed to further elucidate the possibility of precession having a considerable impact on fly-ball distance; however, unlike the sometimes-empty calls for “further exploration” of minimally promising leads in academic journal articles, I intend to execute such investigation.

All of these limitations are inherent in the fact that, without outside data to constrain the physics of precession as it applies to baseball, the problem we are trying to solve with this simple model is an ill-posed problem in which there is not a unique solution for a given set of initial conditions. Luckily for us, we live in the Statcast age where position, velocity, and spin of the baseball are all continuously measured (if not fully publicly available). In addition to benefits gained from Statcast data, this problem can also be further constrained by experimental data on MLB balls. Finally, an opportunity to put my skills as an experiment-first, computational-modeling-second scientist, to use! Stay tuned to these pages for follow-up experiments and data analysis in this vein.

The conspiratorial allure of an intentional ball modification directly induced by Commissioner Rob Manfred is visible on online comment sections far and wide; however, many of the most credible explanations for ball changes are benign in Commissioner intent and perhaps attendant with improvements in ball-manufacturing processes. In any case, there are likely multiple facets to the current home-run surge. Ball trajectory effects due to precession have traditionally been ignored to simplify the problem at hand; this initial exploration shows that due to the difficulty of the problem, that was likely a good trade-off given the data available in the past. In the future, however, past work in diverse areas from planetary dynamics to mechanics of other sports can be used alongside new and emerging data streams to help determine the impact of precession on fly-ball distance.

 

Python code used to generate Figures 4-5 can be found at https://github.com/mcclellm/baseball-fg

Special thanks to Prof. Peko Hosoi (MIT) and Dr. Alan Nathan for providing feedback on early versions of this idea, which was born on a scrap of paper at Saberseminar 2017.


Using Statcast Data to Measure Team Defense

As I’m sure you all know, Statcast allows us to measure the launch angle and velocity for each batted ball. These measurements afford us the ability to estimate precisely the expected wOBA value of every batted ball. Due to the skills of the opposing defense (as well as, admittedly, factors like luck, weather, and ballpark quirks), these estimated wOBA values are often drastically different from their actual values. That is the idea behind Expected Runs Saved (xRS), a metric that I have created to measure team defense. What follows is a discussion of the xRS methodology and some results.

The methodology: The calculation of xRS is actually quite simple. I started by downloading Statcast data from Opening Day through August 29th using Python’s pybaseball module. I then created a dataset consisting of all fair batted balls (excluding home runs) during that time frame. Conveniently, the downloaded data already has the expected wOBA value (based on exit velocity and launch angle), and the actual wOBA value (based on the outcome of the play) for each batted ball. Since we want to penalize teams for making errors, I changed the actual wOBA values for errors from 0 to 0.9 (the value of a single). Then all we have to do is take the average of each metric by team, find the difference, convert that to run values, and we have Expected Runs Saved.

Note that xRS is quite a bit more simplistic than UZR or DRS, as it doesn’t include any of the defensive value derived from keeping baserunners from taking the extra base, preventing steals, turning double plays, etc. While these surely play a role in run prevention, they are less important than converting batted balls into outs, and since I have a full-time job I decided to keep it simple and ignore them.

The results: Let’s start with the most obvious question: which team has the best defense?

It’s the Angels, and it’s not particularly close. While their pitchers have allowed a lot of hard contact (.323 batted-ball xwOBA, 28th in baseball), their actual wOBA on contact is 2nd in baseball at .291, trailing only the Dodgers (.284), who, as Jeff Sullivan recently noted, excel at inducing weak contact.

On the opposite end of the spectrum are the Blue Jays, who have been generally good at generating weak contact (.305 batted-ball xwOBA, 5th in baseball) but terrible at converting those weakly hit balls into outs (.322 batted ball wOBA, 28th in baseball).

In both cases UZR tends to agree, ranking the Angels and Blue Jays 1st and 27th, respectively. Due to (I think) the simplicity of the model, the run values for xRS are quite a bit more extreme than those of either UZR or DRS, but it ranks the teams in generally the same order. At the very least, xRS doesn’t disagree with UZR and DRS much more than the latter two disagree with each other.

Two teams that xRS likes a lot more than UZR and DRS are the Mariners (2nd in xRS, 11th in UZR, 15th in DRS) and Yankees (4th in xRS, 13th in both UZR and DRS). Meanwhile, it dislikes the Dodgers (12th in xRS, 3rd in UZR, 1st in DRS) relative to the other metrics, as well as the Reds (28th in xRS, 5th in UZR, 4th in DRS). Why is this happening? I really don’t know. Could be some defensive components I have left out of xRS, could be ballpark effects, or it could just be that defensive metrics are weird. It remains a mystery. Such is baseball, and such is life.