Archive for Teams

2025 ZiPS Projections: St. Louis Cardinals

For the 21st consecutive season, the ZiPS projection system is unleashing a full set of prognostications. For more information on the ZiPS projections, please consult this year’s introduction and MLB’s glossary entry. The team order is selected by lot, and the penultimate team is the St. Louis Cardinals.

Batters

The 2024 St. Louis Cardinals experienced a bit of a bounce back from the team’s worst season in decades, but in a year where it took 89 wins to grab the final NL Wild Card spot, the Red Birds were still well short of being able to squeeze back into the playoffs. While things were sunnier than they were the year before, the Cardinals were outscored on the season, and neither of the stars in the lineup, Paul Goldschmidt and Nolan Arenado, returned to their 2023 form. It doesn’t appear as if the Cards feel like they’re on the precipice of an October return, as they’ve largely spent the offseason trying to trade Arenado.

Might Arenado actually be underrated at this point? While his offensive production has come down quite a bit from its peak, his 149 wRC+ in 2022 was likely always a late-era outlier, and a 102 wRC+ is hardly lousy for a third baseman. He’s no longer a star without a resurgence at the plate, but he was at least a good player in 2024, amassing 3.1 WAR thanks to very good defense at the hot corner. I think the perception of Arenado’s 2024 might be a lot worse than his season actually was. When I posted the depth chart graphic on social media, it led to a couple of conversations about ZiPS projecting a comeback season, even though the 2.9 WAR it forecasts is below his 2024 number!

With two glaring exceptions, ZiPS mostly thinks that the Cards are adequate to good around the diamond. Masyn Winn projects as the lineup’s second-best player, and though ZiPS isn’t crazy about Thomas Saggese, it likes Brendan Donovan enough to end up with a good second base WAR number, assuming the latter gets the plate appearances projected on our Depth Charts. The system projects that Willson Contreras will be good enough offensively that he could be a reasonable first baseman, and though it pulls back considerably on Iván Herrera’s rookie offense, the tandem of him and Pedro Pagés also looks solid.

Where ZiPS is unhappy is in the non-Lars Nootbaar portions of the outfield. In center field, Victor Scott II’s defense isn’t enough to completely cancel out a bleak offensive projection, and the computer doesn’t see Michael Siani as providing much of a shove. Scott’s a weird one to project in that he actually hit pretty decently in Double-A in 2023, but he was absolutely horrific in the minors last year, putting up a 59 wRC+. Note that that’s not the translation, but his actual number. Scott hit somewhat better in July after changing his stance, putting up a .711 OPS for the Triple-A Memphis Redbirds, but that hint of production disappeared in the majors and he earned a demotion in mid-September.

As for the other exception, Jordan Walker, ZiPS actually thinks he improved his defense somewhat in 2024, to the point that he’s not a pure designated hitter, just a fairly lousy right fielder who could play if he hits. But that’s kind of the problem. Walker now has about 500 PA of not hitting Triple-A pitchers. If Scott had a 93 wRC+ at Triple-A, it would be cause for optimism, but it’s completely inadequate for someone who is supposed to be valued entirely for his bat. Walker isn’t old, and you can squint and still kind of see his upside, but the odds are against him being a real contributor in 2025.

Pitchers

I’m not sure why ZiPS is suddenly reminded of a couple of knuckleballers, Phil Niekro and Tom Candiotti, when it looks at Sonny Gray, but removing them from the large cohort doesn’t change Gray’s projection, which makes him the favorite to represent the Cardinals at the All-Star Game this summer. It’s hard to tell how seriously the team really considered trading Gray, but he does have some pretty decent value with two years left on his contract. Of course, that assumes that his forearm tendinitis isn’t something darker, but really, you could say that about every pitcher who has ever existed.

He projects as having lower long-term upside than either Quinn Mathews or Tink Hence, but ZiPS is increasingly a fan of Michael McGreevy, who has good control and keeps the ball down, which has value in front of what ZiPS projects to be an above-average infield. Both Mathews and Hence project as legitimate starters right now, with ZiPS a little more confident about the former for 2025. ZiPS isn’t expecting quite as good a year from Erick Fedde, but it remains comfortable with the back of St. Louis’ rotation, both in terms of its non-horrendous quality and its reasonable depth.

It might be a stretch to say that ZiPS sees the Cardinals bullpen as “Ryan Helsley and some other guys,” but their hard-throwing closer is the only reliever who the computer can summon any excitement about. Helsley lost a couple of strikeouts per game coming back from his 2023 injuries, but ZiPS isn’t worried about that, as his velocity is intact and his contact rate is consistent with that of a whiffier pitcher. Ryan Fernandez, JoJo Romero, and John King all project as a bit above average, and the computer would put Matthew Liberatore in that group as well. ZiPS is rather meh on the low-leverage portion of the bullpen, and while the Cardinals could certainly add an arm or two there, this doesn’t appear to be a team that intends to make so much as a ripple in free agency.

Unlike most seasons, ZiPS does’t see the Cardinals as being in the same tier as the Brewers and Cubs. St. Louis has better projections than the Pirates and Reds, at least for now, but even then, only barely. It has been an incredibly quiet offseason in St. Louis outside of the constant Arenado rumors, with the team doing just about nothing, and we’re now only a few weeks from the opening of spring training. The team’s biggest signing this winter? Ryan Vilade. Even throwing in the towel would be more interesting, and probably more helpful than cosplaying as the heat death of the universe.

Ballpark graphic courtesy Eephus League. Depth charts constructed by way of those listed here. Size of player names is very roughly proportional to Depth Chart playing time. The final team projections may differ considerably from our Depth Chart playing time.

Batters – Standard
Player B Age PO PA AB R H 2B 3B HR RBI BB SO SB CS
Nolan Arenado R 34 3B 580 527 61 139 28 1 18 77 42 85 2 2
Masyn Winn R 23 SS 639 584 87 148 29 5 14 71 44 116 13 4
Willson Contreras R 33 C 422 362 50 86 19 0 16 52 44 107 4 2
Brendan Donovan L 28 LF 584 514 69 144 26 2 12 63 53 76 4 4
Lars Nootbaar L 27 RF 475 405 63 99 22 3 16 55 63 97 7 2
Alec Burleson L 26 LF 545 501 63 139 23 2 17 73 34 74 6 2
Nolan Gorman L 25 2B 511 461 67 106 19 0 27 75 46 170 6 1
Iván Herrera R 25 C 386 335 47 84 16 2 8 42 43 84 5 1
Jimmy Crooks L 23 C 409 367 42 90 18 2 7 46 32 100 2 0
Thomas Saggese R 23 SS 585 541 70 132 24 4 15 73 28 151 7 3
César Prieto L 26 3B 524 496 55 128 25 2 8 59 18 70 4 5
Leonardo Bernal B 21 C 432 395 42 90 16 2 7 41 33 106 3 4
Bryan Torres L 27 CF 507 450 62 123 22 2 1 44 43 89 18 8
Brandon Crawford L 38 SS 316 281 34 64 13 1 8 34 28 78 2 1
Pedro Pagés R 26 C 355 322 30 71 12 1 8 40 26 93 2 0
Matt Koperniak L 27 LF 500 459 50 116 18 2 11 58 33 102 5 4
Victor Scott II L 24 CF 532 480 58 107 15 5 7 47 33 106 32 6
Mike Antico L 27 CF 511 468 60 106 19 3 10 54 32 129 23 4
Sammy Hernandez R 21 C 371 330 41 64 12 2 5 39 25 84 1 1
Ryan Vilade R 26 RF 489 443 52 105 18 3 8 51 36 119 11 5
Arquímedes Gamboa B 27 SS 374 333 39 69 12 2 5 31 38 106 5 2
Jordan Walker R 23 RF 589 536 57 131 27 3 19 71 42 136 6 3
Jose Barrero R 27 SS 375 342 40 71 14 2 10 44 21 128 11 2
José Fermín R 26 SS 321 279 40 64 11 1 5 34 29 39 9 3
Gavin Collins R 29 C 212 191 19 41 7 0 5 24 13 44 0 0
Michael Siani L 25 CF 459 409 52 86 12 3 5 36 38 115 21 6
Luken Baker R 28 1B 480 425 46 90 17 0 21 66 47 132 1 0
Chance Sisco L 30 C 129 116 12 20 5 0 3 14 9 45 0 0
Carlos Linarez R 23 C 133 125 7 23 4 0 1 9 6 45 1 0
Matt Carpenter L 39 DH 192 162 18 32 9 0 6 21 24 59 0 1
Chase Davis L 23 CF 464 419 44 86 19 1 8 46 37 137 4 1
Alfonso Rivas III L 28 1B 383 332 41 76 17 2 4 39 39 103 3 0
Chase Adkison R 25 C 230 207 18 45 8 1 2 22 15 53 0 1
Chris Rotondo R 26 RF 404 362 45 78 15 2 5 40 27 138 8 3
Jacob Buchberger R 27 3B 426 392 46 85 12 3 6 38 30 114 7 4
Ramon Mendoza R 24 2B 278 245 25 50 10 1 3 23 21 72 1 1
Dakota Harris R 23 2B 363 333 38 77 16 0 6 40 13 89 4 3
Graysen Tarlow R 23 C 89 79 5 14 2 0 1 6 8 24 0 0
Nathan Church L 24 RF 522 478 60 112 18 1 4 47 29 70 13 4
Joshua Baez R 22 RF 348 314 36 61 14 1 8 38 24 147 15 3
Noah Mendlinger L 24 2B 422 374 41 89 15 1 1 39 29 62 3 4
Jeremy Rivas R 22 SS 479 431 47 93 11 1 2 35 33 109 14 6
R.J. Yeager R 26 1B 473 436 55 102 17 1 10 52 25 76 6 2
Matt Lloyd L 29 DH 437 392 46 87 18 0 10 48 34 110 7 2
Brody Moore R 24 SS 408 376 41 82 13 2 2 30 23 101 13 6
Anyelo Encarnacion R 21 2B 343 307 38 59 11 1 5 28 28 122 5 3
Wade Stauss L 26 C 129 109 8 18 4 0 1 12 11 59 0 0
Trey Paige L 24 3B 395 356 41 68 14 3 1 29 30 119 3 1
Michael Curialle R 24 3B 351 315 37 65 15 2 4 35 21 117 3 2
Zach Levenson R 23 LF 309 277 28 51 11 1 6 31 25 84 4 2
Tre Richardson R 23 2B 347 307 28 57 10 4 1 26 25 105 8 5
Miguel Villarroel R 23 SS 428 405 44 92 16 2 2 36 13 110 16 3
Kade Kretzschmar L 25 LF 348 311 33 67 9 3 1 30 26 84 3 2
Darlin Moquete R 25 DH 312 286 40 58 8 1 8 32 17 87 7 3
Johnfrank Salazar R 21 1B 338 311 29 68 13 0 3 30 18 59 0 1
Chandler Redmond L 28 1B 425 385 39 77 13 1 10 43 35 161 2 1
Won-Bin Cho L 21 CF 457 411 45 85 13 3 3 37 31 153 10 7
William Sullivan L 24 1B 169 154 13 26 4 0 2 16 11 64 1 1
Alex Iadisernia L 24 LF 439 399 43 79 17 3 6 40 29 120 11 6
Miguel Ugueto R 22 LF 251 239 22 49 10 2 2 20 7 60 5 3
Osvaldo Tovalin L 25 1B 394 370 35 76 13 1 4 38 12 82 4 2
Brayden Jobert L 24 RF 370 328 33 55 9 1 6 36 28 125 7 3

Batters – Advanced
Player PA BA OBP SLG OPS+ ISO BABIP Def WAR wOBA 3YOPS+ RC
Nolan Arenado 580 .264 .321 .423 106 .159 .285 5 2.9 .321 102 73
Masyn Winn 639 .253 .307 .392 94 .139 .295 5 2.9 .304 97 75
Willson Contreras 422 .237 .341 .422 113 .185 .293 -2 2.6 .336 106 54
Brendan Donovan 584 .280 .360 .408 115 .128 .310 2 2.5 .339 113 78
Lars Nootbaar 475 .244 .344 .432 116 .188 .284 4 2.3 .337 114 62
Alec Burleson 545 .277 .325 .433 110 .156 .297 2 2.0 .328 111 73
Nolan Gorman 511 .230 .301 .447 106 .217 .300 -4 1.9 .322 109 64
Iván Herrera 386 .251 .342 .382 103 .131 .312 -2 1.9 .321 102 45
Jimmy Crooks 409 .245 .314 .363 89 .117 .320 4 1.9 .298 93 42
Thomas Saggese 585 .244 .291 .386 88 .142 .312 -1 1.6 .295 92 64
César Prieto 524 .258 .292 .365 83 .107 .287 8 1.3 .287 84 56
Leonardo Bernal 432 .228 .289 .331 74 .104 .294 7 1.3 .276 79 40
Bryan Torres 507 .273 .336 .337 90 .064 .338 -2 1.1 .300 89 58
Brandon Crawford 316 .228 .304 .367 87 .139 .287 2 1.0 .293 78 32
Pedro Pagés 355 .220 .282 .338 73 .118 .285 4 1.0 .274 73 31
Matt Koperniak 500 .253 .308 .373 90 .120 .304 6 1.0 .299 91 55
Victor Scott II 532 .223 .280 .318 68 .096 .272 5 0.7 .265 71 52
Mike Antico 511 .226 .283 .344 75 .118 .292 1 0.7 .277 77 52
Sammy Hernandez 371 .194 .274 .288 58 .094 .245 7 0.6 .255 62 27
Ryan Vilade 489 .237 .299 .345 80 .108 .306 8 0.6 .284 81 50
Arquímedes Gamboa 374 .207 .292 .301 67 .093 .289 3 0.6 .268 67 31
Jordan Walker 589 .244 .306 .412 99 .168 .294 -5 0.5 .312 102 70
Jose Barrero 375 .208 .270 .348 72 .140 .299 0 0.4 .272 72 35
José Fermín 321 .229 .315 .329 82 .100 .251 -4 0.4 .290 84 32
Gavin Collins 212 .214 .280 .329 70 .115 .253 -1 0.2 .271 69 18
Michael Siani 459 .210 .281 .291 61 .081 .280 4 0.2 .258 64 40
Luken Baker 480 .212 .292 .400 92 .188 .254 -1 0.1 .300 94 50
Chance Sisco 129 .173 .256 .294 54 .121 .252 2 0.1 .249 54 9
Carlos Linarez 133 .185 .227 .241 32 .056 .280 5 0.0 .210 33 7
Matt Carpenter 192 .197 .308 .363 88 .166 .267 0 0.0 .298 80 19
Chase Davis 464 .205 .276 .312 65 .107 .284 3 0.0 .261 70 37
Alfonso Rivas III 383 .229 .323 .328 84 .099 .320 -1 0.0 .294 83 36
Chase Adkison 230 .217 .280 .294 62 .077 .283 0 0.0 .258 64 18
Chris Rotondo 404 .215 .287 .309 68 .094 .333 6 -0.1 .268 70 35
Jacob Buchberger 426 .217 .277 .309 64 .092 .290 3 -0.1 .260 66 36
Ramon Mendoza 278 .204 .275 .290 59 .086 .277 2 -0.1 .255 61 20
Dakota Harris 363 .231 .276 .333 70 .102 .298 -1 -0.2 .268 72 33
Graysen Tarlow 89 .176 .258 .239 41 .063 .239 0 -0.2 .230 39 5
Nathan Church 522 .234 .289 .301 66 .067 .267 8 -0.2 .263 68 46
Joshua Baez 348 .194 .265 .322 64 .128 .334 3 -0.3 .261 73 31
Noah Mendlinger 422 .238 .312 .292 71 .054 .283 -5 -0.4 .275 73 36
Jeremy Rivas 479 .216 .277 .260 52 .044 .284 2 -0.4 .245 57 37
R.J. Yeager 473 .234 .286 .346 76 .112 .263 2 -0.4 .278 77 45
Matt Lloyd 437 .222 .291 .345 78 .123 .283 0 -0.5 .280 77 41
Brody Moore 408 .218 .267 .279 54 .061 .293 -1 -0.6 .245 55 33
Anyelo Encarnacion 343 .192 .266 .284 55 .091 .301 0 -0.6 .248 62 26
Wade Stauss 129 .165 .282 .229 46 .064 .346 -5 -0.7 .244 44 7
Trey Paige 395 .191 .258 .256 45 .065 .284 5 -0.7 .233 48 24
Michael Curialle 351 .206 .277 .304 63 .098 .314 -4 -0.7 .261 64 28
Zach Levenson 309 .184 .262 .296 57 .112 .241 1 -0.9 .251 64 23
Tre Richardson 347 .186 .262 .254 46 .068 .279 1 -0.9 .235 51 24
Miguel Villarroel 428 .227 .257 .291 54 .064 .307 -4 -1.0 .241 57 35
Kade Kretzschmar 348 .215 .289 .273 59 .058 .292 0 -1.0 .256 63 26
Darlin Moquete 312 .203 .253 .322 60 .119 .262 0 -1.1 .253 63 26
Johnfrank Salazar 338 .219 .269 .290 57 .071 .261 2 -1.1 .248 63 25
Chandler Redmond 425 .200 .271 .317 64 .117 .314 1 -1.1 .261 65 34
Won-Bin Cho 457 .207 .270 .275 54 .068 .321 -2 -1.2 .246 61 35
William Sullivan 169 .169 .243 .234 35 .065 .273 -2 -1.3 .220 44 9
Alex Iadisernia 439 .198 .263 .301 58 .103 .268 1 -1.3 .252 63 36
Miguel Ugueto 251 .205 .231 .289 45 .084 .266 -1 -1.5 .227 49 18
Osvaldo Tovalin 394 .206 .247 .279 47 .073 .254 3 -1.7 .235 52 27
Brayden Jobert 370 .168 .254 .256 44 .088 .249 -2 -1.9 .234 48 24

