Archive for Cardinals

Another Fine Addition to Their Collection: Mariners Acquire Brendan Donovan in Three-Team Swap

Benny Sieu-Imagn Images

The first thing Chaim Bloom did after taking over baseball operations in St. Louis was trade away everything that wasn’t nailed down. Sonny Gray? Thanks for your contributions, now go try to win a ring in Boston. Willson Contreras? Gone, and to the same team. Nolan Arenado? Thanks for the memories, enjoy the desert. With those trades sorted, he’s moved on to step two: prying up some of those aforementioned nails to make more deals. The most recent shoe to drop in the Cardinals retooling might be the biggest one, though. Brendan Donovan is now a Seattle Mariner, the key piece in a three-team trade that sends Ben Williamson to Tampa Bay and a heaping helping of prospects and draft picks to the Cardinals.

Donovan isn’t a household name like many of the best Cardinals of recent years, but that has far more to do with the team’s middling success of late than any lack of talent. His combination of versatility and offensive firepower calls to mind Ben Zobrist, and unlike almost every other flexible defender who gets compared to Zobrist, this one actually makes sense. Zobrist ran a 121 wRC+ during his seven-year peak. Donovan’s career mark is 119, the same as his 2025 total. He’s under team control for two more years at a reasonable rate, too: $5.8 million this year, with his last trip through arbitration set for 2027.

“A plus bat who can play defense everywhere” generally isn’t a good title to have applied to you. That’s because most of the hitters who receive that label either aren’t plus bats, don’t play good defense, or both. But as I mentioned, that’s not Donovan, and we might as well examine each of those two skills, as he’s the entire reason this trade happened, the best player going to any of the three clubs by a mile. Read the rest of this entry »


Sunday Notes: Bobby Abreu, Jimmy Rollins, Chase Utley, and the 2026 HoF Ballot

This year’s Hall of Fame ballot included three former Philadelphia Phillies position players, none of whom received the necessary 319 votes (out of 425 cast) to gain election. Chase Utley fared best with 251 votes (59.1%), while Bobby Abreu got 131 (30.8%), and Jimmy Rollins received 108 (25.4%). As did my colleagues Jay Jaffe and Dan Szymborski, I put checkmarks next to Abreu’s and Utley’s names, but not Rollins’s.

How did other BBWAA voters choose among the Phillies trio? A comprehensive answer isn’t possible — not everyone makes their ballots public — but we do know about the 260 voters whose selections were shared on Ryan Thibodaux’s Ballot Tracker. Here is the breakdown as of yesterday afternoon courtesy of the Tracker’s Anthony Calamis:

66 voted for none of the three.
25 had all three.
52 had only Utley.
9 had only Abreu.
3 had only Rollins.
63 had Utley and Abreu, but not Rollins.
42 had Utley and Rollins, but not Abreu.

As for the players’ relative merit, that is in the eye of the beholder. Reasonable arguments, both for and against, can be made for all three former Phillies by prioritizing specific statistics and accolades — or even reputations (none of Abreu, Rollins, or Utley have been tainted by scandal). Read the rest of this entry »


2026 ZiPS Projections: St. Louis Cardinals

For the 22nd 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, as well as MLB’s glossary entry. The team order is selected by lot, and the ultimate team is the St. Louis Cardinals.

Batters

If you looked up “.500 team” in the dictionary, you’d find, well, nothing. THAT’S NOT HOW DICTIONARIES WORK. But if they did have extensive listings of colloquialisms and an editor obsessed with baseball, you might see the 2025 Cardinals. Despite not falling behind by double digits in the NL Central race until late in the season, the Cardinals certainly never felt like they were ever realistically in any playoff race. At the same time, they were also never enough of a doormat team to be interesting out of ineptitude. The Cards spent the season basically playing out the string, in baseball limbo while fans waited out the swan song year of executive vice-president John Mozeliak, with most of the interest surrounding when/if various veterans would be traded.

While roughly a .500-looking team has some wild card upside, St. Louis has the look of a team with an incredibly low ceiling in the short term, like on the level of that room near the start of Willy Wonka’s factory tour. Only Masyn Winn is a high threat to put up a 4-WAR season, and he’s already at that level, not someone who can break out to that level. But except for right field, since ZiPS has long since thrown in the towel on Jordan Walker, the Cardinals also aren’t bad anywhere in their lineup, either. Brendan Donovan is extremely versatile, but he could be traded sometime during the season, if not before then, and players like Nolan Gorman and JJ Wetherholt can also collect plate appearances playing a variety of positions. Wetherholt’s first full professional season was a dynamite one, and he gets a strong projection entering his first year in the big leagues. ZiPS at least sees him as an upgrade on the departed Nolan Arenado in 2026.

ZiPS thinks Lars Nootbaar is still young enough to bounce back from a real down season in 2025. When that may happen, though, is an open question. Last fall, he had surgery to shave down his heels to remedy his Haglund’s deformities, and reading the first half of this sentence makes me wonder if my brain has actually finally lost its last connection with reality. Nootbaar’s lack of ability to do much against lefties limits his upside, but like most of the rest of the team, he’ll be… fine. Also in that wide range of adequacy is Victor Scott II, who plays defense well enough these days to carry his abysmal offense, and Alec Burleson at first, who needs a lefty-crushing platoon partner, though he did improve some against southpaws last season. The Cardinals’ catching situation could be really interesting, depending on when and if Iván Herrera gets back to playing catcher. Even if he doesn’t, he’s shown he’s a good enough player to have value as a DH, and Pedro Pagés hits just enough that he’s not a problem starting behind the plate.

Luckily, the mid- and long-term outlooks for St. Louis are sunnier. Wetherholt has already been mentioned, but ZiPS thinks both Jimmy Crooks and Leonardo Bernal could hold their own as major league catchers. Joshua Baez has a strong long-term ZiPS projection, and the computer sees him as someone who could (and should) replace Walker if/when the former top prospect doesn’t come around.

Pitchers

As with the starting lineup, the Cards look like they’re going to have a very deep rotation, but one that’s almost mindblowingly average. Michael McGreevy has the best projected ERA of the starters, which ought to tell you a lot about the state of the rotation. If you believe ZiPS, St. Louis could field about three major league rotations of starting pitchers with an ERA+ somewhere in the 90s. So there’s not a lot of difference between the guys we have as getting the bulk of the innings on the depth chart (Matthew Liberatore, Andre Pallante, Dustin May, Kyle Leahy, Richard Fitts), and the guys who aren’t (Quinn Mathews, Tink Hence, Hunter Dobbins, Ixan Henderson, Tekoah Roby if not for the Tommy John surgery). In other words, this group probably won’t crack the top 10 in starting pitcher WAR, but there are enough spares that it likely won’t be an embarrassment, either.

While that’s not great for the team’s chances to contend in 2026, that does suggest a path to long-term benefits. The deep stable of no. 3 and no. 4 starters is decidedly on the young side, all in their 20s, and at least some of them ought to develop into something better. Mathews is probably the best candidate to do so, as is Hence, even though there’s a reasonable chance that the latter pitches out of the bullpen in the short term. Liam Doyle didn’t get an official projection here because of his lack of professional experience, but if I instruct ZiPS to use his college translations, he has a very good long-term outlook, too.

ZiPS projects the bullpen as below average, but not in dumpster-fire territory. The computer only really likes three relievers, JoJo Romero, Matt Svanson, and Gordon Graceffo, and a fourth if you believe the Cards will use Hence in relief in 2026. Outside of that quartet, there are a lot of guys with projected ERAs just above four in relief, firmly in C- territory. It’s probably not quite this bad, as the multitude of starting pitching options means the pen will get some reinforcements if the top starters are healthy, so someone like Leahy could end up here after all. In any case, this is a middling bullpen, one that probably won’t approach the production of last year’s unit, which had the ninth-best relief WAR in baseball.

