Upgrading My Individual Pitch Result Metric

On a personal level, the All-Star break can be declared a success as I’ve made major improvements to my pitch result evaluator, pERA. I was supposed to do dive into it last season, but I spent most of the time dealing with the league’s new rules so this update got pushed off until now. I planned on adding Ball Percentage (Ball%), Called Strikes (CStr%), and StatCast batted ball information. I felt each add would provide a clearer picture of the pitcher’s pitches. I eventually found out I was double counting the same information with Ball% and CStr% and needed to remove one.

The key element of pERA is to grade out each pitch and have a way to value a pitcher who adds or losses a pitch. If the pitcher throws an ineffective change and ditches it, how should the pitcher’s results change? To answer the question, I created pERA

It was almost seven years ago when I created the initial formula that included:

  • Swinging Strike Rate: Ability of a pitch to generate swings-and-misses.
  • Groundball Rate: If the pitcher is on either end of the groundball spectrum, they can outperform their ERA estimators by generating fieldable contact.
  • Walk Rate: I included the walk rate once all the individual pitches were added up. This was a major issue that elevated several pitches that were never near the strike zone.

The overall results have stood the test of time but needed some fine-tuning. Here are the improvements I planned on incorporating.

  • Called plus Swinging-Strike Rate: All strikes are the same and this improvement catches the starters who paint the corners. The idea came from the work of Alex Fast at Pitcher List.
  • Fieldable Contact (<-5 degrees, >40 degrees): This addition puts all the fieldable batted balls into one bucket
  • Ball%: This addition was huge and I’m a little disappointed I didn’t think of it when I created the initial formula. Some recent work with Ball% was the light bulb I needed to include it.

I had about 95% of this article’s first draft done but found out that I was double counting the same items, Ball% and CStr%. Control pitchers, who could paint the zone, got called strikes and fewer balls. Their fastballs looked elite but weren’t. Called Strike Rate got cut and I just went with Swinging Strike Rate.

With the two additions, I collected a dataset to transform the raw data into something useful. I used pitchers who threw at least 80 IP from 2015 to 2023 (1237 in the sample). I was limited to those seasons because of StatCast’s availability.

With the dataset, I created the following equations.

  • K% = SwStr% * 2.1
  • BB% = .6846*Ball%-.1695
  • ERA = -10.55 * (K%-BB%) + 5.6144
  • Weak contact adjustment [46% Weak% is where there is no adjustment] = -3.4904 * Weak% + 1.6142 The weak contact allows a single overall value to be generated without the addition of an individual pitch score because popups and groundball are combined. I might move to a polynomial equation where values on the extreme are weighed more (-297.5 * Weak%^3+418.5 *Weak%^2-198.4*Weak%+31.695).

With the math and background out of the way, it’s time for idiot (failed the first time) checks. Here are the top-10 starters (min 60 IP) and relievers (min 20 IP). Additionally, the top grades for each pitch (link to the full sheet).

Overall pERA

 

Top-10 pERA Starters
Pitcher GS IP ERA FIP xFIP SIERA xERA K%-BB% pERA
Spencer Strider 18 104.2 3.44 2.84 2.83 2.67 3.08 31% 2.34
Luis Castillo 18 107.1 2.85 3.78 3.69 3.65 3.73 20% 2.85
Shane McClanahan 17 96.0 2.53 3.85 3.88 4.11 3.97 16% 2.95
Pablo Lopez 18 111.0 3.89 3.17 3.44 3.30 3.04 24% 3.09
Joe Ryan 18 107.0 3.70 3.50 3.60 3.32 2.88 25% 3.10
Jesus Luzardo 19 109.1 3.29 3.23 3.44 3.37 3.52 23% 3.23
Clayton Kershaw 16 95.1 2.55 3.53 3.27 3.46 3.47 21% 3.28
Max Scherzer 16 87.2 4.31 4.54 3.98 3.68 3.62 21% 3.45
Domingo German 17 91.2 4.32 4.62 4.08 4.03 4.20 17% 3.49
Lance Lynn 18 103.0 6.03 4.81 3.74 3.73 4.50 20% 3.51

 