Batters – Top Near-Age Offensive Comps
Player Hit Comp 1 Hit Comp 2 Hit Comp 3
Nolan Arenado Bill Madlock Mike Lowell Brooks Robinson
Masyn Winn Jimmy Rollins Robin Yount Zoilo Versalles
Willson Contreras Mike Stanley Chris Hoiles Ray Mueller
Brendan Donovan Mark Grace Orlando Gonzalez Nick Markakis
Lars Nootbaar Mike Jorgensen Tommy Henrich Phil Stephenson
Alec Burleson Derrick May Chad Tracy Lou Piniella
Nolan Gorman Dean Palmer Pedro Alvarez Jeff Kent
Iván Herrera Doug Robbins Shawn McGill Mike Stanley
Jimmy Crooks Frank Zupo Jim Bonnici Johnny Edwards
Thomas Saggese Alex Gonzalez Max Alvis Sheldon Neuse
César Prieto Luis Sojo Bruce Miller Bobby Pfeil
Leonardo Bernal Bill Fahey Conrado Lezcano John Wathan
Bryan Torres Joey Gathright Tony Gwynn Jr. Orlando Gonzalez
Brandon Crawford Chris Speier Don Lang Charlie Hayes
Pedro Pagés Dusty Brown Martín Maldonado Chad Moeller
Matt Koperniak Andy Dirks Art James Del Unser
Victor Scott II Keith Curcio Mel Stocker Tike Redman
Mike Antico Gary Brown Dave Jacas Eric Fox
Sammy Hernandez Wynston Sawyer Ben Rortvedt Gerry Brooks
Ryan Vilade Gary Thomas Winston Ficklin Jamie Hoffmann
Arquímedes Gamboa Darrel Chaney Anderson Machado Ken Jackson
Jordan Walker Frank Demaree Les Norman Darryl Motley
Jose Barrero Haley Young Carlos Duncan Tony Thomas
José Fermín Sonny Jackson Jeff Huson Al Newman
Gavin Collins Cody Clark Jerry Zimmerman Jim Command
Michael Siani Patrick Biondi Steve Murphy Mike Mesh
Luken Baker Eric Munson Cotton Nash R C Stevens
Chance Sisco Jeff Hearron Gary Tremblay Fred Hofmann
Carlos Linarez Josh Davis Juan Nunez Angel Diaz
Matt Carpenter Woodie Held Duke Snider Eric Hinske
Chase Davis Jake Skole Sean Dwyer Andy Rohleder
Alfonso Rivas III Reid Fronk Derek Nicholson Joe Bracchitta
Chase Adkison David Fore Matt Kennelly Jorge Maduro
Chris Rotondo Mark Doran Torii Hunter Juan Piniella
Jacob Buchberger Shane Turner Ed Lucas Jeff Bertoni
Ramon Mendoza Chuck Scrivener Zach McKinstry John Hamilton
Dakota Harris Rex Hudler Luis Gonzalez Pat Meares
Graysen Tarlow Mark Carroll John Harrell Raul Jimenez
Nathan Church Bobby Moore Pookie Wilson Chad Wright
Joshua Baez Tyler Johnson Todd Steverson Dylan Johnston
Noah Mendlinger Douglas Palmer Irving Lopez Raymond Rivas
Jeremy Rivas Jhonny Carvajal Chone Figgins Guillermo Reyes
R.J. Yeager Tony Martinez Ken Foster Garrett Guzman
Matt Lloyd Andy Barkett Larry DiPippo Danny Ozark
Brody Moore James Lofton Robbie Hudson Ryan Rutz
Anyelo Encarnacion Joe Morales Wayne Busby Kevin Flora
Wade Stauss Jim Baxter Matt Allen Bodie Shepherd
Trey Paige Jack Lind Zach Strong Pooh Hines
Michael Curialle Rob Marconi Rob Mackowiak Ronald Schmitt
Zach Levenson Joe Mackay Theodore Savia Dan Madsen
Tre Richardson Rick Wolff Ron Dillard Kevin Flora
Miguel Villarroel Tony Pena Jr. Tim Olson Juan Ciriaco
Kade Kretzschmar Justin Maffei Matthew Acosta Jared James
Darlin Moquete Sthervin Matos Jeffrey Baez Jerry Simmons
Johnfrank Salazar Ruben Cruz Jeffrey Ronevich Mark Elliott
Chandler Redmond Ron Durham Phil Westendorf Chip Cannon
Won-Bin Cho Greg Burns Josh Womack Kevin Kiermaier
William Sullivan Onesimo Perez Ryan Davis Matt Brooks
Alex Iadisernia Duane Singleton Josh Beauregard Wynter Phoenix
Miguel Ugueto Walker Gourley Cristian Paulino Julio Pacheco
Osvaldo Tovalin Scott Gillitzer David Hicks Christopher Minaker
Brayden Jobert Brian Blair Enoch Simmons Brad Bennett

Batters – 80th/20th Percentiles
Player 80th BA 80th OBP 80th SLG 80th OPS+ 80th WAR 20th BA 20th OBP 20th SLG 20th OPS+ 20th WAR
Nolan Arenado .295 .350 .470 127 4.3 .237 .295 .375 86 1.4
Masyn Winn .280 .334 .444 113 4.4 .230 .282 .348 75 1.4
Willson Contreras .262 .367 .467 131 3.6 .208 .317 .365 92 1.6
Brendan Donovan .304 .386 .450 133 3.8 .248 .333 .364 96 1.1
Lars Nootbaar .270 .369 .493 137 3.4 .220 .319 .380 97 1.1
Alec Burleson .307 .355 .485 130 3.4 .249 .295 .385 91 0.6
Nolan Gorman .259 .330 .511 129 3.4 .202 .270 .388 84 0.5
Iván Herrera .281 .369 .440 124 2.9 .222 .310 .341 83 0.9
Jimmy Crooks .273 .339 .421 112 3.0 .217 .283 .322 71 1.0
Thomas Saggese .272 .318 .442 108 3.0 .219 .269 .343 70 0.2
César Prieto .286 .318 .413 103 2.6 .225 .262 .321 64 0.0
Leonardo Bernal .259 .323 .383 97 2.5 .198 .261 .291 56 0.3
Bryan Torres .303 .369 .378 109 2.4 .241 .304 .297 70 -0.1
Brandon Crawford .257 .332 .419 109 1.9 .196 .272 .315 64 0.2
Pedro Pagés .251 .310 .385 92 1.8 .189 .251 .292 54 0.1
Matt Koperniak .283 .339 .421 110 2.1 .226 .281 .329 71 -0.2
Victor Scott II .248 .304 .359 84 1.8 .195 .259 .278 51 -0.5
Mike Antico .250 .306 .382 91 1.7 .201 .257 .303 57 -0.5
Sammy Hernandez .233 .307 .342 83 1.7 .165 .243 .244 41 -0.2
Ryan Vilade .262 .326 .386 97 1.6 .216 .277 .303 64 -0.4
Arquímedes Gamboa .232 .320 .347 86 1.4 .174 .262 .260 49 -0.3
Jordan Walker .271 .333 .463 118 1.9 .221 .278 .367 80 -0.9
Jose Barrero .234 .295 .402 94 1.5 .179 .240 .296 51 -0.5
José Fermín .258 .343 .376 101 1.2 .205 .288 .287 65 -0.3
Gavin Collins .243 .307 .386 93 0.8 .184 .249 .280 50 -0.4
Michael Siani .237 .305 .331 78 1.1 .182 .254 .257 46 -0.8
Luken Baker .235 .311 .453 109 1.0 .188 .268 .350 75 -0.9
Chance Sisco .202 .286 .357 78 0.4 .151 .227 .248 35 -0.2
Carlos Linarez .221 .262 .283 53 0.4 .156 .204 .198 14 -0.3
Matt Carpenter .222 .340 .423 108 0.5 .168 .277 .303 64 -0.5
Chase Davis .231 .300 .354 82 1.0 .177 .251 .268 46 -1.0
Alfonso Rivas III .257 .351 .375 103 0.9 .202 .294 .289 65 -1.0
Chase Adkison .248 .312 .342 83 0.6 .184 .253 .253 44 -0.6
Chris Rotondo .250 .318 .359 89 1.0 .189 .260 .270 49 -1.0
Jacob Buchberger .241 .303 .355 83 0.9 .190 .252 .274 48 -0.9
Ramon Mendoza .236 .308 .341 81 0.7 .178 .251 .253 43 -0.7
Dakota Harris .257 .301 .371 88 0.7 .206 .252 .293 54 -0.9
Graysen Tarlow .206 .294 .277 59 0.0 .148 .229 .202 23 -0.4
Nathan Church .262 .316 .342 84 0.9 .207 .263 .267 50 -1.3
Joshua Baez .230 .294 .376 86 0.7 .171 .237 .274 45 -1.2
Noah Mendlinger .264 .338 .325 86 0.5 .209 .286 .257 55 -1.2
Jeremy Rivas .245 .307 .296 69 0.7 .194 .255 .234 40 -1.2
R.J. Yeager .263 .314 .395 96 0.7 .208 .261 .305 59 -1.6
Matt Lloyd .249 .318 .395 97 0.7 .193 .261 .299 56 -1.6
Brody Moore .240 .294 .311 69 0.2 .189 .243 .247 38 -1.4
Anyelo Encarnacion .219 .299 .337 77 0.3 .163 .240 .238 34 -1.5
Wade Stauss .203 .317 .276 69 -0.3 .136 .252 .189 28 -1.0
Trey Paige .223 .286 .300 64 0.2 .165 .230 .222 28 -1.6
Michael Curialle .235 .302 .349 80 0.0 .182 .249 .268 46 -1.5
Zach Levenson .214 .290 .349 77 -0.1 .161 .238 .259 41 -1.5
Tre Richardson .212 .289 .294 65 -0.1 .158 .235 .218 28 -1.7
Miguel Villarroel .255 .284 .326 70 0.0 .199 .230 .253 36 -1.9
Kade Kretzschmar .242 .314 .310 74 -0.4 .189 .260 .237 42 -1.8
Darlin Moquete .231 .282 .375 80 -0.2 .177 .228 .279 44 -1.8
Johnfrank Salazar .249 .297 .331 76 -0.3 .194 .240 .255 39 -1.9
Chandler Redmond .230 .300 .366 83 -0.1 .174 .243 .276 45 -2.1
Won-Bin Cho .239 .298 .318 74 -0.1 .182 .243 .243 38 -2.1
William Sullivan .195 .268 .281 51 -1.0 .144 .214 .198 17 -1.7
Alex Iadisernia .225 .289 .344 76 -0.4 .175 .240 .262 42 -2.2
Miguel Ugueto .237 .261 .334 65 -0.8 .178 .202 .248 26 -2.1
Osvaldo Tovalin .232 .275 .317 65 -0.8 .179 .220 .238 29 -2.7
Brayden Jobert .193 .281 .293 60 -1.1 .145 .228 .219 28 -2.7

