An Improved KATOH Top-100 List
Back in January, I made some tweaks to my KATOH projection system, and have been using that updated model for the past several months. That model was unquestionably better than the previous versions, but it left me unsatisfied. While it addressed many of the flaws from previous iterations, there was still a lot of information it wasn’t taking into account.
I’ve been plugging away behind the scenes, and finally have a new version KATOH to share with the world. In what follows, you’ll find some detail on the new model, including its notable updates. I’ll be using this model in all of my prospect analysis from this point forward. Below, you’ll find a quick run-through of the notable tweaks, followed by an updated top-100 list.
*****
Added Features
Choosing projection window based on level, rather than age
In my previous model, I projected out based on a player’s age. If a player were 22, I projected him through age 28; If he were 24, I projected through age 30. This resulted in KATOH undervaluing players who were old for their level. The goal of KATOH is to predict the value a player will generate during his six-plus years of team control. By projecting a 22-year-old through age 28, KATOH failed to capture some of that value in cases where the 22-year-old was still in A-ball.
This time around, I chose my windows based on level, rather than age. I projected the next six seasons for players in Triple-A. I did the next seven for players in Double-A, eight for A-ballers, and nine for Rookie ballers.
Accounting for defensive performance, not just position
KATOH got significantly better when I added defensive position to the mix last winter, but there was still a lot for which I wasn’t accounting on the defensive side of things. Most notably, I was ignoring how good or bad a player was at the position he was playing. As we learned last decade when defensive metrics became a thing, the gap between a good defender and a bad defender at the same position can be huge. I’ve addressed this issue by incorporating minor-league defensive data compiled and published by Clay Davenport.
Somewhat surprisingly, the defensive metrics don’t add a ton of predictive value to what was already picked up by a players’ defensive position. A strong minor-league defensive performance will help a player’s projection, but won’t make a huge difference in most cases. It’s my guess that this has something to do with the fact that minor leaguers are often learning new positions, where they might be prone to making a lot of errors.
Incorporating ground-ball rates for pitchers
I also incorporated ground-ball rates for pitchers that I pulled from Clay Davenport’s site. With all else being equal, ground-ball pitchers have rosier outlooks than fly-ball pitchers, though not by a wide margin. In other words, ground-ball rates don’t add a ton of predictive value that isn’t already picked up by more conventional metrics.
Incorporating Baseball America top-100 lists
I’ve been conflicted about whether to include prospect rankings in my projections. There will always be important information the stats just don’t pick up that actual humans can. As a result, adding a variable for “BA rank” improves the models.
So why not include something that improves the projections? Well, for one, there’s potentially an issue of data consistency. The methodology behind 2016’s Baseball America rankings is unquestionably different than the methodology behind their 1991 rankings. They were done by different people who were using different information, so they aren’t necessarily consistent across years.
Secondly, there’s the philosophical question regarding what we want from KATOH. Incorporating scouting data makes KATOH a more accurate projection system, and makes it more useful as a stand-alone. But KATOH isn’t meant to act as a stand-alone. Rather, it’s best used as a tool for identifying potentially under- or overrated prospects. Including a variable for prospect ranking causes KATOH to shade closer to the industry consensus. This makes it more difficult to identify the guys KATOH likes and dislikes relative to the establishment. Perhaps I’m overthinking things, but I don’t think “more accurate” necessarily equates to “more useful” in this case.
Rather than picking a lane, I decided to create two parallel KATOHs: one that incorporates top-100 ranking and one that doesn’t. This is similar to what FiveThirtyEight does with their election forecasts, where they have a “polls only” model and one that also incorporates an index for economic performance. I will call the scouting-infused version “KATOH+” and will leave the original moniker to the one that excludes the BA rankings.
*****
Top-100 Lists
The models and lists I’m unveiling today aren’t perfect, but if held off on publishing projections until I had a system with which I was completely happy, I’d never write another article for FanGraphs. All in all, I’m content with what I have (for now, at least). I still have some ideas to improve things, but I’m saving them for another day.
This considers all players with at least 200 plate appearances or batters faced (plus Jose De Leon, since I know someone would ask). The figures in the far-right column refer to each player’s projected WAR over his first six seasons in the major leagues. As a reminder, these forecasts are not gospel. Take my math as seriously as you wish.
First, the version that considers stats only, and not prospect rankings.
Rank | Player | Org | Position | KATOH |
1 | Alex Bregman | Astros | SS | 17.1 |
2 | Dylan Cozens | Phillies | OF | 14.1 |
3 | Jose De Leon | Dodgers | RHP | 10.4 |
4 | Joey Gallo | Rangers | 3B | 10.3 |
5 | Manuel Margot | Padres | OF | 10.0 |
6 | J.P. Crawford | Phillies | SS | 10.0 |
7 | Alex Verdugo | Dodgers | OF | 10.0 |
8 | Trea Turner | Nationals | SS | 9.6 |
9 | Ozzie Albies | Braves | 2B | 9.4 |
10 | Austin Meadows | Pirates | OF | 9.3 |
11 | Andrew Benintendi | Red Sox | OF | 9.1 |
12 | David Dahl | Rockies | OF | 9.0 |
13 | Jake Bauers | Rays | OF | 8.5 |
14 | Tyler Glasnow | Pirates | RHP | 8.1 |
15 | Lewis Brinson | Rangers | OF | 7.7 |
16 | Zack Granite | Twins | OF | 7.5 |
17 | Bradley Zimmer | Indians | OF | 7.4 |
18 | Alex Reyes | Cardinals | RHP | 7.3 |
19 | Jameson Taillon | Pirates | RHP | 7.3 |
20 | Edwin Rios | Dodgers | 3B | 7.3 |
21 | Orlando Arcia | Brewers | SS | 7.2 |
22 | Yoan Moncada | Red Sox | 2B | 7.1 |
23 | Tyler O’Neill | Mariners | OF | 7.0 |
24 | Willie Calhoun | Dodgers | 2B | 6.9 |
25 | Mitchell Haniger | Diamondbacks | OF | 6.9 |
26 | Rhys Hoskins | Phillies | 1B | 6.7 |
27 | Willy Adames | Rays | SS | 6.7 |
28 | Gavin Cecchini | Mets | SS | 6.4 |
29 | Blake Snell | Rays | LHP | 6.4 |
30 | Victor Robles | Nationals | OF | 6.3 |
31 | Trey Mancini | Orioles | 1B | 6.3 |
(32) | Zach Eflin* | Phillies | RHP | 6.3 |
32 | Willson Contreras | Cubs | C | 6.2 |
33 | Derek Fisher | Astros | OF | 6.2 |
(34) | Dalton Pompey* | Blue Jays | OF | 6.2 |
34 | Jose Berrios | Twins | RHP | 6.0 |
35 | Dansby Swanson | Braves | SS | 6.0 |
36 | Amed Rosario | Mets | SS | 5.9 |
37 | A.J. Reed | Astros | 1B | 5.9 |
38 | Kyle Tucker | Astros | OF | 5.8 |
39 | Luis Arraez | Twins | 2B | 5.7 |
40 | Harrison Bader | Cardinals | OF | 5.7 |
41 | Gary Sanchez | Yankees | C | 5.7 |
42 | Gleyber Torres | Cubs | SS | 5.6 |
43 | Andrew Toles | Dodgers | OF | 5.6 |
44 | Raul Mondesi | Royals | SS | 5.6 |
45 | Kevin Newman | Pirates | SS | 5.6 |
46 | Joe Musgrove | Astros | RHP | 5.5 |
47 | Luis Urias | Padres | 2B | 5.5 |
48 | Hunter Dozier | Royals | 3B | 5.5 |
49 | Reese Mcguire | Pirates | C | 5.5 |
50 | Josh Bell | Pirates | 1B | 5.4 |
51 | Cody Reed | Reds | LHP | 5.3 |
52 | Brandon Nimmo | Mets | OF | 5.2 |
53 | Garrett Stubbs | Astros | C | 5.2 |
54 | Albert Almora | Cubs | OF | 5.2 |
55 | Max Moroff | Pirates | 3B | 5.1 |
56 | Jesse Winker | Reds | OF | 5.1 |
57 | Boog Powell | Mariners | OF | 5.0 |
58 | Jorge Polanco | Twins | SS | 5.0 |
59 | Brock Stewart | Dodgers | RHP | 5.0 |
60 | Dan Vogelbach | Mariners | 1B | 5.0 |
61 | Rowdy Tellez | Blue Jays | 1B | 5.0 |
62 | Josh Hader | Brewers | LHP | 4.9 |
63 | Raimel Tapia | Rockies | OF | 4.9 |
64 | Benjamin Gamel | Yankees | OF | 4.9 |
65 | Cody Bellinger | Dodgers | 1B | 4.9 |
66 | Matt Chapman | Athletics | 3B | 4.9 |
67 | Adam Frazier | Pirates | OF | 4.8 |
68 | Kyle Higashioka | Yankees | C | 4.8 |
(69) | Luis Severino* | Yankees | RHP | 4.7 |
69 | Samir Duenez | Royals | OF | 4.6 |
70 | Aaron Judge | Yankees | OF | 4.6 |
71 | Franklin Barreto | Athletics | SS | 4.6 |
72 | Chance Sisco | Orioles | C | 4.6 |
73 | Andrew Knapp | Phillies | C | 4.6 |
74 | Lucas Giolito | Nationals | RHP | 4.5 |
75 | Luke Weaver | Cardinals | RHP | 4.5 |
76 | Andrew Aplin | Astros | OF | 4.5 |
77 | Kyle Wren | Brewers | OF | 4.5 |
78 | Ryan Cordell | Rangers | OF | 4.4 |
79 | German Marquez | Rockies | RHP | 4.4 |
80 | Josh Naylor | Marlins | 1B | 4.4 |
81 | Stephen Gonsalves | Twins | LHP | 4.4 |
82 | Austin Barnes | Dodgers | C | 4.4 |
83 | David Paulino | Astros | RHP | 4.3 |
84 | Charlie Tilson | Cardinals | OF | 4.3 |
85 | Reynaldo Lopez | Nationals | RHP | 4.3 |
86 | Eloy Jimenez | Cubs | OF | 4.3 |
87 | Oscar Hernandez | Diamondbacks | C | 4.3 |
88 | JaCoby Jones | Tigers | SS | 4.2 |
89 | Jeff Hoffman | Rockies | RHP | 4.2 |
90 | Rafael Devers | Red Sox | 3B | 4.2 |
91 | Jordan Patterson | Rockies | OF | 4.2 |
92 | Chad Green | Yankees | RHP | 4.2 |
(93) | Dilson Herrera* | Mets | 2B | 4.1 |
93 | Daniel Palka | Twins | OF | 4.1 |
94 | Sean Reid-Foley | Blue Jays | RHP | 4.1 |
(95) | Tim Anderson* | White Sox | SS | 4.1 |
95 | Nick Williams | Phillies | OF | 4.0 |
96 | Cody Reed | Diamondbacks | LHP | 3.9 |
97 | Brent Honeywell | Rays | RHP | 3.9 |
98 | Max Povse | Braves | RHP | 3.9 |
99 | Richard Urena | Blue Jays | SS | 3.9 |
100 | Tyler Austin | Yankees | OF | 3.9 |
104 | Phil Bickford** | Giants | RHP | 3.8 |
111 | Nick Delmonico** | White Sox | 1B | 3.6 |
133 | Sherman Johnson** | Angels | 2B | 3.3 |
**Not in top 100, but top prospect in organization.
*****
This next list incorporates stats, as well as rankings from Baseball America’s Midseason Top 100.
Rank | Player | Org | Position | KATOH |
1 | Alex Bregman | Astros | SS | 17.7 |
2 | J.P. Crawford | Phillies | SS | 16.5 |
3 | Trea Turner | Nationals | SS | 15.1 |
4 | Andrew Benintendi | Red Sox | OF | 14.4 |
5 | Yoan Moncada | Red Sox | 2B | 13.0 |
6 | Austin Meadows | Pirates | OF | 13.0 |
7 | Alex Reyes | Cardinals | RHP | 12.4 |
8 | Manuel Margot | Padres | OF | 12.1 |
9 | Dansby Swanson | Braves | SS | 12.0 |
10 | Joey Gallo | Rangers | 3B | 11.9 |
11 | Jose De Leon | Dodgers | RHP | 11.8 |
12 | Ozzie Albies | Braves | 2B | 11.8 |
13 | Tyler Glasnow | Pirates | RHP | 11.7 |
14 | David Dahl | Rockies | OF | 11.1 |
15 | Victor Robles | Nationals | OF | 10.2 |
16 | Kyle Tucker | Astros | OF | 10.1 |
17 | Lewis Brinson | Rangers | OF | 9.9 |
18 | Orlando Arcia | Brewers | SS | 9.9 |
19 | Bradley Zimmer | Indians | OF | 9.9 |
20 | Alex Verdugo | Dodgers | OF | 9.8 |
21 | Lucas Giolito | Nationals | RHP | 9.3 |
22 | Jake Bauers | Rays | OF | 8.7 |
23 | Dylan Cozens | Phillies | OF | 8.4 |
24 | Josh Bell | Pirates | 1B | 8.3 |
25 | Willy Adames | Rays | SS | 8.3 |
26 | Amed Rosario | Mets | SS | 8.2 |
27 | Jose Berrios | Twins | RHP | 8.1 |
28 | Joe Musgrove | Astros | RHP | 7.2 |
29 | Gleyber Torres | Cubs | SS | 7.1 |
30 | Zack Granite | Twins | OF | 7.1 |
31 | Jameson Taillon | Pirates | RHP | 7.0 |
32 | Kevin Newman | Pirates | SS | 6.8 |
33 | Tyler O’Neill | Mariners | OF | 6.6 |
34 | Gary Sanchez | Yankees | C | 6.6 |
35 | Brent Honeywell | Rays | RHP | 6.5 |
36 | Willie Calhoun | Dodgers | 2B | 6.3 |
37 | Jesse Winker | Reds | OF | 6.3 |
38 | Blake Snell | Rays | LHP | 6.3 |
39 | Josh Hader | Brewers | LHP | 6.3 |
40 | Willson Contreras | Cubs | C | 6.3 |
41 | Rafael Devers | Red Sox | 3B | 6.2 |
42 | Cody Bellinger | Dodgers | 1B | 6.1 |
43 | A.J. Reed | Astros | 1B | 6.0 |
44 | Raul Mondesi | Royals | SS | 6.0 |
45 | Jorge Polanco | Twins | SS | 5.9 |
(46) | Zach Eflin* | Phillies | RHP | 5.9 |
46 | Edwin Rios | Dodgers | 3B | 5.8 |
47 | Franklin Barreto | Athletics | SS | 5.7 |
48 | Eloy Jimenez | Cubs | OF | 5.7 |
49 | Gavin Cecchini | Mets | SS | 5.5 |
50 | Brandon Nimmo | Mets | OF | 5.5 |
51 | Aaron Judge | Yankees | OF | 5.5 |
52 | Derek Fisher | Astros | OF | 5.4 |
53 | Kyle Wren | Brewers | OF | 5.3 |
54 | Max Moroff | Pirates | 3B | 5.3 |
55 | Reynaldo Lopez | Nationals | RHP | 5.3 |
56 | Jeff Hoffman | Rockies | RHP | 5.3 |
57 | Brendan Rodgers | Rockies | SS | 5.3 |
58 | Nick Williams | Phillies | OF | 5.2 |
59 | Cody Reed | Reds | LHP | 5.2 |
60 | Phil Bickford | Giants | RHP | 5.1 |
61 | Raimel Tapia | Rockies | OF | 5.1 |
62 | Luis Arraez | Twins | 2B | 5.1 |
63 | Reese Mcguire | Pirates | C | 5.1 |
64 | Luis Urias | Padres | 2B | 5.1 |
65 | Harrison Bader | Cardinals | OF | 5.0 |
66 | David Paulino | Astros | RHP | 5.0 |
67 | Adam Frazier | Pirates | OF | 5.0 |
68 | Anderson Espinoza | Padres | RHP | 4.9 |
(69) | Dalton Pompey* | Blue Jays | OF | 4.9 |
69 | Dan Vogelbach | Mariners | 1B | 4.9 |
70 | Benjamin Gamel | Yankees | OF | 4.9 |
71 | Luke Weaver | Cardinals | RHP | 4.9 |
72 | Andrew Toles | Dodgers | OF | 4.8 |
73 | Clint Frazier | Indians | OF | 4.7 |
74 | Garrett Stubbs | Astros | C | 4.7 |
75 | Brock Stewart | Dodgers | RHP | 4.7 |
76 | Boog Powell | Mariners | OF | 4.6 |
77 | Josh Naylor | Marlins | 1B | 4.6 |
78 | Rhys Hoskins | Phillies | 1B | 4.5 |
79 | Mitch Keller | Pirates | RHP | 4.5 |
(80) | Luis Severino* | Yankees | RHP | 4.4 |
80 | Chance Sisco | Orioles | C | 4.4 |
81 | Charlie Tilson | Cardinals | LHP | 4.4 |
82 | Trey Mancini | Orioles | 1B | 4.4 |
83 | Jorge Mateo | Yankees | SS | 4.3 |
84 | Austin Barnes | Dodgers | C | 4.3 |
85 | Nick Gordon | Twins | SS | 4.3 |
86 | Sean Reid-Foley | Blue Jays | RHP | 4.2 |
87 | Albert Almora | Cubs | OF | 4.2 |
88 | Andrew Knapp | Phillies | C | 4.2 |
89 | Chad Green | Yankees | RHP | 4.1 |
90 | Francis Martes | Astros | RHP | 4.1 |
91 | Andrew Aplin | Astros | OF | 4.1 |
92 | Hunter Dozier | Royals | 3B | 4.0 |
93 | Mitchell Haniger | Diamondbacks | OF | 4.0 |
94 | Adalberto Mejia | Giants | LHP | 3.9 |
95 | Samir Duenez | Royals | OF | 3.9 |
96 | Jordan Patterson | Rockies | OF | 3.9 |
(97) | Tim Anderson* | White Sox | SS | 3.9 |
97 | Jose Peraza | Reds | 2B | 3.8 |
98 | Jake Thompson | Phillies | RHP | 3.8 |
99 | Amir Garrett | Reds | LHP | 3.7 |
100 | Tony Kemp | Astros | 2B | 3.7 |
156 | Sherman Johnson** | Angels | 2B | 2.8 |
168 | Adam Engel** | White Sox | OF | 2.6 |
**Not in top 100, but top prospect in organization.
Note: The KATOH+ top 100 list I originally published was slightly inaccurate. My code was not correctly pulling BA rankings for hitters at the Low-A level, which caused the system to ignore the fact that Victor Robles, Kyle Tucker, Eloy Jimenez, Brendan Rodgers and Josh Naylor were top 100 prospects. As a result, these prospects were underrated in the second list. The issue has been resolved.
Chris works in economic development by day, but spends most of his nights thinking about baseball. He writes for Pinstripe Pundits, FanGraphs and The Hardball Times. He's also on the twitter machine: @_chris_mitchell None of the views expressed in his articles reflect those of his daytime employer.
Can’t believe Cistulli’s given up on the Angels’ top prospect.