All told, ZiPS sees St. Louis as, you guessed it, about a .500 team.

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
Masyn Winn R 24 SS 597 545 79 136 27 2 12 61 41 110 12 4
JJ Wetherholt L 23 SS 523 461 66 117 20 1 10 62 50 84 12 2
Brendan Donovan L 29 2B 534 473 63 129 26 1 11 54 47 70 3 3
Iván Herrera R 26 DH 464 402 58 110 20 1 14 60 49 91 8 2
Lars Nootbaar L 28 LF 539 465 68 114 24 2 16 54 66 108 5 3
Jimmy Crooks L 24 C 455 415 50 100 19 2 10 49 31 124 1 0
Nolan Gorman L 26 3B 463 413 57 92 18 0 21 61 46 148 3 1
Alec Burleson L 27 1B 530 486 58 133 23 1 18 68 36 73 5 1
Leonardo Bernal B 22 C 468 427 49 98 18 1 10 47 34 97 6 3
Victor Scott II L 25 CF 514 452 60 102 16 3 7 43 41 108 36 6
Pedro Pagés R 27 C 384 351 35 79 15 1 10 42 24 100 1 0
Thomas Saggese R 24 2B 546 502 63 125 24 2 11 58 32 141 6 3
José Fermín R 27 2B 349 299 43 71 18 0 6 38 37 38 11 4
Bryan Torres L 28 2B 460 393 53 109 17 1 4 43 53 74 16 6
Joshua Baez R 23 RF 468 418 55 98 22 2 12 57 36 137 24 5
César Prieto L 27 SS 519 482 60 125 27 2 7 56 24 76 6 7
Mike Antico L 28 LF 451 407 53 94 18 2 7 44 33 118 19 4
Nathan Church L 25 CF 493 448 62 111 18 2 7 50 31 64 12 4
Jon Jon Gazdar R 24 SS 460 417 46 100 13 1 1 43 24 56 9 4
Matt Koperniak L 28 RF 511 469 55 114 17 2 11 54 35 106 6 3
Ramon Mendoza R 25 3B 374 329 38 72 13 1 6 36 34 89 2 2
Yohel Pozo R 29 C 301 290 30 76 18 0 8 38 8 34 1 0
Noah Mendlinger L 25 RF 458 399 49 98 17 2 1 43 37 55 5 4
Blaze Jordan R 23 1B 530 494 58 120 25 1 12 58 28 68 2 1
Deniel Ortiz R 21 1B 473 422 50 91 19 1 11 53 42 148 18 6
Carlos Linarez R 24 C 157 146 12 29 4 1 2 13 8 64 1 1
Ryan Campos L 23 C 406 365 39 76 19 2 2 30 38 83 6 2
Sammy Hernandez R 22 C 395 347 36 68 12 0 3 34 28 88 4 2
Chase Davis L 24 CF 482 431 48 89 17 0 7 44 43 155 5 1
Dakota Harris R 24 3B 453 421 50 99 18 0 6 46 16 94 10 4
Graysen Tarlow R 24 C 190 165 14 37 4 0 1 15 16 49 0 2
Jesus Baez R 21 SS 435 402 49 88 13 0 12 45 27 86 4 3
Gavin Collins R 30 C 270 244 25 53 9 1 4 25 18 41 2 1
Jordan Walker R 24 RF 530 482 52 112 23 1 14 57 39 140 9 3
Jose Cordoba R 23 RF 282 260 28 56 14 2 2 25 14 59 7 2
Zach Levenson R 24 LF 441 394 47 84 16 1 10 46 40 101 4 5
Travis Honeyman R 24 CF 352 310 43 69 13 2 2 34 28 74 4 1
Chase Adkison R 26 DH 172 150 15 32 6 0 1 16 15 32 0 0
Jeremy Rivas R 23 SS 494 449 48 89 14 1 5 39 33 136 13 6
Miguel Villarroel R 24 SS 350 330 38 73 12 1 1 27 13 93 13 3
Tre Richardson R 24 2B 340 311 33 64 15 0 2 28 22 71 8 5
Andy Yerzy L 27 C 215 194 16 37 6 1 4 18 18 70 1 1
Michael Curialle R 25 3B 327 296 35 61 13 1 4 32 17 104 3 2
Trey Paige L 25 1B 386 350 42 71 13 4 3 31 29 122 4 2
Anyelo Encarnacion R 22 SS 423 383 37 74 13 2 5 33 33 154 9 4
Christian Martin L 23 2B 382 340 35 70 14 1 1 29 29 80 8 4
Ian Petrutz L 23 LF 361 320 30 72 14 1 4 36 26 56 1 7
Jacob Buchberger R 28 LF 404 371 43 79 11 2 6 35 30 104 7 3
Wade Stauss L 27 C 96 82 5 12 2 0 0 7 8 44 0 0
Brody Moore R 25 SS 400 369 42 80 12 1 2 29 22 94 9 3
Miguel Ugueto R 23 RF 251 240 23 54 10 1 2 20 6 48 6 4
R.J. Yeager R 27 1B 412 379 47 81 14 1 7 41 21 75 4 2
Johnfrank Salazar R 22 1B 302 278 25 57 12 0 2 25 17 53 7 1
Won-Bin Cho L 22 CF 418 376 41 79 14 1 4 34 32 129 12 4
Bryce Madron L 24 LF 207 176 21 26 5 0 1 12 26 62 1 4
Darlin Moquete R 26 LF 312 287 36 58 8 1 6 29 17 82 8 4
Josh Kross B 23 1B 420 387 42 73 15 2 10 44 22 129 0 1
Brayden Jobert L 25 1B 359 320 31 56 10 1 6 33 28 111 5 4

Batters – Advanced
Player PA BA OBP SLG OPS+ ISO BABIP Def WAR wOBA 3YOPS+ RC
Masyn Winn 597 .250 .306 .372 92 .123 .293 10 3.2 .298 95 66
JJ Wetherholt 523 .254 .338 .367 100 .113 .292 2 2.9 .314 101 60
Brendan Donovan 534 .273 .349 .402 113 .129 .301 -4 2.4 .330 109 68
Iván Herrera 464 .274 .362 .433 125 .159 .323 0 2.4 .348 124 65
Lars Nootbaar 539 .245 .340 .409 112 .164 .287 4 2.3 .328 109 67
Jimmy Crooks 455 .241 .300 .369 89 .128 .320 4 2.0 .293 91 46
Nolan Gorman 463 .223 .300 .419 101 .196 .291 1 1.9 .311 102 53
Alec Burleson 530 .274 .325 .436 114 .162 .291 -1 1.8 .330 112 70
Leonardo Bernal 468 .230 .290 .347 80 .117 .275 7 1.8 .281 85 45
Victor Scott II 514 .226 .300 .321 77 .095 .282 7 1.8 .278 82 53
Pedro Pagés 384 .225 .277 .359 79 .134 .286 7 1.6 .277 76 35
Thomas Saggese 546 .249 .301 .371 89 .122 .326 2 1.6 .294 91 59
José Fermín 349 .237 .335 .358 97 .121 .255 1 1.5 .310 95 40
Bryan Torres 460 .277 .361 .356 105 .079 .333 -8 1.4 .322 103 56
Joshua Baez 468 .234 .306 .383 94 .149 .320 5 1.4 .302 100 56
César Prieto 519 .259 .303 .367 89 .108 .296 -4 1.1 .294 88 58
Mike Antico 451 .231 .296 .337 79 .106 .309 8 0.9 .281 80 46
Nathan Church 493 .248 .305 .344 84 .096 .276 -1 0.9 .287 85 51
Jon Jon Gazdar 460 .240 .307 .283 69 .043 .275 2 0.7 .270 71 40
Matt Koperniak 511 .243 .299 .358 86 .115 .293 5 0.7 .289 86 53
Ramon Mendoza 374 .219 .297 .319 75 .100 .282 4 0.7 .277 79 32
Yohel Pozo 301 .262 .282 .407 93 .145 .274 -4 0.7 .296 89 33
Noah Mendlinger 458 .246 .330 .306 83 .060 .283 4 0.5 .289 82 43
Blaze Jordan 530 .243 .289 .370 86 .127 .261 4 0.3 .288 88 54
Deniel Ortiz 473 .216 .296 .344 81 .128 .304 3 0.2 .284 89 49
Carlos Linarez 157 .199 .244 .281 49 .082 .338 4 0.2 .233 53 11
Ryan Campos 406 .208 .286 .288 64 .080 .264 -1 0.2 .260 68 32
Sammy Hernandez 395 .196 .278 .256 53 .061 .254 3 0.1 .247 56 26
Chase Davis 482 .206 .286 .295 66 .089 .305 1 0.0 .262 69 38
Dakota Harris 453 .235 .275 .321 69 .086 .290 1 0.0 .262 72 41
Graysen Tarlow 190 .224 .307 .267 65 .043 .313 -1 0.0 .262 67 14
Jesus Baez 435 .219 .274 .341 73 .122 .250 -4 0.0 .271 78 40
Gavin Collins 270 .217 .280 .311 68 .094 .246 -3 -0.1 .262 65 22
Jordan Walker 530 .232 .296 .371 88 .139 .299 -6 -0.2 .293 91 56
Jose Cordoba 282 .215 .268 .308 63 .093 .271 3 -0.3 .256 69 24
Zach Levenson 441 .213 .293 .335 78 .122 .261 1 -0.3 .279 82 42
Travis Honeyman 352 .223 .310 .297 74 .074 .286 -6 -0.3 .276 75 30
Chase Adkison 172 .213 .298 .273 64 .060 .265 0 -0.4 .262 71 12
Jeremy Rivas 494 .198 .263 .267 51 .069 .273 2 -0.5 .239 56 37
Miguel Villarroel 350 .221 .256 .273 51 .052 .305 -1 -0.5 .236 55 27
Tre Richardson 340 .206 .271 .273 55 .067 .261 1 -0.5 .247 56 27
Andy Yerzy 215 .191 .265 .294 59 .103 .275 -5 -0.6 .251 57 16
Michael Curialle 327 .206 .273 .297 62 .091 .303 -3 -0.6 .255 63 25
Trey Paige 386 .203 .266 .289 58 .086 .302 7 -0.6 .249 60 29
Anyelo Encarnacion 423 .193 .264 .277 54 .084 .308 -3 -0.7 .245 60 31
Christian Martin 382 .206 .280 .262 55 .056 .266 -1 -0.7 .248 59 28
Ian Petrutz 361 .225 .304 .313 76 .088 .262 -2 -0.7 .279 77 34
Jacob Buchberger 404 .213 .275 .302 64 .089 .280 3 -0.7 .257 65 33
Wade Stauss 96 .146 .263 .171 27 .025 .316 -4 -0.7 .215 25 4
Brody Moore 400 .217 .265 .271 53 .054 .286 -3 -0.8 .241 55 30
Miguel Ugueto 251 .225 .247 .300 54 .075 .274 2 -0.9 .239 57 21
R.J. Yeager 412 .214 .265 .311 63 .097 .249 2 -1.1 .255 65 33
Johnfrank Salazar 302 .205 .262 .270 52 .065 .247 -1 -1.2 .240 55 21
Won-Bin Cho 418 .210 .278 .285 60 .075 .309 -8 -1.2 .253 64 34
Bryce Madron 207 .148 .263 .193 33 .045 .221 0 -1.3 .221 35 11
Darlin Moquete 312 .202 .252 .300 56 .098 .261 -2 -1.3 .243 61 25
Josh Kross 420 .189 .245 .315 58 .126 .254 2 -1.4 .245 66 30
Brayden Jobert 359 .175 .256 .269 50 .094 .246 2 -1.5 .239 54 25