Batters – Platoon Splits
Player BA vs. L OBP vs. L SLG vs. L BA vs. R OBP vs. R SLG vs. R
Nolan Arenado .273 .338 .439 .260 .315 .418
Masyn Winn .263 .323 .427 .248 .297 .372
Willson Contreras .248 .356 .455 .234 .336 .410
Brendan Donovan .268 .349 .396 .285 .365 .414
Lars Nootbaar .239 .331 .389 .247 .349 .449
Alec Burleson .267 .314 .398 .282 .331 .450
Nolan Gorman .222 .289 .393 .233 .307 .469
Iván Herrera .254 .349 .389 .249 .338 .378
Jimmy Crooks .230 .297 .320 .251 .320 .378
Thomas Saggese .247 .297 .388 .242 .289 .386
César Prieto .250 .285 .346 .262 .294 .374
Leonardo Bernal .232 .289 .336 .226 .290 .330
Bryan Torres .256 .317 .318 .280 .345 .346
Brandon Crawford .228 .295 .342 .228 .307 .376
Pedro Pagés .226 .291 .348 .217 .278 .333
Matt Koperniak .245 .297 .357 .256 .313 .380
Victor Scott II .214 .268 .275 .226 .285 .335
Mike Antico .220 .275 .312 .229 .287 .358
Sammy Hernandez .204 .278 .327 .190 .273 .272
Ryan Vilade .244 .307 .355 .232 .294 .339
Arquímedes Gamboa .202 .281 .312 .210 .296 .295
Jordan Walker .250 .316 .438 .241 .300 .398
Jose Barrero .214 .275 .365 .204 .266 .338
José Fermín .224 .311 .318 .233 .318 .337
Gavin Collins .225 .291 .352 .208 .273 .317
Michael Siani .209 .278 .288 .211 .283 .293
Luken Baker .214 .298 .417 .210 .287 .389
Chance Sisco .167 .242 .300 .174 .260 .291
Carlos Linarez .190 .227 .214 .181 .225 .253
Matt Carpenter .182 .288 .295 .203 .317 .390
Chase Davis .197 .264 .291 .209 .281 .321
Alfonso Rivas III .209 .298 .308 .237 .332 .336
Chase Adkison .227 .288 .318 .213 .277 .284
Chris Rotondo .219 .297 .333 .214 .282 .298
Jacob Buchberger .232 .298 .326 .209 .265 .299
Ramon Mendoza .205 .283 .284 .204 .272 .293
Dakota Harris .233 .282 .340 .230 .273 .330
Graysen Tarlow .185 .267 .222 .173 .254 .250
Nathan Church .233 .286 .295 .235 .290 .304
Joshua Baez .198 .268 .337 .192 .264 .315
Noah Mendlinger .225 .298 .265 .243 .317 .301
Jeremy Rivas .221 .283 .269 .213 .275 .255
R.J. Yeager .244 .299 .356 .229 .280 .342
Matt Lloyd .211 .278 .307 .227 .296 .360
Brody Moore .215 .267 .289 .220 .267 .275
Anyelo Encarnacion .198 .277 .297 .189 .260 .277
Wade Stauss .152 .282 .182 .171 .284 .250
Trey Paige .188 .248 .240 .192 .262 .262
Michael Curialle .204 .275 .306 .207 .279 .304
Zach Levenson .186 .268 .302 .183 .259 .293
Tre Richardson .184 .266 .235 .187 .260 .263
Miguel Villarroel .227 .259 .305 .227 .256 .285
Kade Kretzschmar .200 .274 .247 .221 .295 .283
Darlin Moquete .210 .266 .330 .199 .246 .317
Johnfrank Salazar .229 .281 .295 .214 .262 .286
Chandler Redmond .191 .254 .278 .204 .278 .333
Won-Bin Cho .195 .258 .265 .211 .275 .279
William Sullivan .163 .250 .256 .171 .240 .225
Alex Iadisernia .187 .254 .271 .202 .266 .312
Miguel Ugueto .213 .241 .320 .201 .227 .274
Osvaldo Tovalin .200 .252 .261 .208 .245 .286
Brayden Jobert .169 .257 .225 .167 .253 .268

Pitchers – Standard
Player T Age W L ERA G GS IP H ER HR BB SO
Sonny Gray R 35 11 7 3.43 26 26 149.7 129 57 17 41 156
Michael McGreevy R 24 9 8 3.99 28 27 153.3 155 68 18 41 108
Andre Pallante R 26 7 7 3.82 36 18 117.7 115 50 9 47 87
Quinn Mathews L 24 6 6 4.05 25 25 126.7 115 57 15 46 122
Ryan Helsley R 30 7 3 2.77 58 0 61.7 45 19 5 22 75
Erick Fedde R 32 8 9 4.21 26 26 143.3 143 67 21 45 129
Drew Rom L 25 5 5 3.98 18 17 83.7 80 37 9 29 73
Tink Hence R 22 5 5 4.20 26 26 98.7 95 46 13 34 83
Kyle Gibson R 37 7 8 4.47 25 25 139.0 141 69 18 55 116
Gordon Graceffo R 25 7 9 4.42 25 24 124.3 126 61 16 41 86
Lance Lynn R 38 6 8 4.44 23 23 125.7 125 62 19 46 115
Matthew Liberatore L 25 6 5 4.15 43 15 102.0 96 47 12 38 93
Steven Matz L 34 4 4 4.10 21 16 83.3 86 38 10 27 73
Miles Mikolas R 36 7 10 4.63 25 25 140.0 151 72 21 28 95
Sem Robberse R 23 5 5 4.41 21 19 100.0 100 49 13 35 78
Zack Thompson L 27 5 6 4.27 26 18 92.7 86 44 11 44 91
Max Rajcic R 23 8 11 4.62 24 23 120.7 126 62 17 37 84
Alex Cornwell L 26 5 5 4.50 22 15 90.0 97 45 12 26 62
Packy Naughton L 29 2 2 3.71 20 8 43.7 43 18 4 12 38
Adam Kloffenstein R 24 5 5 4.61 20 19 95.7 96 49 12 41 74
Victor Santos R 24 6 7 4.52 28 14 93.7 95 47 11 28 62
John King L 30 4 3 3.58 53 1 60.3 63 24 5 15 39
JoJo Romero L 28 5 4 3.60 57 0 55.0 49 22 6 18 55
Tekoah Roby R 23 3 4 4.48 16 16 64.3 65 32 9 20 49
Ryan Fernandez R 27 4 3 3.71 53 0 60.7 55 25 6 23 60
Roddery Muñoz R 25 6 8 4.84 26 21 109.7 108 59 18 49 93
Ian Bedell R 25 3 3 4.82 21 18 93.3 94 50 14 36 71
Kyle Leahy R 28 4 4 4.39 39 6 84.0 85 41 10 32 64
Riley O’Brien R 30 3 3 4.44 29 7 50.7 46 25 6 27 51
Zane Mills R 24 4 6 4.80 26 10 80.7 89 43 11 25 47
Keynan Middleton R 31 2 1 3.93 39 0 36.7 33 16 5 15 39
Ryan Loutos R 26 3 2 4.14 46 0 58.7 58 27 6 23 49
Chris Roycroft R 28 5 5 4.19 53 0 68.7 66 32 7 32 57
Wilfredo Pereira R 26 4 6 5.03 26 13 91.3 98 51 13 35 58
Oddanier Mosqueda L 26 4 3 4.33 49 1 60.3 54 29 7 29 58
Cooper Hjerpe L 24 3 4 5.11 17 17 56.3 52 32 9 30 53
Bailey Horn L 27 4 4 4.50 41 2 54.0 52 27 7 28 49
Nick Raquet L 29 4 6 4.78 32 5 75.3 80 40 10 31 53
Matt Svanson R 26 3 4 4.55 45 1 59.3 61 30 7 21 43
Jacob Bosiokovic R 31 3 3 4.47 38 0 46.3 44 23 6 23 43
Benito Garcia R 25 3 3 4.65 30 1 60.0 65 31 8 16 37
Josh James R 32 1 0 4.87 21 1 20.3 19 11 2 14 18
Ryan Shreve R 27 4 4 4.55 36 0 63.3 66 32 8 24 45
Andre Granillo R 25 4 5 4.63 45 0 58.3 55 30 8 31 55
Jack Ralston R 27 3 3 4.71 34 1 49.7 46 26 6 30 47
Michael Gomez R 28 3 4 4.61 38 0 54.7 53 28 6 25 42
Nathanael Heredia L 24 2 3 5.48 34 1 44.3 43 27 5 32 35
Andrew Marrero R 25 3 4 5.24 37 0 46.3 45 27 7 27 42
Leonardo Taveras R 26 2 3 5.26 39 0 53.0 51 31 7 35 46
Edwin Nunez R 23 3 5 6.00 27 12 69.0 71 46 11 42 48

Pitchers – Advanced
Player IP K/9 BB/9 HR/9 BB% K% BABIP ERA+ 3ERA+ FIP ERA- WAR
Sonny Gray 149.7 9.4 2.5 1.0 6.7% 25.4% .284 120 112 3.49 84 2.9
Michael McGreevy 153.3 6.3 2.4 1.1 6.3% 16.7% .287 103 105 4.14 97 2.1
Andre Pallante 117.7 6.7 3.6 0.7 9.1% 16.9% .292 107 108 3.99 93 1.6
Quinn Mathews 126.7 8.7 3.3 1.1 8.6% 22.7% .287 101 104 4.07 99 1.6
Ryan Helsley 61.7 10.9 3.2 0.7 8.8% 29.9% .274 148 143 2.87 68 1.6
Erick Fedde 143.3 8.1 2.8 1.3 7.4% 21.1% .295 98 94 4.29 103 1.6
Drew Rom 83.7 7.9 3.1 1.0 8.1% 20.3% .292 103 106 4.05 97 1.1
Tink Hence 98.7 7.6 3.1 1.2 8.0% 19.6% .285 98 101 4.30 102 1.1
Kyle Gibson 139.0 7.5 3.6 1.2 9.1% 19.1% .297 92 84 4.49 109 1.1
Gordon Graceffo 124.3 6.2 3.0 1.2 7.6% 16.0% .284 93 97 4.55 108 1.1
Lance Lynn 125.7 8.2 3.3 1.4 8.5% 21.2% .295 92 84 4.55 108 1.0
Matthew Liberatore 102.0 8.2 3.4 1.1 8.7% 21.2% .290 99 103 4.18 101 0.9
Steven Matz 83.3 7.9 2.9 1.1 7.5% 20.3% .308 100 92 4.07 100 0.9
Miles Mikolas 140.0 6.1 1.8 1.4 4.8% 16.1% .293 89 83 4.48 113 0.9
Sem Robberse 100.0 7.0 3.2 1.2 8.1% 18.1% .289 93 99 4.45 107 0.9
Zack Thompson 92.7 8.8 4.3 1.1 10.8% 22.4% .293 96 98 4.34 104 0.9
Max Rajcic 120.7 6.3 2.8 1.3 7.1% 16.1% .288 89 93 4.74 113 0.8
Alex Cornwell 90.0 6.2 2.6 1.2 6.6% 15.9% .297 91 94 4.53 110 0.7
Packy Naughton 43.7 7.8 2.5 0.8 6.5% 20.7% .302 111 112 3.52 90 0.7
Adam Kloffenstein 95.7 7.0 3.9 1.1 9.6% 17.4% .290 89 94 4.83 112 0.7
Victor Santos 93.7 6.0 2.7 1.1 7.0% 15.6% .284 91 96 4.41 110 0.7
John King 60.3 5.8 2.2 0.7 5.9% 15.2% .297 115 113 3.81 87 0.6
JoJo Romero 55.0 9.0 2.9 1.0 7.8% 23.8% .289 114 114 3.74 88 0.5
Tekoah Roby 64.3 6.9 2.8 1.3 7.2% 17.8% .287 92 98 4.55 109 0.5
Ryan Fernandez 60.7 8.9 3.4 0.9 8.9% 23.3% .293 111 113 3.67 90 0.5
Roddery Muñoz 109.7 7.6 4.0 1.5 10.1% 19.2% .283 85 90 5.12 118 0.4
Ian Bedell 93.3 6.8 3.5 1.4 8.9% 17.5% .284 85 89 5.02 117 0.4
Kyle Leahy 84.0 6.9 3.4 1.1 8.7% 17.4% .292 93 95 4.45 107 0.3
Riley O’Brien 50.7 9.1 4.8 1.1 12.0% 22.7% .290 92 92 4.60 108 0.3
Zane Mills 80.7 5.2 2.8 1.2 7.1% 13.4% .293 86 91 4.86 117 0.2
Keynan Middleton 36.7 9.6 3.7 1.2 9.5% 24.7% .289 105 104 4.13 96 0.2
Ryan Loutos 58.7 7.5 3.5 0.9 9.0% 19.1% .297 99 101 4.12 101 0.1
Chris Roycroft 68.7 7.5 4.2 0.9 10.5% 18.8% .291 98 98 4.42 102 0.1
Wilfredo Pereira 91.3 5.7 3.4 1.3 8.7% 14.4% .289 82 84 5.07 122 0.1
Oddanier Mosqueda 60.3 8.7 4.3 1.0 11.0% 22.1% .283 95 97 4.60 105 0.0
Cooper Hjerpe 56.3 8.5 4.8 1.4 12.0% 21.2% .277 80 86 5.29 125 0.0
Bailey Horn 54.0 8.2 4.7 1.2 11.7% 20.4% .292 91 94 4.72 110 0.0
Nick Raquet 75.3 6.3 3.7 1.2 9.3% 15.8% .295 86 86 4.89 116 0.0
Matt Svanson 59.3 6.5 3.2 1.1 8.1% 16.7% .293 90 94 4.63 111 0.0
Jacob Bosiokovic 46.3 8.4 4.5 1.2 11.0% 20.6% .290 92 89 4.69 109 -0.1
Benito Garcia 60.0 5.6 2.4 1.2 6.2% 14.4% .292 88 92 4.68 113 -0.1
Josh James 20.3 8.0 6.2 0.9 14.6% 18.8% .288 84 79 5.05 119 -0.1
Ryan Shreve 63.3 6.4 3.4 1.1 8.7% 16.2% .293 90 92 4.58 111 -0.1
Andre Granillo 58.3 8.5 4.8 1.2 11.7% 20.8% .288 89 93 4.72 113 -0.2
Jack Ralston 49.7 8.5 5.4 1.1 13.0% 20.3% .288 87 90 4.79 115 -0.2
Michael Gomez 54.7 6.9 4.1 1.0 10.4% 17.4% .285 89 90 4.88 112 -0.2
Nathanael Heredia 44.3 7.1 6.5 1.0 15.2% 16.7% .286 75 80 5.64 134 -0.5
Andrew Marrero 46.3 8.2 5.2 1.4 12.6% 19.5% .288 78 83 5.47 128 -0.5
Leonardo Taveras 53.0 7.8 5.9 1.2 14.2% 18.6% .288 78 80 5.48 128 -0.6
Edwin Nunez 69.0 6.3 5.5 1.4 12.9% 14.8% .280 68 74 6.21 146 -0.7

