[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
THE BOOK cover
The Unwritten Book
is Finally Written!

Read Excerpts & Reviews
E-Book available
as Amazon Kindle or
at iTunes for $9.99.

Hardcopy available at Amazon
SABR101 required reading if you enter this site. Check out the Sabermetric Wiki. And interesting baseball books.
Shop Amazon & Support This Blog
RECENT FORUM TOPICS
Jul 12 15:22 Marcels
Apr 16 14:31 Pitch Count Estimators
Mar 12 16:30 Appendix to THE BOOK - THE GORY DETAILS
Jan 29 09:41 NFL Overtime Idea
Jan 22 14:48 Weighting Years for NFL Player Projections
Jan 21 09:18 positional runs in pythagenpat
Oct 20 15:57 DRS: FG vs. BB-Ref

Advanced

Tangotiger Blog

A blog about baseball, hockey, life, and whatever else there is.

Linear_Weights

Linear_Weights

Wednesday, October 02, 2024

Component Run Values: TTO and BIP

Tarik Skubal got 228 outs on strikeouts, facing 753 batters. Since the league average strikeout rate is 22.6%, then the league average pitcher would get 170 strikeouts on 753 batters. Skubal therefore got 58 more strikeouts than the league average.

The run value of an out, strikeout or otherwise, in 2024 is roughly -.264 runs. In other words, the run potential is reduced by .264 runs for every strikeout.

Since Skubal is +58 on strikeouts, and the run value is .264 runs for each strikeout, then Skubal saved about 15.4 runs on strikeouts.

Here's how Skubal looks for every event, where plus is good for the pitcher, and minus is bad:

  • +15.4 SO
  • + 7.9 BB+HBP
  • +10.5 HR

  • + 5.0 2B+3B
  • + 2.9 1B+ROE
  • - 2.7 Fielded Outs

The total of all that is +39 runs, which leads MLB in 2024.

Notice also that I broke the events into two: the top set are what is called the Three True Outcomes, (TTO, or the unfieldable balls), while the bottom set are balls in park (BIP, or the fieldable balls).

Skubal is +34 in TTO and +5 in BIP. In other words, most of Skubal's value derives from Skubal himself without relying on his fielders.

The top pitcher in TTO in 2024 is Chris Sale at +40 runs, while he was -7 runs in BIP. That's right, Sale got below league average results on fieldable balls. Whether that is directly a result of Sale being a poor pitcher, or a bad job by the fielders, or a bad job by the team in setting up the fielding alignment, well, that's a different discussion. The key is to separate them in this manner, so we can focus on the one aspect, TTO, most in Sale's control, while acknowledging the other aspect, BIP.

Paul Skenes was fourth in TTO: +25 runs. He was +3 in BIP. Crochet third at +25 in TTO and -10 in BIP.

As you can see, our top 4 in TTO totalled +123 runs, while they were -9 runs in BIP. In other words: they got fantastic results when not relying on their fielders, and got below league average results when relying on their fielders.

How about pitchers who got fantastic results with their fielders? Bryce Miller looks like this:

  • +3.3 SO
  • +5.4 BB+HBP
  • +0.0 HR

  • + 5.6 2B+3B
  • + 9.8 1B+ROE
  • + 9.3 Fielded Outs

All in all: +9 runs on TTO and +25 runs on BIP. Overall, that's +34 runs. Because he got most of his value on BIP, the understanding is that some of that value is not about the pitcher themselves, but rather his fielders or his team. Officially, he carries the stat line. In reality, he's the figurehead for everything that the pitcher and his fielders do.

So, what does this presentation buy us? Well, if it's not apparent, the TTO is essentially the same thing as FIP. Whereas FIP is set to the ERA scale, this presentation focuses on runs. Now, you may think: well, isn't ERA runs? Yes. But, for some reason the FIP-naysayers focus on that scaling to ERA to claim FIP is not a stat that describes what actually happened.

And in the case of runs on TTO, it's very clearly about describing what really happened. We take a direct path from event to runs.

What also happens by focusing on runs and breaking it into components is that now everything adds up very clearly and cleanly. It opens the door to seeing how players do year by year, and so we can see how much run value a pitcher gets on his TTO and his BIP. Indeed, we can see the run value at each event (SO, BB, HR, 2B, 3B, field outs, etc).

Anyway, this is how run values, wOBA, and FIP all tie together. They are all basically talking about the same thing, but just focus on different parts of the game or uses different scales.

(1) Comments • 2024/10/02 • Linear_Weights

Friday, January 05, 2024

To the sublime CoreWOBA from the ridiculous OPS

One of the saber stars from twenty years ago point out that you can use calculus to make sense of the ridiculous mixing of denominators of OBP and SLG that OPS insists upon.  Using his result, it is the same thing as saying this:

  • BB = 1
  • 1B = 1 + PA/AB
  • 2B = 1 + 2*PA/AB
  • 3B = 1 + 3*PA/AB
  • HR = 1 + 4*PA/AB

That "PA/AB" is the ridiculous part of OPS.  Now, watch what happens when I change all those "1" to "2", and remove that PA/AB (meaning we just treat PA/AB = 1).

  • BB = 2
  • 1B = 2 + 1
  • 2B = 2 + 2
  • 3B = 2 + 3
  • HR = 2 + 4

Which of course is this:

  • BB = 2
  • 1B = 3
  • 2B = 4
  • 3B = 5
  • HR = 6

The above is the numerator of CoreWOBA.  

Why settle for the monstrosity that is OPS when CoreWOBA makes it so nice and simple? Yes, yes, I know what you are going to say.  That's called: Inertial Reasoning.  I've been hearing the arguments for twenty years.  They sound no different today than they did then.

Friday, November 17, 2023

Blake Snell or Spencer Strider?

Blake Snell had a .266 wOBA. But because his BABIP was so incredibly low (.256), the rest of that wOBA, viewed through FIP gave us a good, but not great, FIP of 3.44. FIP is agnostic as to that BABIP. Hold that thought.

Spencer Strider had a .278 wOBA. But because his BABIP was so incredibly high (.316), the rest of that wOBA, viewed through FIP gave us a great, even outstanding, FIP of 2.85. FIP is agnostic as to that BABIP. Hold that thought.

So, was Snell a little bit better overall because of his wOBA, or was Strider far better because of his FIP? Ok, let's bring that thought about BABIP to the forefront.

Since each pitcher allowed about 400 batted balls in play (BIP, excludes HR), then that difference of .316 and .256, or .060 per BIP comes out to a total of 24 hits (.060 x 400 = 24). FIP says: I don't care. And it can say that in the same way that OBP says: I don't care if someone has 120 walks and 10 HR and someone else has 80 walks and 50 HR. OBP is not the last word in overall production. This is why we have wOBA. It can balance that.

Similarly, FIP is not the last word in overall production. Pitchers of course have fielders to help, or hurt them. Fortunately, we track that, at the pitcher level, right here.

Spencer Strider's fielders were actually league average. So, that .316 BABIP of his? That's all his doing. He deserves that. And so, that .278 wOBA? Yes, that's his. He deserves that. As wonderful as his FIP was, well, FIP is not the last word. And given evidence of average fielders, then wOBA is the last word for Strider.

How about Snell? Well, his fielders were definitely above average, at +8 when he was on the mound. Indeed, most of the Padres pitchers benefitted from stellar fielding. Still, that's +8 above average, and since Strider had league average support, that difference between the two is 8 hits. So, that's 8 hits that we can bump up his wOBA by. With 742 PA, we can bump up Snell's wOBA by 8/742 or .011. And since he had an unadjusted wOBA of .266, we can have a fielding-adjusted wOBA for Snell of .277.

Well, well, well. Snell and Strider are, overall, nearly identical.

Indeed, once you park adjust (Petco is pitcher-friendly), Strider pulls slightly ahead. But, let's not talk about park factors, as you might be able to make the argument that Petco affects Snell differently, and maybe he doesn't get all the benefit. Let's call them even. Overall.

Now, Snell is famous for giving up alot of walks. Alot. Like ALOT. But not as much with runners on, and so, he can make walks less damaging. And especially that he gives up very few HR with runners on. Just 4.

Strider on the other hand gave up 10 HR with runners on. And he gives up alot more walks with runners on, making them more costly. And a huge share of his strikeouts are with no runners on. And with no runners on, a strikeout is identical to any other kind of out. Strikeouts get their extra value with a runner on 3B and fewer than two outs.

Here is how their wOBA splits look like, with bases empty (.282 v .263) and with runners on (.245 v .301). So, one pitcher drops his wOBA by 37 points when they can be more damaging, while the other increases by 38 points when they can be more damaging. I don't even have to tell you which one is Snell and which one is Strider.

Pitchers of course change their approach based on the ball-strike count, and naturally with runner-out scenarios. Batters too for that matter. Heck, even the fans have a different reaction in watching the game based on the changing conditions. But how much of that context matters? Does it matter just a little, or totally?

At a high level view, after adjusting for fielding support and park, Snell and Strider were pretty much equals. At a field-level view, Snell clearly saved more runs than Strider.

In your view: in 2023, were they in fact equals, because you see things from a high-level view? Or was Snell noticeably better because you see things from a field-level view?

(1) Comments • 2023/11/17 • Linear_Weights Pitchers

Tuesday, September 26, 2023

Acuna and Betts, a smidge of a difference

As basestealers: Acuna has 55 more SB (worth about 10 more runs) and 10 more CS (costing 4 or 5 more runs), for a net 5 or 6 runs. As baserunners (on batted balls): they are even.

Now for defense. Betts has played 55% as RF and 45% as an infielder. This makes it a bit tricky, so let's try it anyway. For outfield range, Betts is ahead by 7 runs. For OF arm, Acuna is ahead by 4 runs. So, a net +3 for Betts in the outfield.

Betts in the infield has been 2 runs below the average infielder. Of course, the average fielding infielder is much more valuable than the average fielding outfielder. Given the amount of time Betts has played there, it's roughly a 4 run adjustment needed. So, Betts ends up being 2 runs a better fielder than a neutral fielder, when evaluated for his infield play.

Add the two together, and Betts is ahead by about 5 runs as a fielder.

In other words, the baserunning/fielding pretty much cancel out, so you can just evaluate them as batters.

As batters: Acuna and Betts are both leadoff batters, so face a similar amount of PA with a runner on 1B and less than 2 outs. Yet Acuna has 10 more DP. That's worth about 3 runs in favor of Betts.

Acuna and Betts have almost identical rate stats. Their wOBA has Acuna ahead by 5 points (Acuna also ahead by 5 points in OBP and SLG). Truist is just slightly more conducive for batters, to the point that their wOBA, adjusted for park, are essentially even. That's why their wRC+ is 170 for Acuna and 169 for Betts.  That makes Acuna ahead by 1 run.

So as a batter, Betts is ahead by 2 runs.

Playing Time: Acuna has come to bat 45 more times, which is worth about 5 or 6 runs.

Add it all up and Acuna is ahead by 3 or 4 runs, thanks to simply playing more. Put in a margin of uncertainty, and Acuna is a ahead by a smidge.

(3) Comments • 2023/10/19 • Linear_Weights

Sunday, April 02, 2023

Strikeouts v other outs

The run value of the out is similar to the run value of the strikeout. Therefore, to evaluate the AVERAGE PLAY, there's not much difference (overall). For specific plays, naturally a strikeout with a runner on 3B and less than 2 outs is highly preferred to the defense. At the same time, a ground out with a runner on 1B and less than 2 outs is highly preferred to the defense.

To evaluate the PLAYER, then things are very different. For a pitcher, the strikeout is HIGHLY indicative of quality talent. For a batter, the strikeout in isolation can't be used. It's all part of their profile. A HR hitter will naturally have more strikeouts. So, there's a balance there.

(3) Comments • 2023/04/06 • Linear_Weights

Tuesday, February 21, 2023

Who is the most fun player in MLB, outside of Ohtani?

These are the actual run values of events (rounded to nearest tenth for ease)

  • -.3 strikeouts
  • -.3 other outs
  • +.2 SB
  • +.3 BB
  • +.5 1B
  • +.8 2B
  • +1.1 3B
  • +1.4 HR

Based on these polls, this is what I found:

Poll #2: 17.5 singles = 12.5 strikeouts, or singles valued at 1.4X the strikeout. That's less than its intrinsic run value.

Poll #3: 15 SO = 5 walks, or strikeouts valued at 3X the walk. Fans really don't like walks.

Poll #4: Fans FAR prefer 3 doubles and 1 out to 4 singles.

Poll #5: Fans somewhat prefer 4 triples to 3 HR and 1 out.

Poll #1: Fans somewhat prefer doubles to steals

These are the aesthetic run values

  • -.3 strikeouts
  • +.1 BB
  • +.4 1B
  • +.6 SB
  • +.9 2B
  • +1.2 3B
  • +1.4 HR

Getting rid of the decimals and the signs, these are the Aesthetic Fun points, consistent with the polls:

  • 1 BB (+HBP, -IBB)
  • 3 SO
  • 4 1B
  • 6 SB (+CS)
  • 9 2B
  • 12 3B
  • 14 HR

So which player is the most fun? In 2022, Aaron Judge led with 3.3 fun points per plate appearance.  He was followed closely by Jazz Chisolm with 3.2 and Mike Trout at 3.1.  And in a surprise for 4th place: Trayce Thompson at 3.0.  Keston Hiura was a bigger surprise at 5th place.  Fans like strikeouts, and it just means the fun was there for someone, whether you root for or against the player.  Julio Rodriguez in 6th.  Rest of the top 10: Dylan Moore, Michael Harris, Oneil Cruz, Byron Buxton.  And the least fun player?  David Fletcher with only 1.6 fun points per PA.

(7) Comments • 2023/02/24 • Linear_Weights

Monday, February 06, 2023

Lies, Damned Lies, and Batting Average

Let's start with an assumption of fact: the wOBA weights are properly calibrated to represent a single metric for batting. Here are those weights:

  • 0 outs
  • 0.7 BB
  • 0.9 1B
  • 1.25 2B
  • 1.6 3B
  • 2.0 HR

BB in this case is unintentional walks plus hit batters. You add all that up, divide by plate appearances, and you get the batter's wOBA. It is centered to close to OBP. Which means it is centered so that the average weight of all those non-out values you see is exactly 1. If I were to ask you to create your own weights, where the only constraint is that the average is 1, you'd come up with something similar.

Now, all those components can be split up into various functions. There's getting on base, there's extra bases, there's hits, there's walks. There's alot of different things going on in there.

APPROACH 1

Let's say central to your view of players is simply getting base hits. Since the value of a single if 0.9, let's give all the hits a value of 0.9, and see what is left. Here is what is left:

  • 0 outs
  • 0.7 BB
  • 0 1B
  • 0.35 2B
  • 0.7 3B
  • 1.1 HR

The walk was completely ignored, so let's take care of the walk, and give it a value of 0.7. So this is what we've done so far:

  • 0.9 hits
  • 0.7 walks

And this is what is left:

  • 0 outs
  • 0 BB
  • 0 1B
  • 0.35 2B
  • 0.7 3B
  • 1.1 HR

You might see a pattern on the extra base hits. Let's give 0.35 units for each extra base, on a hit. That means 0.35 for a double, 0.7 for a triple, and 1.05 for a homer. This is what we have:

  • 0.9 hits
  • 0.7 walks
  • 0.35 extra bases on hits

And this is what is left:

  • 0 outs
  • 0 BB
  • 0 1B
  • 0 2B
  • 0 3B
  • 0.05 HR

So, we were able to pretty much account for all the weightings by focusing on three facets of a batter's play: base hits, walks, and extra bases on hits. This means that getting base hits, aka batting average, is central to the entire offensive production: it gets the most weight, at 0.9.

APPROACH 2

Now, let's try a different approach. I am not a basehits kind of person, but rather a getting on base kind of person. As a reminder, we start with our wOBA weights:

  • 0 outs
  • 0.7 BB
  • 0.9 1B
  • 1.25 2B
  • 1.6 3B
  • 2.0 HR

And I see a weight of 0.7 for Reaching Base. So, let's subtract that from all the reaching base events:

  • 0 outs
  • 0 BB
  • 0.2 1B
  • 0.55 2B
  • 0.9 3B
  • 1.3 HR

You know what else I see? I see a weight of 0.35 for each base on hit. That means 0.35 for a single, 0.7 for a double, 1.05 for a triple and 1.4 for a homer. So this is what I've got:

  • 0.7 Reaching Base
  • 0.35 each base on hits (or Total Bases)

And this is what is left:

  • 0 outs
  • 0 BB
  • -0.15 1B
  • -0.15 2B
  • -0.15 3B
  • -0.10 HR

Well, well, well. Looks like the hits are being overweighted. I need to assign a value of -0.15 for each basehit. Once I do that, I have this:

  • 0.7 Reaching Base
  • 0.35 Total Bases
  • -0.15 basehits

And I am left with this:

  • 0 outs
  • 0 BB
  • 0 1B
  • 0 2B
  • 0 3B
  • 0.05 HR

That's the same thing I was left with, with the first approach.

APPROACH 1 v 2

So, we have two distinct views to the exact same thing. We have Approach 1:

  • 0.9 hits
  • 0.7 walks
  • 0.35 extra bases on hits

And we have Approach 2:

  • 0.7 Reaching Base
  • 0.35 Total Bases
  • -0.15 basehits

Approach 2 is analogous to: OBP, SLG, BA. As you can see, you want to weight OBP twice as much as SLG, and BA really has a negative effect (meaning the lower the BA the better). Now, I should say that because of the denominators of OBP and SLG/BA not being the same, you can't exactly do the math this way. The closest we can come to matching the wOBA weights is to do something like: 1.7 * OBP + SLG (and ignoring BA).

Approach 1 is close to the Bill James approach of Batting Average and Secondary Average. What Bill did was to try to give shape to Batting Average, to distinguish between an "empty" average and one that was poorly represented by batting average. He basically merged all the walks and extra bases on hits together, weighing them equally. So, whereas the proper weights are this:

  • 0.7 walks
  • 0.35 extra bases on hits

Bill would, effectively, give the weights below. While he has to really undervalue walks relative to extra base hits, it's not terrible.

  • 0.45 walks
  • 0.45 extra bases on hits

And since the value of a hit is 0.9, then to match the wOBA weights, we're basically saying you would do something like this: 2*BA + SEC.

CONCLUSION

So, there you go, once you take a position as what is central to the production of a batter, you can weave in everything to tell the story you want to tell. My approach is that what is central to the production of a batter is reaching base. And that's why I can get by using OBP and SLG and ignoring BA.

Some of y'all out there might think that getting basehits is what is central. Fine. Then you want BA and SEC. What you cannot do is start with BA and then try to work in OBP and SLG. That doesn't work.

(5) Comments • 2024/01/07 • Linear_Weights

Saturday, December 03, 2022

Ryan Howard v Bobby Abreu, 2008

In 2008, Ryan Howard hit 48 HR, scored 105 runs, and was attributed with 146 RBI. How is that only 20% above a league average batter (a 120 wRC+), meaning barely above the the league average 1B? I mean, for gosh sakes, he's credited with only creating 107 runs. If he scored 105 runs runs, and was attributed 146 RBI, he must have created much more than 107 runs. Right? Let's take a walk.

The first thing we need to do is find a common unit of measurement. You might have 237 coins in your coin jar, but that doesn't tell you if you have 2.37$ or you have 474$, or anything in-between. Each coin has its own value. The same applies with singles, doubles, triples, homers, walks, hit batters and so on. We need a way to figure out how much each of those are worth.

Howard got on base 237 times. What we care about is each of those different denominations of getting on base. How much is a walk worth? How much is a homer worth? Roughly speaking, it follows this kind of value system:

0 points: any batting out

2: BB, HBP, excluding IBB

3: 1B

4: 2B

5: 3B

6: HR

In other words, if you had three walks (2 points each or six points total), you would trade that for one HR and two outs (6 points total).

Let's go thru Howard's coins, and we'll do the same with Bobby Abreu. In 2008 Abreu had himself a fine season, with 100 runs scored, 100 RBI, 20 HR. Typical Bobby star-not-superstar season. Prima facie, it seems to pale in comparison to Howard. But, let's take a look.

Here is how many points Howard gets:

134 = 2 x 67: BB, HBP, excluding IBB

225 = 3 x 75: 1B

104 = 4 x 26: 2B

20 = 5 x 4: 3B

288 = 6 x 48: HR

Add it up, and we get 771 points. Excluding his 17 IBB, he had 683 plate appearances.

How did Bobby Abreu do?

144 = 2 x 72: BB, HBP, excluding IBB

351 = 3 x 117: 1B

156 = 4 x 39: 2B

20 = 5 x 4: 3B

120 = 6 x 20: HR

Add it up, and we get 791 points, 20 MORE than Howard. Excluding his 2 IBB, he had 682 plate appearances, just one fewer than Howard. So, Abreu actually had a better offensive season than Ryan Howard.

Those 20 extra points can be converted into runs. Roughly speaking, you can divide by 3. So, that's about six more runs generated by Abreu over Howard, over the same number of opportunities.

Because of all the rough approximations I am doing here, they are actually even closer than that. If we rely on Fangraphs, we can see Abreu was 23rd in the league at +21 offensive runs above average, while Howard was close behind in 25th, at +18, or just a three run gap between these two very different, but as it turns out, similarly impactful, offensive seasons.

Howard actually had a great clutch season, which is how he got so many RBI. Abreu ALSO had a great clutch season in 2008. RE24 is really the bridge here. The above point system ignores whether those events occurred with runners on base, or bases empty. Naturally, the more runners on, the more impact. That's where RE24 comes in, evaluating each event based on the 24 base-out states. Howard was an impressive +38 runs above average, while Abreu was an almost-as-impressive +36 runs.

How you want to handle performance with runners on base is really an individual-user kind of thing. Some folks want to do it, and others don't. We can leave that discussion for another time. In this particular case, since Abreu almost matched Howard in the extra impact, it doesn't change our conclusion that Howard's offensive season was similar to that of Abreu.

Thursday, November 17, 2022

W/L using IP and ER

Someone asked how to do this. It's a pretty straightforward process. Let me assume a league ERA of 4.00. You have a pitcher that pitched 6 innings and gave up 2 ER.

A 4.00 ERA in 6 innings is 4/9 * 6 = 2.67 ER as league average. So 2 ER is 0.67 fewer than league average. While we know the conversion is close to 10:1 in terms of runs to wins, for ER, it's closer to 9:1. So, 0.67 ER is 0.074 wins.

Now, we need decisions. 9 innings is one decision. So 6 innings is 0.67 decisions, or 0.333 W and 0.333 L. Since we have +.074 wins, then our expected Wins is .333 + .074 and expected Loss is .333 - .074. And so, .41 wins and .26 losses (and naturally 0.33 no decisions).

All that make sense?

I haven't tested this, but it's going to be pretty darn close, and might just need some tweaks here and there.

You'd obviously want to cap things at 0 and 1, so this is a good way to make sure a blowout game doesn't have an undue effect.  A 9-inning 0 ER is going to come in at 0.944 W.  But, what you can do.  Not trying to be perfect here, just trying to get you most of the way there.  And in any case, 0 ER in 9 innings could still be a loss because of unearned runs.  Who knows, maybe it should be 0.944.  That's where the #AspiringSaberist comes in.

Have fun!

Sunday, November 07, 2021

Statcast Lab: Markov Sequences, 4-seamers on 0-1 counts

(Click to embiggen)

This chart shows run values (per 100 pitches) by the strike zone at plate crossing, limited to 4-seam fastballs, 2018-2021, on 0-1 counts, for RHP.

Each box is 3 inch v 3 inch square. The numbers are “floored”, meaning that “0” means 0 to 2.99 inches, and “3” means 3 to 5.99 inches and so on. (I am also including LHP data, but “mirroring” their data. So technically, all the negative side numbers are on the arm-side, while the positive side numbers are glove-side. For your sanity, just presume RHP.)

So, what do we see? Well, at about 30 inches (2.5 feet) off the ground at close to the center of the plate, run values inside the strike zone are maximized. In other words: run value inside the strike zone peak when they are down the middle. At +/- 12 inches from the center of the plate (so 24 inches wide), we see that pitches still favor the pitcher (even though the plate is 17 inches wide). When batters swing at those pitches that straddle the edge of the strike zone, that’s what happens. Once you go beyond that range, at 15-51 inches off the ground, +/-15 inches to either side of the middle of the plate, it starts to favor the batter. And beyond that, it greatly favors the batter (basically, most of those pitches are called balls).

Question

As I said, that’s at the 0-1 count. What I am interested in is this question: are those run values dependent, at all, on the prior pitch’s location, speed and/or movement? In this case, since I am looking at the 0-1 count, I am now asking about the first pitch strike. Did the kind of pitch thrown for a strike as a first pitch impact how the batter approaches the 0-1 4-seam fastball?

Commit Point

Let’s talk about the decision making region of the batter. The batter does NOT react based on where the pitch crosses the plate. He needs a certain amount of time to react. I’ve nominally set that value as 1/6th of a second (167 msec). Why 1/6th? Well, I looked at a series of checked swings, frame by frame, picking out the “point of no return”, the point at which the batter can no longer safely bail on his swing. At that point, he is committed to swing. And I found that point to be around 1/6th of a second. Interestingly enough, baseball physicist of the 1980s Robert Adair presumed it would be 175 msec. Adair had excellent instincts for his theories, given such limited data available to him.

This is how it looks for a RHP facing Jacob deGrom, trying to decide, at the commit point, whether he sees a 4-seam fastball or a slider. We can see that the trajectory holds very closely (on average), which means that a good deal of the time they intersect. And by the time these pitches reach the plate, they are off by well over a foot.

So, I’m going to do something I’ve never done before, and it’s critical to do it this way for what we are discussing. I’m going to show the run values at the Commit Point. In other words, instead of freezing the pitch at plate crossing, like above, I will instead freeze the pitch 167 msec prior to plate crossing. And that’s because it is at that point that the batter has to make his final decision to bail or continue to commit on his swing. We are taking the snapshot at the last point the batter can make his key observation.

This is how it looks for the 4-seam fastball, on the 0-1 count. (Click to embiggen)

Now we can see the run values by the location of the pitch at the Commit Point. While it LOOKS like the strike zone, it is not. It’s that zone at the Commit Point. We see that the run values favors the pitcher when the pitch is 0 to 15 inches toward the arm-side (where 0 inches is the line from the middle of the plate to the middle of the mound). The ideal height of a 4-seam fastball (on an 0-1 count) is 45 to 60 inches off the ground at the Commit Point. And we can see the more the pitch is away from the ideal zone at the Commit Point, the more the pitch favors the batter.

Ideal Zone at Commit Point

So, from this point onwards, we are going to focus on that Ideal Zone. At the Ideal Zone, we see the run value is roughly minus 1 run per 100 pitches. (The more minus, the more runs are reduced, and so favors the pitcher.) That’s on an 0-1 pitch, for a 4-seamer. This is what the pitcher is targeting if he’s throwing a 4-seamer. Now, we can finally ask the question:

Given that the pitcher wants to throw at this zone, does it matter what the prior pitch was? Does it matter if the prior pitch was a 4-seamer or not? Does it matter how close that first strike pitch was to our current 0-1 pitch in terms of the path it followed? Well, we can finally answer that question.

Markov Prior Pitch Type

So the first thing we’ll look at is see what the prior pitch was, and what the run value is of the 2nd pitch (4-seamer on 0-1 count) that crossed the Ideal Zone.

  • -1.5 runs, when prior pitch was 4-seamer
  • -1.1 runs, when prior pitch was Cutter
  • -0.9 runs, when prior pitch was Sinker
  • -0.7 runs, when prior pitch was Changeup
  • -0.3 runs, when prior pitch was Slider
  • -0.2 runs, when prior pitch was Curve

So, the first interesting finding is if your 4-seamer (on an 0-1 count) is able to cross through the Ideal Zone at the Commit Point, it helps if the prior pitch was a 4-seamer as well. In other words, a 4-seamer first pitch strike followed by a 4-seamer in the Ideal Zone at the Commit Point is what is the most effective. The least effective is the first pitch curve followed by the well-placed 4-seamer.

Markov Prior Pitch Path

Now, what about the actual path of the prior pitch? How close does it need to be to our 0-1 4-seamer in order to be most effective?

Let’s start with the first pitch 4-seamer. When the second pitch is within 3 inches of the first pitch, the run impact is -2.3 runs per 100 pitches, which stands as the best pitch to throw. When the second pitch is between 3 and 9 inches of the first pitch, the run impact is -1.5 to 1.6 runs per 100 pitches. And the more the 2nd pitch deviates from the first pitch, the less effective is that 2nd pitch. In other words: consistency.

I should note that this is at the league level. If there is a bias (and I’ll look for it next time), it would be based on the identity of the pitchers. Until I run that check, everything I’ve said is not definitive (but it is promising). This is the chart for the 4-seamer, based on how much off the trajectory the first pitch is, at the Commit Point:

  • -2.3 runs: 0 to 2.99 inches
  • -1.5 runs: 3 to 5.99 inches
  • -1.6 runs: 6 to 8.99 inches
  • -0.9 runs: 9 to 11.99 inches
  • -0.6 runs: 12 to 14.99 inches
  • -0.2 runs: 15 to 17.99 inches

Now, how about if the 1st pitch was a sinker? In that case, the results were really all over the place. The pattern was up-and-down, thereby suggesting that throwing the 2nd pitch 4-seamer is not dependent on the path of the 1st pitch sinker. But, more work to be done there.

When the 1st pitch is a cutter: it was most effective when the two pitches were within 6 inches of each other, with a run impact of -1.8 runs. So, pairing the cutter-4seamer, along the same path (at the Commit Point) was very effective.

When the 1st pitch is a changeup: the WORST path is when the changeup and 4-seamer shared the same path. In other words, starting with a 1st pitch changeup and then throwing a 2nd pitch 4-seamer, the pitcher does NOT want the two paths to be the same, as this is PLUS 0.2 runs (per 100 pitches). Taking a guess here: the batter is sitting on a 4-seamer, and the pitcher has given the batter a roadmap with the changeup. The batter will be able to jump on the 4-seamer. The most effective 4-seamer on the 2nd pitch, when the 1st pitch is a changeup, is to have a deviation of at least 6 inches.

How about the 1st pitch is a slider? This one is also all over the place. The most effective first pitch slider had a deviation of at least 9 inches, or at most 3 inches. The least effective 2nd pitch 4-seamer is when it deviates from the 1st pitch slider by 3 to 9 inches.

Finally, the 1st pitch curve: results are also all over the place, so no firm conclusions to draw.

Next Step

As I noted, I need to break this down at the individual player level to see how general the trends holds, especially with back-to-back 4-seamers.

And of course, looking at all other plate counts, next starting with the 1-0 count and working our way toward the 3-2 count. There’s 12 plate-counts, so, that means at least 12 blog posts.

Wednesday, July 21, 2021

Behind the wOBA curtain

Patriot has been doing great work on all things Runs Created (and Above Average).  In this episode, he brings in wOBA.

***

I'd also say the largest benefit (which I didn't think of at the time, but appreciated afterwards) of wOBA: having a "negative" RAA is still valuable, which wOBA "hides" because of its scale.  

