Our ranks are based on peak MLB wOBA translations for minor leaguers. Peak MLB wOBA is 2019 minor league wOBA adjusted for aging and league difficulty. For example, say a 20-year-old posts a .400 wOBA in the Triple-A International League in 2019. Adjusted for league difficulty, this performance is equivalent to a .330 wOBA in the MLB. Adjusted for aging, it’s equivalent to a .407 MLB wOBA at the player’s peak. Adjustments are derived from research on aging and translating minor league performance (see here, here, here, here, and here).

Ross Jensen and I have been updating the peak MLB wOBA leaderboards all season. Bookmark them to follow along next year! View our midseason list here.

These ranks consider 2019 performance only. They only include players who meet the following requirements: less than 130 MLB at bats; minimum 200 minor league plate appearances; majority of plate appearances in full season league; “age-appropriate.” “Age-appropriate” is defined as a maximum age of 23 for Triple-A, 22 for Double-A, etc. This is a simple way to remove many fluky small sample performances, since old-for-level players tend to have worse track records, and are often forced to repeat a level.

Later in the offseason to improve forecasting accuracy, we plan to release an updated “2020” top 50 list that weights multiple seasons of performance, and adjusts for BABIP-luck along with other tweaks.

For a more holistic ranking to compare to, check out lead TDG prospects guru Jesse Roche’s updated top 200 released Friday.

Now to the list!

1, Julio Rodriguez, Age 18 (in 2019 season), Seattle Mariners, Highest level: High-A, Plate appearances: 367, Peak MLB wOBA translation for 2019: .435, Average peak MLB wOBA translation for 2018 & 2019 (not weighted by plate appearances): .400

2, Wander Franco, Age 18, Tampa Bay Rays, Highest level: High-A, Plate appearances: 495, Peak MLB wOBA translation for 2019: .429, Average peak MLB wOBA translation for 2018 & 2019: .433

3, Luis Robert, Age 21, Chicago White Sox, Highest level: Triple-A, Plate appearances: 509, Peak MLB wOBA translation for 2019: .428, Average peak MLB wOBA translation for 2018 & 2019: .364

4, Gavin Lux, Age 21, Los Angeles Dodgers, Highest level: MLB, Plate appearances: 528, Peak MLB wOBA translation for 2019 (MLB PAs included for players with MLB PAs): .426, Average peak MLB wOBA translation for 2018 & 2019: .406

The top four are pretty safe bets to be dynasty cornerstones. After a strong performance in Single-A, Julio had probably the best ever High-A performance for an 18-year-old. Wander is a legend, and would rank 1 when taking 2018 into account as well. Robert broke out in a big way after two injury-plagued seasons stateside, looking much more like the Cuban otherworldly version. Lux has put together back-to-back elite minor league seasons, and more than held his own with a .331 xwOBA in 82 PAs with the Dodgers this year–he’s one of my favorite offseason trade targets, as his price might still lag his considerable talent. A few more playoff homers might change that!

5, Dylan Carlson, Age 20, St. Louis Cardinals, Highest level: Triple-A, Plate appearances: 562, Peak MLB wOBA translation for 2019: .408, Average peak MLB wOBA translation for 2018 & 2019: .371

6, Brennen Davis, Age 19, Chicago Cubs, Highest level: Single-A, Plate appearances: 204, Peak MLB wOBA translation for 2019: .406, Average peak MLB wOBA translation for 2018 & 2019: .374

7, Jarred Kelenic, Age 19, Seattle Mariners, Highest level: Double-A, Plate appearances: 500, Peak MLB wOBA translation for 2019: .405, Average peak MLB wOBA translation for 2018 & 2019: .379

8, Alejandro Kirk, Age 20, Toronto Blue Jays, Highest level: High-A, Plate appearances: 372, Peak MLB wOBA translation for 2019: .394, Average peak MLB wOBA translation for 2018 & 2019: .394

9, Kevin Padlo, Age 22, Tampa Bay Rays, Highest level: Triple-A, Plate appearances: 402, Peak MLB wOBA translation for 2019: .393, Average peak MLB wOBA translation for 2018 & 2019: .340

10, Drew Waters, Age 20, Atlanta Braves, Highest level: Triple-A, Plate appearances: 526, Peak MLB wOBA translation for 2019: .390, Average peak MLB wOBA translation for 2018 & 2019: .368