Pitchers – Top Near-Age Comps
Player Pit Comp 1 Pit Comp 2 Pit Comp 3
Sonny Gray Phil Niekro Tom Candiotti Luis Tiant
Michael McGreevy Ariel Jurado Nate Minchey Peter Lambert
Andre Pallante Joe Kelly Dakota Hudson Bob Darnell
Quinn Mathews Sean Manaea Randy Wolf David Price
Ryan Helsley Rich Gossage Felix Rodriguez 로드리게스 Craig Kimbrel
Erick Fedde Merrill Kelly 켈리 Jim Clancy Rick Helling
Drew Rom Christian Friedrich 프리드릭 Kevin Bearse Dan Smith
Tink Hence Nick Pesco Joe Skalski Todd Burns
Kyle Gibson Jack Morris Jose Contreras Rick Sutcliffe
Gordon Graceffo Daniel Mengden Braden Shipley Tyler Mahle
Lance Lynn Mark Gardner Dave Stewart Elmer Singleton
Matthew Liberatore John Gebhard Bobby Shantz Hal Hudson
Steven Matz Hippo Vaughn Bob Kuzava Bill Flynt
Miles Mikolas Jeremy Guthrie Jason Hammel Jeff Samardzija
Sem Robberse Rusty Richards Bob Tewksbury George Case
Zack Thompson Brian Burres Steven Brault Jorge De La Rosa
Max Rajcic Henderson Alvarez Alec Asher Tyler Mahle
Alex Cornwell Kurt Peltzer Kellen Raab Ryan Yarbrough
Packy Naughton Tim Kubinski Jan Dukes Ken Frailing
Adam Kloffenstein Sam Hinds Buster Narum Vic Martin
Victor Santos Kendry Flores John Simms Chih-Wei Hu
John King T.J. McFarland Ken Lehman Matt Grace
JoJo Romero Don Gross Jose Luis Garcia Paul Assenmacher
Tekoah Roby Bob Stocker Marcus Tyner Sonny Garcia
Ryan Fernandez Mark Lowe Darryl Scott Jim Miller
Roddery Muñoz Jim Bullinger Rex Rupert Pat Overholt
Ian Bedell Matt Esparza Doug Waechter Matt Petersen
Kyle Leahy Jordan Lyles Drew VerHagen Eddie Butler 버틀러
Riley O’Brien Kevin Campbell Roman Mendez Hector Heredia
Zane Mills Gary Wilson Joey Cramblitt Artie Lewicki
Keynan Middleton Dave Tobik Johnny Murphy John Costello
Ryan Loutos Calvin Medlock Randy Messenger Jason Martin 마틴es
Chris Roycroft Jake Petricka Sam Coonrod Victor Moreno
Wilfredo Pereira Jesus Tinoco Barrett Astin Chad Beck
Oddanier Mosqueda Dave LaRoche Rob Kaminsky Pedro Martinez
Cooper Hjerpe Mike Tanzi Mike Mason Dave Martinez
Bailey Horn Nick Maronde Russ Rohlicek Kyle Bird
Nick Raquet Derrin Ebert Pete Olsen David Maust
Matt Svanson J.R. Graham Paul Quinzer Duaner Sanchez
Jacob Bosiokovic Ryan Garton Dave Wallace Jimmy Rogers
Benito Garcia Mike Moat Mike Welch Corey Baker
Josh James Jack Berly Gary Waslewski Dwight Bernard
Ryan Shreve Larry Corr Steve Rowe Michael Cisco
Andre Granillo Alex Maestri 마에스트리 Steve Cishek Tom Ebert
Jack Ralston Jose Valdez Jeff Jones Mike Shade
Michael Gomez Sam Marsonek Carroll Sembera Steve Shea
Nathanael Heredia Tom Miali Mike Pomeranz Larry Dierks
Andrew Marrero Adam Lau Austin Glorius Mario Alcantara
Leonardo Taveras Myles Smith Adrian Hollinger Jordan Foley
Edwin Nunez Yunior Marte Jason Backs Carl Randle

Pitchers – Splits and Percentiles
Player BA vs. L OBP vs. L SLG vs. L BA vs. R OBP vs. R SLG vs. R 80th WAR 20th WAR 80th ERA 20th ERA
Sonny Gray .223 .283 .363 .231 .283 .372 3.8 1.8 2.86 4.09
Michael McGreevy .274 .336 .462 .241 .273 .359 2.9 1.1 3.56 4.56
Andre Pallante .236 .306 .322 .263 .337 .406 2.3 0.9 3.40 4.36
Quinn Mathews .230 .318 .370 .239 .308 .390 2.6 0.8 3.51 4.63
Ryan Helsley .206 .281 .324 .194 .257 .298 2.3 0.7 2.07 3.87
Erick Fedde .254 .314 .428 .254 .308 .429 2.4 0.5 3.71 4.94
Drew Rom .225 .292 .343 .256 .325 .413 1.7 0.5 3.46 4.55
Tink Hence .249 .316 .396 .247 .305 .419 1.8 0.5 3.65 4.75
Kyle Gibson .267 .344 .429 .247 .313 .411 1.9 0.1 3.92 5.23
Gordon Graceffo .262 .331 .444 .254 .307 .402 1.8 0.4 4.00 4.90
Lance Lynn .265 .348 .466 .243 .298 .402 1.8 0.1 3.78 5.27
Matthew Liberatore .225 .288 .308 .251 .329 .429 1.7 0.2 3.58 4.74
Steven Matz .269 .341 .385 .258 .313 .425 1.4 0.2 3.58 4.94
Miles Mikolas .279 .320 .461 .261 .295 .436 1.7 0.0 4.12 5.29
Sem Robberse .246 .329 .421 .263 .310 .411 1.5 0.2 3.91 5.03
Zack Thompson .236 .328 .349 .242 .330 .409 1.6 0.1 3.71 5.00
Max Rajcic .262 .338 .433 .264 .313 .439 1.5 0.1 4.14 5.12
Alex Cornwell .265 .318 .429 .271 .325 .439 1.2 0.1 4.05 5.09
Packy Naughton .214 .254 .304 .270 .325 .426 1.0 0.3 3.12 4.52
Adam Kloffenstein .262 .355 .437 .249 .326 .394 1.2 0.1 4.19 5.16
Victor Santos .249 .312 .403 .266 .317 .415 1.2 0.1 4.03 5.08
John King .238 .287 .300 .277 .322 .428 1.0 0.2 3.08 4.06
JoJo Romero .200 .264 .277 .248 .317 .421 1.1 -0.1 2.86 4.40
Tekoah Roby .239 .311 .367 .271 .321 .465 0.9 0.0 3.95 5.19
Ryan Fernandez .238 .328 .406 .235 .287 .341 1.0 -0.1 3.09 4.45
Roddery Muñoz .267 .349 .485 .238 .322 .396 1.1 -0.3 4.35 5.40
Ian Bedell .266 .349 .467 .247 .320 .404 1.0 -0.2 4.30 5.39
Kyle Leahy .248 .325 .393 .263 .325 .425 0.8 -0.2 3.89 4.99
Riley O’Brien .238 .354 .393 .234 .333 .378 0.8 -0.2 3.67 5.28
Zane Mills .292 .352 .465 .261 .315 .428 0.7 -0.3 4.33 5.37
Keynan Middleton .242 .329 .419 .228 .295 .392 0.5 -0.2 3.15 5.06
Ryan Loutos .255 .336 .402 .250 .312 .383 0.5 -0.3 3.62 4.76
Chris Roycroft .272 .370 .416 .225 .302 .352 0.5 -0.5 3.72 4.94
Wilfredo Pereira .277 .353 .446 .261 .326 .437 0.5 -0.5 4.58 5.57
Oddanier Mosqueda .193 .306 .301 .257 .355 .426 0.5 -0.5 3.70 5.08
Cooper Hjerpe .238 .347 .317 .240 .344 .468 0.5 -0.5 4.51 5.84
Bailey Horn .229 .313 .386 .257 .352 .421 0.5 -0.4 3.91 5.11
Nick Raquet .281 .358 .438 .260 .333 .431 0.4 -0.6 4.31 5.43
Matt Svanson .274 .352 .463 .252 .323 .374 0.4 -0.4 4.02 5.13
Jacob Bosiokovic .271 .347 .435 .221 .330 .379 0.4 -0.4 3.77 5.18
Benito Garcia .294 .345 .486 .252 .308 .389 0.3 -0.5 4.04 5.27
Josh James .243 .391 .378 .238 .340 .357 0.1 -0.4 4.17 6.20
Ryan Shreve .264 .339 .436 .262 .318 .404 0.3 -0.6 4.00 5.14
Andre Granillo .276 .390 .469 .219 .289 .359 0.3 -0.6 3.98 5.28
Jack Ralston .239 .352 .402 .240 .342 .380 0.3 -0.6 4.09 5.51
Michael Gomez .253 .357 .411 .246 .338 .381 0.2 -0.7 4.07 5.33
Nathanael Heredia .255 .379 .345 .246 .384 .424 -0.2 -1.0 4.89 6.41
Andrew Marrero .256 .389 .449 .243 .342 .408 -0.2 -0.9 4.68 5.96
Leonardo Taveras .271 .398 .438 .227 .344 .391 -0.3 -1.1 4.73 6.00
Edwin Nunez .269 .385 .479 .253 .376 .429 -0.3 -1.3 5.47 6.84

Players are listed with their most recent teams wherever possible. This includes players who are unsigned or have retired, players who will miss 2025 due to injury, and players who were released in 2024. So yes, if you see Joe Schmoe, who quit baseball back in August to form a Norwegian Ukulele Dixieland Jazz band that only covers songs by The Smiths, he’s still listed here intentionally. ZiPS is assuming a league with an ERA of 4.11.

Hitters are ranked by zWAR, which is to say, WAR values as calculated by me, Dan Szymborski, whose surname is spelled with a z. WAR values might differ slightly from those that appear in the full release of ZiPS. Finally, I will advise anyone against — and might karate chop anyone guilty of — merely adding up WAR totals on a depth chart to produce projected team WAR. It is important to remember that ZiPS is agnostic about playing time, and has no information about, for example, how quickly a team will call up a prospect or what veteran has fallen into disfavor.

As always, incorrect projections are either caused by misinformation, a non-pragmatic reality, or by the skillful sabotage of our friend and former editor. You can, however, still get mad at me on Twitter or on BlueSky.


Sunday Notes: Garrett Cleavinger Emerged With a Five-Pitch Mix (Or Was It Four?)

The Tampa Bay Rays have a reputation of getting the best out of previously undervalued pitchers, and Garrett Cleavinger is a prime example. Acquired from the Los Angeles Dodgers in August 2022 in exchange for German Tapia, the 30-year-old southpaw was subsequently limited to 12 games in 2023 due to a knee injury, but a breakout was right around the corner. Cleavinger made a career-high 68 appearances last year, logging a 3.75 ERA and a 26.7 strikeout rate over 60 relief innings. His ledger included seven wins and six saves.

A high-octane heater was one of his best weapons; at 96.3 mph, Cleavinger’s four-seamer ranked in the 84th percentile for velocity. With that in mind, I asked the Lawrence, Kansas native if he identifies as a power pitcher.

“It’s a part of my game,” Cleavinger told me at the close of the 2024 campaign. “I’m definitely not a pinpoint command guy like some pitchers are — I wish I was a little bit better in that aspect — but power stuff coming out of the pen does kind of fit the description for me.”

Possessor of a varied arsenal is another accurate description. The erstwhile University of Oregon closer now features five-pitches, only one of which he threw less than 10 percent of the time. Per Baseball Savant, the breakdown was: cutter 26.3%, four-seamer 24.8%, slider 22.0%, sweeper 17.4%, and two-seamer 9.5%. Two of those were recent additions. Read the rest of this entry »


Job Posting: Los Angeles Dodgers – Junior Analyst, Baseball Strategy & Information

Junior Analyst, Baseball Strategy and Information

Department: Baseball Strategy and Information
Status: Full Time
Reports to: Director, Baseball Strategy and Information
Salary: $23.00/hour*

*Compensation rates vary based on job-related factors, including experience, job skills, education, and training.

The Baseball Strategy and Information team of the Los Angeles Dodgers is responsible for supporting the Major League Coaching Staff and Baseball Operations leadership group with data and information needed for strategic decision making. As a Junior Analyst, you will work with other members of the Baseball Strategy and Information team to build reports and visualizations to communicate insights clearly and concisely to stakeholders. This position offers the opportunity to push the boundaries of conventional thinking, grow analytically by solving challenging problems, and collaborate with leaders throughout Baseball Operations. As a member of the Baseball Strategy and Information team, you will see your work impact the Major League team on a nightly basis.

Essential Duties/Responsibilities:

  • Coordinate and execute a selection of R scripts on a daily, series, and ad-hoc basis, which produce reports containing data and visualizations for Major League Coaching staff and Baseball Operations Leadership.
  • Interpret data and conduct in-depth analysis on players, team strategy, and in-game tactics, providing insights and observations to enhance coaching and decision making.
  • Support Data Collection and Data Management processes involving a variety of tracking and training technologies.
  • Work with Performance Science and Quantitative Analysis departments on the development of new proprietary metrics.
  • Collaborate across departments within Baseball Operations to advance various initiatives related to player evaluation and process automation.
  • Assist with on-boarding and training of interns within Baseball Operations
  • Occasional travel to represent the department outside of LA, such as an annual Spring Training trip, road trips with the club, affiliate visits, and scouting trips.
  • Complete ad-hoc research using SQL and R/Python to enhance in-game strategy and/or player improvement as requested.

Basic Requirements/Qualifications:

  • Bachelor’s degree in a STEM field (or equivalent experience)
  • 1+ Years of Experience with R or Python in a non-classroom environment
  • Familiarity with SQL, Git, and cloud-based computing
  • Experience playing on a sports team or working with a sports organization is preferred (college or professional)
  • Ability to relocate to Los Angeles and commute to Dodger Stadium
  • Ability to work frequent overtime including evenings, weekends, and holidays. Overtime compensation will be provided according to company policy and applicable laws.

To Apply:
To apply, please follow this link.

The content in this posting was created and provided solely by the Los Angeles Dodgers.


Job Posting: Kansas City Royals – Multiple Openings

Direct links to applications (please see job details below):

Pro Player Analyst
Developer-Baseball Systems


Pro Player Analyst

Location: Kauffman Stadium, One Royal Way, Kansas City, Missouri, United States of America

Job Summary: The Kansas City Royals Baseball Club is seeking a highly motivated and creative analyst to join the organization. Under the direction of the Assistant Director of Research & Development/Player Personnel and the Director of Pro Personnel & Strategy, the analyst will be involved in several stages of the player evaluation process to meet the needs of the organization. The successful applicant will leverage baseball data to provide a competitive edge when evaluating players for the Kansas City Royals. This role will be located in Kansas City, MO.

Position Accountabilities/Responsibilities:

  • Provide data driven insights to help evaluate both pitchers and position players.
  • Collaborate with other analysts and Baseball Operations personnel to provide support at all stages of the player evaluation process
  • Query and organize data to effectively communicate
  • Perform ad-hoc analysis to assist in decision making processes
  • Work to create, advance, and or maintain machine learning models

Position Qualifications, Skills, and Experience Required:

  • 4-year degree or equivalent experience in computer science, mathematics, statistics, or related quantitative field
  • Proficiency with SQL and R to query and organize data from large databases
  • Strong understanding of advanced baseball metrics to evaluate players
  • Interpersonal and communication skills to seamlessly interact with front office, analysts, scouts, and other Baseball Operations personnel
  • Familiarity with the landscape of Major League Baseball. e.g. teams, affiliates, rosters, prospects, free agents, etc.
  • Ability to work evening, weekend, and holiday hours during the baseball season

Preferred Qualifications:

  • Record of published baseball research and or experience ranking / evaluating players
  • Intimate knowledge of MLB rosters, farm systems, free agency, and all things involving player personnel
  • Experience with machine learning and modeling techniques to extract actionable insights within large data sets