Batters – Top Near-Age Offensive Comps
Player Hit Comp 1 Hit Comp 2 Hit Comp 3
Masyn Winn Bill Russell Rafael Ramirez Jimmy Rollins
JJ Wetherholt Mike Andrews Alan Trammell Larry Stroman
Brendan Donovan Ken Oberkfell Billy Goodman Ron Hunt
Iván Herrera John Kruk Dan Driessen Bruce Bochte
Lars Nootbaar Ron Roenicke Wes Parker Gerry Davis
Jimmy Crooks Bob Davis Andrew Knapp Tom Pagnozzi
Nolan Gorman Nick Esasky Russ Davis Shane Andrews
Alec Burleson Chad Tracy Randall Simon Walt Bond
Leonardo Bernal Matt Sinatro Ron Brand Dave Criscione
Victor Scott II Ben Copeland Ced Landrum Brad Coon
Pedro Pagés Tommy Smith Martín Maldonado Nelson Santovenia
Thomas Saggese Robby Thompson George Williams Frank Coggins
José Fermín David Eckstein Dick Howser Dan Monzon
Bryan Torres Quilvio Veras Jack Perconte Willie Randolph
Joshua Baez Jose Gonzalez Michael A. Taylor Lane Thomas
César Prieto Danny Sandoval Jerry Terrell Jose Iglesias
Mike Antico Tommy Murphy Demond Smith Mike Asche
Nathan Church Fred Krase Bobby Moore Leo Garcia
Jon Jon Gazdar Wilfredo Tovar Wladimir Sutil David Fletcher
Matt Koperniak Mitch Maier Bill Virdon Franklin Gutierrez
Ramon Mendoza Ronnie Farkas Fred Stanley Peter Peltz
Yohel Pozo Ray Serrano Bengie Molina Toby Hall
Noah Mendlinger Erik Komatsu Chas McCormick Bobby Darula
Blaze Jordan Luis Lopez Don Pepper Donald Cardoza
Deniel Ortiz Rickey Cradle Paul Rodgers Ray McDavid
Carlos Linarez Lindsey Johnson Cecil Strawn Brendon Ounjian
Ryan Campos Jason Fennell Mitch Canham Paul Hoover
Sammy Hernandez Thomas Newton Brett Kay Dick Harris
Chase Davis Tim Fedroff Cory Keylor Justin Toerner
Dakota Harris Alexis Infante Jose Garcia John Mason
Graysen Tarlow Larry Patterson Jose Umbria Bob Turzilli
Jesus Baez Lenny Faedo Robert Connolly Junior Moore
Gavin Collins Zane Chavez Darryl Kennedy Woody Huyke
Jordan Walker Kevin Belcher Ian Desmond Lane Adams
Jose Cordoba Shawon Dunston Ariel Soriano Donald Brown
Zach Levenson Billy Best Dave Hoyt Joe Panella
Travis Honeyman Robert Perry Rick Colzie Dan Robinson
Chase Adkison Mike Taylor Justin Ringo Terry Christman
Jeremy Rivas Kelby Tomlinson Lee Olmstead Christian Lara
Miguel Villarroel Tony Pena Jr. Deiner Lopez Luis Ugueto
Tre Richardson Lonnie Goldberg Reggie Nelson John Toven
Andy Yerzy Buddy Pryor Grant Fithian Ben Margalski
Michael Curialle Bryan Anderson Sean Murphy Damon Burkhart
Trey Paige Travis Whitmore Juan Rodriguez Nick Ward
Anyelo Encarnacion Dick Tracewski Kevin Flora Scarborough Green
Christian Martin Miles Mastrobuoni Mel Jackson Reggie Nelson
Ian Petrutz James White John Turner Charles Byrd
Jacob Buchberger Lloyd Turner Mike Daniel Tom Spitz
Wade Stauss John Beuerlein Ryan Bennett Dallas Tarleton
Brody Moore Dominic Ramos Pete Orr Nate Tebbs
Miguel Ugueto Ramon Jean Luis Landaeta Angelberth Montilla
R.J. Yeager Eddie Lara Craig MacKay Darryl Robinson
Johnfrank Salazar Roland Alburtis Miguel Castellanos Eddie Tisdale
Won-Bin Cho Ronald Dibelius Jason Denham Jeff Bonner
Bryce Madron Danny Payne Joseph Haney Corey Viltz
Darlin Moquete Jerry Simmons Darontaye Hollins Rick Angell
Josh Kross Rey Martinez Jim McManus Joe De Berry
Brayden Jobert Tyler Burnett Chris Carstensen Jalen Washington

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
Masyn Winn .272 .331 .420 107 4.5 .228 .282 .337 73 1.9
JJ Wetherholt .281 .364 .410 120 4.2 .227 .313 .328 85 1.8
Brendan Donovan .299 .374 .442 129 3.5 .248 .324 .364 95 1.2
Iván Herrera .297 .389 .483 145 3.5 .241 .333 .390 106 1.3
Lars Nootbaar .268 .363 .459 130 3.5 .223 .317 .363 93 1.1
Jimmy Crooks .271 .328 .416 108 3.1 .213 .275 .327 72 1.1
Nolan Gorman .251 .328 .475 121 3.0 .195 .269 .360 78 0.4
Alec Burleson .303 .356 .488 134 3.2 .247 .297 .384 94 0.4
Leonardo Bernal .258 .316 .396 96 2.8 .203 .260 .306 59 0.5
Victor Scott II .250 .323 .358 92 2.9 .200 .274 .285 61 0.6
Pedro Pagés .255 .306 .401 98 2.5 .197 .250 .314 62 0.7
Thomas Saggese .275 .329 .419 108 2.9 .220 .275 .324 69 0.2
José Fermín .261 .364 .404 117 2.3 .212 .311 .311 79 0.6
Bryan Torres .304 .391 .398 125 2.6 .245 .333 .321 88 0.4
Joshua Baez .259 .329 .431 115 2.6 .206 .277 .347 79 0.4
César Prieto .285 .329 .410 107 2.4 .225 .274 .326 70 -0.2
Mike Antico .260 .325 .385 98 1.8 .204 .268 .291 59 -0.4
Nathan Church .276 .330 .383 102 2.0 .222 .281 .308 67 -0.3
Jon Jon Gazdar .266 .330 .316 84 1.6 .213 .282 .248 53 -0.3
Matt Koperniak .264 .325 .401 104 1.9 .213 .274 .315 68 -0.5
Ramon Mendoza .246 .322 .362 93 1.5 .191 .271 .279 57 -0.1
Yohel Pozo .293 .311 .459 113 1.5 .236 .256 .362 74 0.0
Noah Mendlinger .273 .356 .341 99 1.4 .219 .305 .270 66 -0.5
Blaze Jordan .271 .316 .416 105 1.6 .218 .262 .321 65 -1.1
Deniel Ortiz .248 .325 .397 103 1.5 .189 .269 .298 62 -1.0
Carlos Linarez .230 .276 .331 70 0.6 .168 .213 .232 28 -0.3
Ryan Campos .238 .315 .337 84 1.3 .175 .254 .246 42 -0.9
Sammy Hernandez .227 .305 .300 73 1.1 .164 .248 .220 36 -0.8
Chase Davis .235 .315 .335 83 1.1 .181 .263 .254 49 -1.0
Dakota Harris .260 .299 .358 86 1.0 .211 .248 .282 52 -1.1
Graysen Tarlow .260 .339 .307 85 0.4 .191 .274 .225 46 -0.5
Jesus Baez .247 .300 .392 93 1.1 .197 .250 .301 56 -0.9
Gavin Collins .256 .314 .361 91 0.7 .182 .244 .260 44 -0.9
Jordan Walker .256 .321 .415 105 0.9 .205 .270 .326 69 -1.6
Jose Cordoba .245 .294 .355 84 0.5 .189 .242 .267 46 -1.0
Zach Levenson .241 .320 .378 97 0.9 .183 .267 .287 59 -1.3
Travis Honeyman .249 .333 .334 90 0.4 .197 .284 .258 57 -1.1
Chase Adkison .241 .328 .310 82 0.0 .188 .272 .236 47 -0.8
Jeremy Rivas .223 .289 .303 67 0.4 .171 .241 .234 36 -1.4
Miguel Villarroel .248 .283 .310 67 0.3 .190 .228 .237 32 -1.3
Tre Richardson .238 .301 .317 76 0.4 .180 .243 .236 38 -1.2
Andy Yerzy .219 .297 .344 80 0.0 .161 .235 .253 39 -1.1
Michael Curialle .232 .299 .341 78 0.0 .178 .246 .257 42 -1.5
Trey Paige .232 .297 .327 77 0.4 .178 .239 .250 39 -1.5
Anyelo Encarnacion .218 .293 .313 71 0.3 .166 .240 .233 36 -1.6
Christian Martin .239 .310 .302 74 0.2 .183 .257 .229 42 -1.4
Ian Petrutz .249 .332 .351 93 0.2 .197 .278 .273 58 -1.4
Jacob Buchberger .241 .305 .349 84 0.3 .185 .248 .267 47 -1.6
Wade Stauss .184 .298 .219 50 -0.4 .118 .227 .134 8 -0.9
Brody Moore .244 .293 .302 70 0.1 .189 .238 .237 37 -1.6
Miguel Ugueto .258 .278 .346 76 -0.2 .194 .218 .258 35 -1.5
R.J. Yeager .242 .294 .359 82 -0.1 .189 .242 .273 46 -2.0
Johnfrank Salazar .236 .289 .310 69 -0.5 .180 .235 .231 35 -1.8
Won-Bin Cho .241 .309 .328 82 0.0 .183 .251 .244 44 -2.0
Bryce Madron .177 .290 .229 48 -0.9 .124 .236 .164 17 -1.7
Darlin Moquete .232 .284 .355 79 -0.4 .181 .228 .264 42 -2.0
Josh Kross .216 .277 .366 79 -0.3 .164 .224 .270 42 -2.3
Brayden Jobert .202 .283 .310 67 -0.7 .153 .228 .229 32 -2.3