Carlson took a major step forward in 2019: he absolutely destroyed Triple-A after a late-season call-up, making me look foolish for trading him to lead TDG prospector Jesse Roche for pennies on the dollar. Kelenic has easily looked like the best offensive selection of round 1 of the 2018 draft, likely haunting the Mets for years to come. An irreverent bunch rounds out the top 10. Kirk and Padlo each remain under the radar, not coming close to the top 10 (hitters) on other lists. Get them for cheap while you can, especially Kirk–he has gained scouting affection from Baseball America recently, and he was great in 2018, also posting an elite peak MLB wOBA translation. Waters is my least favorite of this bunch relative to his high market price, with a super-BABIP fueled performance. He’s got solid speed and power though and should be a solid contributor even with weak plate discipline. Davis has a smaller sample than most players on this list, giving him higher risk. If he sustains the gains in early 2019, he’ll find himself in the top 10 on traditional lists as well.

11, Abraham Toro, Age 22, Houston Astros, Highest level: MLB, Plate appearances: 552, Peak MLB wOBA translation for 2019: .390, Average peak MLB wOBA translation for 2018 & 2019: .365

12, Mason Martin, Age 20, Pittsburgh Pirates, Highest level: High-A, Plate appearances: 556, Peak MLB wOBA translation for 2019: .390, Average peak MLB wOBA translation for 2018 & 2019: .346

13, Daulton Varsho, Age 22, Arizona Diamondbacks, Highest level: Double-A, Plate appearances: 452, Peak MLB wOBA translation for 2019: .388, Average peak MLB wOBA translation for 2018 & 2019: .361

14, Heliot Ramos, Age 19, San Francisco Giants, Highest level: Double-A, Plate appearances: 444, Peak MLB wOBA translation for 2019: .387, Average peak MLB wOBA translation for 2018 & 2019: .351

15, Luis Campusano, Age 20, San Diego Padres, Highest level: High-A, Plate appearances: 487, Peak MLB wOBA translation for 2019: .382, Average peak MLB wOBA translation for 2018 & 2019: .350

16, Seth Beer, Age 22, Arizona Diamondbacks, Highest level: Double-A, Plate appearances: 533, Peak MLB wOBA translation for 2019: .381, Average peak MLB wOBA translation for 2018 & 2019: .372

Past research over at Royals Review on prospects included in Baseball America’s rankings has found a steep gap between offensive prospects ranked in the top ~10 (hitters) compared to outside the top 10, with the top 10 worth over two times as much as the next 10. Outside the top 10, the gaps between ranks 10-100 tend to be smaller. With that in mind, this next group presents a lot of risk, but also reward. All were not quite as good in 2018. Ramos is a tool shed — he’s the guy I’m most excited about of this bunch. After being spoiled with first base prospects this past season (Pete Alonso and Nate Lowe) Beer offers our best hope at filling the void in 2020.

17, Nolan Jones, Age 21, Cleveland Indians, Highest level: Double-A, Plate appearances: 535, Peak MLB wOBA translation for 2019: .380, Average peak MLB wOBA translation for 2018 & 2019: .376

18, Jo Adell, Age 20, Los Angeles Angels, Highest level: Triple-A, Plate appearances: 341, Peak MLB wOBA translation for 2019: .380, Average peak MLB wOBA translation for 2018 & 2019: .384

19, Ji-Hwan Bae, Age 20, Pittsburgh Pirates, Highest level: Single-A, Plate appearances: 380, Peak MLB wOBA translation for 2019: .379, Average peak MLB wOBA translation for 2018 & 2019: .338

20, Alek Thomas, Age 19, Arizona Diamondbacks, Highest level: High-A, Plate appearances: 506, Peak MLB wOBA translation for 2019: .377, Average peak MLB wOBA translation for 2018 & 2019: .365

21, Oneil Cruz, Age 19, Pittsburgh Pirates, Highest level: Double-A, Plate appearances: 292, Peak MLB wOBA translation for 2019: .377, Average peak MLB wOBA translation for 2018 & 2019: .360

