Making Pitching Decisions Based on Predictive Modeling Part 2: In-Game Usage

In my last article, I built a model to predict the performance of every single at-bat to help with making bullpen decisions. As a reminder, I used a random-effects model with the random variables being times through the order and platoon matchup and the fixed effects being pitcher and hitter wOBAs.

I decided I wanted to take a look at this model with a whole game and an opportunity arrived with game 5 of the ALDS between the New York Yankees and the Tampa Bay Rays. As many of you know, the Rays are notorious for making many analytically inclined decisions, from using an opener to having used the 4 man outfield most in the majors. But going back to game 5, I got very curious as they were making pitching changes, they did not allow a pitcher to go more than 2.2 innings. 

The starting pitcher of that game was Tyler Glasnow and he was on two days of rest, so he was not able to last a long time anyway. But what interested me was how they paid attention to times through the order, Glasnow faced the whole lineup once and was pulled, same thing for Nick Anderson, Peter Fairbanks faced 8 hitters, and Castillo saw the last 7.

Knowing what we know about the Rays, I think we can probably infer that this was intentional. So with all of this being said, let’s take a dive in and see the differences in predicted matchups if the Rays were to keep these guys in longer. 

First Change: Glasnow to Anderson

Glasnow came into this game with a regular season ERA of 4.08 and an xERA of 3.11, so he was pitching well, but was getting a bit unlucky. He was also striking out hitters at a 38.2% clip, which was in the 97th percentile. 

As for Anderson, he has broken out in the past two seasons and has become one of the best relievers in baseball. In 2020, Anderson held hitters to a .141 wOBA, struck them out 44.8% of the time, and had a FIP of 1.35. He is elite and is one of the best relievers in the game.

Anderson came in to replace Glasnow after he had finished exactly one trip around the lineup, this change happened with one out in the second inning and Glasnow was at 74 pitches. So how did this move affect the game?

Well, since Glasnow had gone once through the order, the scary top of the order for the Yankees was coming up. On this day, it went DJ Lemahieu, Aaron Judge, Aaron Hicks, Giancarlo Stanton, and the home run champ Luke Voit. According to my model, when a pitcher sees a lineup for the second time, the hitter’s predicted wOBA goes up by about .0106. So if Glasnow were to face the beginning of the order again, he would have an average predicted wOBA of .341. 

Meanwhile, if Anderson were to face that part of the order for the first time, he would have a .187 predicted wOBA. That’s a very significant change of .154 wOBA points! The Rays are a very analytical team, so maybe they noticed this!

Second Change: Anderson to Fairbanks

Just like Glasnow, Anderson faced the whole Yankee lineup once, which meant that Pete Fairbanks came into the game facing that top of the order as well. Fairbanks, like many of Rays pitchers, was great in 2020. He had a 91st percentile K% at 33.3%, a 78th percentile barrel% at 4.8%, and an xwOBA against of .274. 

So how does my model evaluate Kevin Cash’s decision? For the next five hitters in the order, it says that Anderson would have a .198 wOBA and Fairbanks would have a wOBA of .336. So as stated before, Anderson was extremely good this year, so my model takes his skill into account over Fairbanks facing the lineup for the first time. 

This is where I believe this model possibly fails. Anderson is a reliever, and typically they don’t have as much stamina, so they can’t face as many hitters. My model doesn’t take into account stamina, so this factor cannot be evaluated here. Now, he definitely could keep performing in the second time through, as most of the talk where pitchers start to be ineffective is the third time, but I felt like this was important to point out. 

In conclusion with this pitching change, there are two ways that you could interpret the readings of my model; either that the model is flawed and would need to be adjusted to just relievers to be more accurate, or that skill outweighs the time through the order penalty. A new model would have to be built that separates the time through the order penalty for starters and relievers.

Third Change: Fairbanks to Castillo

The third and final change of this ball game was going from Fairbanks to Diego Castillo. As you probably guessed, Castillo was really good in 2020 as well. He had a 1.66 ERA, a 2.94 xERA, which was in the 90th percentile, a 96th percentile whiff rate of 38.2%, and a 90th percentile xwOBA of .256. Castillo’s main pitch was the slider, which he threw 64.7% of the time, and rightfully so, as hitters swung and missed about half the time against it and had an xwOBA of .198. 

One thing that the Rays do is that they don’t have a “closer”, they just throw the pitchers that are best in different situations. They had 12 different pitchers record saves in 2020, which was only one shy of breaking the MLB record, they did that in only 60 games. This idea makes more sense than having just one designated closer as you can adapt and navigate through games much easier. Smart Baseball by Keith Law goes into more depth about this topic. 

Keeping that in mind, Castillo didn’t have the most saves on the team in 2020, that title goes to Nick Anderson, who, as we mentioned, was the second pitcher in this game. These pitching changes show how the Rays don’t just stick to one plan and will throw their best guys when needed. When Anderson came in, they needed a great inning as Brett Gardner was on first with one out and the top of the lineup coming up to hit, this is a solid example of when to ditch the closer and just go with your best pitcher.

But back to the Fairbanks to Castillo change. Fairbanks didn’t go through the whole lineup as Glasnow or Anderson had, but he got through 8 of them. So when Castillo came in, he would face the pinch-hitting lefty Mike Ford and then the top of the order. For my predicted wOBA in the next matchups, I will have Ford and then the first 5 of the lineup as I had done earlier.

These matchups come out to have a predicted wOBA of .320 for Fairbanks and .311 for Castillo. It’s not a huge change but it could be the difference in a 1 run game like this one was. Castillo came into this game in the 8th and did not allow a hit or run with 4 strikeouts to end the ball game and the series, so this was a good decision by Kevin Cash.


All of the pitching decisions worked out well for the Rays in this game, the only run they gave up was a home run by Aaron Judge off of Anderson, but other than that, the pitching was great. They allowed 3 total hits and struck out 11, leading to the ending of this fantastic series. 

This was the perfect way to utilize the model I created. In a bullpen game, have your pitchers go through the lineup once and then evaluate what the best move for your pitching staff would be based on the handedness of the hitter and pitcher, the strength of both, and the situation in the game. 

Like I said earlier, a new limit that I found with this model is that relievers and starters should be separate to determine the actual time through the order penalty for both, that way, it would be much more accurate. But overall, it gives a good general idea about how each matchup plays into a team’s favor or not. 

This smart decision making has been a big reason why the Rays have been so good all year, despite being 28th in payroll. Kevin Cash has a chance to lead the Rays to their first championship as they head to the World Series for the first time since 2008.

Stats and game info from Baseball Savant and Baseball Reference

Payroll rank from Spotrac

2 thoughts on “Making Pitching Decisions Based on Predictive Modeling Part 2: In-Game Usage

Add yours

Leave a Reply

Powered by

Up ↑

%d bloggers like this: