Top-75 Stats-Based Hitting Prospects
It’s time for the bi-weekly look at under-the-radar hitting prospects. There seemed to be some confusion on the point of the rankings which is to find under promote good prospects. Today, I will try to clear up the and dive into a few hitters not represented on top-100 prospect lists.
The last time I ran this report, there was some questions on why some hitters were missing. After investing, I found out it’s was a database issue which missed some newly signed players, changed the position labeling, and mislabeled when players lost their rookie eligibility. I’ve made sure everyone is included but added a few adjustments.
- No positional adjustments are included in the final values.
- Some players who lost their rookie eligibility last season are included. If I don’t include these players, some player like Victor Robles would be excluded. I hope to have an answer to this issue soon.
Besides these changes, here is what the lists are and aren’t.
Are
- A supplement to Eric’s and Kiley’s prospect rankings. This set utilizes stats, age, and some regression to find potential overlooked prospects before they start showing up on major prospect lists.
Aren’t
- A complete list of every prospect. Some will be missed. I don’t care as I’m digging for one-offs. The most likely reason for not being on the list is they haven’t performed, not played much (major factor), or have graduated to the majors. Major league results are also not included.
- The order doesn’t matter at all, at least to me. Why one person is #8 over some guy at #14 compared to other lists is irrelevant. These top prospects are already owned in most leagues. I feel the order only matters to desperate fan bases looking for some much-needed hope.
And now for the current rankings using 2017 and 2018 data.
| Rank | Name | Position | 2017-2018 PA | Age | 20-80 scale |
|---|---|---|---|---|---|
| 1 | Vladimir Guerrero Jr. | 3B | 762 | 19 | 74 |
| 2 | Ronald Acuna Jr. | OF | 713 | 20 | 64 |
| 3 | Fernando Tatis Jr. | SS | 945 | 19 | 63 |
| 4 | Juan Soto | OF | 305 | 19 | 58 |
| 5 | Kyle Tucker | OF | 895 | 21 | 58 |
| 6 | Alex Verdugo | OF | 739 | 22 | 58 |
| 7 | Bo Bichette | 2B/SS | 879 | 20 | 56 |
| 8 | Rafael Devers | 3B | 358 | 20 | 54 |
| 9 | Luis Urias | 2B | 903 | 21 | 54 |
| 10 | Ryan McMahon | 1B/3B | 686 | 23 | 54 |
| 11 | Eloy Jimenez | OF | 644 | 21 | 53 |
| 12 | Franchy Cordero | SS/OF | 450 | 23 | 53 |
| 13 | Brendan Rodgers | 2B/SS | 749 | 21 | 51 |
| 14 | Willie Calhoun | 2B | 903 | 23 | 50 |
| 15 | Jake Bauers | 1B | 797 | 22 | 49 |
| 16 | Tyler O’Neill | OF | 765 | 23 | 49 |
| 17 | Willy Adames | SS | 811 | 22 | 49 |
| 18 | Franmil Reyes | OF | 802 | 22 | 48 |
| 19 | Franklin Barreto | 2B/SS | 714 | 22 | 48 |
| 20 | Amed Rosario | SS | 425 | 21 | 47 |
| 21 | Dominic Smith | 1B | 748 | 23 | 47 |
| 22 | Ozzie Albies | 2B/SS | 448 | 20 | 47 |
| 23 | Gleyber Torres | SS | 291 | 21 | 46 |
| 24 | Carter Kieboom | SS | 621 | 20 | 45 |
| 25 | Jo Adell | OF | 529 | 19 | 44 |
| 26 | Derek Fisher | OF | 521 | 24 | 44 |
| 27 | Austin Riley | 3B | 782 | 21 | 44 |
| 28 | Clint Frazier | OF | 554 | 23 | 44 |
| 29 | Josh Naylor | 1B | 874 | 21 | 44 |
| 30 | Lewis Brinson | OF | 340 | 23 | 43 |
| 31 | Ronald Guzman | 1B | 548 | 23 | 43 |
| 32 | Victor Caratini | C | 463 | 24 | 43 |
| 33 | Victor Robles | OF | 511 | 21 | 43 |
| 34 | Keibert Ruiz | C | 672 | 19 | 43 |
| 35 | Danny Jansen | C | 688 | 23 | 42 |
| 36 | Yordan Alvarez | 1B | 592 | 21 | 42 |
| 37 | Colton Welker | 3B | 625 | 20 | 42 |
| 38 | Yusniel Diaz | OF | 741 | 21 | 42 |
| 39 | Michael Chavis | 3B | 545 | 22 | 41 |
| 40 | Raimel Tapia | OF | 617 | 24 | 40 |
| 41 | Rhys Hoskins | 1B | 475 | 24 | 40 |
| 42 | Jason Martin | OF | 843 | 22 | 40 |
| 43 | Ryan Mountcastle | 3B/SS | 773 | 21 | 40 |
| 44 | Jordan Luplow | 3B/OF | 784 | 24 | 40 |
| 45 | Austin Hays | OF | 748 | 22 | 40 |
| 46 | Nick Senzel | 3B | 700 | 23 | 40 |
| 47 | Taylor Trammell | OF | 888 | 20 | 40 |
| 48 | Matt Olson | 1B | 343 | 23 | 39 |
| 49 | Dustin Fowler | OF | 445 | 23 | 39 |
| 50 | Justin Williams | OF | 736 | 22 | 39 |
| 51 | Francisco Mejia | C | 702 | 22 | 39 |
| 52 | Carson Kelly | C/3B | 471 | 23 | 39 |
| 53 | Brandon Lowe | 2B | 836 | 23 | 39 |
| 54 | Daniel Vogelbach | 1B | 790 | 25 | 38 |
| 55 | Yoan Moncada | 2B | 361 | 22 | 38 |
| 56 | Miguel Andujar | 3B | 522 | 22 | 38 |
| 57 | Brett Phillips | OF | 716 | 24 | 38 |
| 58 | Keston Hiura | 2B | 538 | 21 | 37 |
| 59 | Ryder Jones | 3B | 580 | 24 | 37 |
| 60 | Josh Ockimey | 1B | 844 | 22 | 37 |
| 61 | Hudson Potts | 3B | 872 | 19 | 37 |
| 62 | Tyler Wade | 2B/SS | 682 | 23 | 37 |
| 63 | Akil Baddoo | OF | 564 | 19 | 36 |
| 64 | Peter Alonso | 1B | 760 | 23 | 36 |
| 65 | DJ Peters | OF | 948 | 22 | 36 |
| 66 | Luis Santana | 2B | 365 | 18 | 36 |
| 67 | AJ Reed | 1B | 891 | 25 | 36 |
| 68 | Chris Shaw | 1B/OF | 789 | 24 | 36 |
| 69 | Estevan Florial | OF | 632 | 20 | 35 |
| 70 | Scott Kingery | 2B | 603 | 23 | 35 |
| 71 | Isaac Paredes | 2B/SS | 830 | 19 | 35 |
| 72 | Nolan Jones | 3B | 579 | 20 | 35 |
| 73 | Edwin Rios | 1B | 669 | 24 | 35 |
| 74 | Jesus Sanchez | OF | 826 | 20 | 35 |
| 75 | Elehuris Montero | 3B | 527 | 19 | 35 |
Yusniel Diaz – Dodgers
The 21-year-old outfielder, like most player featured here, has an average profile. All of his future traits range from 45 to 55 with a 45 overall future grade.
His production has taken a step forward this year. In Double-A, he’s posting a .305/.415/.465 triple slash line with a 15% walk and strikeout rate. Additionally, he has eight stolen bases to go with his six dongs.
One issue keeping his value down is he’s can’t play center but doesn’t have the projectable power to play a corner spot. I’m not sure if he’s a must add in a dynasty league but is an interesting bat to track as he gets closer to the bigs.
Brandon Lowe – Rays
I’m going to have to rename my program 45-55 because that’s the only player types it digs up. The 23-year-old second baseman stock has really taken off this year. In Double and Triple-A, he’s hit .305/.405/.566 with 17 home runs and eight steals. He’s pretty much a dynasty must add at this point (if he’s not already). Since the Rays aren’t contending so he’ll continue to get fast-tracked to the majors.
I’m wondering if his skill grades are dated and he’s more of a 50 to 55-grade second baseman which is in line with a recent Eric Longenhagen quote on him.
… Lowe’s batted-ball profile is also changing, his ground-ball rate dropping from 42% to 35%. We had him projected as an average everyday player at second base, but it appears there might be another gear here.
He’s a hitter to keep an eye on.
Josh Ockimey – Red Sox
The 23-year-old first baseman is starting to develop an interesting profile. While drafted for his plus power, he’s developed a nice eye at the plate posting a walk over 10%. At times, the walk rate was boosted by intentional walks (nine in High-A last season) but he’s only had one this season in Double-A (17% BB%).
His power has not been elite and hampered by a strikeout rate between 25% to 30%. I’m not sure there is enough power for someone stuck at firstbase or as the DH. Maybe may be a Justin Upton-clone but at first base.
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.
Jeff, I am still very confused. Based on this table, am I supposed to interpret that guys like Franchy Cordero and Dominic Smith will have more impact than Rhys Hoskins? Or am i processing this info incorrectly? Please help.
Matt Olson has 162 games under his belt, no longer a prospect.
“Some players who lost their rookie eligibility last season are included. If I don’t include these players, some player like Victor Robles would be excluded. I hope to have an answer to this issue soon.”
So… we can’t manually adjust the report? There are a dozen guys on this list who’ve been everyday guys for awhile. We come to this list looking for “prospects” and see… Lewis Brinson.
“These aren’t the prospects you’re looking for.”
Wow, Brandon Lowe looks like quite the find. With him and Solak the Rays look like they’ll have a 2b (and/or LF) covered.
Do you guys have an editor? This piece wins for most typos per word, and it’s not even close.
I have the same issue as I did with the pitcher list– no explanation of the methodology, the weights of certain stats. Multiple guys who aren’t prospects, a ranking system with huge anomalies (but an asterisk that the ranking system doesn’t matter.)
I gotta say when I’m slogging through the ads and closing the membership pop-up every couple minutes, and I read something sloppily put together like this… Fangraphs ain’t what it used to be.
Jeff is constantly producing high quality content and this idea is potentially really useful…notwithstanding, a detailed methodology post would be quite excellent, and help this “stats-based prospects” model fulfill it’s potential
Josh Naylor top 30!
Wut chu talking about Willis?? Diaz has played more CF than anywhere else and 28 games there this year.
Thanks, Jeff. This list was easier to understand than the last one, and the results are more intuitive, more aligned with age relative to league performance. I think it’s a good idea to make your inputs explicit — that way everyone knows exactly why a certain guy ranks in a certain spot. For example, even though his explicit rank is not important in this exercise, soto’s MLE performance across A, high A, and AA is the best ever for a 19 year old performance since a-rod and Joe Mauer…and if you include MLB plate appearances he might be even better (Vlad is not far behind). A stats based model appropriately calibrated should probably reflect this – Vlad and Soto should be way above everyone else. Even though their ranks aren’t important, it’s a sign your model is weighting certain variables in an unintuive way. This is of course fine except readers can’t explain why certain guys rank certain places. If you published the detailed model inputs, we’d know what to expect and how to understand the results. Right now it’s still too much of a black box. You have mentioned some of the general inputs, but I am curious for more as I think this is an incredibly useful exercise.
Also, take a look at Luis rengifo, a 21 year old putting up a similar wRC+ to Eloy Jimenez in AA (also at 21 yrs). He’s on zero top 100 lists
and crushing AA as one of the youngest players. Wouldn’t you want your model to pick up on an unheralded guy like this? I suppose he may not have enough PAs (300 across high a and AA)
“The order doesn’t matter at all, at least to me. Why one person is #8 over some guy at #14 compared to other lists is irrelevant. These top prospects are already owned in most leagues. I feel the order only matters to desperate fan bases looking for some much-needed hope”
– Jeff Zimmerman
I mean really.
It’s not “Based off 2017 to 2018 production.” It’s “Based on …”