Batters – Platoon Splits
Player BA vs. L OBP vs. L SLG vs. L BA vs. R OBP vs. R SLG vs. R
Masyn Winn .257 .319 .403 .246 .299 .356
JJ Wetherholt .241 .320 .346 .259 .346 .375
Brendan Donovan .259 .338 .353 .278 .354 .422
Iván Herrera .275 .373 .430 .273 .356 .435
Lars Nootbaar .235 .325 .364 .249 .346 .426
Jimmy Crooks .226 .291 .321 .246 .303 .385
Nolan Gorman .212 .282 .381 .227 .307 .434
Alec Burleson .259 .308 .381 .280 .332 .460
Leonardo Bernal .231 .288 .366 .229 .291 .338
Victor Scott II .218 .290 .290 .229 .304 .332
Pedro Pagés .234 .289 .379 .220 .271 .348
Thomas Saggese .250 .309 .388 .249 .297 .363
José Fermín .233 .333 .350 .240 .336 .362
Bryan Torres .267 .339 .333 .281 .369 .365
Joshua Baez .248 .322 .414 .228 .299 .368
César Prieto .250 .293 .357 .263 .307 .371
Mike Antico .222 .281 .333 .234 .302 .338
Nathan Church .246 .297 .322 .248 .307 .352
Jon Jon Gazdar .244 .313 .275 .238 .305 .287
Matt Koperniak .237 .297 .333 .246 .300 .368
Ramon Mendoza .219 .308 .316 .219 .292 .321
Yohel Pozo .270 .287 .414 .257 .280 .402
Noah Mendlinger .236 .320 .291 .249 .334 .311
Blaze Jordan .259 .308 .407 .237 .281 .357
Deniel Ortiz .221 .299 .359 .213 .294 .337
Carlos Linarez .204 .250 .286 .196 .240 .278
Ryan Campos .198 .270 .297 .212 .292 .284
Sammy Hernandez .211 .290 .284 .190 .273 .246
Chase Davis .194 .268 .274 .212 .294 .303
Dakota Harris .240 .283 .333 .233 .272 .315
Graysen Tarlow .226 .311 .245 .223 .305 .277
Jesus Baez .223 .286 .355 .217 .268 .335
Gavin Collins .232 .297 .305 .210 .271 .315
Jordan Walker .242 .311 .388 .227 .288 .363
Jose Cordoba .220 .273 .341 .213 .266 .292
Zach Levenson .220 .306 .339 .210 .287 .333
Travis Honeyman .229 .318 .323 .220 .306 .285
Chase Adkison .208 .291 .250 .216 .302 .284
Jeremy Rivas .200 .267 .273 .197 .261 .264
Miguel Villarroel .218 .255 .257 .223 .257 .279
Tre Richardson .208 .276 .292 .205 .268 .265
Andy Yerzy .185 .254 .262 .194 .271 .310
Michael Curialle .211 .280 .289 .204 .270 .301
Trey Paige .191 .260 .277 .207 .269 .293
Anyelo Encarnacion .197 .271 .299 .192 .261 .267
Christian Martin .191 .255 .225 .211 .288 .275
Ian Petrutz .218 .299 .287 .227 .307 .322
Jacob Buchberger .229 .299 .328 .204 .262 .288
Wade Stauss .125 .250 .167 .155 .269 .172
Brody Moore .221 .276 .283 .215 .260 .266
Miguel Ugueto .230 .256 .311 .223 .243 .295
R.J. Yeager .220 .273 .314 .211 .261 .310
Johnfrank Salazar .202 .260 .281 .206 .263 .265
Won-Bin Cho .206 .268 .275 .212 .281 .288
Bryce Madron .146 .255 .167 .148 .267 .203
Darlin Moquete .202 .259 .293 .202 .249 .303
Josh Kross .186 .238 .310 .190 .248 .318
Brayden Jobert .174 .258 .244 .175 .256 .278