Jo Adell’s 18 rank might stand out. Fear not, as it would jump to 5 when considering 2018 as well–he belongs in the top 10 somewhere. Jones is an OBP machine, and Thomas and Cruz both offer top 10 upside with steps forward in 2020, possessing tantalizing tools. Ji-Hwan Bae is perhaps the most unknown name on this list. He’s underrated, but I’d ruminate on his .417 BABIP before making this South Korean shortstop your personal bae.

22, Jeter Downs, Age 20, Los Angeles Dodgers, Highest level: Double-A, Plate appearances: 535, Peak MLB wOBA translation for 2019: .376, Average peak MLB wOBA translation for 2018 & 2019: .356

23, Canaan Smith, Age 20, New York Yankees, Highest level: Single-A, Plate appearances: 528, Peak MLB wOBA translation for 2019: .374, Average peak MLB wOBA translation for 2018 & 2019: .322

24, Alec Bohm, Age 22, Philadelphia Phillies, Highest level: Double-A, Plate appearances: 540, Peak MLB wOBA translation for 2019: .373, Average peak MLB wOBA translation for 2018 & 2019: .320

25, Isaac Paredes, Age 20, Detroit Tigers, Highest level: Double-A, Plate appearances: 552, Peak MLB wOBA translation for 2019: .373, Average peak MLB wOBA translation for 2018 & 2019: .371

26, Miguel Vargas, Age 19, Los Angeles Dodgers, Highest level: High-A, Plate appearances: 559, Peak MLB wOBA translation for 2019: .371, Average peak MLB wOBA translation for 2018 & 2019: .367

Downs offers a top speed-power combo, a well-rounded fantasy game. Paredes is a personal favorite, consistently hitting throughout his minor league career. I boldly predicted he’d be in the majors in 2019–let’s just pretend I said 2020, thanks. After struggling in his brief debut in 2018, Bohm looked more like the player the Phillies expected when they took him third overall in the 2018 draft –a reminder not to panic when a draftee struggles initially. After a down 2018, Smith looked reborn this year, and he’s young enough where the gains might stick. Vargas is a 2020 breakout candidate for the Dodgers, after cracking High-A at the ripe, young age of 19.

27, Triston Casas, Age 19, Boston Red Sox, Highest level: High-A, Plate appearances: 500, Peak MLB wOBA translation for 2019: .369, Average peak MLB wOBA translation for 2018 & 2019: .369

28, Josh Stephen, Age 21, Philadelphia Phillies, Highest level: Double-A, Plate appearances: 403, Peak MLB wOBA translation for 2019: .367, Average peak MLB wOBA translation for 2018 & 2019: .313

29, Gabriel Moreno, Age 19, Toronto Blue Jays, Highest level: Single-A, Plate appearances: 341, Peak MLB wOBA translation for 2019: .367, Average peak MLB wOBA translation for 2018 & 2019: .379

30, Sam Huff, Age 21, Texas Rangers, Highest level: High-A, Plate appearances: 519, Peak MLB wOBA translation for 2019: .355, Average peak MLB wOBA translation for 2018 & 2019: .323

31, Cristian Pache, Age 20, Atlanta Braves, Highest level: Triple-A, Plate appearances: 497, Peak MLB wOBA translation for 2019: .365, Average peak MLB wOBA translation for 2018 & 2019: .344

32, Brandon Marsh, Age 21, Los Angeles Angels, Highest level: Double-A, Plate appearances: 433, Peak MLB wOBA translation for 2019: .354, Average peak MLB wOBA translation for 2018 & 2019: .339

33, Ryan Vilade, Age 20, Colorado Rockies, Highest level: High-A, Plate appearances: 587, Peak MLB wOBA translation for 2019: .352, Average peak MLB wOBA translation for 2018 & 2019: .330

34, Ivan Herrera, Age 19, St. Louis Cardinals, Highest level: High-A, Plate appearances: 356, Peak MLB wOBA translation for 2019: .363, Average peak MLB wOBA translation for 2018 & 2019: .367

