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

MLB's Best Pitches by the Numbers

ian anderson fantasy baseball rankings pitchers draft sleepers MLB injury news

Jon Anderson dives into pitch data by clusters to determine which starting pitchers have the most devastating fastball, curveball, slider, changeup, and more. These SP could bring great value in 2020 fantasy baseball leagues.

One of the most-often used algorithms in the data science world is called clustering. Clustering is defined, by Wikipedia, as:

grouping a set of objects in such a way that objects in the same group (called a cluster) are more similar (in some sense) to each other than to those in other groups (clusters)

In baseball data analytics, we can use this in several ways. My goal with this analysis was to see if I could cluster the league's different pitches by their acceleration in three dimensions, and then check to see how the pitches in those clusters performed. The application of this would be to get an idea of what pitchers have the "stuff" to be more or less successful than what we have seen from them in the past. Statcast captures the forward, horizontal, and vertical acceleration of each pitch in feet per second measured after the ball has traveled 50 feet. These three numbers encompass most of what we want to look at when looking at how a pitch moves. The forward acceleration is essentially the velocity, the horizontal acceleration is the side-to-side movement, and the vertical acceleration is the up-and-down movement. This can help us isolate the best pitches in the league by how they come out of a pitcher's hand.

 

Pitch Type Breakdown

Before getting started, here is the breakdown of how often each pitch type has been thrown over the last three seasons:

Pitch Name % Thrown
4-Seam Fastball 35.5%
Slider 17.4%
Changeup 10.9%
Sinker 9.3%
Curveball 8.5%
2-Seam Fastball 8.2%
Cutter 6.1%
Knuckle Curve 2.4%
Splitter 1.5%

 

 

 

 

 

 

 

 

Four-Seam Fastballs

For context, here is the acceleration breakdown of the Major League four-seamer, classified by percentiles. So in the case of horizontal acceleration here, 28.65 feet per second is the average and 26.82 is the 25th percentile, which would mean 25% of the values fall below that number and 75% of the values fall above it. This will be more useful when we show the clusters a bit later.

What the clustering does is group all these fastballs together based on which other fastballs they are most like. If a pitcher throws a pretty consistent fastball in terms of how it moves, almost all of their fastballs will fall into the same cluster. After we have these clusters, we can check how each cluster performed and then determine which type of movement on a fastball is most effective.

Percentile Forward Horizontal Vertical
25% 26.82 5.98 -17.09
50% 28.65 9.01 -14.91
75% 30.50 11.96 -12.90

Using five clusters, here's what we get.

Cluster Average Forward Average Horizontal Average Vertical
1 31.00 10.90 -13.07
2 29.99 5.62 -12.85
3 29.63 15.31 -16.59
4 25.96 3.31 -17.29
5 26.49 9.50 -16.60

Cluster 1
Highest velocity, average to high horizontal movement, low downwards movement

Cluster 2
High velocity, low horizontal movement, low downwards movement

Cluster 3
Average velocity, highest horizontal movement, high downwards movement

Cluster 4
Lowest velocity, low horizontal movement, high downwards movement

Cluster 5
Low velocity, average horizontal movement, high downwards movement

Now we can take each cluster of fastballs and see how they performed. I've checked five metrics:

1. Whiff Rate (number of swings and misses divided by total pitches thrown)
2. Called Strike + Whiff Rate (called strikes plus swings and misses divided by total pitches)
3. Slugging Percentage Against
4. Average Exit Velocity
5. Median Exit Angle

Here are the results:

Cluster Whiff% CSW% SLG Exit Velo Exit Angle
1 10.1% 27.6% .452 88.9 25
2 10.2% 27.1% .419 87.8 25
3 8.6% 27.3% .456 89.3 20
4 7.9% 26.4% .476 87.9 17
5 7.2% 26.6% .533 89.7 20

Cluster two appears to be the winner, with the highest whiff rate and the lowest slugging percentage on contact, but cluster one is right there with it. Cluster five is the clear loser here.

So what pitchers are in these clusters? Here are the top ten names in terms of the number of fastballs thrown that ended up in the cluster