Pitchers – Standard
Player T Age W L ERA G GS IP H ER HR BB SO
Michael McGreevy R 25 10 9 3.92 29 28 154.0 154 67 17 36 111
Matthew Liberatore L 26 8 9 4.10 31 24 131.7 127 60 15 41 111
Dustin May R 28 7 8 4.15 21 19 115.0 101 53 13 41 103
Andre Pallante R 27 8 9 4.30 32 24 136.0 137 65 13 52 96
Richard Fitts R 26 5 6 4.32 21 21 100.0 100 48 14 29 77
JoJo Romero L 29 6 3 3.41 61 0 58.0 50 22 5 23 57
Ixan Henderson L 24 6 8 4.50 23 22 110.0 110 55 14 45 86
Quinn Mathews L 25 5 6 4.37 24 24 101.0 93 49 12 54 99
Tekoah Roby R 24 5 6 4.20 17 17 79.3 78 37 11 22 68
Bruce Zimmermann L 31 6 8 4.53 24 18 113.3 127 57 16 28 76
Kyle Leahy R 29 4 4 4.03 50 5 87.0 83 39 9 31 75
Brycen Mautz L 24 5 7 4.64 24 24 104.7 106 54 15 37 86
Gordon Graceffo R 26 5 6 4.38 35 13 96.7 97 47 11 30 77
Pete Hansen L 25 5 7 4.69 23 23 119.0 129 62 18 36 83
Sem Robberse R 24 4 5 4.48 18 17 86.3 88 43 11 30 66
Tink Hence R 23 3 4 4.33 19 19 68.7 64 33 9 30 63
Aaron Wilkerson R 37 4 6 4.80 24 24 123.7 142 66 21 27 81
Hunter Dobbins R 26 4 4 4.58 16 15 78.7 82 40 10 25 54
Matt Svanson R 27 3 3 3.77 48 1 71.7 65 30 8 25 66
Miles Mikolas R 37 6 10 4.86 25 25 129.7 144 70 22 30 83
Zack Thompson L 28 4 5 4.56 24 13 73.0 69 37 9 37 71
Curtis Taylor R 30 5 6 4.81 27 19 103.0 105 55 15 40 79
Hancel Rincon R 24 5 6 4.79 20 18 97.7 104 52 15 30 68
Jared Shuster L 27 4 5 4.56 32 10 81.0 85 41 9 29 55
Scott Blewett R 30 3 4 4.39 32 7 65.7 68 32 8 24 47
Alex Cornwell L 27 4 5 4.74 28 12 87.3 95 46 11 31 56
Riley O’Brien R 31 2 2 3.88 51 0 55.7 47 24 5 26 59
Max Rajcic R 24 5 7 5.00 24 24 113.3 120 63 17 40 76
Austin Love R 27 4 5 4.52 34 6 63.7 63 32 8 28 54
Ian Bedell R 26 2 4 4.90 18 17 71.7 74 39 11 28 55
John King L 31 3 2 3.91 50 0 53.0 59 23 5 14 32
Nick Raquet L 30 6 6 4.26 35 2 57.0 57 27 7 19 46
Ryan Fernandez R 28 4 4 4.12 54 0 59.0 53 27 7 26 63
Matt Pushard R 28 4 4 4.17 44 1 54.0 52 25 7 20 47
Luis Gastelum R 24 4 3 4.02 41 0 56.0 52 25 7 18 56
Ryne Stanek R 34 4 4 4.13 54 0 48.0 44 22 5 24 48
Justin Bruihl L 29 3 3 4.26 48 0 50.7 49 24 6 19 45
Zach Plesac R 31 4 6 5.26 16 15 75.3 85 44 12 29 46
Ryan Murphy R 26 2 3 5.08 15 12 51.3 54 29 7 22 34
Andre Granillo R 26 3 4 4.40 43 0 57.3 53 28 8 26 56
Chris Roycroft R 29 4 4 4.48 49 0 62.3 62 31 6 29 50
Tyler Matzek L 35 1 0 4.70 24 0 23.0 23 12 3 12 20
Ricardo Velez R 27 3 5 4.78 32 1 52.7 54 28 7 22 39
Skylar Hales R 24 4 5 4.53 46 0 49.7 49 25 6 18 41
Gerson Moreno R 30 2 2 4.93 36 0 38.3 35 21 5 24 37
Randel Clemente R 24 2 3 4.80 36 0 45.0 40 24 5 31 45
Zack Weiss R 34 2 2 4.86 34 0 50.0 49 27 7 24 47
Andrew Marrero R 26 2 4 4.95 29 0 40.0 38 22 6 23 38
Hunter Hayes R 25 2 4 5.02 31 1 57.3 61 32 8 24 40
Michael Gomez R 29 2 3 5.08 30 1 44.3 44 25 5 23 32
Michael Watson L 24 2 4 4.97 38 0 54.3 51 30 7 28 50
Nathanael Heredia L 25 1 2 5.17 31 0 38.3 38 22 5 24 30
Tyler Bradt R 25 2 4 5.26 34 2 53.0 53 31 8 31 43
Leonardo Taveras R 27 2 4 5.40 31 2 46.7 47 28 7 30 40
Edwin Nunez R 24 3 5 5.75 32 5 51.7 52 33 8 32 38

