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
Draft Rankings
Draft Simulator
Enter League Settings
Compare Any Players
Rookies & Call-Ups
24x7 News and Alerts

2021 MLB Strength of Schedule - In Depth Analysis

Strength of schedule analysis is a common thing you'll see in fantasy football analysis. With just 16 (17 now, I guess) games on the schedule every year, the list of teams on your schedule can make a big difference in your final year metrics. If you get to face the league's worst offense twice while other teams don't face them at all, that makes a big difference.

Things are different in baseball. Strength of schedule metrics tend to even out over that big of a data sample. Most people realize this inherently without it needing to be proven, so we don't often bother analyzing the schedules. Well, I bothered to do it.

The lack of a salary cap in Major League Baseball has really led to huge differences in the firepower on the league's teams. It feels ridiculous that the Pittsburgh Pirates and the Los Angeles Dodgers are in the same league and have to play each other. It's also true that the schedules aren't balanced out, teams play almost half of their games against teams in their division, which does end up giving some teams much easier goes of it throughout the long season. Let's get into this.

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

 

Pitchers

It is important for me to detail how I went about this, because it is probably not what you'd expect. With the massive MLB Savant pitch-by-pitch dataset and Python programming, I was able to quickly get each pitcher's schedule data based on the list of hitters they actually faced, rather than just looking at stats from the teams they faced. If a pitcher makes 25 starts, with two being against the Blue Jays, but they were lucky enough that George Springer wasn't in the Blue Jays lineup both times - that would make a difference, and just looking at end-of-year team offensive stats wouldn't account for it.

