Minors To The Majors: Hitter Prospect Grades (Part 2)
I will continue to help define how to value a prospect for fantasy purposes. Last week, I examined how major league position players’ production lines up with the standard scouting grades. Today, I go the other way and look at how graded prospects perform in the majors.
I believe I am making this study about two years too soon. I would love for there to be more MLB information after the player received his grades and his 4-5 year production. I don’t have that luxury right now. I feel any answer I come up with will be a nice anchoring point but will need to be adjusted later.
To do this study, I took the grades given by Baseball America (2011 to 2014) and MLB.com (2013 to 2014). With each of these players, I looked at those who had 300 plate appearances in their career. With this fairly encompassing group, I would only able to match of 118 seasons. In some of these cases, the same player was compared. For example, both BA and MLB had their own 2013 grades for Xander Boegaerts. Like I said, a person can shoot about 20 different holes in this study, but I am just working with what I have been given so far.
Now before I get to the study, here is a quick reminder of the grades and values most scouts use and the values I calculated for speed and defense last week.
Overall | Tool Is Called | Batting Avg | Homers | Speed Score | WAR’s Defensive Value | Hitter | WAR |
80 | 80 | 0.32 | 40 | >9.1 | >22 | Top 1-2 | 7 |
75 | 0.31 | 35-40 | 8.4 to 9.1 | 20 to 22 | Top 2-3 | 6 | |
70 | Plus Plus | 0.3 | 30-35 | 7.6 to 8.4 | 16 to 20 | Top 5 | 5 |
65 | 0.29 | 27-30 | 6.9 to 7.6 | 12 to 16 | All-Star | 4 | |
60 | Plus | 0.28 | 23-27 | 6.1 to 6.9 | 8 to 12 | Plus | 3 |
55 | Above Avg | 0.27 | 19-22 | 5.4 to 6.1 | 4 to 8 | Above Avg | 2.5 |
50 | Avg | 0.26 | 15-18 | 4.7 to 5.4 | 0 to 4 | Avg Regular | 2 |
45 | Below Avg | 0.25 | 12-15 | 3.9 to 4.7 | -4 to 0 | Platoon/Util | 1.5 |
40 | 0.24 | 8-12 | 2.4 to 3.9 | -8 to -4 | Bench | 1 | |
35 | 0.23 | 5-8 | 1.7 to 2.4 | -12 to -8 | Emergency Call-Up | 0 | |
30 | 0.22 | 3-5 | < 1.7 | < -12 | Organizational | -1 |
I will be concentrating on the three fantasy-relevant grades, Batting, Speed, and Power. Remember that a decent Glove score is needed to get to the majors and a player’s Arm value determines where they can play on the field.
Power Grade
This is the easiest of the values to explain how I got the formulas. I lined up the Power grade and the home runs hit pro-rated to 650 PA and got the player’s home run production. After some early suspect results, I got some of the best results of the three values I examined. For Power, I was able to get two different equations to predict home runs via a Power grade. For one method, I bucketed the home run totals by Power grade and then ran a best-fit line on the points. For the other equation, I did a basic best-fit line. Here are the two equations.
Bucket method (r-square of 0.94)
HR/650 = .40*Power Grade – 2Best fit line (r-square of 0.31)
HR/650 = .35 * Power Grade + 0.57
Here is how the above formulas line up with the expected values.
Power Grade | Actual | Bucket | Best-Fit Line |
80 | >40 | 30 | 29 |
75 | 35-40 | 28 | 27 |
70 | 30-35 | 26 | 25 |
65 | 27-30 | 24 | 23 |
60 | 23-27 | 22 | 22 |
55 | 19-22 | 20 | 20 |
50 | 15-18 | 18 | 18 |
45 | 12-15 | 16 | 16 |
40 | 8-12 | 14 | 15 |
35 | 5-8 | 12 | 13 |
30 | 3-5 | 10 | 11 |
The results are kind of what I expected with a heavy regression to the mean value with a 55-grade lining right up. I would use the bucket value as a nice easy formula and it lines up nicely. Power is done, now on to Speed.
Speed Grade
After using our version of Speed Score last week to convert Speed grades to a comparable value, I determined I needed to use stolen bases to make the data fantasy relevant. I had to do a little fuzzy math to get Speed Score converted to stolen bases per 650 plate appearances. I eventually came up with this formula:
Stolen Bases = .523*Exp(Speed Score *.501)
You will notice the “Exp” value. This exists because the number of stolen bases increases exponentially as a player’s Speed Score increases. As you will soon see, the exponential increase is the same when looking at the actual values. Again with stolen bases, I was able to get a bucketed best-fit line and a bucketed line.
Bucket method (r-squared = 0.89)
Stolen Bases = .504*Exp(0.05621 * Speed Grade)Best Fit method (r-squared = .60)
Stolen Bases = .318*Exp(0.06223*Speed Grade)
The Grade and stolen base numbers line up really nice and here are how the various values compare.
Speed Grade | Speed Score | Speed Score Range | Bucket Method | Best-Fit Line |
80 | >9.1 | > 50 | 45 | 46 |
75 | 8.4 to 9.1 | 35 to 50 | 34 | 34 |
70 | 7.6 to 8.4 | 24 to 35 | 26 | 25 |
65 | 6.9 to 7.6 | 17 to 24 | 19 | 18 |
60 | 6.1 to 6.9 | 11 to 17 | 15 | 13 |
55 | 5.4 to 6.1 | 8 to 11 | 11 | 10 |
50 | 4.7 to 5.4 | 6 to 8 | 8 | 7 |
45 | 3.9 to 4.7 | 4 to 6 | 6 | 5 |
40 | 2.4 to 3.9 | 2 to 4 | 5 | 4 |
35 | 1.7 to 2.4 | 1 to 2 | 4 | 3 |
30 | < 1.7 | 0 | 3 | 2 |
A small bit of a regression to the mean at the top and bottom of the tables to the mean, but decent values none-the-less.
Batting Grade
What a mess. When Kiley McDaniel still worked for us, he wrote a six-part series on determining a player’s batting Grade. Determining this grade is the hardest in baseball.
If a person wants the short and easy answer, use .257 for the batting average (average of all hitters). Now, here is some jumbled math to get to a value around .257.
For batting, I came up with three equations using the bucket method, the best-fit line, and a multi-linear regression using all three grades. First, for the bucket grade, I had to throw out the 2014 75 batting grade Baseball America gave Byron Buxton. It was causing a negative correlation and just causing a mess of things. After getting the value out of there, the best-fit line for the buckets lines up great.
When I ran just a best-fit line, I did end up with a positive slope (higher Batting grade meant a higher AVG), but the r-squared was 0.03. Looking over the various hitter misses, I noticed the faster players had lower than expected averages because speed is probably not being taken into account. So then I ran a multiple-variable correlation for batting average using the Speed, Batting, and Power grades. With the extra inputs (all significant), I have an r-squared of 0.08. Not good at all.
Additionally, as you will soon see, all lines’ slopes are fairly small. Here are the equations I ended up with:
Bucket Method (r-square = 0.08)
AVG = .00069 * Batting + .220Best Fit Line (r-square = .03)
AVG = .00065 * Batting + .2205Three Factors Included (r-square = 0.08)
AVG = .232 + .000804 *Batting – .000476 * Power + .000126 * Speed
The bucket and best-fit equations almost work out to the same values. Now here is a table to compare the values. For the three bucket equation, I used a 50 grade for both power and speed.
Batting Grade | Batting Avg | Bucket | Best Fit Line | Three Variables |
80 | 0.320 | 0.275 | 0.273 | 0.279 |
75 | 0.310 | 0.272 | 0.269 | 0.275 |
70 | 0.300 | 0.268 | 0.266 | 0.271 |
65 | 0.290 | 0.265 | 0.263 | 0.267 |
60 | 0.280 | 0.261 | 0.260 | 0.263 |
55 | 0.270 | 0.258 | 0.256 | 0.259 |
50 | 0.260 | 0.255 | 0.253 | 0.255 |
45 | 0.250 | 0.251 | 0.250 | 0.251 |
40 | 0.240 | 0.248 | 0.247 | 0.247 |
35 | 0.230 | 0.244 | 0.243 | 0.243 |
30 | 0.220 | 0.241 | 0.240 | 0.239 |
All the projected values are about the same with the correct value happening at Grade 45 (.250 AVG). It is not surprising to see more regression to the mean with a variable stat like batting average. I think the one time I may jump to the third equation is if a hitter’s Power or Speed grade is on the extreme end.
I think the one time I may jump to the third equation is if a hitter’s Power or Speed grade is on the extreme end.
Adding Runs and RBI
Truthfully, the above work is a decent start to get an idea of a prospect’s production, but if you are going to create a projection a person should have an idea of the Runs and RBI the hitter will produce. A few years back, I created such a formula which looked to get the total number. The total is key for me because the generally stays the same, the ratios can change depending on lineup position. So running a simple multiple linear regression over the last 5 years’ worth of data (min 300 PA) here is a formula to get the total of Runs and RBI (r-square = 0.76).
Runs+RBI = 2.15 * HR + 365 * AVG + 13
Runs = (2.15 * HR + 365 * AVG + 13) * .525
RBI = (2.15 * HR + 365 * AVG + 13) * .475
Additionally, not all Runs have a RBI associated with them (e.g. scoring on a passed ball) so I have included the formulas for just Runs and RBI.
Putting everything together
So we have all the needed formulas, even though some are suspect. How about putting them to use? I collected all the hitter’s grades from MLB.com’s top 200 draft prospects (getting this data has been fairly easy this postseason during all the commercials). I used the above bucket equations to create a future projection and used my 2016 fantasy value equation to rank them.
Name | Batting | Power | Speed | Defense | Arm | HR | SB | AVG | Runs | RBI | Fantasy Value |
Taylor Trammell | 45 | 50 | 70 | 60 | 45 | 18 | 26 | 0.251 | 75 | 68 | 18.8 |
Thomas Jones | 45 | 45 | 70 | 60 | 50 | 16 | 26 | 0.251 | 73 | 66 | 18.0 |
Corey Ray | 55 | 55 | 60 | 55 | 50 | 20 | 15 | 0.258 | 79 | 71 | 17.8 |
Blake Rutherford | 55 | 55 | 60 | 50 | 50 | 20 | 15 | 0.258 | 79 | 71 | 17.8 |
Buddy Reed | 50 | 40 | 70 | 60 | 60 | 14 | 26 | 0.255 | 71 | 65 | 17.6 |
Nonie Williams | 45 | 50 | 65 | 50 | 60 | 18 | 19 | 0.251 | 75 | 68 | 17.5 |
Kyle Lewis | 55 | 60 | 50 | 50 | 50 | 22 | 8 | 0.258 | 81 | 73 | 17.2 |
Conner Capel | 50 | 45 | 65 | 55 | 55 | 16 | 19 | 0.255 | 74 | 67 | 17.0 |
Joshua Lowe | 50 | 50 | 60 | 55 | 60 | 18 | 15 | 0.255 | 76 | 69 | 16.8 |
Akil Baddoo | 50 | 50 | 60 | 50 | 40 | 18 | 15 | 0.255 | 76 | 69 | 16.8 |
Tre Carter | 45 | 45 | 65 | 55 | 55 | 16 | 19 | 0.251 | 73 | 66 | 16.7 |
Brandon Marsh | 45 | 50 | 60 | 55 | 60 | 18 | 15 | 0.251 | 75 | 68 | 16.5 |
Will Benson | 45 | 55 | 55 | 55 | 55 | 20 | 11 | 0.251 | 78 | 70 | 16.4 |
Mickey Moniak | 55 | 45 | 60 | 60 | 50 | 16 | 15 | 0.258 | 74 | 67 | 16.3 |
Alex Kirilloff | 50 | 55 | 50 | 50 | 55 | 20 | 8 | 0.255 | 78 | 71 | 16.2 |
David Martinelli | 50 | 50 | 55 | 55 | 50 | 18 | 11 | 0.255 | 76 | 69 | 16.0 |
J.B. Woodman | 50 | 50 | 55 | 50 | 55 | 18 | 11 | 0.255 | 76 | 69 | 16.0 |
Bryan Reynolds | 50 | 50 | 55 | 55 | 40 | 18 | 11 | 0.255 | 76 | 69 | 16.0 |
Heath Quinn | 45 | 55 | 50 | 50 | 55 | 20 | 8 | 0.251 | 78 | 70 | 15.9 |
Ronnie Dawson | 45 | 55 | 50 | 45 | 40 | 20 | 8 | 0.251 | 78 | 70 | 15.9 |
Nick Senzel | 55 | 50 | 50 | 55 | 55 | 18 | 8 | 0.258 | 77 | 69 | 15.7 |
Nolan Jones | 55 | 50 | 50 | 50 | 50 | 18 | 8 | 0.258 | 77 | 69 | 15.7 |
Cole Stobbe | 55 | 50 | 50 | 45 | 50 | 18 | 8 | 0.258 | 77 | 69 | 15.7 |
Tyler Fitzgerald | 45 | 50 | 55 | 50 | 55 | 18 | 11 | 0.251 | 75 | 68 | 15.7 |
Stephen Wrenn | 50 | 35 | 65 | 60 | 40 | 12 | 19 | 0.255 | 69 | 63 | 15.6 |
Will Craig | 55 | 55 | 35 | 40 | 60 | 20 | 4 | 0.258 | 79 | 71 | 15.5 |
Sheldon Neuse | 50 | 50 | 50 | 45 | 60 | 18 | 8 | 0.255 | 76 | 69 | 15.4 |
Lucas Erceg | 45 | 55 | 45 | 50 | 60 | 20 | 6 | 0.251 | 78 | 70 | 15.4 |
Ben Rortvedt | 50 | 55 | 40 | 50 | 55 | 20 | 5 | 0.255 | 78 | 71 | 15.4 |
Joshua Palacios | 50 | 40 | 60 | 50 | 50 | 14 | 15 | 0.255 | 71 | 65 | 15.3 |
Delvin Perez | 50 | 40 | 60 | 60 | 60 | 14 | 15 | 0.255 | 71 | 65 | 15.3 |
Anfernee Grier | 50 | 40 | 60 | 60 | 45 | 14 | 15 | 0.255 | 71 | 65 | 15.3 |
Hunter Bishop | 50 | 40 | 60 | 50 | 40 | 14 | 15 | 0.255 | 71 | 65 | 15.3 |
Carter Kieboom | 55 | 50 | 45 | 50 | 55 | 18 | 6 | 0.258 | 77 | 69 | 15.3 |
Nick Banks | 55 | 50 | 45 | 50 | 50 | 18 | 6 | 0.258 | 77 | 69 | 15.3 |
Drew Mendoza | 55 | 50 | 45 | 50 | 60 | 18 | 6 | 0.258 | 77 | 69 | 15.3 |
Gavin Lux | 50 | 45 | 55 | 55 | 55 | 16 | 11 | 0.255 | 74 | 67 | 15.3 |
Javon Shelby | 45 | 50 | 50 | 40 | 55 | 18 | 8 | 0.251 | 75 | 68 | 15.1 |
J.C. Flowers | 45 | 40 | 60 | 50 | 60 | 14 | 15 | 0.251 | 71 | 64 | 15.0 |
Austin Hays | 50 | 50 | 45 | 50 | 60 | 18 | 6 | 0.255 | 76 | 69 | 15.0 |
Hudson Sanchez | 50 | 50 | 45 | 45 | 55 | 18 | 6 | 0.255 | 76 | 69 | 15.0 |
Walker Robbins | 55 | 50 | 40 | 55 | 60 | 18 | 5 | 0.258 | 77 | 69 | 15.0 |
Ulysses Cantu | 55 | 50 | 40 | 40 | 55 | 18 | 5 | 0.258 | 77 | 69 | 15.0 |
Jameson Fisher | 55 | 50 | 40 | 45 | 40 | 18 | 5 | 0.258 | 77 | 69 | 15.0 |
Zack Collins | 50 | 55 | 30 | 40 | 45 | 20 | 3 | 0.255 | 78 | 71 | 15.0 |
Ryan Boldt | 55 | 40 | 55 | 55 | 45 | 14 | 11 | 0.258 | 72 | 65 | 14.9 |
Willie Abreu | 40 | 50 | 50 | 50 | 50 | 18 | 8 | 0.248 | 75 | 67 | 14.8 |
Avery Tuck | 40 | 50 | 50 | 50 | 50 | 18 | 8 | 0.248 | 75 | 67 | 14.8 |
Andy Yerzy | 40 | 55 | 40 | 40 | 50 | 20 | 5 | 0.248 | 77 | 70 | 14.8 |
Tyler Ramirez | 50 | 45 | 50 | 50 | 45 | 16 | 8 | 0.255 | 74 | 67 | 14.7 |
Chris Okey | 50 | 50 | 40 | 50 | 50 | 18 | 5 | 0.255 | 76 | 69 | 14.7 |
Chad Mcclanahan | 50 | 50 | 40 | 40 | 55 | 18 | 5 | 0.255 | 76 | 69 | 14.7 |
Peter Alonso | 45 | 55 | 30 | 45 | 50 | 20 | 3 | 0.251 | 78 | 70 | 14.7 |
Jake Fraley | 50 | 35 | 60 | 55 | 40 | 12 | 15 | 0.255 | 69 | 63 | 14.6 |
Nick Quintana | 50 | 50 | 35 | 40 | 60 | 18 | 4 | 0.255 | 76 | 69 | 14.4 |
Reid Humphreys | 45 | 50 | 40 | 45 | 60 | 18 | 5 | 0.251 | 75 | 68 | 14.4 |
Bo Bichette | 45 | 50 | 40 | 45 | 45 | 18 | 5 | 0.251 | 75 | 68 | 14.4 |
Sean Murphy | 45 | 50 | 40 | 55 | 70 | 18 | 5 | 0.251 | 75 | 68 | 14.4 |
Bobby Dalbec | 40 | 55 | 30 | 45 | 60 | 20 | 3 | 0.248 | 77 | 70 | 14.4 |
Boomer White | 55 | 40 | 50 | 50 | 50 | 14 | 8 | 0.258 | 72 | 65 | 14.3 |
Joe Rizzo | 55 | 45 | 40 | 40 | 50 | 16 | 5 | 0.258 | 74 | 67 | 14.3 |
C.J. Chatham | 50 | 40 | 50 | 50 | 60 | 14 | 8 | 0.255 | 71 | 65 | 14.0 |
Luis Curbelo | 50 | 40 | 50 | 45 | 55 | 14 | 8 | 0.255 | 71 | 65 | 14.0 |
Blake Tiberi | 50 | 45 | 40 | 45 | 50 | 16 | 5 | 0.255 | 74 | 67 | 14.0 |
Christian Jones | 45 | 50 | 30 | 45 | 45 | 18 | 3 | 0.251 | 75 | 68 | 14.0 |
Garrett Hampson | 50 | 30 | 60 | 50 | 45 | 10 | 15 | 0.255 | 67 | 61 | 13.9 |
Cam Shepherd | 55 | 40 | 45 | 45 | 55 | 14 | 6 | 0.258 | 72 | 65 | 13.9 |
Matt Thaiss | 55 | 45 | 30 | 40 | 45 | 16 | 3 | 0.258 | 74 | 67 | 13.8 |
Colton Welker | 45 | 45 | 40 | 55 | 55 | 16 | 5 | 0.251 | 73 | 66 | 13.7 |
Colby Woodmansee | 50 | 40 | 45 | 45 | 50 | 14 | 6 | 0.255 | 71 | 65 | 13.6 |
Carlos Cortes | 55 | 40 | 40 | 45 | 50 | 14 | 5 | 0.258 | 72 | 65 | 13.5 |
Brett Cumberland | 55 | 40 | 40 | 40 | 45 | 14 | 5 | 0.258 | 72 | 65 | 13.5 |
Jacob Robson | 50 | 20 | 65 | 55 | 40 | 6 | 19 | 0.255 | 62 | 56 | 13.4 |
Nick Solak | 55 | 30 | 55 | 50 | 40 | 10 | 11 | 0.258 | 68 | 61 | 13.4 |
Tres Barrera | 40 | 50 | 20 | 50 | 55 | 18 | 2 | 0.248 | 75 | 67 | 13.4 |
Mario Feliciano | 50 | 40 | 40 | 45 | 50 | 14 | 5 | 0.255 | 71 | 65 | 13.2 |
Andrew Knizner | 45 | 45 | 30 | 45 | 50 | 16 | 3 | 0.251 | 73 | 66 | 13.2 |
Bryson Brigman | 50 | 30 | 55 | 50 | 45 | 10 | 11 | 0.255 | 67 | 61 | 13.1 |
Brennon Lund | 50 | 30 | 55 | 50 | 45 | 10 | 11 | 0.255 | 67 | 61 | 13.1 |
Logan Ice | 50 | 40 | 35 | 50 | 50 | 14 | 4 | 0.255 | 71 | 65 | 13.0 |
Connor Justus | 45 | 35 | 50 | 55 | 55 | 12 | 8 | 0.251 | 68 | 62 | 13.0 |
Cooper Johnson | 40 | 45 | 30 | 60 | 65 | 16 | 3 | 0.248 | 72 | 65 | 13.0 |
Trever Morrison | 45 | 30 | 55 | 50 | 50 | 10 | 11 | 0.251 | 66 | 60 | 12.8 |
Daniel Bakst | 50 | 40 | 30 | 45 | 50 | 14 | 3 | 0.255 | 71 | 65 | 12.8 |
Jeremy Martinez | 50 | 40 | 30 | 45 | 45 | 14 | 3 | 0.255 | 71 | 65 | 12.8 |
Will Smith | 50 | 30 | 50 | 55 | 60 | 10 | 8 | 0.255 | 67 | 61 | 12.6 |
Stephen Alemais | 50 | 30 | 50 | 55 | 60 | 10 | 8 | 0.255 | 67 | 61 | 12.6 |
Grae Kessinger | 45 | 35 | 45 | 55 | 60 | 12 | 6 | 0.251 | 68 | 62 | 12.6 |
Jake Rogers | 40 | 40 | 30 | 65 | 60 | 14 | 3 | 0.248 | 70 | 63 | 12.2 |
The list generally went by the draft order, but the one major different I notice is how some of the top speedsters, with some other skills, Taylor Trammell and Thomas Jones, have moved to the top. It would be tough for me to take them over Corey Ray (even with the injury) or Kyle Lewis in adynasty leagues, but they do give me some deeper targets.
I am finally done for this week. I am probably should have divided the work into two articles, but I think it is nice to have the procedure all in one place. As always, ask away because I will probably stop with hitters and move forward to pitchers.
Jeff, one of the authors of the fantasy baseball guide,The Process, writes for RotoGraphs, The Hardball Times, Rotowire, Baseball America, and BaseballHQ. He has been nominated for two SABR Analytics Research Award for Contemporary Analysis and won it in 2013 in tandem with Bill Petti. He has won four FSWA Awards including on for his Mining the News series. He's won Tout Wars three times, LABR twice, and got his first NFBC Main Event win in 2021. Follow him on Twitter @jeffwzimmerman.
When I try duplicating your work on players (mostly) not on the list, things go wrong when I try to add R/Rbi. For example, Bo Bichette gets me Totals of 27 R 25 Rbi… the same with JB Woodman. Avg and HR and SB totals I get the same result as your list. Where am I going wrong? I’m using the individual formulas.
The decimal should not have been there. Use 365 instead of .365