Pitchers – Advanced
Player IP K/9 BB/9 HR/9 BB% K% BABIP ERA+ 3ERA+ FIP ERA- WAR
Michael McGreevy 154.0 6.5 2.1 1.0 5.6% 17.3% .288 105 106 3.92 95 2.2
Matthew Liberatore 131.7 7.6 2.8 1.0 7.3% 19.9% .290 100 102 4.03 100 1.6
Dustin May 115.0 8.1 3.2 1.0 8.5% 21.4% .273 99 100 4.17 101 1.3
Andre Pallante 136.0 6.4 3.4 0.9 8.7% 16.1% .292 95 97 4.23 105 1.3
Richard Fitts 100.0 6.9 2.6 1.3 6.8% 18.2% .286 95 98 4.43 105 1.0
JoJo Romero 58.0 8.8 3.6 0.8 9.3% 23.2% .285 120 119 3.61 83 0.9
Ixan Henderson 110.0 7.0 3.7 1.1 9.4% 17.9% .289 91 96 4.62 110 0.9
Quinn Mathews 101.0 8.8 4.8 1.1 12.0% 22.0% .291 94 98 4.50 106 0.9
Tekoah Roby 79.3 7.7 2.5 1.2 6.6% 20.3% .290 98 104 4.20 102 0.9
Bruce Zimmermann 113.3 6.0 2.2 1.3 5.7% 15.5% .303 91 89 4.48 110 0.8
Kyle Leahy 87.0 7.8 3.2 0.9 8.3% 20.1% .291 102 101 3.96 98 0.7
Brycen Mautz 104.7 7.4 3.2 1.3 8.2% 19.0% .293 88 93 4.64 114 0.7
Gordon Graceffo 96.7 7.2 2.8 1.0 7.2% 18.6% .295 94 97 4.07 106 0.7
Pete Hansen 119.0 6.3 2.7 1.4 7.0% 16.1% .295 87 91 4.77 115 0.7
Sem Robberse 86.3 6.9 3.1 1.1 8.0% 17.6% .293 91 97 4.47 110 0.7
Tink Hence 68.7 8.3 3.9 1.2 10.0% 21.0% .285 95 100 4.43 106 0.7
Aaron Wilkerson 123.7 5.9 2.0 1.5 5.1% 15.2% .302 85 80 4.76 118 0.6
Hunter Dobbins 78.7 6.2 2.9 1.1 7.3% 15.8% .290 90 93 4.55 112 0.6
Matt Svanson 71.7 8.3 3.1 1.0 8.3% 21.9% .284 109 110 4.07 92 0.5
Miles Mikolas 129.7 5.8 2.1 1.5 5.4% 15.0% .292 84 79 4.88 119 0.5
Zack Thompson 73.0 8.8 4.6 1.1 11.5% 22.0% .296 90 92 4.51 111 0.5
Curtis Taylor 103.0 6.9 3.5 1.3 8.9% 17.6% .288 85 85 4.92 117 0.4
Hancel Rincon 97.7 6.3 2.8 1.4 7.1% 16.0% .291 86 91 4.84 116 0.4
Jared Shuster 81.0 6.1 3.2 1.0 8.2% 15.5% .295 90 92 4.36 111 0.4
Scott Blewett 65.7 6.4 3.3 1.1 8.3% 16.3% .293 93 92 4.50 107 0.3
Alex Cornwell 87.3 5.8 3.2 1.1 8.0% 14.5% .297 86 88 4.69 116 0.3
Riley O’Brien 55.7 9.5 4.2 0.8 10.9% 24.7% .288 106 103 3.99 94 0.3
Max Rajcic 113.3 6.0 3.2 1.4 8.0% 15.3% .288 82 87 5.07 122 0.2
Austin Love 63.7 7.6 4.0 1.1 10.0% 19.2% .294 91 93 4.61 110 0.2
Ian Bedell 71.7 6.9 3.5 1.4 8.9% 17.5% .289 84 86 5.01 119 0.2
John King 53.0 5.4 2.4 0.8 6.1% 13.9% .305 105 102 4.03 95 0.2
Nick Raquet 57.0 7.3 3.0 1.1 7.7% 18.7% .292 96 94 4.36 104 0.2
Ryan Fernandez 59.0 9.6 4.0 1.1 10.3% 24.9% .295 100 101 3.94 100 0.2
Matt Pushard 54.0 7.8 3.3 1.2 8.5% 20.1% .288 98 100 4.33 102 0.2
Luis Gastelum 56.0 9.0 2.9 1.1 7.6% 23.7% .294 102 105 3.91 98 0.2
Ryne Stanek 48.0 9.0 4.5 0.9 11.3% 22.6% .295 99 92 4.08 101 0.1
Justin Bruihl 50.7 8.0 3.4 1.1 8.7% 20.6% .295 96 97 4.41 104 0.1
Zach Plesac 75.3 5.5 3.5 1.4 8.6% 13.6% .296 78 77 5.21 128 0.0
Ryan Murphy 51.3 6.0 3.9 1.2 9.6% 14.8% .288 81 83 5.13 124 0.0
Andre Granillo 57.3 8.8 4.1 1.3 10.3% 22.2% .287 93 98 4.44 107 0.0
Chris Roycroft 62.3 7.2 4.2 0.9 10.4% 18.0% .298 92 92 4.35 109 -0.1
Tyler Matzek 23.0 7.8 4.7 1.2 11.5% 19.2% .299 87 83 4.82 115 -0.1
Ricardo Velez 52.7 6.7 3.8 1.2 9.4% 16.7% .290 86 88 4.89 116 -0.2
Skylar Hales 49.7 7.4 3.3 1.1 8.4% 19.2% .293 90 96 4.41 111 -0.2
Gerson Moreno 38.3 8.7 5.6 1.2 13.6% 21.0% .286 83 82 5.12 120 -0.3
Randel Clemente 45.0 9.0 6.2 1.0 14.4% 20.9% .287 85 90 4.94 117 -0.3
Zack Weiss 50.0 8.5 4.3 1.3 10.8% 21.2% .298 84 80 4.66 119 -0.3
Andrew Marrero 40.0 8.6 5.2 1.4 12.5% 20.7% .288 83 85 5.24 121 -0.3
Hunter Hayes 57.3 6.3 3.8 1.3 9.4% 15.6% .293 82 86 5.05 123 -0.4
Michael Gomez 44.3 6.5 4.7 1.0 11.6% 16.1% .287 81 80 5.28 123 -0.4
Michael Watson 54.3 8.3 4.6 1.2 11.5% 20.5% .288 82 88 4.88 122 -0.4
Nathanael Heredia 38.3 7.0 5.6 1.2 13.5% 16.9% .287 79 83 5.56 126 -0.4
Tyler Bradt 53.0 7.3 5.3 1.4 12.8% 17.8% .287 78 82 5.48 128 -0.5
Leonardo Taveras 46.7 7.7 5.8 1.3 13.7% 18.3% .292 76 77 5.65 132 -0.5
Edwin Nunez 51.7 6.6 5.6 1.4 13.0% 15.4% .280 71 75 6.14 140 -0.6