Imagine if instead of ERA we'd make RAA as the central stat for pitchers: you'd have someone with an ERA 5% worse than league average on 200 IP come out as "worse" than someone with an ERA 10% worse than league average on 50 IP.

So I think the main issue is that once you combine two dimensions (quality and quantity) into one dimension (RAA), you necessarily told reader you made a choice.  Which is ultimately what slowed down the adoption of Pete Palmer's method.

RAR (or WAR), gave us that happy medium where we could combine things into one dimension, and so filled that gap of RAA which is too extreme one way for some and RC which is too extreme the other way for others.

0 = valueless is a useful construct

Monday, April 12, 2021

Statcast Lab: How much is extra speed, movement and SSW worth?

​Two years ago, I developed a simple methodology to show how much impact pitch speed has on performance. I created five groups of pitch speed, on a pitcher by pitcher basis: for each pitcher, I put his 10% fastest fastballs in bin 1, he next 20% fastest in bin 2, his 10% slowest fastballs in bin 5, his next 20% slowest in bin 4, and the remaining 40% in bin 3. I repeated this for each pitch type. In this way, I have each pitcher having proportionate representation.

I’m now going to do it for a slew of metrics, and I’ll make it even simpler. I’ll create three bins instead of five. The 25% fastest for each pitcher + pitch type go in bin 1, the 25% slowest in bin three. And the middle 50% in bin two. The net result? Since 2016: The fastest pitches drop runs allowed by 0.14 runs per 100 pitches, while the slowest pitches increase runs allowed by 0.31 runs per 100 pitches. So we have a pretty convincing case here that speed has a pretty powerful effect. Not that this is a surprise directionally. But in terms of magnitude, that’s where the discovery happens. Showing it as a table, we get:

  1. -0.14
  2. -0.09
  3. +0.31