Cluster One:
Justin Verlander, Gerrit Cole, Trevor Bauer, Zack Wheeler, Reynaldo Lopez, Nick Pivetta, Robbie Ray, Lucas Giolito, JA Happ, Shane Bieber

Cluster Two:
Jacob deGrom, Vince Velasquez, Walker Buehler, Tyler Glasnow, Dylan Bundy, Sean Doolittle, Chad Green, Emilio Pagan, Mike Clevinger, John Means

Cluster Three:
Max Scherzer, Tyler Mahle, Aaron Nola, James Paxton, Luis Castillo, Gerrit Cole, Charlie Morton, Chris Sale, Richard Rodriguez, Caleb Smith

Cluster Four:
Zack Greinke, Brad Keller, Clayton Kershaw, Brent Suter, Max Fried, Mike Minor, Trevor Williams, Anibal Sanchez, Antonio Senzatela, Spencer Turnbull

Cluster Five:
Jon Lester, Julio Teheran, Matthew Boyd, Homer Bailey, Madison Bumgarner, Lance Lynn, Rich Hill, Jake Odorizzi, Jon Gray, Kyle Freeland

Admittedly these top-10 lists aren't very informative because they are just showing guys that have thrown a ton of fastballs overall the last three years. Any pitcher that debuted in 2020 really did not have a chance to show up here.

I went ahead and sliced the data up to show what percent of each pitcher's fastballs ended up in each cluster. What we are looking to find is some surprising names that threw most of their fastballs in cluster one or two - because those are the most effective fastballs. Some names that stood out:

Ian Anderson (93%), Brendan McKay (87%), Dinelson Lamet (83%), Frankie Montas (83%), Triston McKenzie (83%), Shohei Ohtani (79%), Tony Gonsolin (77%), Zac Gallen (70%)

Doing the same with clusters four and five, here are some names that threw a lot of "bad" fastballs that you might not have expected:

Kwang Hyun Kim (99%), Adam Wainwright (96%), Max Fried (91%), Lewis Thorpe (88%), Justus Sheffield (88%), Mike Soroka (85%), Joe Musgrove (84%), Dakota Hudson (84%), Spencer Turnbull (79%), Sonny Gray (73%)

 

Sliders

Summary table for sliders:

Percentile Forward Horizontal Vertical
25% 21.61 1.51 -32.92
50% 23.17 3.21 -30.19
75% 24.82 5.61 -27.45

Here's how each cluster looks:

Cluster Average Forward Average Horizontal Average Vertical
1 25.53 1.81 -27.19
2 22.93 4.63 -30.78
3 22.67 8.31 -32.32
4 21.51 1.56 -30.69
5 23.80 12.94 -32.83

 

Cluster One:
High velocity, low horizontal movement, low vertical movement

Cluster Two:
Average velocity, average to high horizontal movement, average vertical movement

Cluster Three:
Average velocity, high horizontal movement, high vertical movement

Cluster Four:
Low velocity, Low horizontal movement, Low vertical movement

Cluster Five:
Average to high velocity, very high horizontal movement, high vertical movement

Here are the results of the sliders in these clusters:

Cluster Whiff% CSW% SLG Exit Velo Exit Angle
1 17.2% 29.3% .361 85.5 12
2 16.3% 31.6% .367 85.5 13
3 15.4% 33.2% .335 84.5 18
4 16.7% 31.2% .402 86.0 13
5 15.3% 34.2% .267 82.1 17

Cluster five is the clear winner and cluster four the clear loser. The biggest difference in those clusters is that horizontal movement, as they were at opposite ends of the spectrum there.

Let's see the most frequent names in each cluster.

Cluster One
Jacob deGrom, Clayton Kershaw, Zack Wheeler, Justin Verlander, Robbie Ray, Amir Garrett, Miles Mikolas, Jon Gray, Sam Gaviglio, Edwin Diaz

Cluster Two
Brad Keller, Chris Archer, Jack Flaherty, Zack Greinke, Mike Minor, Trevor Williams, Gerrit Cole, Clayton Kershaw, Masahiro Tanaka, Tyson Ross

Cluster Three
Jhoulys Chacin, Chris Sale, Jakob Junis, CC Sabathia, Andrew Miller, Steve Cishek, Marcus Stroman, Luis Severino, Sergio Romo, Trent Thornton