Pitchers – Top Near-Age Comps
Player Pit Comp 1 Pit Comp 2 Pit Comp 3
Michael McGreevy Kendall Graveman Ariel Jurado Randy Dobnak
Matthew Liberatore Sean Manaea Sterling Hitchcock Bob Knepper
Dustin May Jeff Juden Diego Segui Jeff Hoffman
Andre Pallante Mike Pelfrey Wily Peralta Sal Romano
Richard Fitts Cody Anderson Luis Cessa Taylor Clarke
JoJo Romero Steve Kline John Franco Darold Knowles
Ixan Henderson Danny Christensen Bruce Zimmermann Eric Jokisch
Quinn Mathews Michael Kirkman Chris Hammond Rich Sauveur
Tekoah Roby Mitch Lukevics Connor Seabold J.D. Martin
Bruce Zimmermann Matt Tomshaw Adam Pettyjohn Scott Diamond
Kyle Leahy Buck Farmer Drew VerHagen Dave Swartzbaugh
Brycen Mautz Anthony Ward Wandy Rodriguez Mike Butler
Gordon Graceffo Seth Lugo Anthony Bass Robert Gsellman
Pete Hansen Cole Irvin Packy Naughton John Means
Sem Robberse Aaron Shafer Byron Ballard Mike Rowland
Tink Hence Mel Stottlemyre Dan Eskew Doug Mlicki
Aaron Wilkerson Doyle Alexander Carl Pavano Bartolo Colon
Hunter Dobbins Raul Alcantara Carlos Frias Luis Cessa
Matt Svanson Alex Colomé Edwin Moreno Tony Pena
Miles Mikolas Jeremy Guthrie Jeff Samardzija Jason Hammel
Zack Thompson Eude Brito Chet Nichols Wil Ledezma
Curtis Taylor Richard Dotson Chuck Dobson Joe Oeschger
Hancel Rincon Ryan Mottl Geraldo Padua Mike Wodnicki
Jared Shuster Dan Serafini James Hurst Ryan Dennick
Scott Blewett Roman Colon John Weiss Bo Schultz
Alex Cornwell Eric Hillman Matt Whitehouse Jason Mackintosh
Riley O’Brien Curt Leskanic Joe Kelly Joe Boever
Max Rajcic Matt Esparza Chase De Jong JT Brubaker
Austin Love R.J. Seidel Ty Kelley Shayne Bennett
Ian Bedell Jose Vargas Phil Regan Pat Leahy
John King Mike Paul Rusty Kilgo T.J. McFarland
Nick Raquet Dave Von Ohlen Blake McGinley Jon Switzer
Ryan Fernandez Doug Henry Scott Proctor Wayne Rosenthal
Matt Pushard Josh Martin Austin Brice Sendy Rleal
Luis Gastelum Marv Rockman Michael Dubee Diego Castillo
Ryne Stanek John Axford Fernando Rodney Doug Henry
Justin Bruihl Tim Kubinski Jorge Castillo Rudy Arias
Zach Plesac Dewon Brazelton Steve Sundra Sean O’Sullivan
Ryan Murphy Frank Frontino Ben Christensen John Parker
Andre Granillo Yoan López Pat Mahomes A.J. Achter
Chris Roycroft Andy Shibilo Victor Moreno Dwight Bernard
Tyler Matzek Andy Hassler Rich Sauveur Ray Searage
Ricardo Velez Andy Kimball Clay Condrey Jim Miner
Skylar Hales Roman Martinez Rolando Valdez Greg Belson
Gerson Moreno Dave Jolly Doug Bochtler Manny Delcarmen
Randel Clemente Garry Grafton Fred Lasher Clevelan Santeliz
Zack Weiss Domingo Jean Ken Ray Barry Manuel
Andrew Marrero Ryan Burr Trevor Hurley Steve Palazzolo
Hunter Hayes Bernard Belan Geoff Hartlieb Geoff Grenert
Michael Gomez Jake Robbins Dave Wainhouse Ryan Perry
Michael Watson Joel McKeon Mike Mohler Will Lamb
Nathanael Heredia Rendy Espina Curt Conley Daniel Gibson
Tyler Bradt Simon Mercedes Mark Ecker Danny Fitzpatrick
Leonardo Taveras James Thornton Brian Woods Vince Bongiovanni
Edwin Nunez Felix Cuello Mike Gunderson Torey Deshazier

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
Michael McGreevy .276 .332 .455 .235 .265 .351 3.1 1.3 3.47 4.44
Matthew Liberatore .234 .291 .317 .253 .315 .429 2.3 0.6 3.63 4.70
Dustin May .244 .339 .404 .225 .288 .358 2.0 0.4 3.66 4.79
Andre Pallante .245 .309 .365 .265 .336 .415 2.1 0.4 3.87 4.84
Richard Fitts .257 .317 .419 .253 .306 .427 1.7 0.4 3.78 4.86
JoJo Romero .205 .280 .274 .240 .317 .390 1.5 0.1 2.67 4.33
Ixan Henderson .262 .333 .407 .249 .326 .412 1.6 0.3 4.03 4.96
Quinn Mathews .234 .333 .369 .239 .336 .396 1.7 0.1 3.82 5.02
Tekoah Roby .243 .302 .412 .257 .307 .429 1.5 0.3 3.67 4.97
Bruce Zimmermann .266 .298 .413 .279 .327 .464 1.5 0.1 4.00 5.07
Kyle Leahy .238 .315 .381 .251 .310 .393 1.3 -0.1 3.52 4.80
Brycen Mautz .236 .307 .341 .265 .333 .464 1.3 0.0 4.18 5.23
Gordon Graceffo .257 .321 .411 .250 .301 .394 1.3 0.1 3.86 5.00
Pete Hansen .272 .315 .464 .267 .328 .441 1.2 -0.2 4.27 5.29
Sem Robberse .253 .339 .430 .259 .305 .405 1.2 0.2 4.04 4.99
Tink Hence .241 .326 .405 .240 .315 .393 1.2 0.1 3.84 4.97
Aaron Wilkerson .290 .335 .493 .274 .303 .460 1.3 -0.3 4.32 5.52
Hunter Dobbins .283 .341 .434 .242 .303 .416 1.0 0.1 4.12 5.10
Matt Svanson .243 .331 .405 .233 .300 .362 1.0 -0.1 3.22 4.57
Miles Mikolas .282 .329 .485 .270 .308 .459 1.1 -0.4 4.42 5.54
Zack Thompson .238 .330 .345 .245 .339 .415 1.0 -0.2 4.00 5.28
Curtis Taylor .265 .343 .486 .254 .329 .393 1.1 -0.3 4.29 5.40
Hancel Rincon .262 .324 .452 .269 .324 .439 1.0 -0.2 4.29 5.37
Jared Shuster .280 .336 .440 .256 .317 .399 0.9 -0.2 4.01 5.23
Scott Blewett .268 .338 .433 .254 .313 .396 0.7 -0.1 3.89 5.04
Alex Cornwell .260 .316 .375 .273 .337 .454 0.8 -0.3 4.32 5.32
Riley O’Brien .220 .327 .330 .227 .326 .361 0.9 -0.3 3.12 4.82
Max Rajcic .262 .341 .455 .269 .331 .442 0.9 -0.4 4.53 5.49
Austin Love .293 .371 .457 .216 .303 .366 0.7 -0.2 3.98 5.08
Ian Bedell .260 .338 .450 .261 .333 .438 0.6 -0.3 4.38 5.48
John King .234 .277 .312 .291 .336 .454 0.5 -0.2 3.45 4.48
Nick Raquet .253 .321 .373 .252 .317 .424 0.7 -0.3 3.58 4.93
Ryan Fernandez .232 .321 .411 .233 .304 .361 0.7 -0.5 3.41 4.96
Matt Pushard .247 .315 .351 .250 .320 .455 0.6 -0.3 3.57 4.98
Luis Gastelum .243 .301 .398 .231 .300 .376 0.7 -0.4 3.32 4.95
Ryne Stanek .247 .337 .358 .229 .317 .390 0.5 -0.5 3.44 5.16
Justin Bruihl .221 .307 .286 .267 .346 .475 0.5 -0.4 3.54 4.98
Zach Plesac .275 .346 .458 .280 .333 .476 0.4 -0.5 4.75 5.79
Ryan Murphy .250 .345 .390 .276 .342 .467 0.3 -0.3 4.71 5.65
Andre Granillo .266 .364 .468 .222 .288 .365 0.5 -0.5 3.68 5.17
Chris Roycroft .270 .364 .414 .235 .309 .360 0.3 -0.6 3.91 5.12
Tyler Matzek .214 .290 .357 .274 .370 .435 0.2 -0.3 3.75 6.12
Ricardo Velez .286 .366 .490 .234 .312 .360 0.1 -0.6 4.24 5.43
Skylar Hales .247 .327 .393 .250 .317 .407 0.2 -0.5 3.91 5.16
Gerson Moreno .262 .400 .415 .222 .326 .395 0.1 -0.7 4.19 6.16
Randel Clemente .225 .367 .413 .237 .351 .344 0.1 -0.7 4.16 5.47
Zack Weiss .270 .363 .472 .234 .314 .374 0.1 -0.8 4.09 5.83
Andrew Marrero .258 .388 .455 .233 .327 .400 0.0 -0.7 4.31 5.81
Hunter Hayes .268 .357 .454 .263 .331 .421 0.0 -0.7 4.45 5.50
Michael Gomez .263 .378 .474 .250 .360 .354 0.0 -0.8 4.33 5.81
Michael Watson .242 .333 .387 .243 .351 .412 0.0 -0.9 4.27 5.77
Nathanael Heredia .250 .368 .354 .255 .374 .451 -0.1 -0.8 4.60 6.01
Tyler Bradt .261 .367 .467 .248 .350 .402 -0.1 -0.8 4.66 5.90
Leonardo Taveras .286 .412 .464 .230 .339 .410 -0.1 -0.9 4.80 6.24
Edwin Nunez .279 .406 .512 .241 .364 .388 -0.3 -1.0 5.27 6.36

Players are listed with their most recent teams wherever possible. This includes players who are unsigned or have retired, players who will miss 2026 due to injury, and players who were released in 2025. So yes, if you see Joe Schmoe, who quit baseball back in August to form a Ambient Math-Rock Trip-Hop Yacht Metal band that only performs in abandoned malls, he’s still listed here intentionally. ZiPS is assuming a league with an ERA of 4.16.

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. This last is, however, not an actual requirement.


Nol Country for Old Men: Diamondbacks Trade for Arenado

Ron Chenoy-Imagn Images

The St. Louis Cardinals, or what’s left of them, have traded third baseman Nolan Arenado and cash to the Arizona Diamondbacks for right-handed pitcher Jack Martinez.

Arenado was one of the best players of the 2010s, a three-time National League home run champ and an elite defensive third baseman. In eight seasons with the Rockies, Arenado made five All-Star teams and finished in the top eight in MVP voting five times. He made the All-Star team and pulled off the Gold Glove-Silver Slugger double every season from 2015 to 2018.

On the strength of those performances, the Rockies signed Arenado to one of the richest contracts in baseball history — nine years, $275 million. After two years, they shipped him to St. Louis, where the Cardinals lived out the bargain of the quarter-billion-dollar extension: A couple great seasons, followed by gradual decline and now decrepitude, all before the deal runs out. Read the rest of this entry »


Cardinals, Red Sox Link up Again in Willson Contreras Trade

Tim Vizer-Imagn Images

‘Twas the week before Christmas, and all through Fenway, every fan was insistent: “Get a first baseman, today.” Or, well, probably not – why would there be fans at Fenway when there are no games, anyway? Why Christmas week in particular? Why did they construct their sentence awkwardly to suit a rhyme scheme? But forget about how hard it is to open an article – or at least how hard I’ve made it seem with this one. There’s a trade afoot! The Red Sox have acquired first baseman Willson Contreras from the Cardinals in exchange for right-handed starter Hunter Dobbins and righty pitching prospects Yhoiker Fajardo and Blake Aita, as Jeff Passan first reported.

In a free agent market awash in slugging first base/DH types, Contreras flew under the radar this offseason. Kyle Schwarber and Pete Alonso were the top names at the position, and both secured the deals befitting that status. The Red Sox were clearly interested in adding some offense, particularly in the infield, and were linked to both sluggers before they signed elsewhere. But there are more ways to improve your team than on the open market, and a pivot to Contreras soon followed. Read the rest of this entry »


Sunday Notes: The Red Sox Expect Sonny Gray to Be Better Than Walker Buehler

The Boston Red Sox made a pre-Thanksgiving trade on Tuesday, acquiring Sonny Gray from the St. Louis Cardinals in exchange for 25-year-old right-hander Richard Fitts and hard-throwing prospect Brandon Clarke. How well the deal works out for Craig Breslow’s club is anyone’s guess — my colleague Michael Baumann wrote that he couldn’t “declare this trade to be a robbery in either direction” — but the 36-year-old righty does have a track record of reliability. Gray has graced a big-league mound 92 times over the past three seasons, gobbling up 531 innings and posting a 3.63 ERA as well as a 3.11 FIP. If he can continue to fend off Father Time a while longer, the erstwhile Vanderbilt Commodore will add value to the Red Sox starting rotation.