How about the amount of break on a pitch?

  1. -0.23
  2. -0.06
  3. +0.35

Once again, directionally it’s where we think (more break helps the pitcher). And interestingly, the range in performance is wider on break than speed.

We learned something new a few weeks ago, the Side Force of a pitch. What I will show you is whether that side force is arm-side (bin 1), or glove-side (bin 3).

  1. -0.04
  2. +0.04
  3. -0.12

The seam-shifted wake affects both side force and lift force. Magnus affects only the lift force. So, looking only at the side force, we are in effect looking at a SSW effect. And here we see a decent sized effect whether arm-side or glove-side. (We’ll want to look at it in another ways, whether it’s “with the current” or “against the current”, so to speak. We’ll do that next time.)

Now the exciting part, and what will make Barton Smith and his students happy. Since the SSW effect both the side and lift forces, we can look at the total SSW effect. In this case, it’s analogous to the total break of a pitch.

  1. -0.29
  2. -0.02
  3. +0.24

Here we see that the 25% of pitches with the most amount of SSW will drop runs by 0.29 runs per 100 pitches, which is pretty substantial. And this is even greater than the effect of break. In terms of the least amount of SSW, runs increase by 0.24 runs per 100 pitches. Interestingly, this is not as bad as the lack of break, which we saw had an effect of +0.35.

