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

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.

Featured Promo: Get any MLB Premium Pass FREE ($119 value) AND up to a $200 deposit match when you sign up with Rival Fantasy. Rival offers 6 and 12-team Best Ball, weekly and daily contests, for as little as $3 per entry. No roster management, just draft and Rival sets your best lineup automatically. Playing fantasy baseball has never been easier! Sign Up Today!

 

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
Daily Stats & Leaders
All Pitcher Matchups
Compare Any Players
Player Comparisons
Rookies & Call-Ups
24x7 News and Alerts

REAL-TIME FANTASY NEWS

Mark Stone3 hours ago

Starts Scoring In Game 1 Win
Sebastian Aho3 hours ago

Posts Goal And Assist In Game 2 Win
Seth Jarvis3 hours ago

Leads Huge Comeback Win In Game 2
Evan Bouchard3 hours ago

Puts Up Four Assists From Back-End In Game 1
Connor McDavid3 hours ago

Dominates With Five Assists
Zach Hyman4 hours ago

Scores Hatty In Big Game 1 Win
Auston Matthews4 hours ago

Puts Away Game-Winner In Game 2
Merrill Kelly5 hours ago

"Most Likely" Headed To The Injured List
Josh Hart6 hours ago

Gets It Done In Game 2
Mitchell Robinson6 hours ago

Cools Off On Monday Night
Jalen Brunson6 hours ago

Struggles Shooting In Game 2
Joel Embiid6 hours ago

Has A Big Night On Monday
Tyrese Maxey6 hours ago

Erupts In Game 2
J.D. Martinez7 hours ago

Mets Hope To Activate J.D. Martinez Friday
Heston Kjerstad7 hours ago

Orioles Calling Up Heston Kjerstad
Justin Steele7 hours ago

To Throw In Extended Spring Game Friday
Alek Manoah7 hours ago

Set For Another Rehab Start
Ryan Mountcastle8 hours ago

Out Of Lineup With Sore Knee
Jalen Suggs8 hours ago

Returns On Monday
Kawhi Leonard8 hours ago

Questionable For Game 2
Miles Bridges9 hours ago

Pistons Could Target Miles Bridges This Summer
Malik Monk9 hours ago

Likely To Test Free Agency
Giannis Antetokounmpo9 hours ago

Not Expected To Play On Tuesday
Jalen Suggs9 hours ago

Helped Off The Court
Tyrese Maxey10 hours ago

Will Play In Game 2
Joel Embiid10 hours ago

Will Play On Monday Night
Manny Machado10 hours ago

Placed On Paternity List
Paul Sewald10 hours ago

To Begin Rehab Assignment On Tuesday
Carlos Rodón10 hours ago

Carlos Rodon Allows One Hit In No-Decision
Tyrese Maxey10 hours ago

A Game-Time Decision
Ricky Tiedemann11 hours ago

Meeting With Doctors This Week
Brenton Doyle11 hours ago

Back In Monday's Lineup
Wade Miley11 hours ago

Put On 15-Day Injured List
Ozzie Albies12 hours ago

Starts Hitting, Could Return Friday
Max Kepler12 hours ago

Activated From Injured List
Brandon Aiyuk12 hours ago

49ers Have Received Calls Regarding Brandon Aiyuk
Frankie Montas12 hours ago

Reds Place Frankie Montas On 15-Day Injured List
Dak Prescott13 hours ago

Not Trying To Be Highest-Paid Player
Pete Fairbanks13 hours ago

Goes On Injured List
Grayson Allen14 hours ago

Questionable For Game 2
Tyrese Maxey14 hours ago

Downgraded To Questionable
Zach Wilson14 hours ago

Broncos Acquiring Zach Wilson From Jets
Matt Ryan14 hours ago

Officially Retires From NFL
Cincinnati Bengals14 hours ago

Sam Hubbard Recovering From Ankle Surgery
New England Patriots15 hours ago

Patriots Listening To Calls For No. 3 Pick
Rashee Rice15 hours ago

Expected To Receive Multi-Game Suspension
Bryce Harper16 hours ago

Phillies Place Bryce Harper On Paternity List
Brenton Doyle16 hours ago

Looks To Be OK
Keibert Ruiz16 hours ago

Likely To Go On Short Rehab Assignment
Carlos Correa16 hours ago

Won't Return On Tuesday
Frankie Montas17 hours ago

Dealing With Forearm Bruise
Tyler Reddick17 hours ago

Survives At Talladega For First Win Of 2024
Brad Keselowski17 hours ago

Finishes Second At Talladega After Last-Lap Wreck
Anthony Alfredo17 hours ago

Gets Best Finish For Beard Motorsports Since 2022
Todd Gilliland18 hours ago

One Of The Strongest At Talladega
NASCAR20 hours ago

Bubba Wallace Finishes 36th At Talladega Superspeedway
Kyle Larson21 hours ago

Fails To Deliver Value In DFS At Talladega
NASCAR1 day ago

Ricky Stenhouse Jr. Finishes Fourth At Talladega
Noah Gragson1 day ago

Surprisingly The Most Consistent Driver At Talladega
Shane Van Gisbergen1 day ago