Casas is extremely powerful without too many strikeouts, finding himself near the top of Prospects Live’s fly ball distance leaderboards for Single-A, with 80 grade future raw power from Fangraphs. More evidence baseball is hard to predict: Stephen broke out this year in Double-A after skipping High-A and struggling to an 82 wRC+ in Single-A in 2018. I’d want to see more from him before buying in. Ditto for Huff, who was otherworldly in Single-A, but more human in High-A. Pache’s excellent center field defense should keep him in the lineup and he offers developing power, but not as many stolen bases as his elite speed suggests, limiting his overall upside. He’s a guy that ought to rank lower on fantasy lists compared to real life lists. Moreno has power and excellent contact skills at the premium catcher position, giving the Jays another tantalizing option along with Kirk. Herrera is another high upside catcher performing at a young age, reaching High-A at 19. Vilade’s power showed up in a High-A breakout after disappearing in 2018–monitor how his pop holds up in early 2019, he offers good speed and could be an exciting play at shortstop in Coors Field. Marsh’s game power lags his raw–it’s the main thing holding him back from a full breakout.

35, Tyler Stephenson, Age 22, Cincinnati Reds, Highest level: Double-A, Plate appearances: 363, Peak MLB wOBA translation for 2019: .346, Average peak MLB wOBA translation for 2018 & 2019: .326

36, Jack Herman, Age 19, Pittsburgh Pirates, Highest level: Single-A, Plate appearances: 300, Peak MLB wOBA translation for 2019: .362, Average peak MLB wOBA translation for 2018 & 2019: .370

37, Jazz Chisholm, Age 21, Miami Marlins, Highest level: Double-A, Plate appearances: 458, Peak MLB wOBA translation for 2019: .346, Average peak MLB wOBA translation for 2018 & 2019: .344

38, Geraldo Perdomo, Age 19, Arizona Diamondbacks, Highest level: High-A, Plate appearances: 499, Peak MLB wOBA translation for 2019: .360, Average peak MLB wOBA translation for 2018 & 2019: .371

39, Yonny Hernandez, Age 21, Texas Rangers, Highest level: Double-A, Plate appearances: 515, Peak MLB wOBA translation for 2019: .346, Average peak MLB wOBA translation for 2018 & 2019: .322

40, Marcus Wilson, Age 22, Boston Red Sox, Highest level: Double-A, Plate appearances: 445, Peak MLB wOBA translation for 2019: .360, Average peak MLB wOBA translation for 2018 & 2019: .318

41, Andrew Vaughn, Age 21, Chicago White Sox, Highest level: High-A, Plate appearances: 245, Peak MLB wOBA translation for 2019: .346, Average peak MLB wOBA translation for 2018 & 2019: .346

42, Otto Lopez, Age 20, Toronto Blue Jays, Highest level: Single-A, Plate appearances: 492, Peak MLB wOBA translation for 2019: .346, Average peak MLB wOBA translation for 2018 & 2019: .350

Chisholm likely won’t ever justify moving emerging rotation stalwart Zac Gallen, but he’s got exciting power and is off to a good start with his new team. Outside of very deep leagues, I am hesitant to buy too much into any of Stephenson, Hernandez, or Wilson, as each wasn’t great pre-2019. Hernandez is a slap hitter, SB-only play. Wilson offers power and speed but strikes out a lot. Stephenson looks like a potentially solid, unspectacular option at catcher, without much upside. Perdomo’s got fantastic plate discipline, great speed, and a bit of pop; if he develops moderate power, watch out. Herman had a promising season in Single-A, offers good power and some speed; he’s got to work on cutting his 29% strikeout rate. Lopez has put together back-to-back strong seasons at shortstop, with good plate discipline, speed, and moderate pop–he’s yet another underrated Blue Jays prospect. After dominating in college the past couple seasons, Vaughn was somewhat human, but still pretty good in his debut season, showcasing masterful plate discipline but a bit less pop than he’s capable of. Look for him to put up huge numbers next year, perhaps even making the MLB–I’d have both him (and Adley Rutschman) in my (subjective) top 10.

43, Alex Kirilloff, Age 21, Minnesota Twins, Highest level: Double-A, Plate appearances: 411, Peak MLB wOBA translation for 2019: .345, Average peak MLB wOBA translation for 2018 & 2019: .373

44, Carter Kieboom, Age 21, Washington Nationals, Highest level: MLB, Plate appearances: 537, Peak MLB wOBA translation for 2019: .358, Average peak MLB wOBA translation for 2018 & 2019: .356

