X
Lost password?

Don't have an account?
Gain Access Now

X

Receive free daily analysis

NFL
NBA
NHL
NASCAR
CFB
MLB
MMA
PGA
ESPORTS
BETTING

Already have an account? Log In

X

Forgot Password


POPULAR FANTASY TOOLS

Expert Advice
Articles & Tools
Import Your Leagues
Daily Stats & Leaders
All Pitcher Matchups
Compare Any Players
Player Comparisons
Rookies & Call-Ups
24x7 News and Alerts

Pitcher Predictability Analysis for Fantasy Baseball

There are different ways to have success as a pitcher. You can have wipe-out stuff, pinpoint command, superior deception, or an arsenal of different pitch types that make it tough for a hitter to see what is coming next. The best pitchers will have all of those things going for them.

For this fantasy baseball analysis, I wanted to focus on that last point - an unpredictable arsenal. Most starters have at least three pitches in their arsenal, but plenty of pitchers dedicate more than 80% of their arsenal to just two different pitches, making them quite predictable. On the flip side of that, you have some guys with five or six different pitches that they are comfortable with throwing - that makes them very tough to predict.

It is definitively not true that you need a deep arsenal to have success in the league. If you have two great pitches with great command, that is more than enough to have success in the big leagues. It does seem true that having a deep pitch arsenal gives a pitcher a wider safety net. Some nights you just don't have the feel for certain pitches, and having a few extra to fall back on can really help a pitcher avoid those disastrous outings.

Be sure to check all of our fantasy baseball lineup tools and weekly lineup resources:

 

The Process

I used a Python script for this in conjunction with the baseball savant pitch-by-pitch dataset. This dataset is a massive table of data with one row for every single pitch thrown in Major League Baseball games. Every data point you could think of is in this dataset, and it opens the door for limitless analysis with a coding language like Python.

My script works like this:

  • Pick an individual pitcher
  • Isolate that pitcher from the dataset, giving us a table of all of their pitches thrown
  • Order the table chronologically
  • Skip forward to the pitcher's 251st pitch of the year
  • From then on, for every pitch, look at the count and handedness of the batter being faced on every pitch
  • Look back to the past times the pitcher has been in that exact situation (say an 0-2 count against a left)
  • Find the pitcher's most commonly thrown pitch in that situation
  • Predict that he will throw that pitch
  • Compare that prediction to what the pitcher actually threw
  • Calculate what percent of the time the prediction was correct
  • Repeat for every single pitcher that threw at least 1,500 pitches last year

Long story short, we just tried to predict every pitch type based on what the pitcher threw in similar situations in the past, and then we see which pitchers we were right and wrong about most often. If you are interested in seeing the Python script I wrote, you can view that here on Google colab, a Python notebook environment hosted on the Google Cloud. Just collapse the "Setup" code blocks with the arrow at the top and then look at the "Example of how it works" block.

 

The Results

Here is the results table, it includes every pitcher we looked at. The "score" is just the percent of the time the prediction was right, so the lower the score - the less predictable the pitcher was.

Cleveland's Aaron Civale proved to be the league's least predictable pitcher last year. He threw six different pitches at a clip above 10% (cutter, four-seamer, curveball, splitter, slider, and sinker). Baseball Savant has a nice feature of showing how a pitcher distributes his pitches in all different counts, you can check out Civale's plot here for a visual of just how tough he was to predict.

The rest of the top five perfectly shows that this is not a foolproof way of finding good pitchers. Mike Foltynewicz, Merrill Kelly, Jon Lester, and Matt Harvey were four of the worst pitchers in the entire league last year despite their unpredictability. All of those names threw at least four pitches over 10% of the time. The problem was just the small detail of their pitches not being very good. It's quite possible that the deep arsenal is the reason these pitchers are even staying in the league. If Foltynewicz was out there only throwing his four-seamer and slider last year, he probably would not have been able to stay in the rotation as long as he did.

If you sort the score column the other way around, we'll see the most predictable pitchers. Turns out that you see some pretty good pitchers on this side of things.

Logan Gilbert had a pretty successful rookie year despite coming in "last place" in this analysis. Maybe we should not judge rookies the same way as veterans here, since it would have taken some time for the hitters to learn his arsenal and to potentially capitalize on the limitations, but nonetheless, we proceed. Gilbert threw a four-seamer 61.5 of the time and a slider 23.9%, leaving just 14.6% of the time dedicated to his changeup and curveball. It was pretty easy for a hitter to just expect a fastball in neutral and advantageous counts, and then sit on the slider when they were behind. But this is a good example that just because a hitter knows what pitch is coming, that surely doesn't mean they'll be able to hit it.

Triston McKenzie, Carlos Rodon, Robbie Ray, Clayton Kershaw, and Trevor Rogers also show up here in the top-15. These pitchers were all pretty much the same mold as Gilbert, throwing a fastball a high percentage of the time to get ahead, and then using a breaking ball to attempt to put hitters away.