This is just a high level view, but the results look promising. Not sure why I didn’t look at the Magnus-only effect, but I’ll do that next time.

Update, here's the Magnus force numbers:

  1. -0.11
  2. -0.13
  3. +0.28

It's interesting here that we get the divergence directionally and even in magnitude between the two extreme groups.  But even the middle group now comes into play, pretty strongly.  Having an "average" amount of Magnus is just as good as having alot of effect from Magnus.  This could be due to the fact that you don't want to have too much movement, as it may break the pitch outside the strike zone.  But interestingly we don't see that effect with the SSW, that you can't have "too much" SSW.  Anyway, interesting findings for a high-level view.

(6) Comments • 2021/04/13 • Linear_Weights

Saturday, March 13, 2021

Post-introducing Core wOBA

So on Twitter recently, and in the past, and really from the beginning 15 years ago, have stayed away from wOBA because it looks complex. Even introducing Standard wOBA hasn’t helped. So, here is Core wOBA:

  • 2 x BB+HBP
  • 3 x 1B
  • 4 x 2B
  • 5 x 3B
  • 6 x HR

All divided by PA

(No exceptions for IBB, sac bunts, SF, reached on error.)

The above is also 2*(H+BB+HB) + TB if you prefer it that way.

How does this look for 2020? League average is luckily right around 1.000.