45, Yusniel Diaz, Age 22, Baltimore Orioles, Highest level: Double-A, Plate appearances: 358, Peak MLB wOBA translation for 2019: .345, Average peak MLB wOBA translation for 2018 & 2019: .358

46, Gabriel Arias, Age 19, San Diego Padres, Highest level: High-A, Plate appearances: 511, Peak MLB wOBA translation for 2019: .358, Average peak MLB wOBA translation for 2018 & 2019: .331

47, Mario Feliciano, Age 20, Milwaukee Brewers, Highest level: Double-A, Plate appearances: 496, Peak MLB wOBA translation for 2019: .356, Average peak MLB wOBA translation for 2018 & 2019: .323

48, Josh Lowe, Age 21, Tampa Bay Rays, Highest level: Double-A, Plate appearances: 519, Peak MLB wOBA translation for 2019: .356, Average peak MLB wOBA translation for 2018 & 2019: .328

49, Lewin Diaz, Age 22, Miami Marlins, Highest level: Double-A, Plate appearances: 501, Peak MLB wOBA translation for 2019: .355, Average peak MLB wOBA translation for 2018 & 2019: .301

50, Nolan Gorman, Age 19, St. Louis Cardinals, Highest level: High-A, Plate appearances: 512, Peak MLB wOBA translation for 2019: .355, Average peak MLB wOBA translation for 2018 & 2019: .377

Kiriloff had a bit of a down season by his standards power-wise–he ranks 11th when considering 2018 performance also, and I expect a rebound in 2020. Similarly, Gorman would rank much more highly when taking 2018 into account–he probably won’t be a future superstar, but he looks like an above average offensive piece. Yusniel Diaz rebounded after struggling in Double-A in his first season with the Orioles in 2018. He’s got a solid all around bat, with power and discipline. A total disappearance of his speed limits his fantasy upside. Kieboom tends to rank more highly on traditional lists; my translations see future above average, all-around contributor rather than star. Arias, Feliciano, Lowe, and Lewin Diaz, all performed in 2019 after struggling in 2018–I’d want to see it again in 2020 before investing. Arias, 19 in High-A, and Feliciano, 20 cracking Double-A, are both quite young for level, providing reason for optimism.

Notes on other promising players excluded from the list (either because they didn’t play enough, or they didn’t play enough in the full season leagues):

Jordan Groshans appeared to be breaking out in his first 100 PAs in Single-A before going down with a foot injury. He had a BABIP-fueled .417 peak MLB wOBA in the small sample. I think it’s a partial breakout, and value him as a backend top 30 hitting prospect.

CJ Abrams was the complete package in the AZL this year, with great power, speed, and discipline to the tune of a .409 peak MLB wOBA–I’m all in on him this offseason.

Ditto for Marco Luciano (.405 peak MLB wOBA in the AZL)–it’s too late to buy low, but he looks like the next big thing in the world of prospects.

Kristian Robinson posted a .399 peak MLB wOBA across short-season Single-A and Single-A–he’s another breakout in progress. Like Luciano and Abrams, he gets rave reviews from scouts; this threesome is rightfully going to crack a lot of top 15 ranks in the industry this offseason.

If you’re looking to be early on a couple of future breakouts, check out Francisco Alvarez (.403 peak MLB wOBA and Gilberto Jimenez (.407 peak MLB wOBA). Alvarez performed extremely well as a 17-year-old in the Appalachian league, the same placement Wander Franco received last year–quite an advanced one. His bat looks like the complete package. Jimenez makes a lot of contact with a prime hit tool and elite (80-grade from Fangraphs) speed. He added some pop this year, and even a moderate amount makes him an exciting fantasy prospect.

If you want to go really under the radar, checkout this year’s Dominican Summer League studs, Rayner Santana and Alexander Mojica. The translations are wildly volatile for DSL performances so buy with caution, but the cost should be cheap or free…Ross Jensen gets the Mojica hype train started here.

Lastly, I direct your attention to the next potential Muncy/Aguilar/Voit/Cruz-type quad-A breakout in Kevin Cron. He was simply historic in the PCL bounce house this year, putting up the best-isolated power in the history of the league by over .100 points. Not even Commissioner Rob Manfred and his team of scientists can explain this step forward through changes to the ball. He even posted a .342 xwOBA in his first 78 MLB PAs!