Cluster Four
Patrick Corbin, Matthew Boyd, Shane Bieber, Carlos Carrasco, Dylan Bundy, Jaime Barria, Robbie Ray, Caleb Smith, Luis Cessa, Kyle Freeland

Cluster Five
Chaz Roe, Mike Clevinger, Jakob Junis, Adam Ottavino, Brad Hand, Trevor Bauer, Sonny Gray, Kyle Crick, Paul Fry, Collin McHugh

No surprise to see slider god Chaz Roe leading the charge in cluster five, but pretty weird to see Corbin and Bieber showing up in cluster four among the worst-performing sliders in the game.

It should be noted that only 7% of sliders ended up in the elite cluster five. 13% of them ended up in cluster two, and then clusters one, three, and four all had 25-27%.

Here are some of the more surprising names that showed up in cluster five with the best sliders in the game:

Shohei Ohtani (57.4%), Jordan Yamamoto (52.5%), Jakob Junis (52%), Max Fried (39.5%)

Cluster one had the highest whiff rate while maintaining a solid slugging percentage. Here are some of the surprising names from that cluster:

Jake Odorizzi (77%), Trevor Williams (76%), Steven Brault (71%), Tejay Antone (62%)

Here are more names from that less successful cluster four:

Kevin Gausman (82%), Randy Dobnak (74%), Caleb Smith (74%), Carlos Carrasco (69%), Luis Castillo (65%)

No one cluster really stands out in terms of swinging-strike rate here, which might suggest that getting whiffs on a slider is more about deception and pitch selection rather than the actual movement of the pitch. It's obviously not true that Shane Bieber's slider was really in the same class as Randy Dobnak's. Location and pitch selection means a heck of a lot with breaking pitches, and this analysis does not capture either of those things.

 

Curveballs

Summary table for sliders:

Percentile Forward Horizontal Vertical
25% 19.90 3.73 -41.71
50% 21.53 6.13 -39.11
75% 23.21 8.57 -35.93

Here's how each cluster looks:

Cluster Average Forward Average Horizontal Average Vertical
1 22.80 2.20 -37.47
2 23.55 11.41 -38.51
3 19.87 7.89 -36.91
4 23.13 6.36 -42.03
5 18.97 3.54 -37.49

Cluster One:
Average velocity, low horizontal movement, low to average vertical movement

Cluster Two:
High velocity, very high horizontal movement, average vertical movement

Cluster Three:
Low velocity, average to high horizontal movement, low vertical movement

Cluster Four:
High velocity, average horizontal movement, high vertical movement

Cluster Five:
Low velocity, low horizontal movement, low to average vertical movement

Here are the results of the curveballs in these clusters:

Cluster Whiff% CSW% SLG Exit Velo Exit Angle
1 14.5% 30.3% .345 85.8 9
2 14.0% 33.1% .313 83.4 11
3 10.1% 32.2% .415 84.9 15
4 12.2% 29.8% .336 85.8 5
5 9.7% 31.9% .469 86.4 14

Clusters one and two are the winners with whiff rates soaring above the rest. Here are the top ten names in each cluster.

Cluster One:
Domingo German, Ivan Nova, Jordan Lyles, Blake Snell, Andrew Heaney, Nick Anderson, Keone Kela, Alex Young, Matt Magill, Matt Barnes

Cluster Two:
Charlie Morton, Jose Berrios, Sonny Gray, Adam Wainwright, Rich Hill, Stephen Strasburg, Corey Kluber, Ryan Pressly, Framber Valdez, Aaron Sanchez

Cluster Three:
Jon Lester, Madison Bumgarner, Zack Greinke, Noe Ramirez, Kyle Hendricks, Jerry Blevins, Rick Porcello, Hyun-Jin Ryu, Ryne Harper, Ryan Yarbrough

Cluster Four:
Miles Mikolas, Tyler Skaggs, Max Fried, Mike Fiers, Tyler Glasnow, Jordan Lyles, Gio Gonzalez, Justin Verlander, Sean Newcomb, Merrill Kelly

Cluster Five:
Jose Quintana, Clayton Kershaw, Drew Smyly, Andrew Heaney, Marco Gonzales, Eric Lauer, Jordan Zimmermann, Kyle Gibson, Wei-Yin Chen, Patrick Corbin