Here's a table you can use to search for a pitcher's name and see their arsenal breakdown. I limited this to only pitchers that threw at least 1,500 pitches last year to save some memory.

 

Conclusions

I think the biggest conclusion here is that we can overestimate the depth of the arsenal. The quality of the pitches turns out to be much, much more vital to success than the quantity of them. Most fantasy players probably understood that before, but I think this table really drives it home. There does not seem to be any correlation whatsoever between depth of arsenal and success on the field.

That said, I don't think it's proper to throw this out entirely. While the Aaron Civale types (pretty bland "stuff" wise, but quite successful on the mound) are somewhat rare, they can exist because of this. Civale makes his living by throwing a bunch of different pitches in all different counts and locating them well. A young pitcher coming into the league and having five pitches in his bag gives him a lot of different things to try out and more options to work with as he figures out what works at the big league level and what doesn't.

This could be good "tiebreaker" material in the fantasy baseball world. Despite what we see above, I would still rather roll the dice on a pitcher with five pitches rather than three if everything else is more or less equal.

Thanks for reading, if anybody has any questions about Python or requests for the full data extracts, I can be reached on Twitter @JonPGH



Download Our Free News & Alerts Mobile App

Like what you see? Download our updated fantasy baseball app for iPhone and Android with 24x7 player news, injury alerts, sleepers, prospects & more. All free!



More Fantasy Baseball Advice




POPULAR FANTASY TOOLS

Expert Advice
Articles & Tools
Import Your Leagues
Daily Stats & Leaders
All Pitcher Matchups
Compare Any Players
Player Comparisons
Rookies & Call-Ups
24x7 News and Alerts

REAL-TIME FANTASY NEWS

NFL3 hours ago

Kevin Stefanski, Andrew Berry Likely Returning To Browns In 2025
Deshaun Watson3 hours ago

Likely To Remain With Browns, Could Face Competition
Cedric Tillman3 hours ago

Enters Concussion Protocol
Cedric Tillman5 hours ago

Suffers Head Injury On Thursday Night
Wendell Carter Jr.6 hours ago

Out Against Lakers
Anthony Davis6 hours ago

Available Versus Magic On Thursday
Rui Hachimura6 hours ago

Unavailable Thursday
Carlos Ulberg7 hours ago

Looking To Cement Himself As A Title Contender At UFC Macau
Volkan Oezdemir7 hours ago

Eyes Another Knockout At UFC Macau
Gabriella Fernandes7 hours ago

A Big Underdog At UFC Macau
MMA7 hours ago

Cong Wang Puts Undefeated Record On The Line At UFC Macau
Deiveson Figueiredo7 hours ago

Looks To Extend Win Streak At UFC Macau
Petr Yan7 hours ago

A Favorite At UFC Macau
Yves Missi7 hours ago

Listed As Questionable For Friday
CJ McCollum8 hours ago

Not Likely To Play Friday
Alexander Mattison8 hours ago

Zamir White Miss Practice Again
Brandon Ingram8 hours ago

Questionable For Friday
Shohei Ohtani8 hours ago

Named National League MVP In 2024
Aaron Judge8 hours ago

Wins American League MVP Award
Ja'Kobe Walter8 hours ago

Ready To Go Thursday
Donte DiVincenzo8 hours ago

Available Thursday
Mike Conley8 hours ago

Will Not Play Thursday
Jordan Clarkson9 hours ago

Sits Out Thursday's Game
Ausar Thompson9 hours ago

Won't Play On Thursday
Zach Collins9 hours ago

Cleared To Play Thursday
Domantas Sabonis9 hours ago

Gets Through Full Practice
Chris Paul9 hours ago

Good To Go Thursday
Brock Purdy9 hours ago

Limited Again On Thursday
Malik Monk9 hours ago

Making Progress
George Kittle9 hours ago

Limited Again On Thursday
Tre Mann9 hours ago

Good To Go On Thursday
Miles Bridges9 hours ago

Won't Play On Thursday
Vince Williams Jr.9 hours ago

Out At Least A Month
Scottie Barnes10 hours ago

Returning On Thursday
Alex Ovechkin10 hours ago

To Miss 4-6 Weeks With Fractured Fibula
Paul George10 hours ago

Out At Least Two Games
Aaron Gordon10 hours ago

Availability In Question For Friday
Zach Hyman10 hours ago

Expected To Miss 4-7 Days
Kent Johnson10 hours ago

Back For Blue Jackets Thursday
Yaroslav Askarov10 hours ago

Makes Sharks Debut Thursday
Jalen Hurts10 hours ago

Practices In Full On Thursday
Mikael Granlund10 hours ago

Good To Go Thursday
Alexandar Georgiev10 hours ago

Returns To Action Versus Capitals
TB10 hours ago