Physical Requirements:

  • Ability to lift items weighing as much as 25 pounds
  • Must be able to work in a seated position for majority of workday
  • Must be able to be productive utilizing a computer keyboard and telephone
  • Must be able to be productive in a work environment where the noise level can be high at times
  • Must be comfortable walking to navigate the facility to access the office, concourse, etc.
  • Must be able to work extended hours and/or weekends as required by deadlines and event scheduling

The physical demands described here are representative of those that may be met by an employee to successfully perform the essential functions of this job.

This role is a Full-Time, Exempt opportunity that is eligible for Company Benefits, 401K, and PTO. This role is expected to have a standard 40-hour work week.

To Apply:
To apply, please follow this link.


Developer-Baseball Systems

Location: Kauffman Stadium, One Royal Way, Kansas City, Missouri, United States of America – Virtual

Job Summary: The Kansas City Royals Baseball Club is seeking a highly motivated developer to work with our group of Developers to support baseball operations. The ideal applicant will be able to manage multiple concurrent projects that facilitate enhanced communications, reporting, and other interactions between teams internal to the organization. At this time, we are open to the possibility of Remote work for the right candidate.

Position Accountabilities/Responsibilities:

  • Assist in development tasks and data operations
    • Help with system administration of database and web servers
    • Assist in daily task monitoring to ensure data health, quality assurance, and reliability of systems
    • Automate reports and other tasks that are used on a regular basis
    • Support schema and testing of databases of various sizes
    • Maintain and support existing code across various languages and frameworks
    • Develop, test, and optimize performance and accuracy of scripts used to calculate derived data
    • Design, build, and deploy new features for organizational web applications
    • Automate, manage, and report data lifecycle based on retention and storage requirements
    • Explore novel tools to visualize data and explore models by implementing UI/UX in HTML, CSS, JavaScript/Vue.js
    • Develop responsive front-end designs suitable for multiple devices and screen sizes
    • Collaborate with baseball operations staff to create and improve internal analysis and informational tools.
    • Help ensure that systems and solutions are in line with organizational objectives

Position Qualifications, Skills, and Experience Required:

  • 4 year degree in computer science, electrical engineering, or related field or equivalent experience is required
  • Ability to work evening, weekend, and holiday hours during the baseball season is a must
  • Excellent interpersonal and communications skills and ability to interact and work with staff at all levels
  • Ability to recognize and maintain confidentiality of work materials and issues as appropriate
  • Experience with the following tools, platforms, and business data is required:
    • Two years of experience with Python
    • Strong knowledge of SQL
    • Strong knowledge of Django, Flask, or similar
    • Basic administration of UNIX-based servers (Linux, Mac, etc.)
    • Managing cloud resources on AWS or a similar platform
    • Interest in and knowledge of UI/UX and web development technologies such as HTML5, JavaScript, Vue.js, Vite, ChartJS
  • Experience with the following tools, platforms and business data is preferred:
    • Business intelligence experience is a plus
    • Baseball knowledge and exposure to baseball statistics

Physical Requirements:

  • Ability to lift items weighing as much as 25 pounds
  • Must be able to be productive utilizing a computer keyboard and telephone
  • Must be able to be productive in a work environment where the noise level can be high at times
  • Must be comfortable walking to navigate the facility to access the office, concourse, etc.
  • Must be able to work extended hours and/or weekends as required by deadlines and event scheduling

The physical demands described here are representative of those that may be met by an employee to successfully perform the essential functions of this job.

This role is a Full-Time, Exempt opportunity that is eligible for Company Benefits, 401K, and PTO. This role is expected to have a standard 40-hour work week.

To Apply:
To apply, please follow this link.

The content in this posting was created and provided solely by the Kansas City Royals.


2025 ZiPS Projections: Kansas City Royals

For the 21st consecutive season, the ZiPS projection system is unleashing a full set of prognostications. For more information on the ZiPS projections, please consult this years introduction and MLB’s glossary entry. The team order is selected by lot, and the next team up is the Kansas City Royals.

Batters

The Tigers got a bit more attention simply because they seemed so dead in the water in July, but Kansas City’s 30-win improvement from the year before – and the even more impressive 35-win improvement in Pythagorean wins – was damn impressive. Victory may have a thousand fathers, but Bobby Witt Jr. was the big daddy of this feat, missing out on an MVP award only because he plays in the same league as peak Aaron Judge. ZiPS isn’t keen to project 7- or 8-WAR seasons as the baseline expectation based on a single season, but Witt’s projection still is that of a serious MVP candidate, and among players over the next five years, his WAR projection is less than those of only Juan Soto and Shohei Ohtani. His nearly $290 million deal with the Royals is, in the early days, looking like one of the best team investments of all time.

ZiPS is naturally excited about Witt, but that excitement doesn’t carry over to the rest of the team. This probably isn’t a surprise considering that other than Witt, only Salvador Perez finished with 2 WAR among Royals hitters in 2024. If you rank Kansas City’s hitters from last season, and add up the five best after Witt, they still add up to a full win short of the franchise shortstop.

That being said, it’s not exactly a Darryl Strawberry-playing-with-Springfield-Nuclear-Plant-employees situation. ZiPS expects the Royals to get around 2 WAR at most positions, with projections for Perez, Jonathan India, and Maikel Garcia crossing the two-win line in 2025. And if Michael Massey and Vinnie Pasquantino end up playing in more games than the 120-something that ZiPS projects for them, they each would also be worth more than 2 WAR. Witt may stand alone as a superstar in this lineup, but the Royals do have some solid talent here.

What is disappointing, given how competitive the projections are for the Royals as a whole and how close they are to the Guardians and Twins, is that Kansas City didn’t make a more vigorous attempt to upgrade its corner outfield spots. MJ Melendez hasn’t done anything that ought to entitle him to be the default option in left field, even if you look at his sunnier Steamer and OOPSY projections. If you subscribe to the ZiPS projection for Melendez, the Royals, as of now, look to enter the season as a reigning playoff team with a replacement-level corner outfield. Kansas City is projected to get positive value from its left fielders overall, but only because our Depth Charts is factoring in some time for India out there, and ZiPS doesn’t like right fielder Hunter Renfroe much more than it does Melendez. Right now, it looks like the value of four of Witt’s wins will do nothing more than offset the roughly replacement-level production of those two outfielders. Then again, that’s kind of what happened last year; while Witt posted a 10-win season, Royals corner outfielders combined for about -1.0 WAR. At the moment, ZiPS is projecting their corner outfielders to be worth about 1.3 WAR. That’s an improvement, yes, but as I mentioned up top, ZiPS projects Witt to be worth about four wins less than he was last season. That’s still a six-win season, but as things stand, the Royals are projected to get about two fewer wins of total value from the three positions — shortstop, left field, and right field — this year (7.3) than they did last year (9.4).

Pitchers

ZiPS may think that the Royals have the offense of a 68-win team plus Witt, but it thinks they have a rotation that’s in the top third of the league, a more bullish outlook than the other projections. It’s not shocking that ZiPS projects Cole Ragans to have a 4-WAR season, based on Depth Charts’ projected innings for him. (Below, you’ll see ZiPS has him at 2.9 WAR, but that’s only because it projects him to throw fewer innings.) But what might be surprising is how little Seth Lugo is projected to drop off from his superb 2024 season, when he finished second in the Cy Young voting. If Witt makes up for some of the sins for the offense, the Ragans-Lugo one-two punch covers up some more of them. Michael Wacha projects as a solid no. 3 starter, and though ZiPS doesn’t love Alec Marsh, it does like Kris Bubic quite a bit. It also thinks that pitchers like Michael Lorenzen and Kyle Wright are more than capable of filling out a decent rotation.

From a projection standpoint, Noah Cameron might be the most interesting Royals starter. He’s a soft-tosser, with a fastball in the low 90s, but he has excellent command and, most importantly, he avoided getting his brains beaten in by Triple-A hitters, which is a frequent fate of pitchers of this type. Instead, opposing batters had a very low average exit velocity against him (under 83 mph). And thanks to his changeup and curveball, which are both plus pitches, he also struck out 29% of the Triple-A batters he faced. A control pitcher who can avoid hard contact and knows how to get some strikeouts is someone worth watching.

ZiPS projects the bullpen to be right around league average, thanks in large part to Lucas Erceg and Hunter Harvey, both picked up last July for the pennant race (and beyond). Considered just as a reliever, Angel Zerpa would have a projected 3.65 ERA, an slight improvement over his solid 2024 season. John Schreiber gets a fairly good projection as well, but after that, ZiPS is less impressed with Kansas City’s relief options. If the Royals are not going to fix their outfield in free agency – and they may not be able to do that anymore because most of the quality guys have already signed — they might want to get another arm or two to improve their bullpen.

From a preliminary standpoint, ZiPS projects Kansas City to finish with 82-85 wins in 2025. That’s tantalizingly close to competing on equal terms with the Twins and Guardians, close enough that the Royals should keep adding this offseason to pull ahead of their division rivals and make a run at another postseason appearance.

Ballpark graphic courtesy Eephus League. Depth charts constructed by way of those listed here. Size of player names is very roughly proportional to Depth Chart playing time. The final team projections may differ considerably from our Depth Chart playing time.

Batters – Standard
Player B Age PO PA AB R H 2B 3B HR RBI BB SO SB CS
Bobby Witt Jr. R 25 SS 668 607 104 175 36 8 29 102 48 112 28 11
Jonathan India R 28 2B 585 496 76 123 28 2 12 57 66 111 11 2
Salvador Perez R 35 C 557 511 55 134 23 1 24 81 30 123 0 0
Maikel Garcia R 25 3B 601 546 79 139 28 4 7 57 45 107 30 4
Michael Massey L 27 2B 465 429 55 111 25 2 15 60 24 87 4 1
Vinnie Pasquantino L 27 1B 535 474 59 124 29 2 22 79 48 69 1 0
Drew Waters B 26 CF 466 416 67 99 26 6 11 52 42 137 15 5
Dairon Blanco R 32 LF 322 289 54 76 13 3 6 38 22 76 41 9
Carter Jensen L 21 C 560 493 57 107 22 5 12 59 59 149 8 2
Kyle Isbel L 28 CF 404 366 57 88 18 5 9 43 27 83 10 3
Cam Devanney R 28 SS 476 428 48 98 26 2 11 54 35 126 4 3
Freddy Fermin R 30 C 340 309 37 78 14 1 8 38 25 64 1 0
Tyler Gentry R 26 RF 500 442 55 105 24 2 11 58 47 147 7 2
John Rave L 27 LF 531 471 65 112 24 4 12 57 49 138 10 4
Devin Mann R 28 1B 444 388 50 91 26 1 10 48 44 114 2 2
Paul DeJong R 31 SS 441 403 47 86 17 0 18 51 27 135 2 2
Brian O’Keefe R 31 C 334 304 36 71 17 1 12 42 28 83 1 1
Josh Lester L 30 3B 476 440 52 102 23 2 15 60 30 119 2 1
Nick Loftin R 26 2B 474 419 58 103 20 2 9 51 43 75 7 3
Ryan Fitzgerald L 31 3B 415 371 41 82 21 3 9 44 32 109 3 3
Tyler Tolbert R 27 SS 525 467 61 104 19 6 4 47 34 140 27 3
Jack Pineda L 25 SS 506 434 57 100 22 2 6 46 41 127 10 4
Adam Frazier L 33 2B 415 373 49 93 19 3 5 37 31 65 6 2
Garrett Hampson R 30 CF 310 280 35 68 14 3 3 25 23 75 10 3
Nelson Velázquez R 26 DH 472 422 57 98 21 2 17 60 42 129 7 3
Joey Wiemer R 26 CF 442 393 49 86 20 2 8 42 42 127 11 4
Nick Pratto L 26 1B 501 438 59 100 22 4 14 58 50 167 8 1
Yuli Gurriel R 41 1B 405 364 41 95 22 1 7 40 34 62 6 0
Jordan Groshans R 25 3B 453 411 47 98 18 1 4 37 39 86 0 1
Cavan Biggio L 30 2B 333 281 41 59 13 1 6 30 42 88 3 1
Robbie Grossman B 35 DH 367 311 39 70 15 1 7 34 49 88 5 1
Gavin Cross L 24 RF 429 389 44 87 19 2 11 48 33 122 15 2
Javier Vaz L 24 2B 512 449 58 107 19 3 5 47 49 65 10 2
Braden Shewmake L 27 2B 377 354 42 77 17 3 8 38 17 78 14 3
Tommy Pham R 37 RF 455 408 53 101 21 2 10 45 40 105 9 3
Hunter Renfroe R 33 RF 448 406 49 94 23 0 15 54 37 94 1 1
Chris Brito R 25 1B 293 244 26 54 11 0 3 24 38 54 3 2
Justin Johnson R 25 2B 388 343 41 72 15 1 2 32 33 86 7 3
Dillan Shrum R 27 1B 422 370 42 78 15 2 11 52 35 155 0 0
Brett Squires L 25 1B 391 349 40 77 15 1 8 43 32 127 12 4
Leonel Valera R 25 SS 391 362 43 84 14 6 5 36 19 120 10 2
MJ Melendez L 26 LF 513 460 61 109 24 4 20 64 48 126 4 4
Peyton Wilson B 25 LF 507 454 56 102 20 3 9 53 43 123 12 3
Kyle Hayes R 27 C 85 73 5 11 3 0 1 7 8 29 0 1
Sam Kulasingam B 23 RF 99 91 7 20 3 1 0 8 4 21 2 0
Trevor Werner R 24 3B 477 431 51 85 21 5 10 46 38 188 10 3
Dustin Dickerson R 24 SS 421 364 46 74 9 0 1 27 45 108 5 3
Jac Caglianone L 22 1B 132 124 12 27 7 1 2 15 6 31 1 0
Carson Roccaforte L 23 CF 511 467 53 93 21 5 7 43 39 152 17 9
Luca Tresh R 25 C 404 369 39 83 16 1 10 43 30 106 0 1
Blake Mitchell L 20 C 492 428 51 79 14 2 12 51 56 179 11 4
River Town L 25 RF 358 308 36 67 11 2 4 36 35 63 6 3
Kale Emshoff R 27 DH 330 303 26 66 15 1 8 37 20 122 1 0
Diego Hernandez R 18 2B 229 209 25 49 5 2 1 20 10 54 8 3
Jean Ramirez L 24 RF 310 269 34 58 8 2 2 24 23 78 11 6
Spencer Nivens L 23 LF 409 368 44 74 15 2 13 47 36 120 4 3
Shervyen Newton B 26 SS 342 312 34 61 13 2 8 34 23 135 1 0
Deivis Nadal L 23 LF 248 220 24 38 10 3 3 21 18 110 6 2
Omar Hernandez R 23 C 335 306 32 61 11 1 2 23 19 78 9 3
Lizandro Rodriguez B 22 2B 375 338 36 69 12 3 3 32 25 93 10 5
Joe Gray Jr. R 25 CF 431 393 37 77 16 3 7 39 27 145 8 3