You really want to be in cluster one or two here. Here are some of the interesting names that showed up with really high percentages of their curveballs falling into those clusters.

Jesus Luzardo (93%), Sonny Gray (93%), Ian Anderson (84%), Jordan Montgomery (81%), Kyle Wright (77%), Brandon Woodruff (74%), Dinelson Lamet (69%), Griffin Canning (68%), Sandy Alcantara (68%), Michael Lorenzen (62%)

Cluster five is the one to avoid, and here are some of those names:

Anibal Sanchez (89%), Patrick Corbin (88%), Reynaldo Lopez (81%), Drew Smyly (80%), Yusei Kikuchi (70%), Clayton Kershaw (70%), Sean Manaea (54%), Dylan Bundy (49%), Zach Plesac (45%), Andrew Heaney (44%)

 

Takeaways

- Ian Anderson, Shohei Ohtani, Frankie Montas, Dinelson Lamet, and Jesus Luzardo have awesome fastballs and very good secondary breaking pitches to go with it
- Kwang-Hyun Kim, Max Fried, and Justus Sheffield may have limited upside due to pretty unimpressive fastballs
- Jakob Junis has one of the best sliders in the league
- Zack Greinke and Patrick Corbin really do not have much in terms of "stuff" and will continue to have to rely on location, deception, and experience



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 2021 Fantasy Baseball Advice




POPULAR FANTASY TOOLS

Expert Advice
Articles & Tools
Import Your Leagues
Daily Stats & Leaders
All Pitcher Matchups
Compare Any Players
Compare Any Players
Rookies & Call-Ups
24x7 News and Alerts

REAL-TIME FANTASY NEWS

NFL13 mins ago

Justin Hardee Sr. Waived With Non-Football Injury
Isaiah Stewart13 mins ago

To Return For Game 1
Ausar Thompson18 mins ago

Available For Game 1
Rui Hachimura26 mins ago

On Track To Play Saturday
Austin Reaves32 mins ago

Ready To Go For Game 1
NFL35 mins ago

Bills Release Armani Rogers, Branson Deen
Luka Dončić38 mins ago

Luka Doncic Removed From Injury Report
Brandon Young42 mins ago

Set To Make MLB Debut On Saturday
LeBron James47 mins ago

Listed As Probable For Game 1
Ben Sheppard53 mins ago

Probable For Saturday's Game 1
Jacob Lopez54 mins ago

Recalled From Triple-A
NFL56 mins ago

Kolton Miller Absent From Raiders' Voluntary Offseason Program
Kevin Durant58 mins ago

To Houston Already Losing Steam
Matt Canterino1 hour ago

Twins Designate Matt Canterino For Assignment
Lauri Markkanen1 hour ago

Wants To Stay With The Jazz
NFL1 hour ago

Ross Blacklock Let Go By New York
Mickey Gasper1 hour ago

Sent To Triple-A St. Paul
Bennedict Mathurin1 hour ago

Expected To Play In Game 1 Saturday
Nicky Lopez2 hours ago

Designated For Assignment
Josh Smith2 hours ago

Still Out Of Lineup Friday Night
Pascal Siakam2 hours ago

Available For Playoff Opener
Zach Neto2 hours ago

Reinstated From Injury List, Will Make Season Debut Friday
Tyrese Haliburton2 hours ago

Returning From Two-Game Absence Saturday
Cade Cunningham2 hours ago

Available For Game 1 Against Knicks
Shohei Ohtani2 hours ago

Out Of Friday's Lineup For Birth Of First Child
Josh Hart2 hours ago

Back In Knicks Lineup Saturday
Eugenio Suárez2 hours ago

Eugenio Suarez Hits Grand Slam In Friday Afternoon's Loss
OG Anunoby2 hours ago

Good To Go For Game 1
Ian Happ2 hours ago

Hits Grand Slam In Massive Day At The Plate
Jalen Brunson2 hours ago

Available For Saturday's Game 1
Jazz Chisholm Jr.2 hours ago

Suspended For One Game, Will Appeal And Is Playing Friday
Karl-Anthony Towns2 hours ago

