RoboScout’s Top 100 Fantasy Baseball Prospects For 2024
Image credit: Coby Mayo (Photo by Tom DiPace)
When we put together our Dynasty 700 and the subsequent Top 100 Fantasy Prospects, we mined from our scouting reports and fantasy expertise to put it together. We also had an unsung contribution from RoboScout.
A huge part of fantasy baseball involves projections. This makes sense, of course. If you can estimate, as accurately as possible, the potential contribution of a player to your fantasy roster, you can make better informed decisions on how you want to draft your team, build your roster and even make trades. Projections are a necessary ingredient for fantasy success in redraft leagues.
Although the cumulative accuracy of projections dissipates as you move further and further into the future, these same principles hold true in a dynasty league. If you can estimate, as accurately as possible, the future (yearly) contributions of a player to your dynasty fantasy roster, you will have an advantage over other leaguemates who are less rigorous in their approach.
What is RoboScout?
The high-level basis for how projections are created boils down to one simple truism: past performance—despite what the legal disclaimers on your 401(k) may say— are related to future returns. By looking, for example, at the average paired-year performances of hitters and pitchers historically, weighting by sample size, adjusting for survivor bias, one can generate expected age curves with reasonable accuracy of various statistics, such as walk rate (of both hitters and pitchers), strikeout rate (of both hitters and pitchers), ground ball rate (of both hitters and pitchers) and home runs per plate appearance and OPS (of hitters). Given a hitter’s OPS, walk percentage, and strikeout percentage, one can reasonably infer what their batting average is, and so forth.
We can apply this same approach to the minor leagues. Take paired-”level” performances of hitters and pitchers historically, one can estimate what a pitcher’s strikeout rate would be in Double-A given that he had, say, a 12% strikeout percentage in High-A. By understanding the expected equivalent performance at a higher level—including MLB—we can thus generate an “expected” major league performance based on a minor leaguer’s performance (after additionally adjusting the statistical performance to the league’s run environment and also from Matt Eddy’s park factors. Now add in the “age curve” calculations from the previous paragraphs to this expected major league projection, and you can estimate what the hitter’s projection would be in his prime performance years.
Depending on how deep you wanted to go—for example, incorporating platoon splits, quality-of-competition or deriving independent age curves for different “phylums” of similar hitter archetypes—more granular adjustments can be made.
Hitting a home run on opening day does not imply a player will likely finish the season with 162 home runs. Likewise, we also apply regression to more accurately reflect expected season-long performance based on performance from small sample sizes.
The final piece to the recipe is minor league Statcast data. Supplementing the performance inputs used in the “projections” for hitters are barrel rate, exit velocity, contact percentage and other metrics that are shown to be correlate to future wRC+. For the pitchers, RoboScout folds in the pitch-level metrics (movement, velocity, etc.) that are inputs into traditional Stuff+ models.
Use the projections to your advantage
While it is true that for more accurate “projections”, one should use multiple years of performance (as a player’s “true talent” is more accurately reflected by their career performance than from their “most recent three months”), RoboScout was specifically designed to quickly estimate future performance and only uses current season data. This is because it’s extremely advantageous to find prospects in dynasty leagues before before industry outlets publish their updated lists (or podcasts discuss them).
In order to do so, you will need to make decisions with imperfect information. For example, if you waited until Davis Schneider was called up to the major leagues, and then performed well enough to get a rest-of-season projection that was attractive, it was too late. He was likely already rostered for weeks. If we can positively influence the decision-making process despite having only imperfect information, this would be a powerful tool.
To make RoboScout as simple as possible— and as simple as possible to maintain—it is solely results-based. It does not know if a hitter is an unathletic designated hitter or an 80-grade defender in center field. RoboScout merely takes the player’s performance and ranks them, at each minor league level, based on their (1) projected major league performance, (2) projected peak major league performance, and (3) expected long-term fantasy value (generalized because of the various league formats).
From all of the above, the following RoboScout 100 list was created.
Unsurprisingly, there is a lot of overlap with our curated lists which had the benefit of human intervention. For example, all of the usual suspects are here: Jackson Chourio, Samuel Basallo, Junior Caminero, Coby Mayo, Jackson Holliday, and so forth. Sprinkled throughout the list, however, are a few “interesting” (read: odd) names—most of which seem to be hitters who possess an outlier ability to make contact, avoid strike outs and therefore have high expected batting averages in the David Fletcher and Tony Kemp mold.
In future articles, we will look at some of these unexpected names—and some of the older players who RoboScout also liked but were not appropriate for a prospect list.
Here’s the full list. You can find full scouting reports for every player ranked in our Preseason Top 30s here.
RoboScout Top 100 Fantasy Prospects
Rank | Name | Team | POS | Age | LVL |
1 | Coby Mayo | BAL | 3B | 22 | AA |
2 | Colt Keith | DET | 3B | 22 | AA |
3 | Xavier Edwards | MIA | 2B | 24 | AAA |
4 | Samuel Basallo | BAL | C | 19 | A+ |
5 | Junior Caminero | TBR | 3B | 20 | AA |
6 | Tyler Black | MIL | 2B/3B | 23 | AA |
7 | Emmanuel Rodriguez | MIN | OF | 21 | A+ |
8 | Owen Caissie | CHC | OF | 21 | AA |
9 | Jackson Holliday | BAL | SS | 20 | A+ |
10 | Jackson Chourio | MIL | OF | 20 | AA |
11 | Jared Jones | PIT | P | 22 | AAA |
12 | Jett Williams | NYM | SS/OF | 20 | A+ |
13 | Luis Matos | SF | OF | 22 | AA |
14 | Jasson Dominguez | NYY | OF | 21 | AA |
15 | Moises Ballesteros | CHC | C | 20 | A+ |
16 | Samuel Zavala | SDP | OF | 19 | A+ |
17 | Jakob Marsee | SDP | OF | 23 | A+ |
18 | Jackson Jobe | DET | P | 21 | A+ |
19 | Ivan Herrera | STL | C | 24 | AAA |
20 | Kyle Harrison | SF | P | 22 | AAA |
21 | Chayce McDermott | BAL | P | 25 | AAA |
22 | Cole Young | SEA | SS | 20 | A+ |
23 | Colt Emerson | SEA | SS | 18 | A |
24 | Sal Stewart | CIN | 3B | 20 | A+ |
25 | Chase Hampton | NYY | P | 22 | A+ |
26 | Wyatt Langford | TEX | OF | 22 | A+ |
27 | Evan Carter | TEX | OF | 21 | AA |
28 | Xavier Isaac | TB | 1B | 20 | A+ |
29 | Ethan Salas | SD | C | 18 | A |
30 | Kala’i Rosario | MIN | OF | 21 | A+ |
31 | Thomas Saggese | STL | 2B/SS | 22 | AA |
32 | James Wood | WSH | OF | 21 | AA |
33 | Ben Rice | NYY | C | 25 | AA |
34 | Carter Jensen | KCR | C | 20 | A+ |
35 | Colton Cowser | BAL | OF | 24 | AAA |
36 | Adael Amador | COL | SS | 21 | A+ |
37 | DL Hall | MIL | P | 25 | AAA |
38 | Matt Shaw | CHC | 2B/SS | 22 | A+ |
39 | Thayron Liranzo | LAD | C | 20 | A |
40 | Roman Anthony | BOS | OF | 20 | A+ |
41 | Justyn-Henry Malloy | DET | 3B | 24 | AAA |
42 | Pete Crow-Armstrong | CHC | OF | 22 | AA |
43 | Jackson Merrill | SD | SS | 21 | A+ |
44 | AJ Smith-Shawver | ATL | P | 21 | AAA |
45 | Hao-Yu Lee | DET | 2B | 21 | A+ |
46 | Jace Jung | DET | 2B | 23 | A+ |
47 | Chase DeLauter | CLE | OF | 22 | A+ |
48 | Will Warren | NYY | P | 25 | AAA |
49 | Ignacio Alvarez | ATL | 3B/SS | 21 | A+ |
50 | James Triantos | CHC | SS | 21 | A+ |
51 | Marco Luciano | SF | SS | 22 | AA |
52 | Lazaro Montes | SEA | OF | 19 | A |
53 | Connor Phillips | CIN | P | 23 | AA |
54 | Cade Horton | CHC | P | 22 | A+ |
55 | Luis Lara | MIL | OF | 19 | A+ |
56 | Juan Brito | CLE | 2B | 22 | AA |
57 | Everson Pereira | NYY | OF | 23 | AA |
58 | Leo Jimenez | TOR | SS | 23 | AA |
59 | Curtis Mead | TBR | 3B | 23 | AAA |
60 | Javier Vaz | KCR | 2B | 23 | A+ |
61 | Dalton Rushing | LAD | C | 23 | A+ |
62 | Noah Schultz | CHW | P | 20 | A |
63 | Colson Montgomery | CHW | SS | 22 | A+ |
64 | Orelvis Martinez | TOR | SS | 22 | AA |
65 | Carson Williams | TB | SS | 21 | A+ |
66 | Nathan Martorella | SDP | 1B | 23 | A+ |
67 | Kyle Manzardo | CLE | 1B | 23 | AAA |
68 | Wilyer Abreu | BOS | OF | 25 | AAA |
69 | Edwin Arroyo | CIN | SS | 20 | A+ |
70 | Termarr Johnson | PIT | 2B | 20 | A+ |
71 | Blaze Jordan | BOS | 1B/3B | 21 | A+ |
72 | Jonatan Clase | SEA | OF | 22 | A+ |
73 | Andy Pages | LAD | OF | 23 | AA |
74 | Hunter Goodman | COL | 1B/C | 24 | AA |
75 | Tanner Schobel | MIN | 2B | 23 | A+ |
76 | Jacob Misiorowski | MIL | P | 22 | A |
77 | Trey Sweeney | LAD | SS | 24 | AA |
78 | Edgar Quero | CWS | C | 21 | AA |
79 | Wes Clarke | MIL | C/1B | 24 | AA |
80 | Justice Bigbie | DET | 3B | 25 | AA |
81 | Ben Brown | CHC | P | 24 | AAA |
82 | Jorbit Vivas | NYY | 2B | 23 | AA |
83 | Justin Crawford | PHI | OF | 20 | A+ |
84 | Josue Briceno | DET | C | 19 | A |
85 | Caleb Durbin | NYY | 2B | 24 | AA |
86 | Ronny Mauricio | NYM | 2B/SS | 23 | AAA |
87 | Gabriel Gonzalez | SEA | OF | 20 | A |
88 | Kevin McGonigle | DET | SS | 19 | A |
89 | Jeferson Quero | MIL | C | 21 | AA |
90 | Abimelec Ortiz | TEX | 1B | 22 | A+ |
91 | Ryan Clifford | NYM | 1B/OF | 20 | A |
92 | Chase Meidroth | BOS | 2B/3B | 21 | AA |
93 | Dylan Beavers | BAL | OF | 22 | A+ |
94 | Carlos Jorge | CIN | 2B | 20 | A+ |
95 | Harry Ford | SEA | C | 21 | A+ |
96 | Tyler Hardman | NYY | 1B | 24 | AA |
97 | Joey Ortiz | MIL | 2B/SS | 24 | AAA |
98 | Brock Wilken | MIL | 3B | 21 | A+ |
99 | Jordan Lawlar | ARI | SS | 21 | AAA |
100 | Alan Roden | TOR | OF | 24 | AA |