Batters – Advanced
Player PA BA OBP SLG OPS+ ISO BABIP Def WAR wOBA 3YOPS+ RC
Bobby Witt Jr. 668 .288 .343 .517 137 .229 .313 3 5.6 .363 136 118
Jonathan India 585 .248 .353 .385 107 .137 .298 -4 2.3 .329 108 71
Salvador Perez 557 .262 .314 .452 112 .190 .302 -6 2.2 .326 102 73
Maikel Garcia 601 .255 .309 .359 87 .104 .306 9 2.1 .294 90 68
Michael Massey 465 .259 .302 .431 103 .172 .293 1 1.7 .315 103 57
Vinnie Pasquantino 535 .261 .331 .470 121 .209 .266 -2 1.6 .342 120 74
Drew Waters 466 .238 .313 .408 100 .171 .328 0 1.6 .314 101 58
Dairon Blanco 322 .263 .326 .391 100 .128 .338 6 1.5 .315 96 49
Carter Jensen 560 .217 .302 .355 84 .138 .286 1 1.5 .290 90 55
Kyle Isbel 404 .241 .300 .391 92 .150 .289 5 1.4 .301 91 46
Cam Devanney 476 .229 .297 .376 88 .147 .299 2 1.3 .296 86 50
Freddy Fermin 340 .252 .310 .382 93 .129 .295 1 1.2 .303 86 37
Tyler Gentry 500 .238 .319 .376 94 .138 .331 6 1.1 .307 97 55
John Rave 531 .238 .311 .382 93 .144 .311 7 1.1 .303 94 60
Devin Mann 444 .234 .321 .384 97 .149 .306 8 1.1 .310 97 49
Paul DeJong 441 .214 .272 .390 83 .176 .272 3 1.0 .287 79 44
Brian O’Keefe 334 .234 .299 .415 98 .181 .283 -3 1.0 .310 93 38
Josh Lester 476 .232 .282 .395 87 .164 .284 4 1.0 .292 87 50
Nick Loftin 474 .246 .322 .367 93 .122 .280 -2 1.0 .305 94 52
Ryan Fitzgerald 415 .221 .293 .367 84 .146 .289 5 0.8 .289 81 42
Tyler Tolbert 525 .223 .285 .315 68 .092 .310 4 0.8 .267 71 48
Jack Pineda 506 .231 .305 .332 79 .101 .312 0 0.8 .284 81 48
Adam Frazier 415 .250 .316 .357 89 .107 .291 -1 0.7 .298 85 44
Garrett Hampson 310 .243 .303 .347 82 .104 .322 3 0.7 .287 81 33
Nelson Velázquez 472 .232 .307 .412 99 .180 .293 0 0.5 .313 102 56
Joey Wiemer 442 .219 .301 .341 80 .122 .302 1 0.5 .285 85 44
Nick Pratto 501 .228 .313 .392 96 .164 .334 0 0.5 .308 97 56
Yuli Gurriel 405 .261 .326 .385 99 .124 .298 0 0.4 .311 99 47
Jordan Groshans 453 .239 .305 .316 75 .078 .293 4 0.4 .278 76 40
Cavan Biggio 333 .210 .326 .328 84 .118 .284 -2 0.4 .297 83 31
Robbie Grossman 367 .225 .333 .347 92 .122 .292 0 0.2 .306 88 37
Gavin Cross 429 .223 .289 .367 83 .144 .296 3 0.2 .286 85 45
Javier Vaz 512 .238 .318 .327 82 .089 .269 -6 0.1 .289 85 50
Braden Shewmake 377 .218 .257 .351 68 .133 .258 3 0.1 .264 71 36
Tommy Pham 455 .247 .316 .382 95 .135 .310 -4 0.1 .307 91 52
Hunter Renfroe 448 .232 .297 .399 93 .168 .266 -2 0.1 .303 89 49
Chris Brito 293 .222 .332 .304 81 .082 .273 2 0.0 .292 83 26
Justin Johnson 388 .210 .290 .277 61 .067 .275 4 0.0 .259 64 30
Dillan Shrum 422 .211 .302 .351 83 .140 .328 3 0.0 .291 83 39
Brett Squires 391 .221 .297 .339 78 .118 .323 5 0.0 .282 82 39
Leonel Valera 391 .232 .278 .345 74 .113 .333 -4 -0.1 .273 77 38
MJ Melendez 513 .237 .310 .437 107 .200 .284 -11 -0.1 .322 109 65
Peyton Wilson 507 .225 .300 .341 80 .117 .289 1 -0.2 .285 82 50
Kyle Hayes 85 .151 .261 .233 40 .082 .232 0 -0.2 .233 45 5
Sam Kulasingam 99 .220 .263 .275 51 .055 .286 2 -0.2 .239 55 7
Trevor Werner 477 .197 .266 .339 68 .141 .322 0 -0.3 .266 73 42
Dustin Dickerson 421 .203 .298 .236 53 .033 .286 1 -0.4 .251 55 28
Jac Caglianone 132 .218 .265 .339 68 .121 .275 -1 -0.5 .262 72 11
Carson Roccaforte 511 .199 .262 .311 60 .111 .279 4 -0.5 .254 65 45
Luca Tresh 404 .225 .285 .355 78 .130 .289 -11 -0.5 .281 81 38
Blake Mitchell 492 .185 .287 .311 68 .126 .283 -9 -0.5 .270 77 42
River Town 358 .217 .316 .305 76 .088 .261 -3 -0.6 .282 78 32
Kale Emshoff 330 .217 .276 .353 75 .135 .334 0 -0.6 .276 74 30
Diego Hernandez 229 .235 .279 .292 61 .057 .312 -3 -0.7 .255 61 20
Jean Ramirez 310 .216 .281 .282 59 .067 .296 3 -0.7 .255 63 26
Spencer Nivens 409 .201 .274 .358 76 .157 .259 -1 -0.8 .277 84 38
Shervyen Newton 342 .195 .256 .327 62 .131 .313 -5 -0.8 .256 67 26
Deivis Nadal 248 .173 .244 .286 48 .114 .327 2 -0.9 .237 55 17
Omar Hernandez 335 .199 .250 .261 44 .062 .261 -1 -1.0 .229 48 23
Lizandro Rodriguez 375 .204 .266 .284 55 .080 .273 -3 -1.1 .248 62 29
Joe Gray Jr. 431 .196 .258 .305 57 .109 .291 -4 -1.3 .250 62 34

Batters – Top Near-Age Offensive Comps
Player Hit Comp 1 Hit Comp 2 Hit Comp 3
Bobby Witt Jr. Francisco Lindor Alex Rodriguez Dickie Thon
Jonathan India D’Angelo Jimenez Topper Rigney Willie Kamm
Salvador Perez Terry Steinbach Walker Cooper Ray Mueller
Maikel Garcia Horace Clarke Luis Aparicio Jason Bourgeois
Michael Massey Jack Dittmer Matt Downs Tito Fuentes
Vinnie Pasquantino Babe Young Tino Martinez Ed Kranepool
Drew Waters Earl Robinson Blake Tekotte Pete Milne
Dairon Blanco Vince Coleman Michael Lang Bubba Morton
Carter Jensen JD Closser Joe Nolan Donnie Scott
Kyle Isbel Steve Hecht Gene Kingsale Jim Buckner
Cam Devanney Steve Scarborough Matt Macri Jerry Kindall
Freddy Fermin Gary Bennett Joe Azcue Buddy Rosar
Tyler Gentry James Ramsey Byron Gettis Tyrone Horne
John Rave Clete Thomas Demond Smith Matthew den Dekker
Devin Mann Paul McAnulty Ossie Blanco Scott Stahoviak
Paul DeJong Pep Young Tim Pahuta Lee Elia
Brian O’Keefe Nick Hundley Robinson Chirinos Brian Dorsett
Josh Lester Marshall McDougall Les Bell Juan Uribe
Nick Loftin J.D. Pulfer Tim Jones Jerry McDonald
Ryan Fitzgerald Tom Heintzelman Andy Sheets Dale Berra
Tyler Tolbert Rudy Rufer Jorge Nunez Nelson Castro
Jack Pineda Drew Jackson Mark Belanger Damian Jackson
Adam Frazier Kevin Sefcik Casey Candaele Will Rhymes
Garrett Hampson Nook Logan Chris Duffy Glen Barker
Nelson Velázquez Gene Oliver Jesse Barfield Johnny Weekly
Joey Wiemer LeJon Powell Joseph Hicks Shawn Payne
Nick Pratto Marv Blaylock Tyrone Horne Jim Orsag
Yuli Gurriel Tony Gonzalez Adam Kennedy Butch McCord
Jordan Groshans Mark Germann Dave Cripe Luis Galindo
Cavan Biggio Woody English Nolan Fontana Harvey Zernia
Robbie Grossman Michael Tucker Gary Geiger Phil Stephenson
Gavin Cross Pat Bryant Kevin Belcher Tito Nanni
Javier Vaz Matt Gallegos Wayne Meadows Jerry McDonald
Braden Shewmake Johnnie Walker Brandon Carter Mike Ramsey
Tommy Pham Tommy Harper Mike Kreevich Nic Jackson
Hunter Renfroe Glenn Davis Micah Hoffpauir Carlos González
Chris Brito Bo Thompson Josh Alley Wes Rachels
Justin Johnson Dan Larson Sherwin Minster William Hallstrom
Dillan Shrum Ron Durham Billy Martin Brock Peterson
Brett Squires Joe Cherry Bob Detherage Jerod Edmondson
Leonel Valera Rolando Gomez Jackie Hernandez Rich Saitta
MJ Melendez Gary Rajsich Roger Maris Josh Reddick
Peyton Wilson Shawn Payne Darren Burton Terrell Lowery
Kyle Hayes Drew Larned Bryan Graves Nick Derba
Sam Kulasingam Julio Cruceta T.J. Gamba Anthony Ray
Trevor Werner Corey Ragsdale Scott Hemond Brett King
Dustin Dickerson Doug Bernier John Ihlenburg Danny Solano
Jac Caglianone Jem Argenal Omar Lebron Chao-Ting Tang
Carson Roccaforte Adam White Harvey Brumfield Arturo McDowell
Luca Tresh Don McCormack Ronn Reynolds Rick Bradley
Blake Mitchell Kurt Kingsolver Ben Petrick Lamar Drummonds
River Town Tanner Mathis Junior Ruiz Josh Alley
Kale Emshoff Joe Rapp Steve Jackson Sean Buckley
Diego Hernandez Franklin Font Deiner Lopez Matt Lawson
Jean Ramirez Luis Ayala Jason Alstead P.J. Williams
Spencer Nivens Orsino Hill Joe Wallis Jared Keel
Shervyen Newton Chuck Jeroloman Ray Busse Mike Trahan
Deivis Nadal Curtis Charles Sandy Santos Drew Rundle
Omar Hernandez Felix Minaya John Duncan Mike Durant
Lizandro Rodriguez James Lofton David Howard Ramon Perez
Joe Gray Jr. Ronnie Jebavy Billy Murphy Billy Mottram

Batters – 80th/20th Percentiles
Player 80th BA 80th OBP 80th SLG 80th OPS+ 80th WAR 20th BA 20th OBP 20th SLG 20th OPS+ 20th WAR
Bobby Witt Jr. .314 .371 .582 162 7.7 .261 .315 .462 115 3.9
Jonathan India .274 .379 .437 126 3.6 .219 .324 .338 89 0.9
Salvador Perez .289 .337 .503 131 3.5 .235 .289 .396 90 0.8
Maikel Garcia .281 .338 .404 105 3.4 .227 .279 .317 68 0.6
Michael Massey .284 .328 .479 122 2.8 .232 .276 .374 83 0.5
Vinnie Pasquantino .289 .355 .529 143 3.0 .238 .304 .417 103 0.3
Drew Waters .266 .341 .456 121 2.8 .207 .279 .356 79 0.4
Dairon Blanco .295 .354 .444 122 2.5 .234 .296 .342 81 0.7
Carter Jensen .248 .332 .412 109 3.2 .187 .271 .304 65 0.2
Kyle Isbel .268 .327 .450 114 2.4 .215 .273 .343 72 0.4
Cam Devanney .258 .323 .427 107 2.4 .203 .272 .329 68 0.2
Freddy Fermin .284 .340 .434 115 2.1 .226 .287 .337 77 0.5
Tyler Gentry .266 .343 .422 112 2.2 .208 .290 .327 74 -0.1
John Rave .263 .336 .431 113 2.4 .210 .284 .337 74 -0.1
Devin Mann .262 .345 .435 118 2.1 .207 .292 .342 78 0.1
Paul DeJong .236 .297 .445 101 2.0 .189 .252 .345 66 0.1
Brian O’Keefe .257 .327 .465 117 1.8 .205 .273 .357 76 0.1
Josh Lester .255 .301 .447 105 2.0 .207 .254 .354 71 0.0
Nick Loftin .270 .348 .409 110 1.9 .217 .293 .318 73 -0.2
Ryan Fitzgerald .251 .321 .422 104 1.8 .193 .264 .317 64 -0.2
Tyler Tolbert .251 .310 .357 87 2.1 .199 .258 .272 51 -0.2
Jack Pineda .256 .328 .371 96 1.8 .204 .280 .293 64 -0.2
Adam Frazier .279 .348 .407 108 1.8 .219 .290 .312 70 -0.2
Garrett Hampson .272 .332 .396 103 1.5 .215 .274 .299 61 -0.1
Nelson Velázquez .258 .335 .479 121 1.7 .202 .278 .360 77 -0.7
Joey Wiemer .248 .326 .385 98 1.4 .193 .272 .298 61 -0.5
Nick Pratto .254 .338 .450 118 1.7 .200 .283 .338 75 -0.8
Yuli Gurriel .292 .354 .430 116 1.4 .228 .293 .338 77 -0.6
Jordan Groshans .264 .330 .354 92 1.4 .209 .277 .276 58 -0.5
Cavan Biggio .237 .354 .371 103 1.1 .186 .298 .284 66 -0.3
Robbie Grossman .253 .363 .393 111 1.0 .193 .300 .292 68 -0.8
Gavin Cross .250 .316 .419 102 1.2 .197 .264 .322 64 -0.8
Javier Vaz .265 .347 .368 101 1.3 .209 .289 .287 64 -1.0
Braden Shewmake .244 .286 .411 93 1.2 .189 .231 .304 52 -0.7
Tommy Pham .278 .346 .433 116 1.3 .214 .288 .335 73 -1.0
Hunter Renfroe .253 .322 .449 111 1.0 .202 .269 .345 71 -1.0
Chris Brito .252 .366 .343 101 0.7 .196 .305 .262 64 -0.7
Justin Johnson .242 .320 .321 81 0.9 .183 .264 .239 44 -0.8
Dillan Shrum .240 .330 .410 105 1.1 .182 .276 .301 61 -1.1
Brett Squires .251 .326 .392 99 0.9 .195 .271 .295 58 -1.0
Leonel Valera .263 .309 .400 98 1.1 .199 .248 .291 53 -1.0
MJ Melendez .265 .336 .504 131 1.4 .212 .280 .385 86 -1.2
Peyton Wilson .248 .329 .384 97 0.9 .197 .276 .301 63 -1.2
Kyle Hayes .182 .293 .282 62 0.0 .122 .230 .192 21 -0.4
Sam Kulasingam .254 .295 .322 74 0.1 .191 .234 .237 34 -0.5
Trevor Werner .225 .293 .382 88 0.8 .168 .239 .283 47 -1.5
Dustin Dickerson .234 .330 .272 71 0.5 .172 .273 .204 37 -1.3
Jac Caglianone .252 .298 .397 91 -0.1 .192 .241 .285 48 -0.8
Carson Roccaforte .227 .290 .357 80 0.7 .173 .236 .277 43 -1.5
Luca Tresh .257 .314 .405 99 0.5 .200 .254 .312 59 -1.5
Blake Mitchell .218 .317 .377 92 0.9 .155 .253 .257 46 -1.9
River Town .247 .344 .352 95 0.1 .193 .290 .265 59 -1.4
Kale Emshoff .242 .301 .399 93 0.1 .193 .248 .308 55 -1.5
Diego Hernandez .269 .313 .338 82 0.0 .200 .243 .248 39 -1.2
Jean Ramirez .247 .312 .330 81 0.1 .187 .251 .246 42 -1.4
Spencer Nivens .229 .300 .405 95 0.2 .174 .246 .307 56 -1.7
Shervyen Newton .221 .286 .383 83 0.0 .164 .227 .278 41 -1.7
Deivis Nadal .203 .275 .339 69 -0.3 .140 .213 .232 26 -1.6
Omar Hernandez .238 .286 .310 67 0.0 .169 .220 .225 26 -1.7
Lizandro Rodriguez .232 .291 .337 75 -0.3 .179 .240 .248 37 -2.0
Joe Gray Jr. .225 .286 .354 77 -0.2 .172 .236 .261 41 -2.1