Shane van Gisbergen Acquits Himself Nicely In Drafting Debut
Michael McDowell1 day ago

Ends Talladega Wrecked From The Lead
Alex Bowman1 day ago

Quietly Captures Top-Five Finish At Talladega
Brock Bowers1 day ago

Jets The Favorite To Take Brock Bowers At No. 10
Drake Maye1 day ago

Giants Could Be Eyeing Drake Maye
Daniel Hemric1 day ago

Surges To Ninth-Place Result At Talladega
Harrison Burton1 day ago

Squeezes Into Top 10 At Talladega
De'Anthony Melton1 day ago

Out Again For Game 2
LeBron James1 day ago

Probable For Game 2
Anthony Davis1 day ago

Back On The Injury Report
Giannis Antetokounmpo1 day ago

Bucks Optimistic Giannis Antetokounmpo Will Play Soon
Jayson Tatum1 day ago

Has A Triple-Double In Game 1
NASCAR2 days ago

Bubba Wallace Will Start 14th For the GEICO 500
Tyler Reddick2 days ago

Avoid Rostering Tyler Reddick At Talladega?
John Hunter Nemechek2 days ago

Should DFS Players Roster John Hunter Nemechek At Talladega?
Joey Logano2 days ago

Expect Joey Logano To Compete For The Win At Talladega
Denny Hamlin2 days ago

Is Denny Hamlin Recommended For Talladega?
Justin Haley2 days ago

Is A Top DFS Value At Talladega
William Byron2 days ago

Is One Of The Top Favorites To Win Talladega
Christopher Bell2 days ago

Is Best Suited As A Tournament Play At Talladega
Mike Hoffman3 days ago

Kevin Labanc, Alexander Barabanov To Hit Free Agency
Logan Couture3 days ago

Optimistic For Healthy Return
Mikhail Sergachev3 days ago

Practices In Regular Jersey Saturday
Nick Jensen3 days ago

Rasmus Sandin, Nick Jensen Possible For Game 1
Alex Pietrangelo3 days ago

A Full Practice Participant
Mark Stone3 days ago

A Possibility For Game 1
Jonathan Drouin3 days ago

To Miss First Round
Zach Wilson3 days ago

Jets Still "Open" To Trading Zach Wilson
Marquise Brown3 days ago

Could Have Lucrative Role In KC
Dak Prescott3 days ago

Hasn't Started Contract Negotiations With Cowboys
Bobby McMann4 days ago

Could Play In Postseason Opener
Calle Jarnkrok4 days ago

Practices Friday
William Nylander4 days ago

Doesn't Practice Friday
Jean-Gabriel Pageau4 days ago

Listed As Day-To-Day
Aaron Ekblad4 days ago

Back For Game 1 Sunday
Zach Wilson4 days ago

Not At Voluntary Workouts
Noah Dobson4 days ago

Returning For Game 1
Max Domi4 days ago

Ready To Go For Game 1
Jayden Daniels4 days ago

Not Interested In Playing In D.C.?
DJ Chark Jr.4 days ago

Visits With Chargers
Courtland Sutton4 days ago

Broncos Not Concerned With Courtland Sutton
Darren Waller4 days ago

Giants Haven't Given Darren Waller A Deadline For His Decision
J.K. Dobbins4 days ago

"Should Be" Ready For Training Camp
Trevor Lawrence4 days ago

Jaguars Making Progress On Extension For Trevor Lawrence
Washington Commanders5 days ago

Commanders Won't Trade Down From No. 2 Pick
NFL5 days ago

NFL Reinstates Five Suspended Players On Thursday
Adam Hadwin6 days ago

Too Volatile To Touch At RBC Heritage
Kurt Kitayama6 days ago

A Boring Play At RBC Heritage
Tom Kim6 days ago

Heads To Hilton Head Looking For Consistency
Emiliano Grillo6 days ago

Looking To Bounce Back At RBC Heritage
Chris Kirk6 days ago

A Safe Option For RBC Heritage
Adam Schenk6 days ago

Trending Up Ahead of RBC Heritage
Lucas Glover6 days ago

Looks To Reverse Fortune At Harbour Town
Taylor Moore6 days ago

Should Contend At Harbour Town
Max Homa6 days ago

Be Wary Of Max Homas At RBC Heritage
Rickie Fowler6 days ago

In Poor Form Heading To Harbour Town
Eric Cole6 days ago

Out Of Form Heading To RBC Heritage
Sepp Straka6 days ago

Continues Maddening Run Of Inconsistent Play
Keegan Bradley6 days ago

Looking To Get Over The Hump At Harbour Town
Tony Finau6 days ago

Looking To Find Putting Stroke At RBC Heritage
Will Zalatoris6 days ago

Makes Return To Harbour Town
PGA6 days ago

J.T. Poston A Decent Leverage Play With Upside At RBC Heritage
Patrick Cantlay6 days ago

Brings Near-Perfect Course History To Harbour Town
RANKINGS
C
1B
2B
3B
SS
OF
SP
RP

RANKINGS

QB
RB
WR
TE
K
DEF