Towards A Better Way To Rank Players
It’s not a secret – I hate rankings. I’ve been writing this post once a winter since 2014. I’m pleased to finally see a few others in the industry publicly eschewing the rankings-based mentality. My quest against rankings is finally gaining some momentum. So, contrarian that I am, let’s work on making rankings actually, uh, work.
There are many reasons why traditional attempts at rankings are broken. The biggest is simply this – they’re one size fits all. Running a team is about managing categories. Rankings aggregate all that information ordinally in perhaps the least useful way conceivable. Attempts to use tiers scarcely help matters, especially since the location of those tiers often has more to do with name recognition than expected output.
A projection-based rankings system isn’t sufficiently novel, but it does at least take us a step in the right direction. And it’s what we’ll use for today’s thought experiment as we try to take a second step along the path towards relevance.
Let’s start with the “best” way to build a team – know everything. If all information is fully internalized, then every decision can be made to maximize roto-output. In reality, the closest we can get to that is “be a fantasy professional.” And that’s impractical for most of you out there in Readerland.
It strikes me that categorizing players by position by profile might offer a reasonable middle ground. We’ll still have rankings of a sort but they’ll be bucketed in a way that helps us to manage our statistical needs.
I’ve taken the 56 top-rated second basemen by Steamer and ATC projections. I’ve averaged every category which is technically incorrect for batting average and OBP categories (AB and PA projections are close enough not to fuss around).
The first step is sorting each category. Behold, the ugliest table! (Apologies, this doesn’t quite fit and isn’t sortable. Ideally, you want this information in separate tables – I have each in their own tab – but that looks even worse for our purposes. I removed plate appearances for a hint of cleanliness.)
Name | AVGR | Name | AVGRBI | Name | AVGHR | Name | AVGSB | Name | AVGAVG | Name | AVGOBP |
---|---|---|---|---|---|---|---|---|---|---|---|
Jose Altuve | 98.5 | Javier Baez | 98 | Gleyber Torres | 33.5 | Adalberto Mondesi | 48 | Luis Arraez | 0.3115 | Luis Arraez | 0.37 |
DJ LeMahieu | 96 | Gleyber Torres | 97 | Javier Baez | 31.5 | Jonathan Villar | 33 | Howie Kendrick | 0.308 | Jose Altuve | 0.363 |
Ozzie Albies | 93 | Jose Altuve | 87.5 | Max Muncy | 30 | Whit Merrifield | 22 | Jose Altuve | 0.2985 | Max Muncy | 0.3605 |
Yoan Moncada | 90.5 | Keston Hiura | 87.5 | Rougned Odor | 28.5 | Dee Gordon | 18 | Ketel Marte | 0.2955 | Ketel Marte | 0.36 |
Whit Merrifield | 89 | Yoan Moncada | 83 | Keston Hiura | 28.5 | Tommy Edman | 17.5 | Jeff McNeil | 0.292 | Howie Kendrick | 0.36 |
Jeff McNeil | 88.5 | Max Muncy | 81.5 | Yoan Moncada | 26 | Garrett Hampson | 17 | DJ LeMahieu | 0.29 | Jeff McNeil | 0.3525 |
Javier Baez | 88 | Ozzie Albies | 81 | Jonathan Schoop | 25 | Kolten Wong | 16 | Daniel Murphy | 0.2885 | Cavan Biggio | 0.352 |
Ketel Marte | 88 | Ketel Marte | 80.5 | Jose Altuve | 24 | Ozzie Albies | 15.5 | Ozzie Albies | 0.287 | Cesar Hernandez | 0.3505 |
Gleyber Torres | 87.5 | Rougned Odor | 77.5 | Ozzie Albies | 23.5 | Cavan Biggio | 14.5 | Hanser Alberto | 0.2865 | DJ LeMahieu | 0.347 |
Max Muncy | 86 | DJ LeMahieu | 75 | Ketel Marte | 23.5 | Niko Goodrum | 14 | Whit Merrifield | 0.2845 | Kolten Wong | 0.344 |
Keston Hiura | 81.5 | Jonathan Schoop | 74.5 | Brandon Lowe | 23.5 | Javier Baez | 13.5 | Wilmer Flores | 0.2835 | Ozzie Albies | 0.343 |
Cavan Biggio | 78 | Ryan McMahon | 74 | Michael Chavis | 21 | Keston Hiura | 12.5 | Starlin Castro | 0.281 | Daniel Murphy | 0.34 |
Jonathan Villar | 78 | Brandon Lowe | 73.5 | Ryan McMahon | 20.5 | Rougned Odor | 12 | David Fletcher | 0.2805 | Yoan Moncada | 0.3395 |
Adalberto Mondesi | 76 | Daniel Murphy | 73.5 | Cavan Biggio | 20.5 | Mauricio Dubon | 12 | Jose Peraza | 0.2785 | Adam Frazier | 0.3385 |
Cesar Hernandez | 73 | Jeff McNeil | 72.5 | Jeff McNeil | 20 | Yoan Moncada | 11.5 | Adam Frazier | 0.276 | Tommy La Stella | 0.3385 |
Rougned Odor | 71.5 | Adalberto Mondesi | 71.5 | DJ LeMahieu | 19 | Jose Altuve | 11 | Tommy Edman | 0.276 | Gleyber Torres | 0.338 |
Brandon Lowe | 70.5 | Robinson Cano | 69.5 | Robinson Cano | 18.5 | Cesar Hernandez | 10 | Tommy La Stella | 0.276 | Whit Merrifield | 0.337 |
Niko Goodrum | 68.5 | Starlin Castro | 69.5 | Jurickson Profar | 18 | Gavin Lux | 9.5 | Cesar Hernandez | 0.2745 | Brock Holt | 0.3365 |
Luis Arraez | 67 | Cavan Biggio | 67.5 | Daniel Murphy | 18 | Jose Peraza | 9.5 | Javier Baez | 0.274 | Eric Sogard | 0.3355 |
David Fletcher | 66.5 | Jurickson Profar | 66 | Adalberto Mondesi | 18 | Ketel Marte | 9 | Keston Hiura | 0.274 | Keston Hiura | 0.3345 |
Jonathan Schoop | 66.5 | Michael Chavis | 64.5 | Niko Goodrum | 17.5 | Shed Long | 8.5 | Dee Gordon | 0.2735 | Ryan McMahon | 0.3345 |
Adam Frazier | 66 | Whit Merrifield | 64 | Isan Diaz | 17.5 | Joey Wendle | 8.5 | Gleyber Torres | 0.2725 | Luis Urias | 0.3345 |
Ryan McMahon | 65.5 | Niko Goodrum | 64 | Jonathan Villar | 16.5 | Jeff McNeil | 8 | Robinson Cano | 0.2715 | David Fletcher | 0.334 |
Daniel Murphy | 65 | Gavin Lux | 61.5 | Gavin Lux | 16.5 | Jurickson Profar | 8 | Garrett Hampson | 0.2715 | Gavin Lux | 0.333 |
Gavin Lux | 65 | Jonathan Villar | 61 | Brian Dozier | 16.5 | David Fletcher | 7.5 | Nicky Lopez | 0.2705 | Asdrubal Cabrera | 0.3325 |
Robinson Cano | 64.5 | Isan Diaz | 60 | Starlin Castro | 16 | Nicky Lopez | 7.5 | Gavin Lux | 0.2675 | Wilmer Flores | 0.332 |
Jurickson Profar | 64 | Kolten Wong | 58.5 | Shed Long | 14.5 | Brandon Lowe | 7 | Yoan Moncada | 0.267 | Garrett Hampson | 0.3305 |
Tommy Edman | 64 | Cesar Hernandez | 57 | Whit Merrifield | 14 | DJ LeMahieu | 6 | Mauricio Dubon | 0.2665 | Robinson Cano | 0.328 |
Starlin Castro | 63 | Hanser Alberto | 57 | Tommy La Stella | 13.5 | Gleyber Torres | 6 | Kolten Wong | 0.265 | Brian Dozier | 0.3275 |
Hanser Alberto | 61.5 | Luis Arraez | 54.5 | Wilmer Flores | 13 | Adam Frazier | 6 | Ryan McMahon | 0.2645 | David Bote | 0.327 |
Kolten Wong | 61.5 | Adam Frazier | 53 | Tommy Edman | 12.5 | Isan Diaz | 5.5 | Asdrubal Cabrera | 0.264 | Jurickson Profar | 0.3265 |
Isan Diaz | 60.5 | Tommy Edman | 52.5 | Mauricio Dubon | 12.5 | Eric Sogard | 5.5 | Scooter Gennett | 0.2615 | Jonathan Villar | 0.325 |
Michael Chavis | 58 | Luis Urias | 52 | Luis Urias | 12 | Luis Arraez | 5 | Jonathan Schoop | 0.2605 | Tommy Edman | 0.3245 |
Shed Long | 58 | Shed Long | 51.5 | Enrique Hernandez | 12 | Ryan McMahon | 5 | Jonathan Villar | 0.2575 | Nicky Lopez | 0.3245 |
Luis Urias | 56 | Tommy La Stella | 50 | Hanser Alberto | 11.5 | Hanser Alberto | 5 | Eric Sogard | 0.2575 | Jed Lowrie | 0.323 |
Tommy La Stella | 55.5 | Mauricio Dubon | 50 | Cesar Hernandez | 11.5 | Jason Kipnis | 4.5 | Joey Wendle | 0.2575 | Starlin Castro | 0.322 |
Nicky Lopez | 54.5 | David Fletcher | 48.5 | Kolten Wong | 11 | Franklin Barreto | 4.5 | Brock Holt | 0.2545 | Enrique Hernandez | 0.3215 |
Mauricio Dubon | 51.5 | Brian Dozier | 47.5 | Jason Kipnis | 11 | Max Muncy | 4 | Adalberto Mondesi | 0.2525 | Brandon Lowe | 0.321 |
Brian Dozier | 49.5 | Nicky Lopez | 45.5 | Brandon Drury | 11 | Brian Dozier | 4 | Luis Urias | 0.251 | Jose Peraza | 0.3195 |
Eric Sogard | 44.5 | Wilmer Flores | 44.5 | Asdrubal Cabrera | 11 | Luis Urias | 3.5 | Michael Chavis | 0.249 | Shed Long | 0.3155 |
Asdrubal Cabrera | 41.5 | Howie Kendrick | 44 | Scooter Gennett | 10 | David Bote | 3.5 | Brandon Lowe | 0.2485 | Javier Baez | 0.314 |
Howie Kendrick | 41.5 | Jason Kipnis | 43.5 | Howie Kendrick | 10 | Starlin Castro | 3 | Shed Long | 0.2485 | Hanser Alberto | 0.314 |
Garrett Hampson | 41 | Asdrubal Cabrera | 43 | Adam Frazier | 10 | Michael Chavis | 3 | Max Muncy | 0.2445 | Michael Chavis | 0.313 |
Jason Kipnis | 40.5 | Scooter Gennett | 41 | David Bote | 9 | Howie Kendrick | 2.5 | Enrique Hernandez | 0.2445 | Isan Diaz | 0.3125 |
Jose Peraza | 40.5 | Brandon Drury | 40 | Franklin Barreto | 8.5 | Enrique Hernandez | 2.5 | Jurickson Profar | 0.244 | Jason Kipnis | 0.311 |
Brandon Drury | 39 | Enrique Hernandez | 39.5 | Jed Lowrie | 8 | Brock Holt | 2.5 | David Bote | 0.2435 | Niko Goodrum | 0.31 |
Enrique Hernandez | 39 | Garrett Hampson | 35.5 | Garrett Hampson | 7.5 | Jonathan Schoop | 1.5 | Jason Kipnis | 0.2425 | Joey Wendle | 0.3095 |
Dee Gordon | 38.5 | Jose Peraza | 35.5 | Eric Sogard | 7.5 | Daniel Murphy | 1.5 | Niko Goodrum | 0.242 | Scooter Gennett | 0.308 |
Scooter Gennett | 38.5 | David Bote | 35 | Nicky Lopez | 6.5 | Tommy La Stella | 1.5 | Jed Lowrie | 0.2415 | Dee Gordon | 0.3065 |
Wilmer Flores | 38.5 | Eric Sogard | 34.5 | Luis Arraez | 6.5 | Asdrubal Cabrera | 1.5 | Franklin Barreto | 0.2385 | Mauricio Dubon | 0.306 |
Brock Holt | 34.5 | Jed Lowrie | 32.5 | Jose Peraza | 6.5 | Brandon Drury | 1.5 | Brandon Drury | 0.238 | Jonathan Schoop | 0.3035 |
David Bote | 34.5 | Brock Holt | 32 | David Fletcher | 5.5 | Scooter Gennett | 1.5 | Cavan Biggio | 0.2355 | Rougned Odor | 0.2995 |
Joey Wendle | 34.5 | Joey Wendle | 30.5 | Brock Holt | 5.5 | Robinson Cano | 1 | Brian Dozier | 0.235 | Franklin Barreto | 0.296 |
Jed Lowrie | 32.5 | Dee Gordon | 30 | Joey Wendle | 5 | Wilmer Flores | 0.5 | Isan Diaz | 0.231 | Brandon Drury | 0.295 |
Franklin Barreto | 31 | Franklin Barreto | 29.5 | Dee Gordon | 3 | Jed Lowrie | 0.5 | Rougned Odor | 0.231 | Adalberto Mondesi | 0.2905 |
This is where I start to get stuck. Beyond simply digesting all of this information wholesale, we need to figure out a way to bucket into profiles. For instance, we might call one bucket “Power.” Let’s imagine it’s a middle round and we have identified a need for home runs and/or RBI. We want to focus on the Muncies, Odors, and Biggioes of the world.
We shouldn’t completely discard other categories in our bucketing attempt. Perhaps we give a one-half weight to runs and average/OBP with a 0ne-tenth weight to stolen bases. But that’s a job for another day. We’ll focus on just pure power stats for now.
It sounds like I’ve unwittingly set us up to use something like weighted z-scores. If we have to, we can cross that bridge later. My inclination is always to use the least mathematically complex option. If you want complexity, talk to Alex, Jeff, and Podhorzer. And so, here’s one overly simplistic attempt at a Power Second Baseman bucket.
-Please note: these next two tables should be considered illustrative only.-
Rank | Name | AVGR | AVGRBI | AVGHR | AVGSB | AVGAVG | AVGOBP |
---|---|---|---|---|---|---|---|
1 | Gleyber Torres | 87.5 | 97 | 33.5 | 6 | 0.2725 | 0.338 |
2 | Javier Baez | 88 | 98 | 31.5 | 13.5 | 0.274 | 0.314 |
3 | Keston Hiura | 81.5 | 87.5 | 28.5 | 12.5 | 0.274 | 0.3345 |
4 | Max Muncy | 86 | 81.5 | 30 | 4 | 0.2445 | 0.3605 |
5 | Jose Altuve | 98.5 | 87.5 | 24 | 11 | 0.2985 | 0.363 |
6 | Yoan Moncada | 90.5 | 83 | 26 | 11.5 | 0.267 | 0.3395 |
7 | Rougned Odor | 71.5 | 77.5 | 28.5 | 12 | 0.231 | 0.2995 |
8 | Ozzie Albies | 93 | 81 | 23.5 | 15.5 | 0.287 | 0.343 |
9 | Ketel Marte | 88 | 80.5 | 23.5 | 9 | 0.2955 | 0.36 |
10 | Jonathan Schoop | 66.5 | 74.5 | 25 | 1.5 | 0.2605 | 0.3035 |
11 | Brandon Lowe | 70.5 | 73.5 | 23.5 | 7 | 0.2485 | 0.321 |
12 | Ryan McMahon | 65.5 | 74 | 20.5 | 5 | 0.2645 | 0.3345 |
13 | DJ LeMahieu | 96 | 75 | 19 | 6 | 0.29 | 0.347 |
14 | Jeff McNeil | 88.5 | 72.5 | 20 | 8 | 0.292 | 0.3525 |
15 | Daniel Murphy | 65 | 73.5 | 18 | 1.5 | 0.2885 | 0.34 |
16 | Adalberto Mondesi | 76 | 71.5 | 18 | 48 | 0.2525 | 0.2905 |
17 | Cavan Biggio | 78 | 67.5 | 20.5 | 14.5 | 0.2355 | 0.352 |
18 | Robinson Cano | 64.5 | 69.5 | 18.5 | 1 | 0.2715 | 0.328 |
19 | Michael Chavis | 58 | 64.5 | 21 | 3 | 0.249 | 0.313 |
20 | Starlin Castro | 63 | 69.5 | 16 | 3 | 0.281 | 0.322 |
21 | Jurickson Profar | 64 | 66 | 18 | 8 | 0.244 | 0.3265 |
22 | Niko Goodrum | 68.5 | 64 | 17.5 | 14 | 0.242 | 0.31 |
23 | Gavin Lux | 65 | 61.5 | 16.5 | 9.5 | 0.2675 | 0.333 |
24 | Whit Merrifield | 89 | 64 | 14 | 22 | 0.2845 | 0.337 |
25 | Isan Diaz | 60.5 | 60 | 17.5 | 5.5 | 0.231 | 0.3125 |
26 | Jonathan Villar | 78 | 61 | 16.5 | 33 | 0.2575 | 0.325 |
27 | Shed Long | 58 | 51.5 | 14.5 | 8.5 | 0.2485 | 0.3155 |
28 | Tommy Edman | 64 | 52.5 | 12.5 | 17.5 | 0.276 | 0.3245 |
29 | Brian Dozier | 49.5 | 47.5 | 16.5 | 4 | 0.235 | 0.3275 |
30 | Tommy La Stella | 55.5 | 50 | 13.5 | 1.5 | 0.276 | 0.3385 |
31 | Wilmer Flores | 38.5 | 44.5 | 13 | 0.5 | 0.2835 | 0.332 |
That’s home runs + RBI sorted.
Similarly, if we’re hunting speed, it’s probably a mix of stolen bases, runs, and batting average we crave. I whipped together a pseudo-speed score using just those three categories (10*AVG+3*SB+R) and came up with…
Rank | Name | AVGR | AVGRBI | AVGHR | AVGSB | AVGAVG | AVGOBP |
---|---|---|---|---|---|---|---|
1 | Adalberto Mondesi | 76 | 71.5 | 18 | 48 | 0.2525 | 0.2905 |
2 | Jonathan Villar | 78 | 61 | 16.5 | 33 | 0.2575 | 0.325 |
3 | Whit Merrifield | 89 | 64 | 14 | 22 | 0.2845 | 0.337 |
4 | Ozzie Albies | 93 | 81 | 23.5 | 15.5 | 0.287 | 0.343 |
5 | Jose Altuve | 98.5 | 87.5 | 24 | 11 | 0.2985 | 0.363 |
6 | Javier Baez | 88 | 98 | 31.5 | 13.5 | 0.274 | 0.314 |
7 | Yoan Moncada | 90.5 | 83 | 26 | 11.5 | 0.267 | 0.3395 |
8 | Cavan Biggio | 78 | 67.5 | 20.5 | 14.5 | 0.2355 | 0.352 |
9 | Keston Hiura | 81.5 | 87.5 | 28.5 | 12.5 | 0.274 | 0.3345 |
10 | Tommy Edman | 64 | 52.5 | 12.5 | 17.5 | 0.276 | 0.3245 |
11 | Ketel Marte | 88 | 80.5 | 23.5 | 9 | 0.2955 | 0.36 |
12 | DJ LeMahieu | 96 | 75 | 19 | 6 | 0.29 | 0.347 |
13 | Jeff McNeil | 88.5 | 72.5 | 20 | 8 | 0.292 | 0.3525 |
14 | Niko Goodrum | 68.5 | 64 | 17.5 | 14 | 0.242 | 0.31 |
15 | Rougned Odor | 71.5 | 77.5 | 28.5 | 12 | 0.231 | 0.2995 |
16 | Gleyber Torres | 87.5 | 97 | 33.5 | 6 | 0.2725 | 0.338 |
17 | Max Muncy | 86 | 81.5 | 30 | 4 | 0.2445 | 0.3605 |
18 | Gavin Lux | 65 | 61.5 | 16.5 | 9.5 | 0.2675 | 0.333 |
19 | Brandon Lowe | 70.5 | 73.5 | 23.5 | 7 | 0.2485 | 0.321 |
20 | Jurickson Profar | 64 | 66 | 18 | 8 | 0.244 | 0.3265 |
21 | Shed Long | 58 | 51.5 | 14.5 | 8.5 | 0.2485 | 0.3155 |
22 | Ryan McMahon | 65.5 | 74 | 20.5 | 5 | 0.2645 | 0.3345 |
23 | Isan Diaz | 60.5 | 60 | 17.5 | 5.5 | 0.231 | 0.3125 |
24 | Starlin Castro | 63 | 69.5 | 16 | 3 | 0.281 | 0.322 |
25 | Jonathan Schoop | 66.5 | 74.5 | 25 | 1.5 | 0.2605 | 0.3035 |
26 | Daniel Murphy | 65 | 73.5 | 18 | 1.5 | 0.2885 | 0.34 |
27 | Robinson Cano | 64.5 | 69.5 | 18.5 | 1 | 0.2715 | 0.328 |
28 | Michael Chavis | 58 | 64.5 | 21 | 3 | 0.249 | 0.313 |
29 | Brian Dozier | 49.5 | 47.5 | 16.5 | 4 | 0.235 | 0.3275 |
30 | Tommy La Stella | 55.5 | 50 | 13.5 | 1.5 | 0.276 | 0.3385 |
31 | Wilmer Flores | 38.5 | 44.5 | 13 | 0.5 | 0.2835 | 0.332 |
For a bit of fun, locate Mondesi (16), Villar (26), and Merrifield (24) in the power table. This is a good example of how statistical need can greatly affect player value and why vanilla rankings are built to mislead their users.
It’s at this point I’ll turn things over to you. Maybe we just need better formulae? While I prefer constructive feedback, feel free to rip this completely to shreds. Just remember that everything above is illustrative. If your grief is my use of HR+RBI as a sorting criteria – yes, I agree it’s stupid. It was, however, something I could do with a couple keystrokes. We need to get the theory tight before it’s worth spending hours on Excel work.
You can follow me on twitter @BaseballATeam
If you want to improve the way you’re ranking players, start by listing Wander Javier #1 and go from there.
Daniel Castro #2
Never change my man, I don’t know the point of this but I’ve come to love it.