Batters – Platoon Splits
Player BA vs. L OBP vs. L SLG vs. L BA vs. R OBP vs. R SLG vs. R
Bobby Witt Jr. .292 .350 .528 .287 .340 .513
Jonathan India .255 .366 .393 .245 .347 .382
Salvador Perez .266 .325 .455 .261 .310 .451
Maikel Garcia .266 .324 .394 .249 .302 .341
Michael Massey .252 .299 .417 .262 .304 .437
Vinnie Pasquantino .258 .328 .445 .263 .333 .483
Drew Waters .237 .306 .404 .238 .317 .412
Dairon Blanco .274 .341 .411 .255 .315 .376
Carter Jensen .208 .286 .326 .221 .308 .367
Kyle Isbel .228 .288 .347 .245 .304 .408
Cam Devanney .237 .306 .391 .224 .292 .368
Freddy Fermin .259 .326 .388 .249 .300 .378
Tyler Gentry .240 .326 .390 .236 .315 .368
John Rave .236 .306 .354 .239 .312 .394
Devin Mann .238 .329 .392 .233 .317 .380
Paul DeJong .211 .281 .394 .214 .269 .388
Brian O’Keefe .244 .313 .429 .227 .291 .405
Josh Lester .223 .268 .382 .237 .289 .403
Nick Loftin .252 .335 .394 .242 .314 .352
Ryan Fitzgerald .217 .287 .357 .223 .296 .372
Tyler Tolbert .233 .301 .320 .218 .276 .312
Jack Pineda .218 .293 .303 .235 .310 .343
Adam Frazier .241 .305 .345 .252 .319 .360
Garrett Hampson .247 .308 .361 .240 .300 .339
Nelson Velázquez .238 .319 .429 .229 .301 .404
Joey Wiemer .232 .314 .374 .210 .292 .319
Nick Pratto .223 .308 .385 .231 .315 .397
Yuli Gurriel .265 .339 .381 .259 .320 .386
Jordan Groshans .240 .313 .329 .238 .300 .309
Cavan Biggio .203 .318 .284 .213 .328 .343
Robbie Grossman .237 .345 .355 .220 .327 .344
Gavin Cross .217 .276 .349 .226 .294 .375
Javier Vaz .237 .313 .322 .239 .320 .329
Braden Shewmake .211 .244 .336 .221 .264 .358
Tommy Pham .256 .338 .385 .244 .307 .381
Hunter Renfroe .240 .319 .416 .228 .287 .391
Chris Brito .224 .341 .316 .220 .328 .298
Justin Johnson .218 .304 .297 .207 .284 .269
Dillan Shrum .210 .301 .370 .211 .302 .343
Brett Squires .216 .293 .318 .222 .298 .345
Leonel Valera .239 .290 .373 .228 .272 .329
MJ Melendez .237 .302 .407 .237 .313 .449
Peyton Wilson .218 .295 .346 .227 .302 .340
Kyle Hayes .160 .276 .200 .146 .255 .250
Sam Kulasingam .207 .250 .241 .226 .269 .290
Trevor Werner .198 .274 .351 .197 .263 .333
Dustin Dickerson .207 .305 .234 .202 .295 .237
Jac Caglianone .194 .256 .250 .227 .269 .375
Carson Roccaforte .198 .255 .302 .199 .265 .314
Luca Tresh .237 .300 .390 .219 .277 .339
Blake Mitchell .170 .266 .250 .190 .294 .332
River Town .205 .304 .273 .223 .322 .318
Kale Emshoff .224 .288 .364 .214 .269 .347
Diego Hernandez .243 .293 .300 .230 .272 .288
Jean Ramirez .211 .277 .263 .218 .283 .290
Spencer Nivens .198 .261 .317 .202 .279 .375
Shervyen Newton .198 .255 .337 .194 .257 .322
Deivis Nadal .167 .225 .288 .175 .251 .286
Omar Hernandez .208 .259 .277 .195 .245 .254
Lizandro Rodriguez .208 .262 .302 .202 .268 .277
Joe Gray Jr. .197 .268 .316 .195 .252 .299

Pitchers – Standard
Player T Age W L ERA G GS IP H ER HR BB SO
Cole Ragans L 27 10 7 3.51 30 27 156.3 134 61 16 58 174
Seth Lugo R 35 10 9 3.81 30 26 160.7 156 68 19 44 135
Michael Wacha R 33 9 8 4.07 27 26 143.7 140 65 19 42 119
Noah Cameron L 25 6 6 4.35 23 23 109.7 110 53 15 33 95
Kris Bubic L 27 5 4 4.00 33 15 87.7 83 39 10 31 88
Michael Lorenzen R 33 6 7 4.45 27 24 127.3 120 63 17 52 94
Daniel Lynch IV L 28 5 6 4.50 30 22 128.0 132 64 17 42 103
Kyle Wright R 29 6 7 4.32 17 17 93.7 91 45 11 32 76
Alec Marsh R 27 8 10 4.55 27 25 126.7 120 64 17 48 122
Steven Zobac R 24 7 9 4.51 23 21 107.7 114 54 15 31 81
Hunter Harvey R 30 3 3 3.46 49 0 52.0 46 20 5 16 52
Chandler Champlain R 25 6 9 4.76 25 24 121.0 130 64 16 41 82
Angel Zerpa L 25 3 2 4.08 47 8 70.7 70 32 8 24 58
Lucas Erceg R 30 4 3 3.50 53 0 54.0 45 21 4 24 60
John Schreiber R 31 4 2 3.74 56 2 55.3 50 23 4 22 51
Dinelson Lamet R 32 4 6 4.68 22 14 75.0 77 39 10 33 62
Andrew Hoffmann R 25 4 7 4.79 25 18 88.3 91 47 11 36 65
James McArthur R 28 4 5 4.18 43 5 60.3 59 28 7 20 54
Jonathan Bowlan R 28 6 9 4.75 29 16 91.0 97 48 13 32 68
Austin Cox L 28 3 3 4.64 34 10 77.7 78 40 9 35 58
Carlos Hernández R 28 3 4 4.26 46 6 69.7 63 33 7 31 65
Luinder Avila R 23 4 7 5.06 22 21 90.7 94 51 11 42 62
Cruz Noriega R 27 4 5 4.74 27 8 68.3 75 36 10 19 44
Sam Long L 29 3 3 4.30 49 2 60.7 58 29 8 24 53
Taylor Clarke R 32 2 4 4.80 29 9 54.3 60 29 8 18 43
Tyson Guerrero L 26 4 7 5.13 23 21 98.3 102 56 15 44 75
Evan Sisk L 28 3 4 4.27 52 1 52.7 48 25 5 27 49
Ben Kudrna R 22 5 8 5.21 22 21 102.0 111 59 16 45 70
Steven Cruz R 26 2 3 4.39 49 1 53.3 49 26 6 27 51
Josh Taylor L 32 1 1 4.32 28 1 25.0 26 12 3 9 24
Ryan Brady R 26 4 4 4.62 39 2 64.3 69 33 8 21 42
Eric Cerantola R 25 3 3 5.00 32 6 63.0 59 35 8 38 60
Tyler Duffey R 34 3 3 4.54 35 0 39.7 38 20 5 19 35
Chris Stratton R 34 3 3 4.53 51 0 55.7 54 28 6 25 45
Anthony Simonelli R 26 3 4 4.65 38 1 60.0 60 31 8 23 49
Zach Davies R 32 3 4 5.44 18 18 84.3 92 51 13 39 58
Will Smith L 35 2 3 4.75 45 0 41.7 41 22 6 15 35
William Fleming R 26 3 6 5.46 23 18 92.3 108 56 14 35 46
Anderson Paulino R 26 3 4 4.89 41 2 57.0 62 31 7 22 36
Beck Way R 25 4 6 5.37 35 9 63.7 63 38 8 39 50
Keylan Killgore L 28 3 5 4.94 37 0 47.3 47 26 6 24 41
Jacob Wallace R 26 3 5 4.92 43 0 53.0 49 29 6 33 49
Brandon Johnson R 26 3 4 5.08 40 0 51.3 53 29 8 25 45
Chase Wallace R 26 2 3 5.18 33 0 41.7 45 24 6 21 28

Pitchers – Advanced
Player IP K/9 BB/9 HR/9 BB% K% BABIP ERA+ 3ERA+ FIP ERA- WAR
Cole Ragans 156.3 10.0 3.3 0.9 8.8% 26.4% .293 122 119 3.49 82 2.9
Seth Lugo 160.7 7.6 2.5 1.1 6.5% 20.1% .290 112 105 3.97 89 2.4
Michael Wacha 143.7 7.5 2.6 1.2 6.9% 19.6% .287 105 101 4.20 95 1.8
Noah Cameron 109.7 7.8 2.7 1.2 7.0% 20.2% .296 98 102 4.24 102 1.1
Kris Bubic 87.7 9.0 3.2 1.0 8.3% 23.6% .302 107 109 3.82 94 1.1
Michael Lorenzen 127.3 6.6 3.7 1.2 9.5% 17.2% .270 96 93 4.76 104 1.1
Daniel Lynch IV 128.0 7.2 3.0 1.2 7.6% 18.7% .298 95 96 4.40 105 1.0
Kyle Wright 93.7 7.3 3.1 1.1 7.9% 18.9% .288 99 99 4.33 101 1.0
Alec Marsh 126.7 8.7 3.4 1.2 8.8% 22.4% .293 94 95 4.37 106 1.0
Steven Zobac 107.7 6.8 2.6 1.3 6.7% 17.5% .297 95 99 4.46 106 0.9
Hunter Harvey 52.0 9.0 2.8 0.9 7.4% 24.1% .291 123 120 3.47 81 0.7
Chandler Champlain 121.0 6.1 3.0 1.2 7.8% 15.5% .296 90 94 4.68 111 0.7
Angel Zerpa 70.7 7.4 3.1 1.0 7.9% 19.0% .294 105 109 4.15 95 0.7
Lucas Erceg 54.0 10.0 4.0 0.7 10.3% 25.8% .293 122 117 3.59 82 0.6
John Schreiber 55.3 8.3 3.6 0.7 9.3% 21.6% .293 114 110 3.63 88 0.6
Dinelson Lamet 75.0 7.4 4.0 1.2 9.7% 18.3% .299 91 89 4.74 110 0.5
Andrew Hoffmann 88.3 6.6 3.7 1.1 9.3% 16.8% .293 89 93 4.72 112 0.5
James McArthur 60.3 8.1 3.0 1.0 7.7% 20.8% .297 102 103 4.14 98 0.4
Jonathan Bowlan 91.0 6.7 3.2 1.3 8.0% 17.0% .298 90 91 4.76 111 0.4
Austin Cox 77.7 6.7 4.1 1.0 10.2% 16.9% .290 92 93 4.66 109 0.4
Carlos Hernández 69.7 8.4 4.0 0.9 10.3% 21.6% .287 100 100 4.04 100 0.4
Luinder Avila 90.7 6.2 4.2 1.1 10.3% 15.2% .290 84 90 5.01 119 0.3
Cruz Noriega 68.3 5.8 2.5 1.3 6.4% 14.8% .294 90 92 4.76 111 0.2
Sam Long 60.7 7.9 3.6 1.2 9.1% 20.1% .286 99 99 4.38 101 0.2
Taylor Clarke 54.3 7.1 3.0 1.3 7.5% 17.9% .310 89 85 4.61 112 0.1
Tyson Guerrero 98.3 6.9 4.0 1.4 10.1% 17.2% .290 83 86 5.22 120 0.1
Evan Sisk 52.7 8.4 4.6 0.9 11.6% 21.0% .291 100 100 4.32 100 0.1
Ben Kudrna 102.0 6.2 4.0 1.4 9.8% 15.2% .294 82 89 5.29 122 0.1
Steven Cruz 53.3 8.6 4.6 1.0 11.3% 21.4% .291 97 101 4.47 103 0.1
Josh Taylor 25.0 8.6 3.2 1.1 8.2% 21.8% .319 99 93 4.02 101 0.0
Ryan Brady 64.3 5.9 2.9 1.1 7.4% 14.8% .295 93 95 4.65 108 0.0
Eric Cerantola 63.0 8.6 5.4 1.1 13.1% 20.6% .290 85 91 5.02 117 0.0
Tyler Duffey 39.7 7.9 4.3 1.1 10.8% 19.9% .289 94 87 4.64 106 -0.1
Chris Stratton 55.7 7.3 4.0 1.0 10.2% 18.4% .289 94 89 4.42 106 -0.1
Anthony Simonelli 60.0 7.4 3.5 1.2 8.8% 18.7% .291 92 96 4.63 109 -0.1
Zach Davies 84.3 6.2 4.2 1.4 10.3% 15.4% .296 78 76 5.27 127 -0.1
Will Smith 41.7 7.6 3.2 1.3 8.4% 19.6% .287 90 83 4.59 111 -0.1
William Fleming 92.3 4.5 3.4 1.4 8.4% 11.0% .297 78 81 5.52 128 -0.2
Anderson Paulino 57.0 5.7 3.5 1.1 8.6% 14.1% .297 87 91 4.93 115 -0.2
Beck Way 63.7 7.1 5.5 1.1 13.2% 16.9% .288 80 84 5.50 126 -0.2
Keylan Killgore 47.3 7.8 4.6 1.1 11.2% 19.1% .295 86 88 4.81 116 -0.3
Jacob Wallace 53.0 8.3 5.6 1.0 13.6% 20.2% .289 87 90 4.95 115 -0.3
Brandon Johnson 51.3 7.9 4.4 1.4 10.8% 19.4% .300 84 89 4.97 119 -0.4
Chase Wallace 41.7 6.0 4.5 1.3 10.9% 14.5% .293 82 84 5.51 121 -0.4

