X
Lost password?

Don't have an account?
Join the Best Live Fantasy Chat Community!

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 waiver wire pickups 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

Craig Kimbrel36 mins ago

Blows Save, Exits With Training Staff Sunday
Joel Embiid53 mins ago

Has Another Solid Game On Sunday
Jalen Brunson59 mins ago

Has A Record-Breaking Showing In Game 4
Bojan Bogdanovic2 hours ago

Injured In Game 4
Kawhi Leonard3 hours ago

Won't Play On Sunday
Kirk Cousins4 hours ago

Still Atlanta's Unquestioned Starting QB
Evan Carter4 hours ago

Absent On Sunday
Justin Jefferson4 hours ago

Vikings Optimistic Regarding Justin Jefferson's Contract Talks
J.J. McCarthy4 hours ago

Vikings Won't Rush J.J. McCarthy Into Starting Role
Travis Etienne Jr.4 hours ago

Jaguars Pick Up Fifth-Year Options On Trevor Lawrence, Travis Etienne Jr.
Mitchell Robinson4 hours ago

Downgraded To Out
Joel Embiid5 hours ago

Active For Game 4
Damian Lillard5 hours ago

Officially Out For Game 4
Zac Gallen5 hours ago

Plans To Make His Next Start
Giannis Antetokounmpo5 hours ago

Out Again On Sunday
Randy Arozarena5 hours ago

Not Starting Against White Sox
Dylan Carlson5 hours ago

To Start Rehab Assignment Early Next Week
Avisaíl García5 hours ago

Avisail Garcia Placed On 10-Day Injured List
Yandy Díaz5 hours ago

Yandy Diaz Back In Lineup For Rays
J.D. Martinez5 hours ago

Taking A Seat
Martin Truex Jr6 hours ago

. Is One Of The Top DFS Plays At Dover
Tyler Reddick6 hours ago

Will Start Fourth At Dover
Michael McDowell6 hours ago

Fade Michael McDowell For the Wurth 400 At Dover
Joey Logano6 hours ago

Will Not Cause Much DFS Excitement At Dover
Noah Gragson7 hours ago

Is Noah Gragson A Sneaky Tournament Play At Dover?
Uros Medic7 hours ago

Returns To Win Column At UFC Vegas 91
Tim Means7 hours ago

Gets Knocked Out At UFC Vegas 91
Austen Lane7 hours ago

Winless In The UFC
Jhonata Diniz7 hours ago

Wins UFC Debut
Ryan Spann7 hours ago

Suffers Third Straight Loss
Bogdan Guskov7 hours ago

Gets Upset Win At UFC Vegas 91
Kyle Larson8 hours ago

the Favorite to Win at Dover Despite Qualifying 21st
Chase Elliott8 hours ago

a Core DFS Play at Dover
Alex Bowman8 hours ago

Always Strong at Dover
Chris Buescher8 hours ago

Has DFS Place Differential Upside at Dover
Ross Chastain8 hours ago

Has Been One of Best at Dover in Next Gen Era
Josh Berry8 hours ago

Has Top 10 Sleeper Potential at Dover
William Byron12 hours ago

Expect William Byron To Be A Top Favorite To Win At Dover
Kyle Busch12 hours ago

Obtains The Pole For Dover
Ryan Blaney14 hours ago

Scores Front Row Start At Dover
Jamal Murray18 hours ago

Struggles In Game 4
Anthony Davis18 hours ago

Has A Huge Game On Saturday
LeBron James18 hours ago

Looks Good In Game 4
Nikola Jokic18 hours ago

Has A Big Night On Saturday
Jimmy Butler18 hours ago

Without A Return Timeline
Grayson Allen20 hours ago

Uncertain For Game 4
Kyle Anderson20 hours ago

Questionable For Game 4
Khris Middleton20 hours ago

Expected To Play On Sunday
Damian Lillard22 hours ago

Officially Doubtful For Sunday
Zane Smith22 hours ago

Unlikely to Contend After Practice Crash
Brad Keselowski22 hours ago

Dover Not One of Brad Keselowski's Best Tracks
Ty Gibbs22 hours ago

Likely to Contend if Joe Gibbs Racing as Fast as Expected
Austin Cindric22 hours ago

Continues to Qualify Well, but Lacks Race Speed
Harrison Burton22 hours ago

Unlikely to Duplicate Talladega Top Ten
Giannis Antetokounmpo22 hours ago

Doubtful For Game 4
NASCAR22 hours ago

A.J. Allmendinger Decent at Dover but Not in Recent Years
Tim Hardaway22 hours ago

Jr. Unlikely To Play On Sunday
Kawhi Leonard22 hours ago

Questionable Versus Dallas
NHL22 hours ago

Jets Recall Axel Jonsson-Fjallby
Luka Doncic23 hours ago

On The Injury Report For Game 4
NASCAR23 hours ago

Bubba Wallace Qualifies 16th For Sunday's Race At Dover Motor Speedway
Bobby McMann23 hours ago