Returning To Action Saturday
Kyle Tucker2 hours ago

Hits Go-Ahead Homer In Cubs Win
Pelle Larsson2 hours ago

Good To Go Friday
Nikola Jović2 hours ago

Nikola Jovic Available Friday
Carson Kelly2 hours ago

Crushes Two Homers In Crazy Cubs Win
Trae Young3 hours ago

Officially Active On Friday
Giannis Antetokounmpo3 hours ago

Not On Game 1 Injury Report
NFL3 hours ago

Raiders Considering Drafting A Quarterback
Irv Smith3 hours ago

Sticking With Texans
Ryan Lindgren3 hours ago

Set To Return Saturday
NFL3 hours ago

Texans Expected To Draft Wide Receivers
Greg Dortch3 hours ago

Returning To Cardinals
Josh Manson3 hours ago

Available For Game 1
Mark Andrews3 hours ago

Could Be Traded Soon
Ondrej Palat3 hours ago

To Return For Start Of Playoffs
David Savard3 hours ago

Will Retire After Playoffs
Gavin Sheets4 hours ago

In Padres Lineup Against Astros
NFL4 hours ago

Raiders, Falcons Could Have Interest In Jalen Ramsey
Robert Thomas4 hours ago

Good To Go Saturday
Shea Langeliers4 hours ago

Back In Lineup On Friday
Matthew Tkachuk4 hours ago

Expected To Return For Game 1
4 hours ago

Raiders Are High On Ashton Jeanty
Alex Verdugo4 hours ago

Hitting Leadoff In Season Debut On Friday
Jason Robertson4 hours ago

Considered Week-To-Week
Rome Odunze4 hours ago

To Hopefully Get More Involved
Dylan Moore4 hours ago

Not In Lineup On Friday
NFL4 hours ago

Dolphins Could Draft A Quarterback
Parker Meadows4 hours ago

Cleared To Begin Throwing Program
James Cook4 hours ago

Could Stay Away From Voluntary Workouts
Chandler Simpson4 hours ago

Called Up By Rays
Alex Bregman6 hours ago

Back From Paternity Leave
Noah Davis6 hours ago

Dodgers Recall Noah Davis From Triple-A
Leon Draisaitl11 hours ago

Wins First Rocket Richard Trophy
Nikita Kucherov12 hours ago

Bags Third Art Ross Trophy
Bryan Rust12 hours ago

Scores Twice In Season-Ending Win
Igor Shesterkin12 hours ago

Shuts Out Lightning With 27 Saves
Dylan Cozens12 hours ago

Picks Up Three Points In Regular-Season Finale
Matvei Michkov12 hours ago

Caps Off Rookie Campaign With Three-Point Effort
Brady Tkachuk12 hours ago

Makes Early Exit For Precautionary Reasons
Jake Tonges21 hours ago

Signs Exclusive-Rights Tender
Denver Broncos21 hours ago

Broncos To Focus On RB Position In Next Week's Draft
Drew Lock21 hours ago

Sam Howell, Drew Lock Expected To Compete For Backup Job
New York Giants21 hours ago

Giants Leaning Toward Taking Best Player Available At No. 3
New Orleans Saints21 hours ago

Ryan Ramczyk Announces His Retirement
Buffalo Bills21 hours ago

Tre'Davious White Reunites With Buffalo
Aaron Rodgers21 hours ago

Willing To Play For $10 Million A Year
Jakob Chychrun1 day ago

Returns Against Penguins
Rasmus Andersson1 day ago

Out Against Kings
Jonathan Huberdeau1 day ago

Sits Out Regular-Season Finale
Ryan Pulock1 day ago

Out On Thursday
Jake Sanderson1 day ago

Back In Action Thursday
Thomas Chabot1 day ago

To Be Rested Against Hurricanes
Claude Giroux1 day ago

Active On Thursday
Lucas Glover2 days ago

Looks To Rebound After Poor Performance
Daniel Berger2 days ago

Looking To Continue Solid Play At RBC
Sepp Straka2 days ago

Looking To Bounce Back At RBC
Justin Thomas2 days ago

Looking To Shake Off Poor Masters At RBC Heritage
Xander Schauffele2 days ago