This allows you to also like it to wRC+ and wOBA if you are fans of those scales:


  • If you wanted wRC+, it would be:

200*CoreWOBA - 100

Soto for example has a 1.526 CoreWOBA, which would comes in at 205, compared to his actual wRC+ of 201.

Adell has 0.674, which translates to 35 compared to his wRC+ of 29.


  • If you wanted wOBA from CoreWOBA, multiply by 0.320.

Soto 1.526 times 0.320 comes in at 0.488, and his wOBA is .478.

Adell .674 translates to .216 compared to his wOBA of .212

(1) Comments • 2021/03/13 • Linear_Weights

Friday, September 25, 2020

Run Values By Pitch Count

The typical way we think of run values is at the plate appearance level. This is something most of us learned through my saber-hero Pete Palmer in The Hidden Game of Baseball in the 1980s.  The idea is that every base-out situation has a run potential.  And after the event, the new base-out provides a new run potential.  The CHANGE in those run potential is what we attribute to the event.  A strikeout with bases empty and 0 outs for example turns the run expectancy from .481 runs to .254 runs. And so, the change in run expectancy, or the run value, of the strikeout is -0.227 runs.  If the bases are loaded with one out, a strikeout has a run impact of a whopping -0.789 runs.  So, the impact of the event is highly dependent on the circumstances.  