Pitchers – Top Near-Age Comps
Player Pit Comp 1 Pit Comp 2 Pit Comp 3
Cole Ragans Fernando Valenzuela Gary Peters David Price
Seth Lugo Ervin Santana Al Gettel Chris Carpenter
Michael Wacha Bartolo Colon Ervin Santana Tom Candiotti
Noah Cameron Rich Pratt Adam Pettyjohn Mike Sodders
Kris Bubic Chris Narveson Cory Luebke Daniel Norris
Michael Lorenzen Chase Anderson Jake Arrieta Edinson Volquez
Daniel Lynch IV Bob Knepper Allen Watson Patrick Corbin
Kyle Wright Denny Galehouse Jason Hammel Carl Willey
Alec Marsh Jharel Cotton James Baldwin Ed Rakow
Steven Zobac Pablo Lopez Josue Matos Mike McCardell
Hunter Harvey Bobby Jenks Tommy Hunter Tom Gorman
Chandler Champlain Matt Wisler Tyler Mahle Daniel Mengden
Angel Zerpa Ed Vande Berg Carmen Pignatiello Rick Palma
Lucas Erceg Gerry Pirtle Don Robinson Steve Blateric
John Schreiber Jerry Dipoto Luis Aponte Todd Frohwirth
Dinelson Lamet Bill Kelso Jimmy Serrano Everett Stull
Andrew Hoffmann Paul Clemens Jeff Shaver Linty Ingram
James McArthur J.J. Trujillo Alan Busenitz John Brebbia
Jonathan Bowlan Hector Noesi Mike Wright Seth Lugo
Austin Cox Russ Swan Jake Woods Justin Hampson
Carlos Hernández J.C. Gutierrez Hansel Robles Phil Klein
Luinder Avila Michael Lorenzen Larry Tolliver Steve Monson
Cruz Noriega Scott Winchester Raul Alcantara Russell Henrichs
Sam Long Vic Lombardi Bob Shirley Dennis Kinney
Taylor Clarke Mike Lyons Bob Muncrief Pedro Ramos
Tyson Guerrero Ben Braymer Cody Forsythe Lance Schuermann
Evan Sisk Don Hood Danny Coulombe Jeremy Affeldt
Ben Kudrna Steve Staniland Curt Schilling Ron Schamp
Steven Cruz J.P. Feyereisen Jesus Colome Daniel Webb
Josh Taylor Jim Poole Fred Scherman Tom Hilgendorf
Ryan Brady Miles Mikolas Anthony Bass Brian Knoll
Eric Cerantola Ryan Helsley Zach Jackson Paul Demny
Tyler Duffey Matt Karchner Juan Acevedo Brian Boehringer
Chris Stratton Tom Hurd Tom Edens Bucky Brandon
Anthony Simonelli Kevin Hodge Steve Evans Jason Anderson
Zach Davies Andy Hawkins Armando Galarraga Chris Tillman
Will Smith Morrie Martin Bob McClure Al Holland
William Fleming Casey Delgado Gabe Ribas Alex Klonowski
Anderson Paulino Jason Jester Pat Currin Paul Quinzer
Beck Way Chris Bassitt Adam Harben Bill Melvin
Keylan Killgore Jake Benz Tom Funk Matt Yourkin
Jacob Wallace Jeff Nelson Eddie Gaillard Wes Littleton
Brandon Johnson Scott Schroeffel Ricardo Rodriguez Barry Armitage
Chase Wallace Michael Young Chip Winiarski Justin Garza

Pitchers – Splits and Percentiles
Player BA vs. L OBP vs. L SLG vs. L BA vs. R OBP vs. R SLG vs. R 80th WAR 20th WAR 80th ERA 20th ERA
Cole Ragans .256 .322 .394 .215 .290 .349 3.9 1.8 2.98 4.06
Seth Lugo .247 .311 .400 .252 .294 .399 3.4 1.6 3.32 4.33
Michael Wacha .230 .290 .369 .266 .317 .448 2.5 0.9 3.63 4.69
Noah Cameron .232 .298 .375 .263 .317 .436 1.8 0.3 3.85 5.07
Kris Bubic .262 .330 .440 .238 .304 .379 1.8 0.2 3.38 4.91
Michael Lorenzen .241 .333 .406 .246 .306 .403 1.7 0.3 4.01 5.06
Daniel Lynch IV .256 .323 .385 .262 .321 .440 1.7 0.1 4.05 5.18
Kyle Wright .264 .337 .466 .235 .303 .337 1.5 0.3 3.82 5.02
Alec Marsh .265 .339 .442 .223 .304 .368 1.8 0.0 3.99 5.23
Steven Zobac .279 .341 .452 .254 .300 .418 1.5 0.2 4.01 5.17
Hunter Harvey .234 .308 .362 .231 .283 .365 1.2 0.1 2.76 4.45
Chandler Champlain .272 .338 .446 .267 .324 .430 1.4 0.0 4.26 5.28
Angel Zerpa .253 .310 .374 .253 .320 .409 1.1 0.1 3.51 4.85
Lucas Erceg .237 .349 .366 .207 .294 .306 1.2 -0.1 2.82 4.35
John Schreiber .260 .339 .396 .216 .292 .310 1.1 -0.1 3.03 4.75
Dinelson Lamet .281 .365 .473 .240 .315 .387 0.9 0.0 4.22 5.30
Andrew Hoffmann .282 .369 .466 .242 .306 .382 0.9 -0.2 4.32 5.44
James McArthur .248 .325 .394 .252 .314 .402 0.9 -0.1 3.62 4.96
Jonathan Bowlan .259 .330 .431 .275 .335 .450 1.0 -0.3 4.22 5.42
Austin Cox .240 .315 .365 .263 .346 .431 0.9 -0.1 4.12 5.26
Carlos Hernández .216 .308 .368 .254 .327 .373 0.8 -0.2 3.75 5.00
Luinder Avila .260 .350 .409 .263 .346 .429 0.8 -0.2 4.60 5.47
Cruz Noriega .262 .324 .444 .282 .325 .456 0.6 -0.2 4.21 5.35
Sam Long .235 .300 .370 .252 .324 .426 0.7 -0.3 3.61 5.08
Taylor Clarke .267 .336 .446 .280 .328 .449 0.6 -0.3 4.09 5.60
Tyson Guerrero .271 .352 .421 .258 .344 .449 0.7 -0.5 4.60 5.72
Evan Sisk .205 .300 .282 .258 .359 .427 0.5 -0.4 3.66 5.11
Ben Kudrna .263 .338 .437 .279 .355 .470 0.7 -0.5 4.76 5.71
Steven Cruz .228 .327 .380 .248 .344 .389 0.4 -0.4 3.81 5.21
Josh Taylor .235 .297 .353 .277 .342 .462 0.3 -0.2 3.60 5.44
Ryan Brady .270 .346 .417 .268 .318 .430 0.5 -0.4 4.00 5.23
Eric Cerantola .212 .331 .365 .264 .373 .421 0.5 -0.6 4.36 5.95
Tyler Duffey .246 .342 .391 .247 .330 .424 0.3 -0.4 3.79 5.45
Chris Stratton .257 .356 .396 .241 .305 .388 0.3 -0.6 3.94 5.44
Anthony Simonelli .240 .319 .370 .265 .336 .449 0.4 -0.5 4.02 5.29
Zach Davies .259 .352 .443 .283 .345 .467 0.4 -0.7 4.91 6.14
Will Smith .246 .295 .404 .255 .333 .434 0.3 -0.6 3.91 5.90
William Fleming .308 .382 .473 .269 .333 .466 0.4 -0.6 4.92 5.92
Anderson Paulino .282 .359 .437 .264 .336 .424 0.1 -0.6 4.44 5.48
Beck Way .286 .404 .446 .226 .344 .380 0.1 -0.6 4.87 6.03
Keylan Killgore .246 .343 .344 .256 .347 .448 0.1 -0.6 4.32 5.64
Jacob Wallace .253 .361 .429 .230 .353 .354 0.1 -0.9 4.30 5.80
Brandon Johnson .266 .352 .447 .257 .333 .440 0.0 -0.8 4.50 5.76
Chase Wallace .316 .409 .539 .231 .324 .363 -0.2 -0.7 4.73 5.83

Players are listed with their most recent teams wherever possible. This includes players who are unsigned or have retired, players who will miss 2025 due to injury, and players who were released in 2024. So yes, if you see Joe Schmoe, who quit baseball back in August to form a Norwegian Ukulele Dixieland Jazz band that only covers songs by The Smiths, he’s still listed here intentionally. ZiPS is assuming a league with an ERA of 4.11.

Hitters are ranked by zWAR, which is to say, WAR values as calculated by me, Dan Szymborski, whose surname is spelled with a z. WAR values might differ slightly from those that appear in the full release of ZiPS. Finally, I will advise anyone against — and might karate chop anyone guilty of — merely adding up WAR totals on a depth chart to produce projected team WAR. It is important to remember that ZiPS is agnostic about playing time, and has no information about, for example, how quickly a team will call up a prospect or what veteran has fallen into disfavor.

As always, incorrect projections are either caused by misinformation, a non-pragmatic reality, or by the skillful sabotage of our friend and former editor. You can, however, still get mad at me on Twitter or on BlueSky.


Sick of the Dodgers Signing all the Free Agents? Well, Get Off Your Butt and Do Something About It.

Jayne Kamin-Oncea-Imagn Images

The Dodgers won 100 games in 2023. Then they signed the top two free agents in that year’s class: Shohei Ohtani and Yoshinobu Yamamoto, a pair of unicorns the likes of which aren’t available every offseason. In 2024, the Dodgers had the best record in baseball. Then they won the World Series, and along the way made the last two rounds of the playoffs look pretty easy. Ohtani won the NL MVP award.

And then they signed a bunch of new players and brought back a few more! Blake Snell! Roki Sasaki! Tanner Scott! Hyeseong Kim! Michael Conforto! Kirby Yates, probably! Teoscar Hernández! Blake Treinen! Kotaro Matsushima! (OK, Matsushima is a rugby player — I included him to see if you’re paying attention.)

MLB needs a salary cap, say two thirds of the 36,000 respondents to a much-circulated poll on MLB Trade Rumors. More jarring are the results to question no. 2: Almost exactly half of some 27,000 respondents would be willing to lose the entire 2027 season if it meant MLB instituted a salary cap. Read the rest of this entry »


Pirates Prospect Termarr Johnson Wants Us To See Him Play

Charles LeClaire-USA TODAY Sports

Back in early October, Termarr Johnson self-assuredly told MLB Pipeline’s Jim Callis that he is continuing to work on being “the best hitter in the world.” The 20-year-old Pittsburgh Pirates prospect didn’t put it quite that way when I spoke to him days later, but he did exude determination and confidence when addressing his craft. That’s understandable. Drafted fourth overall in 2022 out of Atlanta’s Mays High School, Johnson remains a high-ceiling hitter, albeit one whose developmental path hasn’t been as smooth as many had anticipated.

His 2024 season included both stumbles and strides. The 5-foot-7, 190-pound middle infielder logged a solid 121 wRC+ between High-A Greensboro (487 plate appearances) and Double-A Altoona (57), but as our lead prospect analyst Eric Longenhagen wrote last summer, Johnson’s “underlying contact data is pretty concerning.” Moreover, while his 15 home runs were indicative of plus power potential, the accompanying .386 slugging percentage was a bit underwhelming. Johnson’s left-handed stroke is unquestionably capable of causing damage, but further fine-tuning is needed before that can happen at the big league level.

Johnson discussed his approach to hitting shortly after the start of the Arizona Fall League season.

———

David Laurila: You’re still just 20 years old. Do you feel that you’ve settled into your identity as a hitter?

Termarr Johnson: “For sure. I feel like I have a pretty good swing, and I hit the ball hard pretty often, so I’m just trying to keep a good approach and bring the pitcher to me. I feel like that puts me in the best position possible. And to be honest with you, I’m a different hitter every at-bat. I’m a different hitter based on… like, every pitcher is different. Every pitch is different. Every situation is different. I’ll be a different hitter if there’s a runner on base and I’m trying to get him in, late in the game, or I’ll be a different hitter when I’m leading off the game.”

Laurila: That’s basically approach. What about mechanically? Read the rest of this entry »


Philadelphia Phillies Top 30 Prospects

Eric Longenhagen

Below is an analysis of the prospects in the farm system of the Philadelphia Phillies. Scouting reports were compiled with information provided by industry sources as well as my own observations. This is the fifth year we’re delineating between two anticipated relief roles, the abbreviations for which you’ll see in the “position” column below: MIRP for multi-inning relief pitchers, and SIRP for single-inning relief pitchers. The ETAs listed generally correspond to the year a player has to be added to the 40-man roster to avoid being made eligible for the Rule 5 draft. Manual adjustments are made where they seem appropriate, but we use that as a rule of thumb.

A quick overview of what FV (Future Value) means can be found here. A much deeper overview can be found here.

All of the ranked prospects below also appear on The Board, a resource the site offers featuring sortable scouting information for every organization. It has more details (and updated TrackMan data from various sources) than this article and integrates every team’s list so readers can compare prospects across farm systems. It can be found here. Read the rest of this entry »


2025 ZiPS Projections: Houston Astros

For the 21st consecutive season, the ZiPS projection system is unleashing a full set of prognostications. For more information on the ZiPS projections, please consult this year’s introduction and MLB’s glossary entry. The team order is selected by lot, and the next team up is the Houston Astros.

Batters

The 2024 season started terribly for the Astros, with a 12-24 record in the early going and most of their projected rotation on the IL. The hole the team dug was deep enough that even with them playing solid ball after early May, the Astros didn’t get above .500 for good until the end of June. Still, nobody in the AL West managed to take advantage of Houston’s weak start. The Astros built a comfortable lead throughout August, and though the Mariners never fell hopelessly behind in the race, they never made Houston really sweat either. Read the rest of this entry »


Can You Extrapolate a Part-Time Player?

Darren Yamashita-USA TODAY Sports

The other day, I was poking around on the Minnesota Twins’ RosterResource page. Mostly because the Twins have been quiet this offseason, I wanted to make sure they were still there and that I hadn’t missed another round of contraction rumors.

It’s fine, guys, I checked and the Twins are not going out of business anytime soon.

The other thing I noticed is that Minnesota had only two hitters who qualified for the batting title last season, which is not a lot. The Rangers and Brewers (which I would not have guessed) had seven each. And with Carlos Santana bound for his fifth go-around with Cleveland (it’s only his third but I know you were about to look), Willi Castro stands alone in Minnesota. The Marlins and Rays are the only other teams that are set to return only a single qualified hitter from 2024. Read the rest of this entry »