Sports. Honestly. Since 2011

The Career of Chris Sale Ft. Python

What makes has made Chris Sale one of MLB’s premier pitchers over the last decade? In this article, we will take a detailed look into the ace of the Boston Red Sox and how his pitch selection and his four-seam fastball has played a role in his rise to stardom.

To accomplish this we are going to use the pybaseball Python library to access every pitch Sale has thrown in his entire big league career along with his spin rates dating back to 2015.

Who is Chris Sale?

First of all, if you don’t know, you must have been living under a rock for the last decade. Sale debuted with the Chicago White Sox on August 6, 2010. That year he was used out of the bullpen, pitching 23 1/3 innings with an ERA of 1.93. The following year, still as a reliever he pitched 71 innings with a 2.79 ERA. In his first season as a starter in 2012, he fell just short of 200 innings (192) with a 3.05 ERA and a 140 ERA+. For his efforts in 2012, Sale earned his first All-Star nod, and finished sixth in AL Cy Young voting. In the following years, he would continue to build upon his star, garnering six more All-Star selections, finishing in the top-five of Cy Young five years in a row (2013-18), and even getting some MVP votes from 2015-2018.

Using Google Colab, the first step is to import the pybaseball library via pip, which is Python’s package manager. This library is responsible for providing us with all the data we’ll be using today. Nearly every pitch from every season is available in this library.

This image has an empty alt attribute; its file name is image-7.png


Second, we’ll filter our DataFrame to only include Sale’s stats. We need to look up his player ID using the playerid_lookup function, then we’ll load his data using the statcast_pitcher function. This includes a row for each pitch he threw in his career with a bunch of columns describing each record of his pitches. It chronicles things like the date of his first pitch in the majors to his latest pitch in 2021.

This image has an empty alt attribute; its file name is image-8.png

This image has an empty alt attribute; its file name is image-9.png

This image has an empty alt attribute; its file name is image-10.png

Also included in the DataFrame are the outcomes from each play, the velocity, and pitch type. After this data is imported the next step involves some data munging. In short data munging is preparing data for a dedicated purpose. It involves taking the data from its raw state and transforming and mapping it into another format, normally for use beyond its original intent. This block allows us to gather Sale’s data into tables and string together different types of data (i.e. seasons, pitch counts, and players faced). This helps us prep the data for plotting.

This image has an empty alt attribute; its file name is image-11.png

Pitch Selection

From the plot below we can see that when Sale started his career, he relied heavily on his sinker and rarely didn’t feature a four-seamer at all. His sinker was featured over 60% of the time. Even in his early starting career (beginning in 2012) Sale was a sinkerballer. The real change came in 2017 when the four-seamer became his primary pitch, with the sinker seeing its demise. Once Sale made that change in repertoire in 2017 his ERA dipped almost a full point from 3.34 in 2016 to 2.90 in ’17.

This image has an empty alt attribute; its file name is image-12.png

Swing and Miss Percentage

This next visual gives us data on how often each of Sale’s pitches were swung at and missed. At his height Sale would get a swing and miss about 15% of the time with his four-seamer. That was 2018 which is probably the single greatest season of his career.

As of 2021, he has three different pitches that all put away batters around the same rate. His changeup, four-seamer, and slider all had a swing and miss percentage over ten percent when Sale made his return to the mound in the second half of 2021. Until 2021 his four-seamer had never been his putaway pitch. That distinction belonged to his slider and changeup, especially in the early portions of his career. The four-seamer started well under ten percent in his first year of action but it has steadily crept up to over a ten in 2021. It shows Sale has steadily gained more and more confidence in that fastball over the course of his career.

This image has an empty alt attribute; its file name is image-13.png

Four-Seamer Insights

Sale’s four-seamer velocity saw a big dip in 2019. That was largely due to a myriad of arm injuries that forced him to miss 2020. You can also see that his velocity is on an uptick which points to him returning to his usual 95+mph average in the 2022 season. Surely manager Alex Cora and catcher Christian Vazquez had to pleased about that. His spin rate also reflects the impact the injuries had on him as well. In 2022 we should expect Sale to again get his RPM closer to the usual 2400. He definitely left a huge impression on his last pitch of the 2021 postseason when he blew Kyle Tucker away on a 98 mph fastball.


This image has an empty alt attribute; its file name is image-14.png


Chris Sale is among one of the greatest pitchers of this era. With this data, we are able to look deeper into finding what has made him so successful as well as what an impact injuries have on a great player like him. It was interesting to see his change in repertoire and his abandonment of his sinker in favor of his familiar four-seamer, sinker mix.

If you are interested feel free to copy the code and analyze your favorite pitcher.

Main Photo:
Embed from Getty Images

Players/Managers Mentioned:

Chris Sale, Alex CoraChristian VazquezKyle Tucker


More Posts

Send Us A Message