July Starting Pitcher Rankings

I hate pitching.

OK, that’s not true, but it gets so thin so fast. I have Kyle Gibson in the top 50 for cryin’ out loud. I’m sure we’ve got a lot to talk about given that it opens up entirely after like, pitcher 25, so hit me up in the comments!

(Now with more Clev Dog!)

The tiers are as follows:

#1s (8 SPs) – The true aces of fantasy baseball.

You Aren't a FanGraphs Member
It looks like you aren't yet a FanGraphs Member (or aren't logged in). We aren't mad, just disappointed.
We get it. You want to read this article. But before we let you get back to it, we'd like to point out a few of the good reasons why you should become a Member.
1. Ad Free viewing! We won't bug you with this ad, or any other.
2. Unlimited articles! Non-Members only get to read 10 free articles a month. Members never get cut off.
3. Dark mode and Classic mode!
4. Custom player page dashboards! Choose the player cards you want, in the order you want them.
5. One-click data exports! Export our projections and leaderboards for your personal projects.
6. Remove the photos on the home page! (Honestly, this doesn't sound so great to us, but some people wanted it, and we like to give our Members what they want.)
7. Even more Steamer projections! We have handedness, percentile, and context neutral projections available for Members only.
8. Get FanGraphs Walk-Off, a customized year end review! Find out exactly how you used FanGraphs this year, and how that compares to other Members. Don't be a victim of FOMO.
9. A weekly mailbag column, exclusively for Members.
10. Help support FanGraphs and our entire staff! Our Members provide us with critical resources to improve the site and deliver new features!
We hope you'll consider a Membership today, for yourself or as a gift! And we realize this has been an awfully long sales pitch, so we've also removed all the other ads in this article. We didn't want to overdo it.

Must Start (30 SPs) – Should be pretty obvious, but these are the guys who always start. Again, it isn’t just the very best guys. There are second and third tier arms in terms of market value that I’d start every time out. They don’t have an obvious split or weakness that would give you a better chance at picking off their poor starts. Some of them are “No Coors Field”-types, but it’s predominantly set it and forget it for the foreseeable future.

Usually Start (22 SPs) – If “No Coors Field” is 20-25% with the MS group, it’s more like 60-70% with this group. You need to find a reason to sit them right now in most formats. You might feel like you can spot them properly, but we’re just not that precise in identifying when a solid arm will falter. These guys are good enough to thwart any opponent even on something less than their best day or they could get smacked by a weaker opponent. If you’re rostering them, you should probably be starting them.

Shallow Spot Start (25 SPs) – Flawed talents. A lot of these guys are on the cusp of or have been in the Usually Start tier, but currently you’re looking to curate their starts a bit where you can. These guys might also be US tier arms here temporarily while they get on track. Pay very close attention to gamelogs of pitchers, get a feel for how they arrived at their bottom line numbers. Not all ERAs are created equally and that’s why it’s not a gauge for future production, especially in small samples. I decided to split the group a bit as sort of a way to identify upward or downward mobility for these guys. The shallow ones are a bit more talented and/or running hot so we’re maybe keeping a closer eye on them.

Deep League Spot Start (35 SPs) – I know many of you are dealing with some brutal pitching staff conditions right now after drafting a rotation you thought would be a strength, so you might find yourself in this tier a little more than you’d like. There is some talent to be plucked and the right two-start week could really set you up. This is essentially the Spot Star tier for single leagues or super-deep mixers (16+ teams).

Please leave your questions and comments below!

July SP Rankings
Name Tier TM LG June Diff
1 Max Scherzer #1 WAS NL 1 0
2 Justin Verlander #1 HOU AL 2 0
3 Chris Sale #1 BOS AL 3 0
4 Gerrit Cole #1 HOU AL 4 0
5 Jacob deGrom #1 NYM NL 6 1
6 Hyun-Jin Ryu #1 LAD NL 9 3
7 Walker Buehler #1 LAD NL 11 4
8 Blake Snell #1 TB AL 5 -3
9 Charlie Morton MS TB AL 12 3
10 Clayton Kershaw MS LAD NL 7 -3
11 Stephen Strasburg MS WAS NL 8 -3
12 Zack Greinke MS ARI NL 17 5
13 David Price MS BOS AL 16 3
14 Trevor Bauer MS CLE AL 20 6
15 Luis Castillo MS CIN NL 10 -5
16 Shane Bieber MS CLE AL 22 6
17 Matthew Boyd MS DET AL 14 -3
18 Jose Berrios MS MIN AL 31 13
19 Lucas Giolito MS CWS AL 28 9
20 Patrick Corbin MS WAS NL 13 -7
21 Brandon Woodruff MS MIL NL 39 18
22 Mike Minor MS TEX AL 37 15
23 Mike Clevinger MS CLE AL N/A N/A
24 James Paxton MS NYY AL 15 -9
25 Mike Soroka MS ATL NL 30 5
26 Jake Odorizzi MS MIN AL 36 10
27 Aaron Nola MS PHI NL 27 0
28 Zack Wheeler MS NYM NL 18 -10
29 Kyle Hendricks MS CHC NL 35 6
30 Chris Paddack MS SD NL 19 -11
31 Kenta Maeda MS LAD NL 34 3
32 German Marquez MS COL NL 26 -6
33 Madison Bumgarner MS SF NL 32 -1
34 Noah Syndergaard MS NYM NL 25 -9
35 Caleb Smith MS MIA NL 23 -12
36 Domingo German MS NYY AL 29 -7
37 Masahiro Tanaka MS NYY AL 44 7
38 Max Fried MS ATL NL 38 0
39 Lance Lynn MS TEX AL 68 29
40 Jack Flaherty US STL NL 24 -16
41 Griffin Canning US LAA AL 48 7
42 Robbie Ray US ARI NL 41 -1
43 Jordan Lyles US PIT NL 67 24
44 John Means US BAL AL 106 62
45 Joey Lucchesi US SD NL 53 8
46 Sonny Gray US CIN NL 42 -4
47 Kyle Gibson US MIN AL 57 10
48 Zac Gallen US MIA NL N/A N/A
49 Yonny Chirinos US TB AL 54 5
50 Eduardo Rodriguez US BOS AL 55 5
51 Zach Eflin US PHI NL N/A N/A
52 Wade Miley US HOU AL 59 7
53 Spencer Turnbull US DET AL 50 -3
54 Brendan McKay US TB AL N/A N/A
55 Jon Lester US CHC NL 60 5
56 Tyler Mahle US CIN NL 66 10
57 Joe Musgrove US PIT NL 49 -8
58 Jose Quintana US CHC NL 46 -12
59 Yu Darvish US CHC NL 61 2
60 Miles Mikolas US STL NL 47 -13
61 Ross Stripling US LAD NL N/A N/A
62 Anibal Sanchez SSS WAS NL 86 24
63 Jon Gray SSS COL NL 81 18
64 Marcus Stroman SSS TOR AL 83 19
65 Jordan Yamamoto SSS MIA NL N/A N/A
66 Martin Perez SSS MIN AL 65 -1
67 Trevor Richards SSS MIA NL 71 4
68 Steven Matz SSS NYM NL 51 -17
69 Zach Plesac SSS CLE AL 87 18
70 Matt Strahm SSS SD NL 43 -27
71 Andrew Heaney SSS LAA AL 69 -2
72 Felix Pena SSS LAA AL 56 -16
73 Adrian Sampson SSS TEX AL N/A N/A
74 J.A. Happ SSS NYY AL 63 -11
75 Ryan Yarbrough SSS TB AL 85 10
76 Logan Allen SSS SD NL N/A N/A
77 Zach Davies SSS MIL NL 72 -5
78 Tanner Roark SSS CIN NL 95 17
79 Sandy Alcantara SSS MIA NL 107 28
80 Adrian Houser SSS MIL NL N/A N/A
81 Elieser Hernandez SSS MIA NL N/A N/A
82 Merrill Kelly SSS ARI NL 92 10
83 Nick Pivetta SSS PHI NL 58 -25
84 Marco Gonzales SSS SEA AL 90 6
85 Dylan Bundy SSS BAL AL 73 -12
86 Adbert Alzolay DSS CHC NL N/A N/A
87 Rick Porcello DSS BOS AL 75 -12
88 Jake Arrieta DSS PHI NL 82 -6
89 Dakota Hudson DSS STL NL 113 24
90 Trevor Williams DSS PIT NL N/A N/A
91 CC Sabathia DSS NYY AL 91 0
92 Bryse Wilson DSS ATL NL N/A N/A
93 Julio Teheran DSS ATL NL 80 -13
94 Chris Bassitt DSS OAK AL 74 -20
95 Danny Duffy DSS KC AL 98 3
96 Trent Thornton DSS TOR AL 76 -20
97 Tommy Milone DSS SEA AL N/A N/A
98 Chris Archer DSS PIT NL 89 -9
99 Michael Wacha DSS STL NL N/A N/A
100 Dylan Cease DSS CWS AL N/A N/A
101 Eric Lauer DSS SD NL 99 -2
102 Reynaldo Lopez DSS CWS AL 100 -2
103 Anthony DeSclafani DSS CIN NL 102 -1
104 Mike Fiers DSS OAK AL N/A N/A
105 Aaron Sanchez DSS TOR AL 79 -26
106 Dallas Keuchel DSS ATL NL N/A N/A
107 Jason Vargas DSS NYM NL N/A N/A
108 Andrew Cashner DSS BAL AL N/A N/A
109 Austin Voth DSS WAS NL N/A N/A
110 Daniel Mengden DSS OAK AL 112 2
111 Sean Reid-Foley DSS TOR AL N/A N/A
112 Yusei Kikuchi DSS SEA AL 77 -35
113 Brad Keller DSS KC AL 108 -5
114 Chase Anderson DSS MIL NL 103 -11
115 Ariel Jurado DSS TEX AL 110 -5
116 Trevor Cahill DSS LAA AL 97 -19
117 Jeff Samardzija DSS SF NL 101 -16
118 Homer Bailey DSS KC AL N/A N/A
119 Shaun Anderson DSS SF NL 105 -14
120 Adam Wainwright DSS STL NL 111 -9
121 Jakob Junis DSS KC AL 114 -7





Paul is the Editor of Rotographs and Content Director for OOTP Perfect Team. Follow Paul on Twitter @sporer and on Twitch at sporer.

33 Comments
Oldest
Newest Most Voted
OddBall Herrera
7 years ago
Reply to  Paul Sporer

He’s been off the list for a few months running actually. I just assumed it was the injury.

tampanuggz
7 years ago

Where does Logan Allen go after his clunker last night?

wolfs
7 years ago

No Clev Dog??

goldman76
7 years ago

Missed Mike Clevinger unless I’m the one who missed him. I wish I missed his last start for my team, that’s for sure.

yellowpools
7 years ago

Mike Clevinger is missing from your rankings.

MichaelMember since 2017
7 years ago

Clevinger missing, hope you’re not trying to tell us something!

carterMember since 2020
7 years ago

People are never going to agree entirely with rankings, with that said:

Roark seems low. He has been quite good, and arsenal changes have been generating K’s as well. Mikolas is garbage, unsure why anyone would ever start a guy with a 4.47 fip and 6k per 9 on an average team, I truly thought he would be closer to unranked, not up where he is. Unsure how Marquez is a MS with half his games at Coors, and Bumgarner finally had a good start, but he could be 50 spots lower and I wouldn’t bat an eye. But all and all, good list.

TurgidMember since 2016
7 years ago

You sure you’re not being a homer with your Turnbull ranking? He’s the highest guy available in my league, I need pitching, but I look at him and say “that guy deserves to stay on the wire.”

TurgidMember since 2016
7 years ago
Reply to  Turgid

Same with Mahle. Except I look at him and think “Popped a Mahle, I’m sweating, woo!” Which is fun.

TurgidMember since 2016
7 years ago
Reply to  Paul Sporer

Which is important so you can get Strahm back to #69

SaltyMember since 2017
7 years ago

Let’s say Luzardo was promoted at the end of June and debuted with a strong start. Where would you have slotted him in that scenario?

mbrieseMember since 2026
7 years ago

Surprised at how low Stroman is – not a huge K’s guy but a QS in 7 of his last 10 games, including 2 gems against the Red Sox.

DBallMember since 2025
7 years ago
Reply to  mbriese

Id say this list is mainly geared towards 5×5 roto leagues so QS dont mean much. Stroman plays for a team that wont get him many W and other than Giles at the back end has a bullpen (23rd in FIP including Giles) that will lose him some games. Hes 44th out of 76 qualified starters in WHIP, 50th in raw strikeout total and 62nd in K%. Classic better in real life than fantasy guy, hes a 1 category contributor playing in a division filled with hitters parks and good offences.

brianmcmahonMember since 2019
7 years ago

I’m surprised Pineda didn’t make it.

AnonMember since 2025
7 years ago

Both Caleb Smith and Domingo German are on the IL, but both are expected back this week I think. I know German is and Smith pitched on Sunday so he should be back for the weekend. (No idea why Smith wasn’t back last week actually. He really didn’t need a 2nd rehab start given that he looked sharp in his 1st one).

ABaseballDude
7 years ago

#Biebs in the top20 (heart emoji’s abound)

LloydMember since 2018
7 years ago

Assuming he sticks in the majors, where would Lewis Thorpe slot in?

manormachine
7 years ago

asdhfalksdhflkjafd

NicklePickersMember since 2016
7 years ago

Thanks for an excellent list as always! I see yarborough and pena listed and am interested in the ranking of followers. Did Beeks or Leblanc draw consideration?

rustydudeMember since 2021
7 years ago

Keck, 1 spot below Aaron Sanchez at #106… ouch.

seprotzmann
7 years ago

Whereabouts would a healthy Pablo Lopez fall?

Kid CharlemagneMember since 2026
7 years ago

Greinke since June 1: 6.3 K/9, velo way down, unsustainable, career-low BB & HR rates, Steamer RoS ERA 4.02. Does Top 12 SP rank reflect a legacy effect?

carterMember since 2020
7 years ago

Seems like every time Greinke is “finished”, or velocity down, he makes it work somehow. I think he is a guy we just have to have faith in. If you use QS he is the #4 overall pitcher this year, and #5 player, and if you use standard 5×5 he is #5 pitcher and 15th overall. So I get it, he might regress, but he seems like a guy that every time you fade him because he is throwing 84 in spring he proves you wrong.

Goms
7 years ago

I count 8 people I would put Nola above for the ROS that are currently above him.

Runaway ToasterMember since 2016
7 years ago

No Cole Hamels, or am I missing something? No way he’s lower than #106, right? Or is it due to the recent injury?

Edit: Yup, probably because he’s on the IL now. Apologies. Any general idea of where Hamels would rank though?

dleoboydMember since 2016
7 years ago

Excellent rankings. I’d probably have Nola at #20 or #21.

samyoung
7 years ago

Circa late May, I was in love with Dylan Cease’s minor league track record. Since then, he’s struggled pretty hard. With his debut now upon his, are you feeling more bullish or more bearish in terms of his near-term performance? How much leash to give as a fantasy owner?

Matthew TobinMember since 2025
7 years ago

I have a problem with German Marquez being a Must Start. A 5.73 ERA and 1.59 WHIP a borderline unplayable. The K%-BB% is worse too. He needs to be curated because there is no chance I am starting him vs… say the Dodgers at home.

I know “You paid big money for him,so you got to start him” argument, but I’d rather start Jon Gray at home at this point.

Speaking of Jon Gray, I don’t see much of a difference between Marquez and Gray going forward.