So for each pitcher that threw 1500 or more pitches (the equivalent of about 16 starts), I did the following:

  1. Listed all of the hitters they faced, leaving in the duplicates
  2. Got rid of the hitters that had fewer than 25 plate appearances so we could average the stats out without getting adverse effects from the really sample sizes (we don't want some guy went 0/3 this year to bring down the average SLG rate with the .000, for example).
  3. Merged in each hitter's end of year stats (SLG, K%, BB%, and Brl%)
  4. Averaged out the statistics for each pitcher

I hope that makes sense, here are the results all in one table.

The first thing I noticed here was that when you sort by slugging percentage (ascending), you don't find a player on an American League team until James Kaprielian is way down at #18, and only six of the top 30 spots were taken by AL pitchers. Not getting to face a pitcher two or three times a game makes a big difference over the course of the year, so it's always a great idea to upgrade any pitcher going from an American League team to a National League team, or at least that will be true as long as the DH doesn't become universal.

In terms of easiest schedules for fantasy-relevant pitchers, Luis Castillo, Zack Wheeler, Pablo Lopez, Kevin Gausman, Kyle Hendricks, Chris Bassitt, Tyler Mahle, and Lance McCullers Jr. stand out as they all are in the top 30 in lowest slugging percentages faced. Flipping slugging percentage around, we see that it was a tough year to be in the American League East division. Ten of the 15 toughest schedules were pitchers on the Orioles, Rays, Yankees, or Red Sox. Yusei Kikuchi pitched in the lighter hitting American League West division, but faced the Astros SIX times, and they were a brutal matchup all year long even while they were missing some key guys. I would be looking for a buy-low on Kikuchi next year.

Sorting by barrel rate we see more of the same, as that stat is strongly correlated with slugging percentage. Pitching for the Orioles was tough, as Jorge Lopez and Keegan Akin are both in the top five there. Shane McClanahan was put through the gauntlet in his rookie year, facing a 9.2% barrel rate and a .430 slugging percentage. Things aren't getting any easier next year for the guy, but maybe he will run into a few more starts outside of the division (nine of his 25 starts were against Boston, New York, or Toronto).

For the lowest barrel rates faced, we see a lot of National League West teams, with six of the top seven pitchers being on the Giants or Padres. That's pretty surprising since they had to face the Dodgers a bunch, but it is important to note that the Dodgers saw a ton of missed games from Mookie Betts, Max Muncy, and Cody Bellinger. The Giants caught the Dodgers on those soft patches quite a bit and guys like Kevin Gausman benefited from it (also facing the Rockies and Diamondbacks a bunch certainly helped).

The easiest strikeout schedules were more spread out between divisions, but you can still see lots of the leaders ending up in the National League Central and East divisions there. The toughest schedules for strikeouts were the American League West, which has everything to do with the Astros who just did not strike out this year.

You can go ahead and search a team abbreviation in that table and see the numbers for whomever you want.

full data in Excel form can be found here

I averaged this out further down two the division level, here are the results for each division and for each category we're talking about.

It was best to pitch in the NL Central or NL West, and really, really tough to be in the AL East. The other three divisions were pretty close together in the metrics, making for a neutral environment. Chances are this setup will stick around for next year, with slight changes as free agents sign and trades happen. Keep this table in mind when drafting pitchers for next year (although it's also important to recognize that this kind of stuff is typically baked into the ADP cake already).

 

Hitters

I did the same exact analysis again but this time flipping pitchers for hitters. For each hitter with at least 400 PA's in 2021, I looked at the full list of pitchers they faced and averaged out all of the end-of-year statistics from those pitchers. Then I averaged out each category for each hitter to come up with this table:

full data in Excel form can be found here

There are obviously a ton of hitters in the table above, but you can tell right away that the National League West was a tough place to hit in 2021. All but two of the hitters on the first page when you sort by slugging percentage were on the Diamondbacks, Padres, or Rockies. That will happen when you have to face the Dodgers and Giants a bunch, two of the best pitching staffs in the league. Sorting the other way, you see a lot of NL Central, AL Central, and AL East.

Jose Abreu had the easiest schedule of any hitter in terms of the average slugging percentage allowed by the full list of pitchers he faced. The 8.37% barrel rate there tied him with Whit Merrifield for first as well. It was a good year to be a hitter for the White Sox.

I broke it down by division here:

The AL East, AL Central, and NL Central all were pretty similar in terms of average slugging percentage faced, with the AL West and NL East a step-down but close, and then the NL West really stands out there at the bottom of the list. The strikeout rates were all very similar, and there's not much deviation in CSW rates either. The easiest places to hit for home runs were the AL East and the AL Central.

Note that this isn't the most reliable data here because it is skewed. For example, the Yankees hitters disproportionally faced pitchers who had to face a bunch of the Blue Jays as well, which would have bloated their numbers. The AL East pitchers may very well be much better than their numbers suggest, but they just ran into the elite offenses of the Blue Jays, Red Sox, and Yankees so much that the numbers don't bear that out. Even still, just thinking about the names on the pitching staffs in the AL East does a lot for us here. There just aren't many guys you would consider aces on those teams.

 

Conclusion

All of this stuff is best used for tie-breaker situations if you're deciding between players while ranking or drafting. It's not a great idea to take this strength of schedule data super seriously, but it's good to keep in mind at the more granular level. For example, I think I'll be pretty interested in drafting a guy like Yusei Kikuchi at the end of drafts next year seeing just how unfortunate his schedule was. He will likely only have to face the Astros three or four times next year rather than the six, which could make a significant difference on his numbers since you're only pulling 30 starts from a guy like that.

I would also be significantly upgrading any pitcher that gets moved from the American League to the National League, because we saw just how much easier NL pitchers have it in terms of the batters they have to face throughout the year.

I hope this helps, thanks for reading and feel free to reach out to me on Twitter @JonPGH with questions or other data requests!



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
Draft Rankings
Draft Simulator
Enter League Settings
Compare Any Players
Rookies & Call-Ups
24x7 News and Alerts

REAL-TIME FANTASY NEWS

Xavier Worthy41 mins ago

Authorities Not Charging Xavier Worthy
Kristaps Porzingis55 mins ago

To Miss Another Game
LeBron James55 mins ago

Suiting Up Versus Boston
Jrue Holiday1 hour ago

Returns On Saturday
Luka Dončić1 hour ago

Luka Doncic Available On Saturday
Baltimore Ravens1 hour ago

Ronnie Stanley Staying In Baltimore
Brandin Podziemski1 hour ago

Ruled Out For Saturday
Tobias Harris1 hour ago

Back On Saturday
Gary Trent Jr.1 hour ago

Unavailable On Saturday
Tommy Tremble1 hour ago

Carolina Re-Signs Tommy Tremble To Two-Year Deal
Albert Suárez1 hour ago

Albert Suarez, Cade Povich Competing For Open Rotation Spot
Andrew Wiggins1 hour ago

Returns On Saturday
Coby White1 hour ago

Ready To Go On Saturday
Lonzo Ball2 hours ago

To Miss Another Game
Max Lazar2 hours ago

Optioned To Triple-A
Derek Carr2 hours ago

Saints Holding Onto Derek Carr At Full Price
Nikola Vučević2 hours ago

Nikola Vucevic Remains Out On Saturday
Jordan Poole2 hours ago

Returning On Saturday
Luarbert Arias2 hours ago

Optioned to Triple-A
Chris Boucher2 hours ago

Active On Saturday
Bennedict Mathurin2 hours ago

Returning On Saturday
Adam Mazur2 hours ago

To Begin Season With Triple-A
Deyvison De Los Santos2 hours ago

Sent To Triple-A
Tyrese Haliburton2 hours ago

Ruled Out For Saturday
Terance Mann2 hours ago

Ready To Go On Saturday
Caris LeVert2 hours ago

Available On Saturday
Trae Young2 hours ago

Cleared For Saturday
Jusuf Nurkić3 hours ago

Jusuf Nurkic Out On Saturday
Riley Adams4 hours ago

Scratched From Saturday's Game
Lance McCullers Jr.4 hours ago

Nearing Game Action
Detroit Lions4 hours ago

Marcus Davenport Re-Signs With Detroit
Chase Meidroth4 hours ago

Removed Early On Saturday
Jurickson Profar4 hours ago

To Undergo MRI
Mark Williams4 hours ago

Out Again On Saturday
Brandon Nimmo4 hours ago

Receives Gel Injection
Kirk Cousins4 hours ago

Falcons Don't Plan To Release Kirk Cousins
LaMelo Ball4 hours ago

Won't Play Against Brooklyn
Buffalo Bills5 hours ago

Greg Rousseau Inks Extension With Buffalo
Marquise Brown5 hours ago

Back With Kansas City
Chris Paddack6 hours ago

Exits Early On Saturday
Chase DeLauter7 hours ago

Assigned To Minor-League Camp
Drew Thorpe7 hours ago

To Throw Live Batting Practice On Tuesday
Justin Topa7 hours ago

Dealing With Shoulder Tightness
Zebby Matthews7 hours ago

Set to Throw Bullpen On Sunday
Michael Tonkin7 hours ago

Has "Slight" Shoulder Strain
Luis Rengifo7 hours ago

Scratched On Saturday
Spencer Torkelson8 hours ago

Goes Deep Twice On Friday
Andrew Kittredge8 hours ago

Undergoes Successful Knee Surgery
Alex Verdugo8 hours ago

Patiently Waiting On Free-Agent Market
Ryan Burr8 hours ago

Battling Right-Shoulder Fatigue
Mike Gesicki9 hours ago

Bengals Re-Sign Mike Gesicki To Three-Year Deal
Jakub Dobes9 hours ago

Starts For Canadiens Saturday
Tommy DeVito9 hours ago

Giants Officially Re-Sign Tommy DeVito
Chris Kreider9 hours ago

Returns To Action Saturday
Russell Wilson9 hours ago

Giants Have Been In On Russell Wilson
Vitek Vanecek9 hours ago

Ready For Panthers Debut Saturday
Russell Wilson9 hours ago

Seahawks Won't Pursue Russell Wilson
Sam Darnold9 hours ago

Now An Obvious Target For Seattle
Sam Darnold9 hours ago

Not Expected To Re-Sign With Vikings
Jiri Kulich9 hours ago

Misses Saturday's Contest Due To Illness
Carson Soucy9 hours ago

Makes Rangers Debut Saturday
Cam York10 hours ago

Sits Out Saturday's Game
Daniel Jones10 hours ago

Getting Interest From Vikings, Colts
Aaron Rodgers10 hours ago

May Draw Interest From Vikings
Dallas Goedert11 hours ago

Reportedly On The Trade Block
J.J. McCarthy11 hours ago

Expected To Be Able To Practice In The Spring
Kevin Lankinen11 hours ago

Stops 37 Shots On Friday
Xavier Worthy11 hours ago

Arrested For Assault On Friday Night
Mark Stone11 hours ago

Tallies Goal, Two Helpers In Victory
Spencer Knight11 hours ago

Leads The Way On Friday
Aliaksei Protas11 hours ago

Nets Two Goals On Friday
Nikolaj Ehlers12 hours ago

Tallies Three Points On Friday
Brad Marchand12 hours ago

Expected To Miss Two Weeks
Justin Fields23 hours ago

Jets High On Justin Fields
Las Vegas Raiders1 day ago

Raiders Plan To Release Andre James
Evander Kane1 day ago

Out For Remainder Of Regular Season
Brandon Tanev1 day ago

Rejoins Jets At Trade Deadline
Scott Laughton1 day ago

Lands In Toronto
Luke Kunin1 day ago

Blue Jackets Acquire Luke Kunin
Casey Mittelstadt1 day ago

Joins Bruins
Charlie Coyle1 day ago

Shipped To Colorado
Brad Marchand1 day ago

Traded To Florida
Magomed Ankalaev1 day ago

Challenges For Light-Heavyweight Title At UFC 313
Logan Stankoven1 day ago

Shipped To Carolina
Alex Pereira1 day ago

Set For Fourth Title Defense
Mikko Rantanen1 day ago

Traded To Dallas
Rafael Fiziev1 day ago

Looks To Get Back In The Win Column
Justin Gaethje1 day ago

Set For A Rematch
Ignacio Bahamondes1 day ago

Looks To Extend His Win Streak
Jalin Turner1 day ago

Looks To Get Back In The Win Column
Iasmin Lucindo1 day ago

Looks For Her Fifth Win In A Row
Amanda Lemos1 day ago

Looks To Return To Win Column At UFC 313
Mauricio Ruffy1 day ago

Returns To Action At UFC 313
King Green1 day ago

Opens Up UFC 313 Main Card
Sahith Theegala3 days ago

Looking To Keep Spark From Last Event Alive At Bay Hill
Robert MacIntyre3 days ago

An Interesting Play At Arnold Palmer Invitational
Max Homa3 days ago

Hoping His Course History At Bay Hill Can Help Turn Season Around
Tommy Fleetwood3 days ago

Looking To Get Back Into Good Graces At Bay Hill
Michael Kim3 days ago

One Of The Hottest Players In Golf Heading To Bay Hill
Xander Schauffele3 days ago

Making Long-Awaited Start Since Rib Injury At Bay Hill
Sepp Straka3 days ago

Needs Accuracy At Arnold Palmer Invitational
Collin Morikawa3 days ago

Looking For Better Form On And Around The Greens At Bay Hill
Justin Rose3 days ago

May Be Worth Avoiding This Week
Maverick McNealy3 days ago

Tries To Go One Step Further At Bay Hill
Shane Lowry3 days ago

Has Potential To Contend At Bay Hill
PGA3 days ago

Sungjae Im Trying To Snap Out Of Golfing Funk
Jacob Bridgeman3 days ago

Looking To Build Off Momentum At Arnold Palmer Invitational
Joe Highsmith3 days ago

Steps Up After Cognizant Classic Win
Max Greyserman3 days ago

Be Wary Of Max Greyserman At Bay Hill
Davis Thompson3 days ago

Very Iffy For Arnold Palmer Invitational
Tony Finau3 days ago

And Bay Hill Could Be A Battle
Cam Davis4 days ago

A Question Mark Heading To Arnold Palmer
Sam Burns4 days ago

Could Stick Around At Arnold Palmer
J.J. Spaun4 days ago

Could See Success At Bay Hill
PGA4 days ago

Byeong Hun An Seeks Answers And May Not Find Any
MMA5 days ago

Asu Almbayev Gets TKO'd At UFC Vegas 103
Manel Kape5 days ago

Gets TKO Win At UFC Vegas 103
Julian Marquez5 days ago

Loses Fourth Fight In A Row
Kyle Busch5 days ago

Falls Short Of Victory At COTA While Finishing Fifth
Kyle Larson5 days ago

Has A Day To Forget At COTA On Sunday
Cody Brundage5 days ago

Gets Back In The Win Column
Tyler Reddick5 days ago

Continues His Top-10 Streak At COTA With Third-Place Finish
NASCAR5 days ago

Bubba Wallace Has An Eventful Day At COTA That Ends In 20th-Place Finish
Esteban Ribovics5 days ago

Drops Decision At UFC Vegas 103
Noah Gragson5 days ago

Scores His First Career Road Course Top-10 Finish At COTA
Nasrat Haqparast5 days ago

Extends Win Streak At UFC Vegas 103
William Gomis5 days ago

Takes Split-Decision Loss
Hyder Amil5 days ago

Remains Undefeated
Sam Patterson5 days ago

Extends Win Streak To Three
Danny Barlow5 days ago

Suffers First Career Loss At UFC Vegas 103
Christopher Bell6 days ago

Wins At COTA, Ready To Keep Adding To It
Chris Buescher6 days ago

Finishes Seventh At COTA, Sees Room For Improvement
Todd Gilliland6 days ago

Nabs First Top-10 Finish Of Season After Bumpy COTA Race
Chase Elliott6 days ago

Recovers From Lap 1 Spinout To Finish Fourth
William Byron6 days ago

In Battle Between Last Two Race Winners, William Byron Comes Up Short
Shane Van Gisbergen6 days ago

Shane van Gisbergen Dominates First Two Stages But Fades In Third Stage
AJ Allmendinger6 days ago

A.J. Allmendinger Runs Well At Austin Until Late-Race Collapse
Alex Bowman6 days ago

Recovers From COTA Penalty To Finish Ninth
RANKINGS
C
1B
2B
3B
SS
OF
SP
RP

RANKINGS

QB
RB
WR
TE
K
DEF