Hey everybody! This article will wrap up my 2022 starting pitcher analysis. I’ll explain my rankings process, highlight some notable successes, and highlight the deficiencies. Along the way, I’ll teach you how to build your ranking sheet from Razzball data! If you’re the kind of person that thinks managing an Excel sheet with 3,000 data points is fun, this article is for you!
The Challenge of Ranking Pitchers
Human performance is unpredictable. This unpredictability is why humans love sports: the unexpected thrills us.
It’s the bottom of the 9th in Game 7 of the World Series, and a rookie — some “every person” you’ve never heard of like Bill Anderson, or Emma Jones, or Julio Sanchez, or Hiro Nakamura — steps to the plate with two outs. The pitch is a fastball up high. The rookie swings — did they launch a solo home run and win the game, or did they swing and miss? Well, it’s your imagination. You tell me what happened.
Statistics can give us clues about the outcome of that situation. However, they cannot tell us with certainty what will happen. Maybe Bill Anderson can’t hit a high fastball, so he swung early and made contact. Maybe Emma Jones peeked at the catcher’s sign and knew which pitch was coming, but the pitcher missed the target, and she whiffed anyway.
Even when we expect an outcome, variance still dictates that uncertainty rules the day. Statistics tells us what should happen, and variance tells us the range of outcomes over multiple instances.
Statistics indicate that if we flip a fair coin 10 times, then it should land heads 5 times, and it should land tails 5 times.
Variance doesn’t know you’re flipping the coin 10 times. If you start your coin toss endeavor and land heads 8 times in a row, what are the odds of flip #9 landing heads? Instinctively, you think you’ve found a way of tossing heads every time, or maybe your coin is biased. Of course, if the coin is fair, your odds of flipping another head on attempt #9 is still 50% — just like it was every time before.
Let’s translate this to baseball statistics. From June 7 to August 4, 2022, Houston Astros starter Justin Verlander won 9 out of 10 games. During this astounding win trend, he struck out only 25% of batters, slightly below the league average rate. What do you think happened in Verlander’s next five starts? From August 10 to September 16, he struck out 35% of batters and won 2 out of 5 games. You expected Verlander — one of the most consistent pitchers in modern baseball history and a certain first-ballot Hall of Famer — to win at a rate above league average and strikeout batters at a rate below league average. Instead, he did the opposite. Verlander regressed to his expected performance: his win rate went down, and his strikeout rate went up.
So how can we accurately rank starting pitchers given this environment of chaos, complexity, and uncertainty?
I’ll teach you how to do this in the next section.
What Makes a Successful Fantasy Starting Pitcher
My system has succeeded over the past two years because I have no concern about the actual MLB performance of a player. I do not try to evaluate how a player will perform in real life. Instead, I calculate how a pitcher will perform in their fantasy sports life.
The Difference Between Fantasy and Reality
Modern baseball starting pitchers are a diverse breed. Here are some examples of modern pitcher archetypes:
- Innings eaters serve the role of pitching as many innings as possible and reducing the workload of the team’s relief pitchers.
- Openers manage the toughest batters in the game on their first plate appearance before giving way to another starter that will manage those batters when they’re more tired on the second or third at-bat.
- Quad-A Pitchers have the sole purpose of keeping payrolls low, and their performance doesn’t really matter as long as team management doesn’t have to pay a better pitcher. When the team no longer needs the Quad-A pitcher, the pitcher returns to toil for pennies in the minor leagues.
All of these pitcher archetypes are extremely valuable to real Major League Baseball. However, they’re usually not valuable for fantasy baseball. So, we need a way to eliminate these pitchers — who form about 75% of the pitching workforce — from the rankings.
Fantasy baseball generally demands Wins, ERA, WHIP, and Strikeouts from their starting pitchers. Using Razzball’s Historical Player Rater, I investigated the qualities of top starting pitchers over many years, and then I created correlations to match pitchers who met those statistical qualities. The result was my “Confidence Score.”
The Confidence Score incorporates many variables, but here are the highest weighted variables in my ranking system:
- SIERA (Skill Independent Earned Run Average)
- K-BB% (Strikeout Minus Walk Percentage)
- K/9 (Strikeouts per 9 Innings)
- ERA-FIP (Earned Run Average Minus Fielding Independent Pitching)
Sound fancy? Here’s how I made my Confidence Score, and here’s how you can make yours at home.
Making Your First Pitcher Ranking
Prerequisites: Basic spreadsheet knowledge, access to Razzball.com, and a willingness to learn.
Step 1: Create a workstation.
- This is probably best done in Google Sheets, but you can use Excel, or Open Office, or any other spreadsheet/database manager.
Step 2: Choose your database.
- I use the Razzball database because it’s free and easily accessible to spreadsheets. You can also use FanGraphs, Baseball Reference, or MLB Savant, but these databases introduce unique quirks that require advanced data manipulation and also have distribution limitations.
Step 3: Import your database to your workspace.
- In your spreadsheet, in cell A1 (top left), you’ll input the following code to import MLB stats:
=IMPORTHTML("https://razzball.com/mlbpitchingstats/", "table", 4)
An example of the raw data imported from Razzball
- You can also download the table as a .CSV file and import it manually if you prefer. Using the IMPORTHTML function allows an automated live update, which simplifies the workflow.
Step 4: Determine how data-based you want to be.
- In Step 3, you imported current MLB data, and you’re fine to use only that data if you want. Most announcers on TV and many fantasy analysts at your favorite sites look no further than these current MLB stats.
- I would encourage you to level up your ranking by learning how to calculate advanced stats, or by investigating correlations.
- PitcherList has an all-in-one Advanced Stats Glossary for reference.
- You can calculate correlations between two columns in Google Sheets by using the CORREL function:
=CORREL(D2:D397,F2:F397)
Step 5: Create ranks by statistical category.
- At the most basic level, you can do this by inserting a filter. Highlight Row 1, click the filter button on the far right, and create a new filter. You can then sort and exclude players who fail to meet certain criteria, such as a low strikeout rate or a high ERA.
An example of the filter function in Google Sheets
- If you want to be more mathematically inclined, you can use the Rank function, which allows users to manipulate data by other means. The basic Rank function works like this:
RANK.EQ(N4,N:N,0)
. In short, you tell the sheet to look at your single piece of data, compare it to the entire set of comparable data, and then rank it.An example of my FIP Rank in my rankings
- Optional: To get better results, you need to create sub-hierarchies in your ranks. First, you establish your elite values (discussed later in Step 6), and then tell the sheet what to do for numbers that are superior or inferior to these values. While this practice produces superior results, it also requires some unwieldy coding. The actual code used in the “FIP Rank” column in the image above is the following, which is a Rank function nested in an IF function:
=iferror(if(M4>$B$2,(RANK.EQ(N4,N:N,0)/110),(RANK.EQ(N4,N:N,0)/250))," "
)
.
Step 6: Create cutlines.
- There are over 700 pitchers who appear in MLB every year, but only about 80 of them are meaningful to fantasy baseball players at a given time. To sort the elite pitchers from the remainder pitchers, we need to create cutlines.
- A cutline is part science and part art: data drives your decision, but your personal sentiment gives weight to that data. Here are the cutlines that I used in 2021.
An example of three of the cutlines I use in my rankings
- The analyst chooses the “weight” of the cutline. For example, I wanted to track ONLY the top 50% of strikeout pitchers. Here’s the code I used to mathematically sort the top 50% of strikeout pitchers and create the K/IP cutline:
=AVERAGEIF(G4:G800,">="&PERCENTILE(G4:G800,0.5))
. - Eagle-eyed readers will notice that I used K/IP, which isn’t a commonly available statistic. To convert that to the more commonly available K/9, you simply multiply K/IP by 9. You can do that in Google Sheets this way:
=[K/IP Cell]*9
.
Step 7: Choose your stats to output.
- Among other stats, I rely heavily on K/9 and FIP, which are highly correlated with fantasy pitcher success. You can choose your own stats to track if you want more advanced research. I recommend investigating SIERA, pCRA, speX, CSW%, etc.
- If you work for a paid fantasy site, you should be very careful about intellectual property rights and the distribution of site data. Because I work entirely in the Razzball database, I can use all that data and output it on Razzball to our readers.
Step 8: Output your rankings.
- After you determine your ingredients (your stats to output), you mix them together into a big pot, weigh them yourself, and output them.
- I create cutline hierarchical ranks of players, and then I average those scores. Here’s the function that outputs my scores:
=iferror(IF(K4>$G$2, AVERAGE(R4:V4),IF(K4<($G$2-10),(average (R4:V4)*0.1),(average(R4:V4)*0.85)))," ")
. - Although I don’t want to give away my specific trade secrets, it’s fair to say that if a pitcher is elite in K/9 and FIP, they will top my list.
- To give you an idea of the hierarchy of K/9 in my rankings, here’s the order I use to weight K/9:
- 1. Import raw strikeout data using IMPORTHTML function (Step 3).
- 2. Divide strikeouts by innings pitched to calculate raw K/IP.
- 3. Create a cutline for K/IP using AVERAGEIF function (Step 6).
- 4. Create a weighted rank for K/IP using RANK.EQ function (Step 5, point 3).
- 5. Weight the K/IP to my taste in the aggregated formula using the IF function (Step 8).
Reviewing the Hits:
The table below represents my top 10 pre-season starting pitchers, and their current Player Rater ranking in the right column.
Pre-Season Rank | Name | Current Player Rater Rank |
---|---|---|
1 | Corbin Burnes | 11 |
2 | Gerrit Cole | 13 |
3 | Max Scherzer | 19 |
4 | Aaron Nola | 20 |
5 | Kevin Gausman | 31 |
6 | Charlie Morton | 53 |
7 | Brandon Woodruff | 38 |
8 | Robbie Ray | 27 |
9 | Julio Urias | 4 |
10 | Zack Wheeler | 28 |
These are within tolerable variance ranges. Morton had a rough start but has been far above average for the remainder of the year, except he has poor win luck (8 Wins out of 26 Games Started). Morton is 8th overall in strikeouts and in the top 20 in xFIP. He performed much better than his 4.17 ERA and 8 Wins indicated.
Of course, per expectation of my Fantasy Sports Writers Association 2021 nominated “Best Article of the Year”, only 1 of the pre-season consensus top 10 Starting Pitchers will likely finish in the end of year Top 10.
But what about the actual top of the Player Rater? Where did those pitchers appear in my rankings? Well, you might have needed to read the Cliffs Notes.
Justin Verlander, Shane McClanahan, and Carlos Rodon: The current #1/#2/#6 on the Player Rater appeared as targets in my pre-season article about Quality Starts. If you had taken my advice and avoided pitchers early in the drafts, and instead targeted my “efficient frontier” that I listed in the article, you would have been rewarded with three of the top 10 pitchers.
Spencer Strider: He’s #19 on the Player Rater because he didn’t play half the year. Strider, a rookie who began the season in the Atlanta Braves bullpen, appeared as my #1 Starting Pitcher on June 27, 2022. At that point, Strider had crossed the 5IP threshold once in the season. At the time, I compared Strider to Gerrit Cole. Now that the season is closing, Strider has the best Innings Pitched to Player Rater score of the healthy pitchers on the board. The only one ahead of him? Tony Gonsolin, who posted an unbelievable win rate of 16 Wins to 1 Loss in 23 Games Started. I made an extremely bold call on Strider, and it rewarded my readers with the top free agent pitcher in the game. Strider will likely be a top 10 starting pitcher for 2023.
Kyle Wright: Wright did nothing notable in his 2021 appearances, and his surprise inclusion in the 2022 Atlanta Braves rotation left many analysts stunned. However, I placed Kyle Wright at the top of my pitching rankings as early as week 4, and he’s currently SP16 on the year. For a free waiver wire pickup, you got a top 20 pitcher.
Shohei Ohtani: You might have missed it because I posted a paean to Ohtani in January, but Ohtani was my unequivocal 1.01 on the year in all fantasy baseball formats.
In summary, if you followed my early season rankings, you could have avoided pitchers in nearly the first ten rounds of your draft and still finished with three top 10 starters and five total top 20 starters. This is the benefit of creating your own pitcher rankings.
Reviewing the Misses:
Sandy Alcantara: I’ve talked about this plenty before, so I’ll be brief: Alcantara will finish in the Top 10 Starting Pitchers this year, despite having the lowest K/9, the lowest Wins, the lowest K-BB%…you get the idea. Statistically, Alcantara did not have a stunning year. However, he did lead the league in Innings Pitched, which gives volume weight to his excellent ERA and WHIP. However, given that Alcantara’s ERA and WHIP were expected to be much higher when measured by true skill stats, there are plenty of reasons to worry about his continuing performance in 2023.
Zac Gallen: It’s tough to “miss” on a pitcher who was undrafted in many shallower leagues, but he’ll finish in the top 10. In the preseason, he ranked as SP64 on my rankings, largely due to his K/9 inconsistency following his rehab from a sprained ligament in his elbow. Gallen is healthier now and could be a great pick for 2023.
Nathan Eovaldi: Eovaldi featured as my top “hot pick” in the pre-season, coming in at SP12. Eovaldi battled injuries for most of the year but will finish 2022 with a negative points per game value. Over 100 innings, Eovaldi had a fair 3.38 xFIP — which was actually in the top 35 and better than Sandy Alcantara — but he didn’t have enough innings volume for his luck to turn around. If Eovaldi had been healthier, we might have seen a Charlie Morton-like second-half surge that justified my aggressive pre-season ranking.
Thanks all for reading my work in 2022, and I look forward to seeing you in 2023! If you have questions about your playoff pitcher choices, please leave them down in the comments and I’ll be checking this article up until the end of the fantasy baseball year.