Top-10 pERA Relievers
Pitcher GS IP ERA FIP xFIP SIERA xERA K%-BB% pERA
Robert Stephenson 0 28.1 4.45 4.27 3.67 3.29 4.23 21% 1.60
Brock Stewart 0 25.2 0.70 2.46 3.39 2.99 2.44 24% 1.93
Felix Bautista 0 42.0 1.07 1.64 1.66 1.76 1.95 39% 2.04
Jordan Romano 0 37.2 2.87 3.07 3.34 2.93 3.01 24% 2.25
Keynan Middleton 0 32.0 3.09 3.87 2.79 2.82 3.52 23% 2.36
David Bednar 0 35.1 1.27 1.87 3.53 2.91 2.18 25% 2.36
Jhoan Duran 0 34.1 2.10 3.28 2.89 2.89 2.38 22% 2.44
Ryan Pressly 0 39.1 2.52 2.75 2.81 2.60 2.62 23% 2.46
Raisel Iglesias 0 26.1 3.76 3.66 3.08 2.98 3.47 23% 2.56
Tanner Scott 0 43.1 2.91 2.24 2.60 2.62 2.36 27% 2.58

Pitcher ERA (min 300 pitches)

Top-10 pERA Four-Seamers
Pitcher IP pERA Weak% SwStr% Ball% Cnt
David Bednar 35.1 1.79 43% 20% 31% 314
Luis Castillo 107.1 1.99 51% 18% 31% 766
Paul Sewald 36.1 2.35 42% 16% 26% 305
Felix Bautista 42.0 2.44 36% 18% 32% 493
Joe Ryan 107.0 2.51 40% 15% 24% 977
Pablo Lopez 111.0 2.79 34% 15% 26% 604
George Kirby 107.2 2.90 42% 14% 27% 616
Joe Jimenez 30.2 3.15 41% 13% 28% 334
Ryne Stanek 30.2 3.19 48% 14% 35% 369
Lance Lynn 103.0 3.24 38% 15% 33% 756

 

Top-10 pERA Sinkers
Pitcher IP pERA Weak% SwStr% Ball% Cnt
Josh Hader 33.1 3.52 43% 14% 36% 441
Kyle Finnegan 37.1 3.74 41% 12% 34% 362
Jason Foley 38.2 3.94 53% 7% 25% 404
Michael Tonkin 44.0 3.97 40% 10% 29% 411
Steven Matz 71.2 4.01 43% 11% 35% 717
Tim Mayza 30.2 4.07 54% 9% 34% 349
Zack Wheeler 104.1 4.17 52% 7% 28% 307
George Kirby 107.2 4.20 50% 6% 27% 377
Brayan Bello 80.0 4.25 48% 7% 30% 470
Jose Cuas 36.0 4.26 45% 8% 29% 329

 

Top-10 pERA Cutters
Pitcher IP pERA Weak% SwStr% Ball% Cnt
Lance Lynn 103.0 2.83 42% 15% 31% 474
Kenley Jansen 30.2 3.07 54% 12% 31% 410
Emmanuel Clase 42.2 3.08 48% 13% 30% 424
Tyler Anderson 84.0 3.14 38% 15% 34% 356
Shane Bieber 117.0 3.24 46% 14% 34% 461
Joey Wentz 71.2 3.31 40% 14% 32% 329
Kodai Senga 89.2 3.51 49% 10% 27% 357
Clarke Schmidt 88.0 3.64 30% 13% 30% 382
Colin Rea 80.1 3.80 37% 13% 36% 318
Nathan Eovaldi 117.2 3.88 49% 10% 33% 312

 

Top-10 pERA Sliders
Pitcher IP pERA Weak% SwStr% Ball% Cnt
Spencer Strider 104.2 0.29 37% 29% 34% 592
Clayton Kershaw 95.1 0.97 46% 22% 27% 652
Kyle Nelson 34.2 1.13 44% 22% 30% 330
Braxton Garrett 92.1 1.28 29% 24% 31% 390
Alexis Diaz 40.0 1.45 42% 22% 32% 318
Tanner Scott 43.1 1.49 40% 21% 30% 363
Ronel Blanco 46.0 1.58 43% 22% 36% 396
Jordan Romano 37.2 1.68 38% 21% 31% 324
Matt Brash 36.0 1.68 40% 22% 36% 317
Reid Detmers 85.2 1.75 29% 21% 29% 554

 