A Vandy product Boston brought on board as a free agent last winter came to mind when the trade was announced. That would be Walker Buehler, who despite high hopes ultimately proved to be a bust. Unable to return to old form, the veteran righty struggled to a 5.45 ERA over 112-and-a-third innings and was cut loose by the Red Sox in late August.

There are clear differences between the two pitchers — their respective health histories particularly stand out — but they nonetheless have things in common. One is a diverse repertoire. Another is a lack of high-octane heaters.

Buehler was in the 43rd percentile for fastball velocity in 2025, while Gray was in just the 16th percentile. As Baumann pointed out, the latter “has started leaking fastball velocity… [but has] compensated by leaning into a cutter and changeup, making him a legit six-pitch pitcher since 2023.” Meanwhile, the 31-year-old Buehler leaned heavily on a six-pitch mix while compensating for the velocity he lost following Tommy John surgery in 2022. Read the rest of this entry »


Sonny Gray Changes Teams. Again.

Neville E. Guard-Imagn Images

The Boston Red Sox have acquired veteran right-hander Sonny Gray and cash from the St. Louis Cardinals, in exchange for pitchers Richard Fitts and Brandon Clarke, and either cash or a player to be named later. Seems straightforward enough.

After 13 seasons in the majors, you all know Gray by now: short guy out of Vanderbilt. Big, slow curveball, but not a ton of velo. Changes teams every two or three years. In those 13 seasons, Gray’s two best WAR seasons are 5.4 and 4.5, but he’s posted four additional seasons of between 3.5 and 3.9 WAR, and three others of between 2.4 and 2.7 WAR. This is the Toyota Sienna of pitchers: You don’t stay up nights dreaming about him, and he can be a little pricey, but he’ll get you and your family where they need to go with an absolute minimum of fuss.

The Red Sox made the playoffs in 2025. I don’t think I’m going out on a limb by assuming they’d like to make the playoffs again in 2026. If I were in the playoff-making business, I’d welcome the opportunity to add Sonny Gray to my team. Read the rest of this entry »


JAWS and the 2026 Hall of Fame Ballot: Carlos Beltrán

Kyle Terada-USA TODAY Sports

The following article is part of Jay Jaffe’s ongoing look at the candidates on the BBWAA 2026 Hall of Fame ballot. For a detailed introduction to this year’s ballot, and other candidates in the series, use the navigation tool above; an introduction to JAWS can be found here. For a tentative schedule, and a chance to fill out a Hall of Fame ballot for our crowdsourcing project, see here. All WAR figures refer to the Baseball-Reference version unless otherwise indicated.

Carlos Beltrán was the quintessential five-tool player, a switch-hitting center fielder who harnessed his physical talents and became a superstar. Aided by a high baseball IQ that was essentially his sixth tool, he spent 20 seasons in the majors, making nine All-Star teams, winning three Gold Gloves, and helping five different franchises reach the playoffs, where he put together some of the most dominant stretches in postseason history. At the end of his career, he helped the Astros win a championship.

Drafted out of Puerto Rico by the Royals, Beltrán didn’t truly thrive until he was traded away. He spent the heart of his career in New York, first with the Mets — on what was at the time the largest free-agent contract in team history — and later the Yankees. He endured his ups and downs in the Big Apple and elsewhere, including his share of injuries. Had he not missed substantial portions of three seasons, he might well have reached 3,000 hits, but even as it is, he put up impressive, Cooperstown-caliber career numbers. Not only is he one of just eight players with 300 home runs and 300 stolen bases, but he also owns the highest stolen base success rate (86.4%) of any player with at least 200 attempts.

Alas, two years after Beltrán’s career ended, he was identified as the player at the center of the biggest baseball scandal in a generation: the Astros’ illegal use of video replay to steal opponents’ signs in 2017 and ’18. He was “the godfather of the whole program” in the words of Tom Koch-Weser, the team’s director of advance information, and the only player identified in commissioner Rob Manfred’s January 2020 report. But between that report and additional reporting by the Wall Street Journal, it seems apparent that the whole roster, as well as higher-ups including bench coach Alex Cora, manager A.J. Hinch, and general manager Jeff Luhnow, was well aware of the system and didn’t stop him or his co-conspirators. In that light, it’s worth wondering about the easy narrative that has left Beltrán holding the bag; Hinch hardly had to break stride in getting another managerial job once his suspension ended, and Cora was rehired as Red Sox manager after he served his suspension. While Beltrán was not disciplined by the league, the fallout cost him his job as manager of the Mets before he could even oversee a game, and he has yet to get another opportunity. Read the rest of this entry »


2026 Contemporary Baseball Era Committee Candidate: Fernando Valenzuela

Malcolm Emmons-USA TODAY Sports

The following article is part of my ongoing look at the candidates on the 2026 Contemporary Baseball Era Committee ballot. For a detailed introduction to this year’s ballot, use the navigation tool above. An introduction to JAWS can be found here.

Though he won the Rookie of the Year award, a Cy Young, and a World Series all in his first full season while beginning a six-year streak of All-Star selections — the first of those as the game’s starter — Fernando Valenzuela wasn’t just a star pitcher. He was an international icon, the centerpiece of a cultural phenomenon, and a beloved global ambassador who brought generations of Mexican American and Latino fans to baseball while helping to heal the wounds caused by the building of Dodger Stadium, the very ballpark in which he starred.

Roberto Clemente is ‘The Great One,’ but culturally, Fernando Valenzuela has been more significant in terms of bringing a fan base that didn’t exist in baseball,” José de Jesus Ortiz, the first Latino president of the BBWAA, told author Erik Sherman for Daybreak at Chavez Ravine, a 2023 biography of Valenzuela. Sherman himself described the pitcher as “like a composite of the Beatles — only in Dodger blue. His appeal was universal.”

After excelling in a relief role during a September 1980 cup of coffee with the Dodgers — as a 19-year-old in the heat of a playoff race, no less — Valenzuela took the world by storm the following spring. Pressed into service as the Opening Day starter, he threw a five-hit shutout, then reeled off four more shutouts and six more complete games within his first eight starts, a span during which he posted a 0.50 ERA. Despite speaking barely a word of English, the portly portsider (listed at 5-foot-11 and 180 pounds, but generally presumed to be at least 20 pounds heavier) charmed the baseball world with his bashful smile while bedeviling hitters with impeccable command of his screwball, delivered following a high leg kick and a skyward gaze at the peak of his windup.

Read the rest of this entry »


2025 National League 40-Man Roster Crunch Analysis

Edwin Arroyo Photo: Angelina Alcantar/News Sentinel/USA TODAY NETWORK via Imagn Images

We’re less than a month from the Winter Meetings and the Rule 5 Draft, which means it’s a good time to evaluate every team’s 40-man roster situation. This is the time of year when teams have one final chance to protect Rule 5 eligible players by placing them on the 40-man. Eligibility is determined by a mix of how long a player has been with their parent organization and how young they were when they signed: Players who signed at 18 or younger must be added to the 40-man within five seasons, while everyone else must be added within four. RosterResource monitors Rule 5 eligibility, if you’re curious to see the lay of the land.

During the season, teams can free up roster space by placing an injured player on the 60-day IL. In the offseason, teams don’t get extra slots for injured players, which tends to put pressure on the back of the roster. The Diamondbacks are a good example of how space can tighten quickly, as they’ve currently got six pitchers battling long-term injuries occupying a spot. You may have noticed a flurry of moves immediately following the World Series, with many teams outrighting players off the 40-man in order to make room for all the guys who were on the IL.

Below, I’ve assessed every National League team’s 40-man roster situation (Eric will sort through the American League tomorrow). Some teams, like the Braves, have plenty of roster space, and thus a lot of flexibility in adding whoever they like. Others, like the Cardinals and Marlins, will face some tough choices as they seek to balance protecting interesting prospects with retaining players already on the roster, as well as finding room for prospective additions via trade or free agency. Some clubs don’t have many impact players to add, while others may need to protect a half-dozen or so guys. I’ve tried to identify which players are most likely to be added, which guys on the 40-man are vulnerable to getting lopped off in a roster crunch, and who could be moved in a deal to free up roster space. Let’s dig in. Read the rest of this entry »