Progressing Well
Mathew Barzal23 hours ago

Bags OT Winner Saturday
NHL23 hours ago

Nick Robertson Moving To Fourth Line Saturday
William Karlsson23 hours ago

Doesn't Skate, Expected To Play Game 3
Tyler Glasnow24 hours ago

Exits Saturday's Game With Cramping
Auston Matthews1 day ago

Skates On Saturday
Michael McCarron1 day ago

Fined 2K For Goalie Interference
Trevor van Riemsdyk1 day ago

Ruled Out For Game 4
NHL1 day ago

Mavrik Bourque Could Make Postseason Debut Saturday
Spencer Stastney1 day ago

Out Week To Week For Preds
Igor Shesterkin1 day ago

Continues Winning Ways On Friday
Mika Zibanejad1 day ago

Collects Pair Of Assists In Game 3 Win
Trevor van Riemsdyk1 day ago

Leaves Game 3 Early After Big Hit
Brenden Dillon1 day ago

Suffers Hand Injury After Final Whistle
Jeremy Swayman1 day ago

Set To Start Second Straight Game
T.J. Brodie1 day ago

Will Play In Game 4
William Nylander1 day ago

Appears Set To Make Playoff Debut Saturday
Kyle Bradish1 day ago

Set To Rejoin Baltimore Rotation
Joey Gallo1 day ago

Headed To 10-Day Injured List With Shoulder Sprain
Pete Fairbanks1 day ago

Tests Have Come Back Clean On Pete Fairbanks
Troy Franklin1 day ago

Broncos Trade Up To Select Oregon Receiver Troy Franklin
Zac Gallen1 day ago

Diamondbacks Optimistic About Zac Gallen's Injury
Rafael Devers1 day ago

Back At Third Base, Masataka Yoshida Starting
George Springer1 day ago

Resting Against Dodgers
Max Muncy1 day ago

Gavin Lux Sitting Saturday
Yandy Díaz2 days ago

X-Rays Negative On Yandy Diaz's Hand
Jhoan Duran2 days ago

Making Another Rehab Appearance Saturday
John Means2 days ago

Needs One More Rehab Start
Jake Burger2 days ago

Completes Full Workout Friday
Zac Gallen2 days ago

Dealing With Hamstring Tightness
Deebo Samuel2 days ago

49ers Set To Keep Deebo Samuel, Brandon Aiyuk?
Luke McCaffrey2 days ago

Selected By Commanders 100th Overall
Jalen McMillan2 days ago

Heads To Tampa Bay
Tip Reiman2 days ago

Cardinals Take Tip Reiman At No. 82
Roman Wilson2 days ago

Selected 84th Overall By Steelers
Blake Corum2 days ago

Rams Select Blake Corum With 83rd Pick
Jermaine Burton2 days ago

Taken At No. 80 By Cincinnati
Trey Benson2 days ago

Cardinals Select Trey Benson With The 66th Pick
Malachi Corley2 days ago

Jets Trade Up To Select Malachi Corley
Ben Sinnott2 days ago

Taken At No. 53 On Friday Night
Adonai Mitchell2 days ago

Colts Snag Adonai Mitchell At No. 52
Jonathon Brooks2 days ago

Panthers Trade Up To Select Jonathon Brooks
New Orleans Saints2 days ago

Saints Take Kool-Aid McKinstry At No. 41
Keon Coleman2 days ago

Bills Select Keon Coleman At Pick 33
Deebo Samuel2 days ago

Bills, Patriots Unlikely To Trade For Deebo Samuel
Nicolas Hague2 days ago

Not Ready To Return On Saturday
Justus Annunen2 days ago

Available On Friday
Rasmus Sandin2 days ago

A Game-Time Call Friday
Nick Jensen2 days ago

Could Be Back In Action Friday
Tennessee Titans2 days ago

JC Latham To Play Left Tackle For Tennessee
Alex Perez2 days ago

In Dire Need Of Victory
Matheus Nicolau2 days ago

Returns To Action At UFC Vegas 91
Ariane da Silva2 days ago

Ariane Lipski Looks To Extend Her Win Streak
Karine Silva2 days ago

Looks For Ninth Victory In A Row
David Onama2 days ago

An Underdog At UFC Vegas 91
Jonathan Pearce2 days ago

Looks To Get Back In Win Column
Uros Medic3 days ago

A Massive Favorite At UFC Vegas 91
Tim Means3 days ago

An Underdog At UFC Vegas 91
Austen Lane3 days ago

Searching For First UFC Win
Jhonata Diniz3 days ago

Making UFC Debut
Bogdan Guskov3 days ago

Gets Ranked Opponent At UFC Vegas 91
Ryan Spann3 days ago

Looks To Snap Losing Skid At UFC Vegas 91
RANKINGS
C
1B
2B
3B
SS
OF
SP
RP

RANKINGS

QB
RB
WR
TE
K
DEF