Top-10 pERA Curves
Pitcher IP pERA Weak% SwStr% Ball% Cnt
Alex Lange 36.2 1.44 42% 23% 35% 366
Domingo German 91.2 1.45 42% 20% 27% 569
Zach Eflin 102.1 2.07 40% 20% 33% 424
Charlie Morton 97.0 2.43 47% 18% 36% 747
Pierce Johnson 34.2 2.46 30% 18% 29% 342
Zac Gallen 118.1 2.79 35% 20% 43% 443
Aaron Nola 119.0 2.84 39% 16% 33% 591
Sonny Gray 99.2 3.04 37% 16% 32% 322
Framber Valdez 111.0 3.05 43% 18% 42% 396
MacKenzie Gore 89.2 3.11 33% 19% 40% 335

 

Top-Seven pERA Splitters
Pitcher IP pERA Weak% SwStr% Ball% Cnt
Scott McGough 46.1 1.06 48% 24% 35% 318
Erik Swanson 42.2 1.33 51% 20% 29% 322
Nathan Eovaldi 117.2 2.21 53% 18% 35% 477
Kevin Gausman 115.2 2.64 41% 20% 43% 713
Joe Ryan 107.0 3.44 45% 13% 33% 461
Alex Cobb 89.2 3.72 44% 13% 36% 534
Taijuan Walker 96.1 3.90 49% 13% 42% 548

 

Top-10 pERA Changeups
Pitcher IP pERA Weak% SwStr% Ball% Cnt
Blake Snell 98.0 0.46 38% 27% 33% 305
Shane McClanahan 96.0 0.61 44% 28% 39% 367
Trevor Richards 44.2 0.89 51% 24% 34% 451
Jovani Moran 35.2 1.54 50% 23% 41% 301
Logan Webb 126.0 1.62 54% 17% 25% 683
Michael Wacha 85.2 1.90 42% 19% 31% 444
Devin Williams 33.1 2.22 45% 20% 38% 305
Patrick Sandoval 85.2 2.24 42% 20% 38% 393
Edward Cabrera 67.0 2.34 44% 19% 38% 372
Jesus Luzardo 109.1 2.35 49% 18% 37% 365

Some observations.

  • Robert Stephenson (top reliever): The biggest disconnect between his results is the Ball%. Usually, a Ball% of 31% (140 balls in 447pitches) would point to a 1.6 BB/9, not Stephenson’s 4.1 BB/9.
  • Lance Lynn shows his face a few times. The biggest issues with Lynn are his curve (5.41 pERA) and change (4.91 pERA). Both have a high Ball% over 50%.
  • Few, if any, sinkers are effective compared to other pitches
  • Splitters: Just seven guys who feature the pitch but the pitch is effective for all of them. Underutilized option.

Overall, I’m happy with how everything turned out. I feel I’m about 95% finished with a few places to clean up around the edges. In addition to cleaning up the data, here are some areas I could improve on:

  • As mentioned above, I could use a different equation for the batted ball adjustment.
  • Regress the pERA values. In small samples, extremes show up, so it’s nice to incorporate some regression. One item I am going to immediately is a regress is the batted ball data. With fewer samples than strikes and balls, the batted ball takes longer to stabilize.
  • I want/need to dive into a pitcher’s Hard Hit Rate (Exit Velocity based). Every time I’ve tried to incorporate it, I can’t find any correlation once the fieldable data (launch angle) is included.
  • I want to run some year-to-year correlations and comparisons. The correlations compare to xFIP and SIERA, but I want a final equation before running all these tests and publishing the results.
  • The next step and it will be a major one going forward is how much to weigh a pitcher’s STUFFF (pitch shape-based projections) with the actual results. Should STUFFF be used for three games? A 50/50 mix after five games? This step would then determine how much to adjust season-long projections.
  • The pERA values for right and left-handed hitters. How pitchers handle certain hitter-handedness can give an idea of when a pitcher might struggle against certain lineups.

Well, that’s it for this article. What I’d like is any feedback on how it might be improved. I need to nail down these pitch results values before moving to the next step of combining them with STUFFF values.





Jeff, one of the authors of the fantasy baseball guide,The Process, writes for RotoGraphs, The Hardball Times, Rotowire, Baseball America, and BaseballHQ. He has been nominated for two SABR Analytics Research Award for Contemporary Analysis and won it in 2013 in tandem with Bill Petti. He has won four FSWA Awards including on for his Mining the News series. He's won Tout Wars three times, LABR twice, and got his first NFBC Main Event win in 2021. Follow him on Twitter @jeffwzimmerman.

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
JackelderMember since 2017
1 year ago

I had to take calculus twice, and only had a couple of courses in statistics. Should have been an English major I suppose. When you figure it out, I eagerly anticipate the prose translation of your long term study.