Author Archive

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.