We can go beyond the base-out situation though.  We can include the inning and score.  That's what Win Expectancy and Win Probability Added address.

We can go the other way, and in addition to the base-out, also include the ball-strike count.  In other words, going from a 0-0 to a 0-1 count is good for the pitcher and bad for the batter.  A called or swinging strike changes the run potential downwards.  But we can go even further and combine the ball-strike count and the base-out situation.  And so going from 0-0 to 0-1 with bases empty 0 outs has a run value of -0.04 runs.  But doing so with bases loaded and 1 out is -0.14 runs. ​I posted this long overdue chart a couple of years ago.  That shows the run expectancy of all 288 base-out-ball-strike states as well as the run values.

These run values is what you see on Savant, like on the Swing-Take Leaderboard.

Wednesday, June 17, 2020

When Heroes Collide

This is a good article by Patriot on the issues Bill James had with Pete Palmer and Linear Weights, back in 1985.  

Linear Weights is the by-product of the foundation of how I tackle sabermetrics: the run expectancy matrix.  The RE matrix was first described to me in The Hidden Game of Baseball, by Pete Palmer and John Thorn.  It was an instant classic, and time continues to be kind to that marvel of a book.  The RE matrix was an epiphany to my young mind, and set me on the course of my life.

  

Monday, March 30, 2020

Should you aggressively steal, on an 0-2 count, with 2 outs and Trout batting?

On an 0-2 count, with a runner on 1B, and 2 outs, the run expectancy is 0.14 runs.

  • If the runner is CS, that puts it at 0
  • If the runner gets a SB, and the batter is now at 1-2, that puts it at 0.22 runs.

So, with an average batter, you gain .08 on success and lose .14 on failure. You need to be successful 64% of the time.

Now, I said with an AVERAGE batter. What if it was Mike Trout? The best hitter in the league adds 0.10 runs per PA in an average situation. More with a runner on base, less with 2 outs. 

***

Interlude:

In order to have that .14 runs, what does that mean? Well, it means that the runner on 1B, and all future batters, will score an average of 0.14 runs. Sometimes it will be 0, sometimes 1, sometimes 2 or more.

  • 79% of the time, the batter is out, ends the inning, and so 0 runs score.
  • 17% of the time, the batter gets on base without pushing the runner home. When that happens, we expect 0.4 runs from those runners, and then another 0.1 runs from all future batters. That's 0.5 runs.
  • 4% of the time, the runner scores, with the batter also scoring (via HR, so that's 2 runs), or the batter is on second or third (so worth another 0.3 runs, plus the runner or 1.3 runs). Let's say overall, this is an average of 1.6 runs.

Add it up:

  • 17% x 0.5 runs
  • + 4% x 1.6 runs
  • = .15 runs

So, based on this back-of-envelope calculation, we're pretty close. That's how the run expectancy works.

***

On an 0-2 count, with a runner on 1B, and 2 outs, now we want to know the run expectancy with Mike Trout batting. Since Trout has entered an 0-2 count 984 times in his career, we can somewhat reasonably rely on this data. His OBP is .280, but once you add in his ROE, he's safe 29% of the time. So he makes an out 71% of the time.

  • 21% he gets on base without scoring the runner, which we know is worth 0.5 runs.
  • 8% he scores the runner, and half of those he scores himself, and the other half he's on base. That's an average of 1.65 runs.

Add it up:

  • 21% x 0.5 runs
  • + 8% x 1.65 runs
  • = .24 runs

So, Mike Trout is worth +0.09 runs with a runner on 1B and 2 outs.

***

Now, let's go back to the beginning, and replace the average batter with Mike Trout.

On an 0-2 count, with a runner on 1B, and 2 outs, the run expectancy is 0.14 runs with an average batter, or 0.09 runs more with Trout, or 0.23 runs.

  • If the runner is CS, that puts it at 0. HOWEVER, Trout starts the next inning. And that is worth about +0.08 runs. So, a CS does not put you down to 0 runs, but 0.08 runs.
  • If the runner gets a SB, and the batter (Trout) is now at 1-2, that puts it at 0.32 runs.

So, with Trout, you gain .09 on success and lose .15 on failure. You need to be successful 63% of the time.

***

In other words, it's the same thing. And therefore, having Trout batting with an 0-2 hole with a runner on 1B is worth about the same thing as Trout starting a clean inning, and leaving the previous runner on base.

***

This is all logical and back-of-the-envelope math. If someone wants to run an OOTP simulation (pick it up in the 8th inning if you can), I'd love to see those results.

Thursday, December 05, 2019

Statcast Pre-Lab: Layered WAR by Action Events

When the Marlins made their comeback against the Cubs in the 2003 playoffs, I described how WPA worked on a play by play (and in the case of the fan, pitch by pitch) basis.  A couple of weeks ago, I described Layered Hit Probability, all the various layers we have to go through in order to explain the how/why that a play happened.

?Sam Miller lays it all out with what we are up against if we try to go to the ultimate, and describe all the baserunning and fielding involved in a play.  And he makes the salient point:

To give credit on all of them means building statistical systems that can make assumptions that hold true in as many cases as possible -- and that don't require hours (and that don't rely on personal opinions) for each of them.

What Sam did is identified what we call Action Events.  At every Action Event, we stop the play, and understand the landscape.  We identify what is the run potential (actually win potential) at that point in time.  Then we fast forward to the next Action Event and ask the same question.  And we capture that change, and assign that change to the change agent(s) between the two Action Events.  And on and on we go, much like I described with the Marlins/Cubs, but far more in-depth, as Sam has done.  With the key point that we make sure it all adds up, as Sam showed.

And once we have it all broken down for all plays in an inning or a game or a season, we can tally it all.  You can see it in the Cubs/Marlins:

The tally:

Prior + SS = +.076

Prior + Alou = +.051

Remlinger = +.001

Remlinger + Fielders = -.016

Dusty = -.017

Fan = -.031

Prior = -.051

Gonzalez = -.184

Farns + OF = -.271

Prior + OF = -.476

Manager = -.017

Fan = -.031

Pitchers = -.368

Fielders = -.502

TOTAL: -.918 (.018 – .936 = .918)

And the kicker is going to be, that once we have a Statcast WAR, that we may be able to explain the PLAYS, we may be introducing a bunch of random variation into a PLAYER.  We'll be taking three steps forward on explaining baseball, but we may be running in place in explaining a baseball player.  This is why FIP has such a strong footprint, taking the bird's eye view in explaining a baseball player.  You have to be careful in conflating the IDENTITY of the players involved in a play, with the INFLUENCE of the player (as opposed to the effect of random variation).  And this gets into the bittersweet symphony of explaining baseball, which I tried to describe in this two-part thread from a while ago.

Friday, November 08, 2019

Statcast Post-Lab: What does the difference between Actual wOBA and Estimated wOBA tell us?

Actual wOBA minus Estimated wOBA (or wOBA minus xwOBA): I would not call the difference "luck" (or "Random Variation").

wOBA is a combination of batter skill (plus Random Variation), pitcher skill (plus Random Variation), fielder skill (plus Random Variation), fielder alignment, park impact (plus day to day variation).

xwOBA (on a single play) strips some portion of the Random Variation from the batter.  Everything else is still in play.

As you aggregate all the xwOBA on a batter level, most of the batter-based Random Variation goes away.  So, sample size helps in limiting the Random Variation.  As for pitcher skill+variation, most of that goes away, simply because of the wide varying opponents a batter will see over 600 plate appearances (PA).  And same for fielders.  