Nicholas Paul Will Miss Thursday's Game
Frederik Andersen11 hours ago

To Miss 8-12 Weeks
Jake Ferguson11 hours ago

Still Not Practicing
Sam LaPorta11 hours ago

Looking Good For A Week 12 Return
Sam Darnold11 hours ago

Upgrades To Full Participation, On Track To Play
Isiah Pacheco11 hours ago

Remains Limited On Thursday
D'Andre Swift11 hours ago

Upgrades To Limited Participant On Thursday
CeeDee Lamb11 hours ago

Sidelined During Thursday's Practice
Ladd McConkey11 hours ago

Does Not Practice On Thursday
Mike Evans12 hours ago

Logs Full Practice On Thursday
DeVonta Smith13 hours ago

Misses Another Practice
Cody Bellinger13 hours ago

Cubs Looking To Trade Cody Bellinger?
Brandin Cooks13 hours ago

Preparing To Play In Week 12
CeeDee Lamb13 hours ago

Not Seen At Thursday's Practice
14 hours ago

Blake Snell Has Met With Red Sox, Dodgers
Aaron Rodgers14 hours ago

Jets Owner Suggested Benching Aaron Rodgers
Mike Evans16 hours ago

Practicing Again On Thursday
Chandler Stephenson17 hours ago

Registers Three Assists Versus Predators
Jason Robertson17 hours ago

Totals Three Points In Wednesday's Win
Nils Lundkvist17 hours ago

Exits Early With A Lower-Body Injury
Matthew Knies17 hours ago

Sustains An Upper-Body Injury
Mikael Granlund17 hours ago

Exits Late With Injury Wednesday
Patrik Laine17 hours ago

Returns To Practice
Chris Sale1 day ago

Wins National League Cy Young Award
Tarik Skubal1 day ago

Wins 2024 American League Cy Young Award
Austin Eckroat1 day ago

Heads To The RSM Classic After Win
Harris English1 day ago

Finding Form Heading To The RSM Classic
Ben Griffin1 day ago

Continues Playing Well Heading To The RSM Classic
Denny McCarthy1 day ago

Returns to The RSM Classic
Seth Jones1 day ago

Expected To Miss Four Weeks
Max Domi1 day ago

Placed On Injured Reserve
Connor Ingram1 day ago

Out Day-To-Day With An Upper-Body Injury
Ukko-Pekka Luukkonen1 day ago

Returns To Action Versus Kings
Alex Tuch1 day ago

Available Wednesday
Tage Thompson1 day ago

Remains Out On Wednesday
Jordan Eberle1 day ago

To Remain Out On Wednesday
Ludvig Aberg1 day ago

Looks To Defend RSM Classic Title
Si Woo Kim1 day ago

An Intriguing Option At RSM Classic
Maverick McNealy1 day ago

In Solid Form Ahead Of RSM Classic
Eric Cole1 day ago

Chasing First Tour Victory At RSM Classic
2 days ago

Guardians' Stephen Vogt Named AL Manager Of The Year
Milwaukee Brewers2 days ago

Pat Murphy Named NL Manager Of The Year
2 days ago

Nick Pivetta Declines Boston's Qualifying Offer
Jose Siri2 days ago

Mets Acquire Jose Siri From The Rays
3 days ago

Phillies To Meet With Juan Soto
3 days ago

Luis Severino Rejects Qualifying Offer From Mets
3 days ago

Willy Adames Declines Brewers Qualifying Offer
3 days ago

Teoscar Hernandez Declines Qualifying Offer From Dodgers
3 days ago

Juan Soto Declines Yankees' Qualifying Offer
Luis Gil3 days ago

Wins AL Rookie Of The Year Award
Paul Skenes3 days ago

Named 2024 NL Rookie Of The Year
Brady Singer4 days ago

Reds, Royals Discussing Jonathan India, Brady Singer
4 days ago

Sean Manaea To Reject Mets' Qualifying Offer
4 days ago

Braves Have Interest In Walker Buehler
4 days ago

Astros Interested In Willy Adames
Charles Oliveira4 days ago

Gets Back In The Win Column
Michael Chandler4 days ago

Gets Dominated At UFC 309
Karine Silva4 days ago

Suffers Her First UFC Loss
Viviane Araujo4 days ago

Gets Back In The Win Column
Mauricio Ruffy4 days ago

Extends His Win Streak To Six
James Llontop5 days ago

Loses Clear-Cut Decision In Thrilling Fight At UFC 309
Paul Craig5 days ago

Loses Decision At UFC 309
Bo Nickal5 days ago

Remains Undefeated With Lackluster Performance At UFC 309
Stipe Miocic5 days ago

Retires After UFC 309 Loss
Jon Jones5 days ago

Gets TKO Win At UFC 309 To Defend Heavyweight Title

RANKINGS

QB
RB
WR
TE
K
DEF
RANKINGS
C
1B
2B
3B
SS
OF
SP
RP