Still Looking For Year's First Win At RBC Heritage
Maverick McNealy2 days ago

Is An Intriguing Play At RBC Heritage
Shane Lowry2 days ago

Looks To Shake Off Poor Masters Sunday At RBC Heritage
Will Zalatoris2 days ago

Eyes A Bounce-Back At RBC Heritage
Gary Woodland2 days ago

Could Add Some Surprise At Hilton Head
Sam Burns3 days ago

Hoping For Better Times At RBC Heritage
Sahith Theegala3 days ago

Still Trying To Put It All Together
Aaron Rai3 days ago

Might Be That Guy For Hilton Head
Robert MacIntyre3 days ago

All Or Nothing At RBC Heritage
Tom Hoge3 days ago

Still Playing Solid Heading To Hilton Head
Nick Dunlap3 days ago

Continues To Have Rough Stretch
Keegan Bradley3 days ago

Looks To Move On From Masters Performance
Matt Fitzpatrick3 days ago

A Boom-Or-Bust Option At RBC Heritage
Patrick Cantlay3 days ago

A Strong Play At RBC Heritage
Jordan Spieth3 days ago

Targets Another Strong RBC Heritage Showing
Collin Morikawa3 days ago

Eyeing Victory At RBC Heritage
Max Homa3 days ago

Breaks Through At The Masters
Alexander Volkanovski4 days ago

Reclaims Featherweight Title
Diego Lopes4 days ago

Drops Decision At UFC 314
Paddy Pimblett4 days ago

Remains Undefeated In The UFC
Michael Chandler4 days ago

Suffers TKO Loss
MMA4 days ago

Patricio Freire Gets Dominated In His UFC Debut
Yair Rodriguez4 days ago

Gets Back In The Win Column
Bryce Mitchell4 days ago

Gets Submitted At UFC 314
Jean Silva4 days ago

Gets Submission Win At UFC 314
Dominick Reyes4 days ago

Wins Third Fight In A Row
Austin Dillon4 days ago

Nabs His First Top-10 Finish Of The 2025 Season At Bristol
Ryan Blaney4 days ago

Bold Strategies Fall Flat, Still Musters A Top-Five Finish At Bristol
Christopher Bell4 days ago

Finishes In The Top 10 After Falling Back Midway At Bristol
Ty Gibbs4 days ago

Earns His First Top-Five Finish Of The 2025 Season At Bristol
Chase Briscoe4 days ago

Quietly Scores First Career Top-Five Finish At Bristol
William Byron5 days ago

Denny Hamlin Cuts Into William Byron's Points Lead
William Byron5 days ago

Makes Best Of His Mediocre Qualifying Run With Sixth-Place Finish
Alex Bowman5 days ago

Despite Engine Failure, Alex Bowman's Improved Speed Looks Promising
NASCAR5 days ago

A.J. Allmendinger Enters Playoff Picture With Surprise Bristol Top-10 Finish
Kyle Larson6 days ago

Will Compete For The Win At Bristol
Chase Elliott6 days ago

Is One Of The More Favorable DFS Options Available For Bristol
William Byron6 days ago

Is A Solid DFS Option For Bristol Lineups
Tyler Reddick6 days ago

Could Tyler Reddick Be A Sneaky DFS Option For Bristol?
NASCAR6 days ago

Is Bubba Wallace Worth Rostering For Bristol This Week?
Ross Chastain6 days ago

Could Ross Chastain Be A Worthy DFS Choice For Bristol?
Carson Hocevar6 days ago

Is Carson Hocevar Worth Rostering For Bristol DFS Lineups?
NASCAR6 days ago

Should Fantasy Managers Avoid Rostering A.J. Allmendinger In DFS For Bristol?
Ryan Preece6 days ago

Is Ryan Preece Worth Rostering For Bristol Lineups?
Austin Dillon6 days ago

May Be One Of The Top Value Options For Bristol DFS This Week
Noah Gragson6 days ago

Should DFS Players Consider Noah Gragson For Bristol Lineups?
Riley Herbst6 days ago

Is In Play For Bristol DFS Lineups
RANKINGS
C
1B
2B
3B
SS
OF
SP
RP

RANKINGS

QB
RB
WR
TE
K
DEF