However, because half of a batter’s PA are at the same park, the park impact now becomes a systematic bias.  Sample size now HURTS, because now, we are reinforcing that bias.  So, the more PA you have, the much more you need to account for the park.

So, if you think of xwOBA and wOBA at the single-play level, you don’t really have to worry about the park, because it’s just one of many variables at play.  Comparing an xwOBA of .650 to an actual wOBA of .900 for a single play (a single in this example) doesn’t really change the conclusion if you park adjust the Actual wOBA of .900 to account account for Coors as .880.  On a single-play, the park isn’t really noticeable.

Tuesday, July 30, 2019

Trout has a .441 OBP and .441 wOBA: what does that mean?

?The IBB notwithstanding (*), it means that he does not disproportionately excel at any one part of the game: he's great across the board.

(*) Unfortunately, OBP includes IBB, while wOBA treats them with indifference.  So what I'm about to say is not technically perfect, but it is illustrative.

There are plenty of ways to get to .441 wOBA.  It's all about the tradeoff.  In OBP, you can have one more walk and one fewer HR, and your OBP would stay the same.  But your wOBA wouldn't.  In SLG, you can have four more singles and one fewer HR and your SLG would stay the same.  But your wOBA wouldn't.  It's clear in the OBP tradeoff, it's a bad trade.  It's less clear in SLG, but definitely 4 more singles is preferred to one fewer HR.  Basically, OBP's tradeoff is lopsided in one direction and SLG is lopsided in the opposite direction.  Which is why OBP+SLG (or OBPxSLG) "works".

Anyway, what wOBA does is PROPERLY set the tradeoff.  The Standard wOBA weights are:

  • 0.7 BB, HB
  • 0.9 1B, ROE
  • 1.25 2B
  • 1.6 3B
  • 2.0 HR

So, what does this mean?  Well, roughly speaking, if you can get one more walk (+0.7) and one more double (+1.25), you would give up a HR (+2.0), and by definition an out.  That preserves your wOBA at whatever it was.

Trout has 34 Home Runs.  If he were to have ZERO HR, he'd be worth the SAME if he could get, in return, 76 more singles.  So that's the tradeoff: 34 HR and 42 outs that he gives away, and he gets in return 76 singles.  You can come up with any such tradeoff, and the wOBA of the player won't change.

Unlike OBP and SLG, where the tradeoffs don't make sense, wOBA has the tradeoffs balanced properly.

And the bonus feature is that when a player's wOBA equals that player's OBP, that means that all the walks and singles and doubles and HR are proportionate to each other similar to the way they are proportionate to the league.  The league has 2.2 walks per HR, and Trout has 71 unintentional walks to his 34 HR, or 2.1 walks per HR.  

(6) Comments • 2019/09/11 • Linear_Weights

Wednesday, May 29, 2019

When should you pinch hit for your pitcher?

?What I'll describe is a straight forward situation, a rule of thumb.  Hopefully this can guide you in your approach to thinking through the problem.

This is what you need:

  • The leverage index of the situation 
http://www.insidethebook.com/li.shtml )
  • The hitting talent of your pitcher (find his wOBA on Fangraphs 
https://www.fangraphs.com/statss.aspx?playerid=10131&position=PB)
  • The pitching talent of your pitcher (use Steamer)

So, for step 2, Strasburg has a wOBA of .177, which is about .140-.150 points below league average.  To convert to runs, divide by 1.25 (or multiply by 0.8).  So, that's about -0.11 runs.  We convert that to wins by dividing by 10, or -0.011 wins.

Suppose in step 1, the LI is 3.0.  That means the win impact is multiplied by 3x.  And so -0.011 wins is really -0.033 wins for this situation.

For step 3, let's assume that Strasburg allows runs at 70% of the league average, or -30%.  And if the league average is 4.5 runs per game, meaning 0.5 runs per inning, then 30% of that, or 0.15 runs, is what Strasburg saves you per inning.  And in terms of wins, you divide by 10, or -0.015 wins.

Now, the LI for a starting pitcher to start the inning is going to be close to 1.  So, while we do want to apply the LI, it's going to not really matter for the first 6 innings or so.  Therefore, Stras will save you 0.015 wins per inning.  If he can give you 2 more innings (because his pitch count is low), then Stras will save you 0.030 wins.

As you can see, that's close to what you give up with his hitting in a high LI situation.

Anyway, that's how you can approach the issue, and if you dive in more for particular situations, you can probably come up with some decent rules of thumb (rule of thumbs?).

Page 1 of 7 pages  1 2 3 >  Last ›

Latest...

COMMENTS

Nov 23 14:15
Layered wOBAcon

Nov 22 22:15
Cy Young Predictor 2024

Oct 28 17:25
Layered Hit Probability breakdown

Oct 15 13:42
Binomial fun: Best-of-3-all-home is equivalent to traditional Best-of-X where X is

Oct 14 14:31
NaiveWAR and VictoryShares

Oct 02 21:23
Component Run Values: TTO and BIP

Oct 02 11:06
FRV v DRS

Sep 28 22:34
Runs Above Average

Sep 16 16:46
Skenes v Webb: Illustrating Replacement Level in WAR

Sep 16 16:43
Sacrifice Steal Attempt

Sep 09 14:47
Can Wheeler win the Cy Young in 2024?

Sep 08 13:39
Small choices, big implications, in WAR

Sep 07 09:00
Why does Baseball Reference love Erick Fedde?

Sep 03 19:42
Re-Leveraging Aaron Judge

Aug 24 14:10
Science of baseball in 1957

THREADS

October 02, 2024
Component Run Values: TTO and BIP

January 05, 2024
To the sublime CoreWOBA from the ridiculous OPS

November 17, 2023
Blake Snell or Spencer Strider?

September 26, 2023
Acuna and Betts, a smidge of a difference

April 02, 2023
Strikeouts v other outs

February 21, 2023
Who is the most fun player in MLB, outside of Ohtani?

February 06, 2023
Lies, Damned Lies, and Batting Average

December 03, 2022
Ryan Howard v Bobby Abreu, 2008

November 17, 2022
W/L using IP and ER

November 07, 2021
Statcast Lab: Markov Sequences, 4-seamers on 0-1 counts

July 21, 2021
Behind the wOBA curtain

April 12, 2021
Statcast Lab: How much is extra speed, movement and SSW worth?

March 13, 2021
Post-introducing Core wOBA

September 25, 2020
Run Values By Pitch Count

June 17, 2020
When Heroes Collide