Archive for Daily Graphings

Mets Snag Luis Robert Jr. From White Sox

Steven Bisig-Imagn Images

With most of the top free agents having found new homes – 12 of our top 15 have signed – the baseball transaction news figured to be light this week. Maybe the Yankees and Cody Bellinger would keep making lovey-dovey eyes at each other across the negotiating table to give us some headlines, but that felt like the only game in town for at least a few days. But just because no one is left to sign doesn’t mean nothing can happen. Out in Queens, the Mets weren’t content to sit pat after signing Bo Bichette. They continued their offseason splurge by acquiring Luis Robert Jr. from the White Sox in exchange for Luisangel Acuña and pitching prospect Truman Pauley, as ESPN’s Jeff Passan first reported.

I’ve grappled with evaluating Robert innumerable times over the past few years. For a while, he was a yearly feature in our Trade Value series, an electric talent in his early 20s. Then he became an interesting litmus test when talking to team evaluators, as his production dipped but his prodigious tools remained as loud as ever. Finally, as his contract hit the expensive team option phase, I considered him for a list of top free agents, as I have to predict what option decisions teams will make. At every turn, I came away equally impressed and frustrated by Robert’s ludicrous ceiling and subbasement-level floor.

You want a tooled-up center fielder? Robert is your guy. If you click on the “Prospects Report” tab on his player page, you’ll see this short blurb by Eric Longenhagen: “Graduation TLDR: The Vitruvian Outfield Prospect in all facets save for his approach, Robert graduated from prospectdom as one of baseball’s most exciting players.” That Vitruvian Outfield Prospect phrase has stuck with me.

If you made an outfielder in a lab, he’d look a lot like this. Power? Robert has 90th-percentile bat speed and clobbered 38 home runs in his last full season of playing time. He gets the ball in the air, too, all the better to maximize his best contact. Speed? You guessed it, 90th-percentile sprint speed. He’s also among the best defensive outfielders in the game when he’s healthy. He even has a strong throwing arm, though it’s inaccurate at times. If you’re looking for a Gold Glove defender who can hit 40 homers at the hardest outfield spot and swipe 30 bags, he’s one of maybe three players in the entire majors who fits the bill. Read the rest of this entry »


2026 ZiPS Projections: Chicago Cubs

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 antepenultimate team is the Chicago Cubs.

Batters

ZiPS was a big believer in the 2025 Chicago Cubs, and it was right on point about most of their core talent. The problem, though, was that ZiPS wasn’t right about the Milwaukee Brewers, and though Chicago stayed in the NL Central race for most of the season, Milwaukee’s 14-game winning streak all but settled things by mid-August. Add in a five-game loss to the Brew Crew in the NLDS, and a successful season ended in underwhelming fashion for the North Siders. The Cubs went into the offseason looking to replace Kyle Tucker in the lineup and shore up the rotation a bit.

Generally speaking, the Cubs have a rather boring lineup in one manner: It’s mostly well-established players who are largely in the same roles as last season. Carson Kelly and Miguel Amaya, the latter swapped in for Reese McGuire, will be a competent tandem behind the plate. Dansby Swanson, Nico Hoerner, and Pete Crow-Armstrong will play terrific defense, with PCA adding a bunch of homers at the cost of a rather low on-base percentage. Ian Happ and Seiya Suzuki are on the wrong side of 30, but not distressingly so, and the typically B+ corner outfielders will likely put up their typical B+ seasons. One can see why the Cubs felt they could afford to trade Owen Caissie to Miami for Edward Cabrera; he was going to have a hard time finding playing time, and Kevin Alcántara’s defense makes him a more versatile fourth outfielder.

Where there are changes are at third base and designated hitter (by way of Suzuki playing a lot more right field). Alex Bregman is more or less the Kyle Tucker replacement, with a bit less bat and a bit more defensive value. Moisés Ballesteros has a lot of offensive upside, but he’s not really exciting yet as a full-time designated hitter, and Matt Shaw loses significant value as a DH. ZiPS is optimistic about Tyler Austin after a mostly successful six-year run in Japan, though he doesn’t provide a lot of flexibility, as it’s been years since he’s played anywhere but first base. I say mostly successful because he wasn’t particularly durable in NPB, with his most notable — and amusing — injury coming when he smashed his head on the dugout ceiling while changing his jersey.

I’m actually not quite sure what happens with Shaw, who appears to have been musical chaired out of a significant role by the Bregman and Austin signings. I don’t know just how seriously the Cubs consider him a supersub. Swanson and Hoerner were both durable in 2025, so we didn’t get any sneak peeks at how the Cubs truly felt about Shaw’s ability to play the middle infield when the rubber meets the road.

I wonder if the Cubs will be particularly active with non-roster invitations over the next month; ZiPS doesn’t see a great deal in the way of reinforcements in the high minors. Guys like Scott Kingery are probably far too high in the ZiPS WAR rankings than the Cubs ought to be comfortable with.

Pitchers

ZiPS sees the Cubs as having a very deep rotation that’s also very deep in unexcitement. There’s certainly some upside here, especially in Edward Cabrera, but ZiPS largely views the team as having a whole lot of broadly average starting pitching options. The good news here is that if Justin Steele has any setbacks, ZiPS likes the team’s replacement options. Even with especially bad luck in the injury department, the computer thinks Javier Assad will be adequate — it has him with an ERA considerably lower than his FIP, though some of that is thanks to the stellar Cubs defense — and that Ben Brown and Jordan Wicks would both be far more acceptable as starters if called into duty than they’ve shown so far. Heck, if Colin Rea or even Connor Noland were forced into starting some games, that wouldn’t be an apocalyptic scenario for the Cubs.

While deep in meh, ZiPS is more enthusiastic about the Chicago bullpen. Now, as was the case with Assad, some of the bullpen’s projected sufficiency comes down to the defense behind it, but ZiPS largely sees these relievers as having ERAs below four, and generally well below that line. ZiPS especially likes Hunter Harvey, Daniel Palencia, and the relief version of Porter Hodge. In the case of Hodge, remember the rule not to freak out about one-year home run totals for otherwise competent pitchers. The only prominent relievers ZiPS looks at with a bit of a side eye are Ethan Roberts and recent signee Jacob Webb.

All in all, the Cubs look like a team with a win total in the low 90s. The only negative of that projection is that ZiPS feels similarly about the Brewers this time around. We won’t know the end of this story for another nine months.

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
Pete Crow-Armstrong L 24 CF 614 560 91 143 28 6 25 91 33 151 32 8
Nico Hoerner R 29 2B 634 580 82 161 28 3 9 62 40 57 26 6
Dansby Swanson R 32 SS 601 543 78 131 24 2 19 71 52 155 14 3
Michael Busch L 28 1B 586 513 82 132 27 3 28 87 62 142 3 0
Ian Happ B 31 LF 638 548 82 134 33 1 22 79 81 151 8 2
Seiya Suzuki R 31 RF 601 525 74 136 27 4 26 86 67 150 7 3
Alex Bregman R 32 3B 568 491 71 118 24 1 18 70 65 83 2 1
Matt Shaw R 24 3B 530 470 69 115 21 4 16 65 49 105 19 6
Moisés Ballesteros L 22 C 586 530 60 139 23 2 14 72 47 100 2 2
Carson Kelly R 31 C 359 317 39 73 12 1 11 42 35 73 2 0
Pedro Ramirez B 22 3B 570 523 61 127 18 4 7 55 36 114 14 6
Jonathon Long R 24 1B 566 495 68 122 18 1 14 67 59 130 1 0
Tyler Austin R 34 1B 329 290 41 71 18 1 14 49 36 91 0 0
Miguel Amaya R 27 C 267 238 27 57 12 1 7 35 19 58 0 0
Jon Berti R 36 3B 294 263 35 64 9 1 3 21 25 65 19 5
Forrest Wall L 30 CF 370 326 49 76 12 2 5 36 34 106 23 5
Kevin Alcántara R 23 CF 473 431 54 101 20 1 12 53 38 154 8 3
Dixon Machado R 34 3B 331 286 28 59 8 0 3 27 36 66 3 1
Scott Kingery R 32 SS 380 346 41 71 11 3 9 38 26 127 8 1
Carlos Santana B 40 1B 449 389 46 83 15 0 12 51 54 87 4 0
Reese McGuire L 31 C 235 214 21 47 8 0 6 27 14 51 1 0
Hayden Cantrelle B 27 2B 373 316 41 61 11 3 4 32 44 133 14 3
Brett Bateman L 24 CF 425 370 45 84 11 1 3 31 48 103 12 4
Chase Strumpf R 28 3B 398 341 43 64 13 1 10 43 48 152 4 1
Justin Dean R 29 CF 391 347 50 73 10 4 5 34 37 127 22 7
Justin Turner R 41 1B 419 365 44 88 18 0 9 44 41 79 2 1
BJ Murray Jr. B 26 1B 506 442 50 92 17 1 12 53 57 130 10 4
Ariel Armas R 23 C 377 344 24 68 17 1 4 34 26 90 4 3
Jefferson Rojas R 21 SS 480 432 55 89 13 3 9 48 38 102 11 3
Ben Cowles R 26 SS 490 445 50 95 20 2 7 48 34 164 11 5
Cameron Sisneros L 25 1B 343 300 28 67 12 1 7 40 32 72 5 1
Christian Bethancourt R 34 C 243 226 25 45 10 0 7 26 10 72 2 1
James Triantos R 23 2B 486 451 58 107 18 3 5 47 26 79 20 7
Felix Stevens R 26 RF 383 344 41 69 14 1 13 49 32 155 2 1
Pablo Aliendo R 25 C 367 336 33 64 14 1 10 43 21 147 1 1
Caleb Knight R 30 DH 90 80 6 15 3 0 1 10 5 28 1 1
Devin Ortiz R 27 3B 479 429 47 92 11 1 5 40 38 112 8 4
Parker Chavers L 27 LF 355 317 39 63 11 2 3 28 35 100 10 4
Darius Hill L 28 LF 350 322 35 73 16 2 3 32 22 78 2 2
Casey Opitz B 27 C 251 225 21 37 5 1 4 20 22 96 1 0
Leonel Espinoza R 23 CF 454 419 54 93 14 2 6 44 25 125 12 5
Reivaj Garcia B 24 2B 413 384 41 91 14 2 1 31 19 82 6 2
Carter Trice R 23 CF 374 328 41 59 13 1 12 43 41 139 8 4
Drew Bowser R 24 3B 328 293 32 52 12 1 4 29 30 132 6 2
Miguel Pabon R 25 C 261 234 22 42 6 1 2 18 21 91 2 0
Jordan Nwogu R 27 LF 376 342 39 71 10 2 6 38 23 123 12 5
Edgar Alvarez L 25 LF 424 384 38 84 15 0 7 39 34 125 4 1
Brian Kalmer R 25 1B 351 317 36 60 11 2 10 37 30 130 1 0
Eriandys Ramon B 23 3B 226 215 22 38 8 2 3 19 9 76 2 2
Haydn McGeary R 26 DH 398 353 32 69 12 1 7 38 38 141 3 0
Alexis Hernandez R 21 SS 277 252 28 44 7 1 3 20 21 92 7 2
Reginald Preciado R 23 3B 335 313 29 60 10 1 3 26 15 110 5 3
Jaylen Palmer R 25 RF 433 387 45 68 12 1 9 42 39 195 12 5
Ethan Hearn L 25 C 319 294 29 52 9 2 7 33 19 124 3 1
Luis Sanchez L 18 CF 253 231 23 37 5 1 2 19 16 77 6 4
Christopher Paciolla R 22 3B 251 235 16 40 10 0 2 20 10 89 3 2
Andy Garriola R 26 LF 418 387 40 71 17 1 10 44 20 120 4 1
Rafael Morel R 24 LF 397 356 43 64 10 1 4 31 32 152 10 2
Ed Howard R 24 SS 305 284 23 49 8 0 1 18 16 124 4 2

Batters – Advanced
Player PA BA OBP SLG OPS+ ISO BABIP Def WAR wOBA 3YOPS+ RC
Pete Crow-Armstrong 614 .255 .304 .461 118 .206 .307 13 4.6 .326 122 88
Nico Hoerner 634 .278 .333 .383 107 .105 .296 11 3.8 .314 105 82
Dansby Swanson 601 .241 .309 .398 104 .157 .304 10 3.6 .309 99 71
Michael Busch 586 .257 .345 .485 138 .228 .303 2 3.2 .356 134 86
Ian Happ 638 .245 .345 .429 123 .184 .299 3 2.9 .338 117 84
Seiya Suzuki 601 .259 .343 .474 134 .215 .315 -2 2.9 .350 129 88
Alex Bregman 568 .240 .336 .403 114 .163 .256 2 2.7 .325 109 67
Matt Shaw 530 .245 .321 .409 110 .164 .284 1 2.4 .319 112 68
Moisés Ballesteros 586 .262 .324 .392 107 .130 .300 -3 2.1 .312 108 69
Carson Kelly 359 .230 .312 .379 99 .149 .266 3 1.8 .304 94 38
Pedro Ramirez 570 .243 .296 .333 83 .090 .299 11 1.4 .278 85 57
Jonathon Long 566 .246 .334 .372 105 .126 .308 5 1.4 .314 106 62
Tyler Austin 329 .245 .328 .459 125 .214 .308 1 1.2 .336 118 44
Miguel Amaya 267 .239 .309 .387 101 .148 .289 -2 0.9 .306 99 28
Jon Berti 294 .243 .314 .319 85 .076 .313 4 0.9 .285 81 32
Forrest Wall 370 .233 .313 .328 87 .095 .330 0 0.9 .288 86 40
Kevin Alcántara 473 .234 .298 .369 92 .135 .336 -1 0.8 .293 95 50
Dixon Machado 331 .206 .302 .266 67 .060 .258 9 0.7 .263 66 24
Scott Kingery 380 .205 .263 .332 72 .127 .295 4 0.6 .262 69 32
Carlos Santana 449 .213 .312 .344 91 .131 .245 5 0.6 .293 88 43
Reese McGuire 235 .220 .270 .341 76 .121 .261 2 0.5 .268 73 20
Hayden Cantrelle 373 .193 .304 .285 73 .092 .318 3 0.5 .272 73 31
Brett Bateman 425 .227 .318 .286 77 .059 .307 2 0.5 .277 78 38
Chase Strumpf 398 .188 .297 .320 79 .132 .302 1 0.4 .280 81 34
Justin Dean 391 .210 .294 .305 75 .095 .316 2 0.4 .271 74 39
Justin Turner 419 .241 .325 .364 100 .123 .285 0 0.3 .305 100 44
BJ Murray Jr. 506 .208 .302 .333 84 .125 .267 7 0.3 .285 87 48
Ariel Armas 377 .198 .265 .288 61 .090 .256 5 0.2 .249 64 28
Jefferson Rojas 480 .206 .277 .313 71 .107 .249 0 0.2 .263 77 41
Ben Cowles 490 .213 .278 .315 72 .101 .321 -1 0.0 .264 73 43
Cameron Sisneros 343 .223 .312 .340 89 .117 .271 1 0.0 .291 94 33
Christian Bethancourt 243 .199 .234 .336 63 .137 .259 1 -0.1 .247 59 19
James Triantos 486 .237 .284 .324 76 .087 .278 -2 -0.1 .269 81 48
Felix Stevens 383 .201 .277 .360 83 .159 .318 0 -0.3 .281 88 35
Pablo Aliendo 367 .190 .251 .327 66 .137 .302 -3 -0.4 .255 72 28
Caleb Knight 90 .188 .270 .263 56 .075 .275 0 -0.4 .245 58 6
Devin Ortiz 479 .214 .285 .280 65 .065 .279 1 -0.5 .256 65 38
Parker Chavers 355 .199 .282 .274 63 .075 .280 5 -0.5 .254 62 28
Darius Hill 350 .227 .281 .317 73 .090 .290 3 -0.5 .265 73 30
Casey Opitz 251 .164 .244 .249 44 .085 .264 1 -0.5 .226 48 14
Leonel Espinoza 454 .222 .276 .308 69 .086 .302 -3 -0.6 .259 75 40
Reivaj Garcia 413 .237 .275 .292 65 .055 .299 0 -0.6 .250 65 33
Carter Trice 374 .180 .278 .335 77 .155 .266 -8 -0.7 .274 83 34
Drew Bowser 328 .177 .262 .266 54 .089 .306 -1 -0.8 .242 59 22
Miguel Pabon 261 .179 .255 .239 45 .060 .284 -3 -0.9 .228 47 15
Jordan Nwogu 376 .208 .271 .301 66 .093 .305 2 -0.9 .256 69 32
Edgar Alvarez 424 .219 .285 .313 74 .094 .306 -2 -0.9 .267 74 35
Brian Kalmer 351 .189 .262 .331 71 .142 .282 0 -0.9 .262 73 28
Eriandys Ramon 226 .177 .217 .274 42 .097 .257 1 -1.0 .217 47 14
Haydn McGeary 398 .195 .279 .295 67 .100 .302 0 -1.1 .258 70 30
Alexis Hernandez 277 .175 .243 .246 43 .071 .261 -4 -1.2 .223 50 17
Reginald Preciado 335 .192 .237 .259 44 .067 .285 1 -1.3 .221 48 21
Jaylen Palmer 433 .176 .261 .282 58 .106 .322 2 -1.3 .247 63 33
Ethan Hearn 319 .177 .238 .293 53 .116 .276 -8 -1.4 .236 59 22
Luis Sanchez 253 .160 .233 .216 32 .056 .230 -1 -1.4 .209 39 15
Christopher Paciolla 251 .170 .219 .238 33 .068 .264 -1 -1.5 .206 37 14
Andy Garriola 418 .183 .235 .310 57 .127 .237 2 -1.5 .240 57 29
Rafael Morel 397 .180 .258 .247 48 .067 .300 2 -1.6 .232 50 26
Ed Howard 305 .173 .221 .211 27 .038 .302 -3 -1.9 .197 32 15

Batters – Top Near-Age Offensive Comps
Player Hit Comp 1 Hit Comp 2 Hit Comp 3
Pete Crow-Armstrong Andre Dawson Carlos González Dan Gladden
Nico Hoerner Steve Sax Felix Millan Whit Merrifield
Dansby Swanson Juan Samuel Bill Rigney Casey Blake
Michael Busch Ray Sanders Brandon Belt Norm Siebern
Ian Happ Bob Skinner Von Hayes Andrew McCutchen
Seiya Suzuki Babe Herman Chick Hafey Andy Van Slyke
Alex Bregman Edgardo Alfonzo John Valentin Richie Hebner
Matt Shaw Darnell Coles Andy Carey Arthur Fischetti
Moisés Ballesteros William Gilmore Jason Kendall Joe Mauer
Carson Kelly John Orsino Elrod Hendricks Butch Henline
Pedro Ramirez Steve Garcia Mauricio Dubón Jorge Polanco
Jonathon Long Phil Trombino Scott Vieira Jayce Boyd
Tyler Austin Wes Covington Steve Pearce Larry Hisle
Miguel Amaya Tom Pagnozzi Bill Bathe Rob Natal
Jon Berti Julio Lugo Bert Campaneris Roy Hughes
Forrest Wall Earl McNeely Mike Brumley Kenny Wilson
Kevin Alcántara Moises Camacho Donald Hubbard Walter Derucki
Dixon Machado Abraham O. Nunez Eric Sogard Alex Grammas
Scott Kingery Joe Hoover Paul Noce Jackie Hernandez
Carlos Santana Kevin Millar Jerry Crosby Jay Bell
Reese McGuire Greg Myers Vance Wilson Rene Friol
Hayden Cantrelle Junior Spivey R.D. Long Anthony Granato
Brett Bateman Aaron Barbosa Justin Martin Jim Buccheri
Chase Strumpf Dwight Carter Joe Orengo Mitch Walding
Justin Dean Donzell McDonald Andres Torres Jeff Duncan
Justin Turner Sam West Scott Hatteberg Bruce Bochte
BJ Murray Jr. Deacon Jones Gordon Goldsberry Rex De La Nuez
Ariel Armas Rick Austin Tony Tornay Guillermo Garcia
Jefferson Rojas James Passilla Tzu-Wei Lin Lou Collier
Ben Cowles Pedro Florimón Caonabo Cosme Richard Haymore
Cameron Sisneros Kevin Burford Terry Christman Jim Essian
Christian Bethancourt Freddie Velazquez Art Kusnyer Jeff Newman
James Triantos Ramón Torres Ramon Nivar Enzo Hernandez
Felix Stevens Paul Powell Cliff Cook Trey Cabbage
Pablo Aliendo Bob Geren Dick Brown Craig Faulkner
Caleb Knight Aaron Brill P.J. Phillips Jim Murphy
Devin Ortiz Matt Maniscalco Shawn Gilbert John Hack
Parker Chavers Mike Loggins Bub Bergstrom Eric Suttle
Darius Hill Joe Moock James Jedelsky Luis Melendez
Casey Opitz Buddy Pryor Terry Bell Frank Kolarek
Leonel Espinoza Eliezer Mesa Pat Hallmark Dan Ramirez
Reivaj Garcia Omar Obregon Harold Castro Franklin Font
Carter Trice Ron Sorey Jim Magnuson Eli Ben
Drew Bowser Dale Soderholm Steve Martin Gosuke Katoh
Miguel Pabon Terry Bell Scott Maynard Tim Redman
Jordan Nwogu Ed Bady Casio Grider Pat Hallmark
Edgar Alvarez Jeremy Morris Joe Jackson Mark Riemer
Brian Kalmer Johnny Woodard Keith Raisanen Travis Ishikawa
Eriandys Ramon Hendry Jimenez Juan Polanco Alan Schoenberger
Haydn McGeary James Barbe Beau Blacken Juan Pautt
Alexis Hernandez JM Devarie Juan Cruz Bobby Lenoir
Reginald Preciado Stanley Walters Steve Hughes Samuel Sime
Jaylen Palmer Fred Winston Scott Wade George Lombard
Ethan Hearn Doug Adams Ray Bond Eddie Lantigua
Luis Sanchez German Geigel Jorge Carty Aman Hicks
Christopher Paciolla Landon Brandes Tanner Townsend Juan Sanchez
Andy Garriola Jeff Mace Chuck Baker Robert Kosis
Rafael Morel Mark Simmons Charlie Frazier Kent Headley
Ed Howard Brandon Van Horn Trever Morrison Brady Stewart

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
Pete Crow-Armstrong .281 .327 .515 138 6.1 .228 .280 .407 96 2.9
Nico Hoerner .304 .361 .422 127 5.3 .253 .309 .349 92 2.4
Dansby Swanson .266 .333 .446 123 4.9 .217 .279 .355 84 2.2
Michael Busch .282 .370 .542 159 4.7 .236 .320 .439 119 1.9
Ian Happ .267 .370 .474 142 4.3 .217 .320 .381 105 1.5
Seiya Suzuki .283 .369 .525 154 4.3 .235 .319 .427 117 1.6
Alex Bregman .262 .361 .455 134 4.1 .215 .309 .357 94 1.4
Matt Shaw .270 .347 .460 130 3.6 .222 .298 .365 92 1.2
Moisés Ballesteros .292 .354 .441 127 3.5 .237 .299 .353 89 0.7
Carson Kelly .258 .337 .422 118 2.6 .203 .283 .322 77 0.8
Pedro Ramirez .272 .323 .372 103 2.8 .220 .272 .299 66 0.3
Jonathon Long .275 .361 .420 124 2.7 .220 .308 .332 86 0.2
Tyler Austin .268 .356 .509 145 2.0 .219 .307 .412 105 0.4
Miguel Amaya .271 .337 .443 124 1.6 .217 .287 .337 83 0.3
Jon Berti .271 .337 .360 102 1.7 .210 .284 .281 66 0.3
Forrest Wall .261 .339 .375 106 1.8 .207 .287 .285 68 0.0
Kevin Alcántara .262 .329 .417 114 2.0 .207 .272 .326 73 -0.3
Dixon Machado .234 .330 .301 83 1.4 .180 .274 .229 51 0.1
Scott Kingery .234 .293 .383 94 1.6 .180 .241 .291 55 -0.2
Carlos Santana .239 .340 .391 108 1.6 .188 .284 .301 71 -0.5
Reese McGuire .250 .302 .396 98 1.1 .195 .248 .295 58 0.0
Hayden Cantrelle .219 .327 .328 91 1.3 .163 .275 .241 54 -0.4
Brett Bateman .255 .348 .324 94 1.4 .198 .291 .253 60 -0.4
Chase Strumpf .212 .321 .372 98 1.3 .161 .269 .270 57 -0.6
Justin Dean .241 .323 .351 95 1.3 .182 .262 .262 52 -0.7
Justin Turner .270 .352 .405 116 1.2 .213 .297 .318 78 -0.8
BJ Murray Jr. .232 .328 .378 102 1.5 .184 .282 .290 67 -0.8
Ariel Armas .232 .297 .334 82 1.2 .170 .236 .244 42 -0.7
Jefferson Rojas .235 .305 .365 91 1.3 .182 .253 .270 52 -0.9
Ben Cowles .240 .306 .362 94 1.3 .187 .250 .276 56 -0.9
Cameron Sisneros .250 .339 .387 109 0.8 .200 .290 .303 74 -0.6
Christian Bethancourt .225 .260 .392 85 0.5 .175 .210 .281 43 -0.7
James Triantos .261 .308 .363 93 1.0 .213 .262 .290 60 -1.0
Felix Stevens .226 .302 .409 103 0.6 .174 .251 .307 63 -1.2
Pablo Aliendo .215 .277 .371 84 0.4 .164 .224 .280 45 -1.4
Caleb Knight .217 .299 .307 75 -0.2 .162 .245 .222 38 -0.6
Devin Ortiz .237 .312 .309 80 0.4 .187 .260 .245 49 -1.5
Parker Chavers .224 .314 .314 83 0.3 .174 .256 .240 46 -1.3
Darius Hill .250 .307 .354 89 0.2 .203 .256 .285 58 -1.2
Casey Opitz .190 .276 .298 66 0.2 .137 .213 .211 25 -1.1
Leonel Espinoza .244 .296 .350 85 0.3 .199 .253 .271 53 -1.5
Reivaj Garcia .267 .301 .327 82 0.2 .212 .251 .260 49 -1.4
Carter Trice .203 .300 .379 95 0.0 .154 .250 .287 58 -1.6
Drew Bowser .203 .289 .312 72 -0.1 .152 .238 .222 36 -1.6
Miguel Pabon .208 .286 .276 63 -0.4 .150 .227 .200 27 -1.5
Jordan Nwogu .237 .297 .347 84 0.0 .183 .246 .270 49 -1.6
Edgar Alvarez .244 .310 .349 90 -0.1 .194 .259 .272 56 -1.9
Brian Kalmer .214 .287 .372 89 -0.2 .165 .236 .284 53 -1.7
Eriandys Ramon .205 .243 .322 63 -0.4 .148 .189 .223 21 -1.5
Haydn McGeary .220 .307 .337 84 -0.3 .171 .252 .258 48 -2.1
Alexis Hernandez .206 .272 .292 64 -0.5 .148 .217 .206 26 -1.7
Reginald Preciado .221 .265 .295 60 -0.7 .165 .211 .223 25 -2.1
Jaylen Palmer .201 .285 .331 76 -0.3 .146 .233 .233 37 -2.5
Ethan Hearn .208 .269 .351 76 -0.5 .150 .212 .249 33 -2.1
Luis Sanchez .186 .257 .251 48 -1.0 .135 .204 .180 15 -2.0
Christopher Paciolla .201 .248 .276 52 -0.9 .146 .195 .197 15 -2.0
Andy Garriola .209 .260 .351 74 -0.6 .160 .210 .262 37 -2.5
Rafael Morel .207 .285 .285 66 -0.7 .157 .228 .215 31 -2.4
Ed Howard .197 .247 .245 44 -1.3 .150 .197 .182 12 -2.4

Batters – Platoon Splits
Player BA vs. L OBP vs. L SLG vs. L BA vs. R OBP vs. R SLG vs. R
Pete Crow-Armstrong .251 .302 .431 .257 .305 .473
Nico Hoerner .292 .343 .410 .272 .329 .372
Dansby Swanson .250 .320 .424 .238 .306 .389
Michael Busch .247 .332 .438 .262 .351 .507
Ian Happ .242 .329 .403 .246 .350 .439
Seiya Suzuki .268 .363 .490 .255 .334 .468
Alex Bregman .248 .347 .416 .237 .332 .398
Matt Shaw .248 .327 .418 .243 .319 .404
Moisés Ballesteros .247 .306 .363 .268 .331 .404
Carson Kelly .242 .327 .404 .225 .305 .367
Pedro Ramirez .250 .304 .338 .240 .293 .331
Jonathon Long .243 .339 .385 .248 .332 .366
Tyler Austin .247 .339 .464 .244 .323 .456
Miguel Amaya .250 .322 .375 .234 .303 .392
Jon Berti .247 .326 .321 .242 .308 .319
Forrest Wall .215 .292 .299 .242 .324 .342
Kevin Alcántara .242 .313 .394 .231 .291 .358
Dixon Machado .213 .312 .277 .203 .297 .260
Scott Kingery .209 .267 .336 .203 .262 .331
Carlos Santana .230 .321 .369 .206 .307 .333
Reese McGuire .216 .268 .314 .221 .271 .350
Hayden Cantrelle .194 .303 .282 .192 .305 .286
Brett Bateman .214 .297 .265 .232 .325 .294
Chase Strumpf .191 .304 .330 .186 .294 .314
Justin Dean .208 .296 .320 .212 .293 .297
Justin Turner .241 .333 .371 .241 .320 .361
BJ Murray Jr. .216 .303 .343 .205 .302 .328
Ariel Armas .200 .276 .286 .197 .261 .289
Jefferson Rojas .213 .284 .331 .203 .274 .305
Ben Cowles .222 .289 .333 .210 .274 .306
Cameron Sisneros .217 .305 .325 .226 .315 .346
Christian Bethancourt .205 .244 .370 .196 .230 .320
James Triantos .240 .287 .336 .236 .283 .318
Felix Stevens .206 .283 .364 .198 .274 .359
Pablo Aliendo .195 .256 .339 .188 .249 .321
Caleb Knight .179 .258 .214 .192 .276 .288
Devin Ortiz .217 .294 .295 .213 .282 .273
Parker Chavers .190 .273 .253 .202 .285 .282
Darius Hill .219 .272 .314 .230 .285 .318
Casey Opitz .159 .237 .232 .167 .247 .256
Leonel Espinoza .228 .278 .325 .220 .275 .301
Reivaj Garcia .241 .278 .278 .236 .273 .297
Carter Trice .177 .288 .344 .181 .274 .332
Drew Bowser .176 .271 .259 .178 .259 .269
Miguel Pabon .179 .267 .254 .180 .250 .234
Jordan Nwogu .208 .273 .308 .207 .270 .297
Edgar Alvarez .204 .265 .301 .224 .293 .317
Brian Kalmer .202 .283 .383 .184 .253 .309
Eriandys Ramon .177 .227 .258 .176 .213 .281
Haydn McGeary .198 .283 .292 .194 .277 .296
Alexis Hernandez .173 .244 .240 .175 .242 .249
Reginald Preciado .196 .245 .261 .190 .234 .258
Jaylen Palmer .177 .271 .282 .175 .256 .281
Ethan Hearn .161 .223 .276 .184 .244 .300
Luis Sanchez .149 .219 .164 .165 .239 .238
Christopher Paciolla .174 .219 .261 .169 .219 .229
Andy Garriola .190 .239 .324 .181 .234 .305
Rafael Morel .183 .259 .240 .179 .257 .250
Ed Howard .182 .236 .212 .168 .213 .211

Pitchers – Standard
Player T Age W L ERA G GS IP H ER HR BB SO
Justin Steele L 30 8 5 3.52 24 24 130.3 119 51 14 35 121
Matthew Boyd L 35 10 7 3.84 26 26 143.0 132 61 17 40 126
Edward Cabrera R 28 8 6 3.88 25 25 130.0 105 56 16 51 139
Shota Imanaga L 32 8 7 3.96 25 25 136.3 126 60 24 31 125
Cade Horton R 24 8 7 3.89 26 25 125.0 109 54 16 37 109
Jameson Taillon R 34 9 8 4.25 26 26 135.7 133 64 22 31 105
Javier Assad R 28 5 4 4.00 23 19 104.3 99 47 13 41 82
Hunter Harvey R 31 4 2 2.83 46 1 47.7 38 15 4 12 53
Ben Brown R 26 6 6 4.10 24 15 98.7 88 45 12 34 106
Jordan Wicks L 26 5 4 4.02 25 18 85.0 82 38 11 26 76
Colin Rea R 35 7 8 4.39 27 22 133.3 133 65 19 38 101
Connor Noland R 26 7 7 4.46 25 21 119.0 122 59 16 38 85
Will Sanders R 24 6 8 4.57 24 21 108.3 105 55 15 38 90
Daniel Palencia R 26 5 3 3.75 49 3 57.7 46 24 6 24 64
Aaron Civale R 31 6 6 4.57 23 20 106.3 99 54 16 34 93
Jaxon Wiggins R 24 4 4 4.48 20 19 72.3 66 36 9 36 63
Nick Dean R 25 4 4 4.52 16 15 65.7 66 33 10 21 53
Caleb Thielbar L 39 4 2 3.57 55 0 45.3 40 18 6 14 47
Phil Maton R 33 4 3 3.70 58 0 56.0 44 23 6 22 58
Chris Clarke R 28 3 4 4.50 17 9 60.0 60 30 7 17 43
Wil Jensen R 28 4 3 4.43 26 7 69.0 66 34 10 28 60
Walker Powell R 30 3 4 4.60 16 12 60.7 65 31 9 15 37
Porter Hodge R 25 4 5 4.16 43 5 62.7 50 29 7 34 72
Luke Little L 25 2 2 3.95 45 2 57.0 43 25 5 32 65
Austin Gomber L 32 5 6 4.84 20 18 100.3 104 54 17 27 75
Ryan Brasier R 38 1 1 3.89 39 1 37.0 33 16 4 11 30
Hoby Milner L 35 3 2 4.02 58 0 56.0 54 25 6 16 47
Connor Schultz R 27 3 3 4.71 22 11 70.7 74 37 11 21 52
Taylor Rogers L 35 3 3 4.08 52 0 46.3 40 21 6 21 52
Joe Ross R 33 2 2 4.45 32 5 56.7 56 28 7 22 45
Antonio Santos R 29 5 5 4.78 20 14 69.7 67 37 9 33 58
Zane Mills R 25 5 5 4.71 27 8 72.7 74 38 10 25 52
Chris Flexen R 31 5 6 4.89 26 15 95.7 99 52 15 37 70
Ryan Pressly R 37 2 3 4.17 43 0 41.0 40 19 5 15 34
Peter Solomon R 29 4 4 4.84 18 11 67.0 67 36 9 31 55
Ethan Roberts R 28 3 2 4.26 39 1 44.3 40 21 6 18 46
Brandon Birdsell R 26 4 6 4.97 18 18 83.3 84 46 15 26 62
Jacob Webb R 32 4 3 4.19 52 0 58.0 49 27 8 22 56
Sam McWilliams R 30 2 3 4.62 22 3 37.0 33 19 5 21 38
Ryan Jensen R 28 3 4 4.74 29 4 43.7 38 23 5 28 44
Eli Morgan R 30 2 2 4.30 37 0 44.0 41 21 6 15 38
Brad Deppermann R 30 2 2 4.37 32 0 35.0 36 17 5 12 27
Jeff Brigham R 34 3 3 4.59 29 1 33.3 28 17 5 17 38
Riley Martin L 28 4 4 4.42 41 1 57.0 49 28 7 33 60
Corbin Martin R 30 3 4 4.69 36 4 55.7 52 29 7 29 51
Ryan Rolison L 28 2 3 4.65 41 3 62.0 63 32 9 23 47
Yency Almonte R 32 1 2 4.45 30 0 30.3 26 15 4 15 29
Grant Kipp R 26 5 6 5.08 21 18 85.0 83 48 12 42 70
Collin Snider R 30 2 3 4.53 48 0 51.7 51 26 7 18 42
Tyler Schlaffer R 25 3 5 5.17 18 17 78.3 79 45 12 37 60
Chris Kachmar R 29 4 6 5.16 21 18 89.0 90 51 15 41 74
Nick Hull R 26 2 3 4.99 29 5 61.3 62 34 9 28 47
Tom Cosgrove L 30 3 2 4.62 44 0 48.7 42 25 6 24 46
Brandon Hughes L 30 3 3 4.81 36 1 43.0 40 23 7 18 42
Jack Neely R 26 2 1 4.57 34 0 41.3 37 21 6 21 43
Gavin Hollowell R 28 2 3 4.68 36 0 42.3 38 22 5 21 41
Tyson Miller R 30 2 3 4.88 35 3 51.7 47 28 7 26 45
Tyler Santana R 28 4 5 4.97 30 3 63.3 69 35 9 24 40
Nolan Clenney R 30 2 2 4.83 23 0 41.0 42 22 5 18 31
Tommy Romero R 28 3 4 5.29 19 10 66.3 67 39 11 33 48
Cayne Ueckert R 30 2 2 5.12 29 0 31.7 30 18 4 19 29
Zac Leigh R 28 2 3 4.75 38 0 41.7 39 22 6 23 37
Sam Thoresen R 27 1 2 5.32 24 0 23.7 22 14 3 18 22
Mitchell Tyranski L 28 3 4 4.76 40 0 45.3 43 24 7 23 41
Frankie Scalzo Jr. R 26 4 5 5.08 31 2 44.3 44 25 6 22 34
Erian Rodriguez R 24 4 7 5.48 18 14 70.7 75 43 11 33 48
Evan Taylor L 26 3 5 4.89 30 0 46.0 42 25 6 23 43
Robert Kwiatkowski R 29 3 4 4.98 25 1 43.3 45 24 6 19 30
Peyton Graham R 31 3 5 4.98 39 1 47.0 48 26 6 20 34

Pitchers – Advanced
Player IP K/9 BB/9 HR/9 BB% K% BABIP ERA+ 3ERA+ FIP ERA- WAR
Justin Steele 130.3 8.4 2.4 1.0 6.5% 22.4% .287 115 112 3.60 87 2.3
Matthew Boyd 143.0 7.9 2.5 1.1 6.7% 21.2% .282 105 99 3.91 95 2.0
Edward Cabrera 130.0 9.6 3.5 1.1 9.4% 25.6% .269 104 104 3.99 96 1.7
Shota Imanaga 136.3 8.3 2.0 1.6 5.6% 22.4% .271 102 99 4.39 98 1.7
Cade Horton 125.0 7.8 2.7 1.2 7.2% 21.1% .266 104 107 4.09 96 1.6
Jameson Taillon 135.7 7.0 2.1 1.5 5.5% 18.7% .275 95 91 4.48 105 1.3
Javier Assad 104.3 7.1 3.5 1.1 9.1% 18.3% .278 100 100 4.53 100 1.1
Hunter Harvey 47.7 10.0 2.3 0.8 6.3% 27.6% .281 143 137 2.91 70 1.1
Ben Brown 98.7 9.7 3.1 1.1 8.2% 25.4% .292 99 101 3.72 101 1.0
Jordan Wicks 85.0 8.0 2.8 1.2 7.2% 21.1% .291 101 103 4.05 99 0.9
Colin Rea 133.3 6.8 2.6 1.3 6.7% 17.9% .283 92 86 4.49 109 0.9
Connor Noland 119.0 6.4 2.9 1.2 7.4% 16.6% .287 91 94 4.49 110 0.8
Will Sanders 108.3 7.5 3.2 1.2 8.1% 19.2% .284 89 93 4.60 112 0.6
Daniel Palencia 57.7 10.0 3.7 0.9 9.8% 26.2% .276 108 113 3.75 93 0.6
Aaron Civale 106.3 7.9 2.9 1.4 7.6% 20.9% .276 88 87 4.50 113 0.5
Jaxon Wiggins 72.3 7.8 4.5 1.1 11.2% 19.6% .277 90 95 4.62 111 0.4
Nick Dean 65.7 7.3 2.9 1.4 7.4% 18.8% .287 89 95 4.53 112 0.4
Caleb Thielbar 45.3 9.3 2.8 1.2 7.4% 25.0% .283 113 106 3.74 88 0.4
Phil Maton 56.0 9.3 3.5 1.0 9.5% 25.1% .264 109 102 4.04 91 0.3
Chris Clarke 60.0 6.5 2.6 1.1 6.7% 16.9% .286 90 91 4.30 111 0.3
Wil Jensen 69.0 7.8 3.7 1.3 9.4% 20.1% .283 91 93 4.66 110 0.3
Walker Powell 60.7 5.5 2.2 1.3 5.8% 14.3% .286 88 87 4.71 114 0.3
Porter Hodge 62.7 10.3 4.9 1.0 12.4% 26.3% .277 97 103 4.14 103 0.3
Luke Little 57.0 10.3 5.1 0.8 13.1% 26.5% .271 102 107 4.02 98 0.3
Austin Gomber 100.3 6.7 2.4 1.5 6.3% 17.6% .285 83 81 4.71 120 0.2
Ryan Brasier 37.0 7.3 2.7 1.0 7.2% 19.6% .271 104 93 3.92 96 0.2
Hoby Milner 56.0 7.6 2.6 1.0 6.8% 20.1% .291 101 95 3.90 99 0.1
Connor Schultz 70.7 6.6 2.7 1.4 6.9% 17.0% .289 86 88 4.73 117 0.1
Taylor Rogers 46.3 10.1 4.1 1.2 10.6% 26.3% .288 99 92 4.22 101 0.1
Joe Ross 56.7 7.1 3.5 1.1 9.0% 18.4% .288 91 88 4.50 110 0.1
Antonio Santos 69.7 7.5 4.3 1.2 10.7% 18.9% .284 85 84 4.81 118 0.1
Zane Mills 72.7 6.4 3.1 1.2 8.0% 16.6% .286 86 91 4.72 116 0.1
Chris Flexen 95.7 6.6 3.5 1.4 8.8% 16.7% .286 83 81 4.96 121 0.0
Ryan Pressly 41.0 7.5 3.3 1.1 8.5% 19.2% .289 97 88 4.26 103 0.0
Peter Solomon 67.0 7.4 4.2 1.2 10.4% 18.4% .291 84 84 4.75 119 0.0
Ethan Roberts 44.3 9.3 3.7 1.2 9.5% 24.2% .288 95 95 4.34 105 0.0
Brandon Birdsell 83.3 6.7 2.8 1.6 7.3% 17.4% .275 81 85 5.13 123 0.0
Jacob Webb 58.0 8.7 3.4 1.2 9.1% 23.1% .265 97 93 4.32 104 0.0
Sam McWilliams 37.0 9.2 5.1 1.2 12.6% 22.8% .283 88 87 4.89 114 0.0
Ryan Jensen 43.7 9.1 5.8 1.0 14.1% 22.2% .282 85 87 4.77 117 -0.1
Eli Morgan 44.0 7.8 3.1 1.2 8.1% 20.4% .278 94 93 4.30 106 -0.1
Brad Deppermann 35.0 6.9 3.1 1.3 7.8% 17.6% .292 93 92 4.59 108 -0.1
Jeff Brigham 33.3 10.3 4.6 1.4 11.8% 26.4% .277 88 82 4.54 114 -0.1
Riley Martin 57.0 9.5 5.2 1.1 13.0% 23.7% .282 91 93 4.55 109 -0.1
Corbin Martin 55.7 8.2 4.7 1.1 11.7% 20.6% .287 86 85 4.64 116 -0.1
Ryan Rolison 62.0 6.8 3.3 1.3 8.5% 17.4% .287 87 89 4.70 115 -0.1
Yency Almonte 30.3 8.6 4.5 1.2 11.5% 22.1% .268 91 87 4.75 110 -0.1
Grant Kipp 85.0 7.4 4.4 1.3 11.1% 18.5% .284 80 82 5.19 126 -0.1
Collin Snider 51.7 7.3 3.1 1.2 8.1% 19.0% .288 89 91 4.52 112 -0.2
Tyler Schlaffer 78.3 6.9 4.3 1.4 10.6% 17.2% .284 78 82 5.23 128 -0.2
Chris Kachmar 89.0 7.5 4.1 1.5 10.4% 18.7% .287 78 78 5.24 128 -0.2
Nick Hull 61.3 6.9 4.1 1.3 10.3% 17.2% .286 81 85 5.10 123 -0.2
Tom Cosgrove 48.7 8.5 4.4 1.1 11.4% 21.9% .271 87 87 4.66 114 -0.2
Brandon Hughes 43.0 8.8 3.8 1.5 9.7% 22.6% .282 84 85 4.86 119 -0.2
Jack Neely 41.3 9.4 4.6 1.3 11.4% 23.2% .284 88 90 4.71 113 -0.3
Gavin Hollowell 42.3 8.7 4.5 1.1 11.4% 22.2% .284 86 87 4.53 116 -0.3
Tyson Miller 51.7 7.8 4.5 1.2 11.5% 19.9% .274 83 82 4.92 121 -0.3
Tyler Santana 63.3 5.7 3.4 1.3 8.5% 14.2% .293 81 84 4.98 123 -0.3
Nolan Clenney 41.0 6.8 4.0 1.1 9.9% 17.0% .294 84 84 4.70 119 -0.3
Tommy Romero 66.3 6.5 4.5 1.5 11.1% 16.2% .277 76 78 5.45 131 -0.3
Cayne Ueckert 31.7 8.2 5.4 1.1 13.2% 20.1% .289 79 79 5.15 127 -0.4
Zac Leigh 41.7 8.0 5.0 1.3 12.4% 19.9% .280 85 86 5.20 118 -0.4
Sam Thoresen 23.7 8.4 6.8 1.1 15.9% 19.5% .288 76 78 5.49 132 -0.4
Mitchell Tyranski 45.3 8.1 4.6 1.4 11.4% 20.4% .281 85 86 5.08 118 -0.4
Frankie Scalzo Jr. 44.3 6.9 4.5 1.2 10.9% 16.9% .284 80 82 5.08 126 -0.4
Erian Rodriguez 70.7 6.1 4.2 1.4 10.4% 15.1% .287 74 79 5.57 135 -0.4
Evan Taylor 46.0 8.4 4.5 1.2 11.3% 21.1% .281 83 86 4.95 120 -0.4
Robert Kwiatkowski 43.3 6.2 3.9 1.2 9.8% 15.5% .287 81 82 5.03 123 -0.4
Peyton Graham 47.0 6.5 3.8 1.1 9.6% 16.3% .290 81 80 4.91 123 -0.4

Pitchers – Top Near-Age Comps
Player Pit Comp 1 Pit Comp 2 Pit Comp 3
Justin Steele Tommy John Jack Kralick Zane Smith
Matthew Boyd Bruce Hurst Jeff Fassero J.A. Happ
Edward Cabrera Tim Belcher Bill Voiselle Darren Dreifort
Shota Imanaga Floyd Bannister Wilbur Cooper Bob Knepper
Cade Horton Taijuan Walker Antonio Senzatela Michael Wacha
Jameson Taillon Jeremy Guthrie Jeff Samardzija Johnny Sain
Javier Assad John Whitehead Floyd Wooldridge Jimmie DeShong
Hunter Harvey Bobby Jenks Tommy Hunter Ryan Madson
Ben Brown Jim McGlothlin Esteban Yan Vladimir Nunez
Jordan Wicks Cory Luebke Mark Malaska Paul Oseguera
Colin Rea Jeremy Guthrie Jeff Samardzija Jason Hammel
Connor Noland Jen-Ho Tseng Kyle Middleton Shao-Ching Chiang
Will Sanders Mark Leiter Brett Schlomann Armando Diaz
Daniel Palencia J.B. Wendelken Rowan Wick Scott Sullivan
Aaron Civale Jack Armstrong Ramon Ortiz Greg Harris
Jaxon Wiggins Gerald Herron Freddie Martinez Danny Leon
Nick Dean Andy Ferguson Nate Sevier Trey Delk
Caleb Thielbar Al Brazle Bobby Shantz Gary Lavelle
Phil Maton Scott Sullivan Dustin Hermanson Chad Durbin
Chris Clarke Fritz Dorish Brad Rigby Eddie Gamboa
Wil Jensen Brett Backlund Seung Hak Lee Jarrett Grube
Walker Powell Jim Hardin Bryan Clutterbuck Ryan Hawblitzel
Porter Hodge Hisel Patrick Ken Ryan Jose Roman
Luke Little Mike Kilkenny Franklin Morales Jordan Norberto
Austin Gomber Terry Mulholland Wei-Yin Chen Scott McGregor
Ryan Brasier LaTroy Hawkins Art Fowler Bobby Tiefenauer
Hoby Milner Fred Baczewski Ken Lehman John Halama
Connor Schultz Zac Grotz Nick Kingham Kellen Moen
Taylor Rogers Neal Cotts Jerry Don Gleaton Pat Venditte
Joe Ross Javy Guerra Rob Scahill Ray Washburn
Antonio Santos Jeremy Hall James Russ Corey Baker
Zane Mills Dillon Tate Matt Schwager Pat Ludwig
Chris Flexen Bob Milacki Joe Oeschger Austin Bibens-Dirkx
Ryan Pressly LaTroy Hawkins Maximo De La Rosa Jason Childers
Peter Solomon Corey Baker Kyle Zaleski Kevin McGowan
Ethan Roberts Miguel Alicea Brandon Agamennone Jim Czajkowski
Brandon Birdsell Parker Bridwell José Taveras Jeremy Gooding
Jacob Webb Rich Monteleone Aaron Heilman Luis Vizcaino
Sam McWilliams Matt Gorgen Rafael Martin Steve Johnson
Ryan Jensen Jose Ortega Colby Ward Mike Mehlich
Eli Morgan Billy Loes Keith Atherton Gene Nelson
Brad Deppermann Josh Lansford Rawly Eastwick Gary Haught
Jeff Brigham Don Larsen Alan Mills Jim Hughes
Riley Martin Mark Bowden Bob Schultz Sid Monge
Corbin Martin Kurt Kepshire Garrett Mock Alex Wimmers
Ryan Rolison Dennis Moeller Clint Goocher Mike Farmer
Yency Almonte Lerrin LaGrow Freddy Schmidt Matt Karchner
Grant Kipp Jeff Perry John Hoover Scott Scudder
Collin Snider John Church Paul Phillips Jose Silva
Tyler Schlaffer Felix Pena Hunter Adkins Dan Hall
Chris Kachmar Gaby Hernandez Sammy Ellis Jack Lutz
Nick Hull Jeremy King Travis Anderson Greg Pavlick
Tom Cosgrove Bob Macdonald Dean Hartgraves Dan Meyer
Brandon Hughes Frankie Reed Tommy Hottovy Steve Sinclair
Jack Neely David Wong Terry Bross Fred Wenz
Gavin Hollowell Rafael Medina Jose Ortega Mike Rossiter
Tyson Miller Mike Gardiner Vito Valentinetti Ray Moss
Tyler Santana Stephen Perakslis Todd Genke Jack Whillock
Nolan Clenney Edgar Ramirez Sam Runion Mike Welch
Tommy Romero Jose Lopez Fred Talbot Jason Secoda
Cayne Ueckert Rich Simon Brandon Cunniff Daryl Patterson
Zac Leigh Joe Kerrigan Jim Winn Jamie Emiliano
Sam Thoresen David Wong Rick Raether Brian Kolbe
Mitchell Tyranski Colin Young Kevin Hickey Frankie Reed
Frankie Scalzo Jr. Mike Clarkin Greg Johnson Raul Fernandez
Erian Rodriguez Ralph Schulz Jeff Fulchino Steven Sundra
Evan Taylor Wade Korpi Lou Marone Bob Cluck
Robert Kwiatkowski Sam Runion Matt Petrusek Edgar Ramirez
Peyton Graham Ramon Troncoso Rick Heiserman Jon Velasquez

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
Justin Steele .217 .280 .292 .243 .293 .401 3.3 1.3 2.94 4.16
Matthew Boyd .224 .274 .344 .246 .305 .407 2.8 0.9 3.33 4.61
Edward Cabrera .230 .320 .381 .205 .282 .357 2.8 0.6 3.29 4.62
Shota Imanaga .231 .283 .373 .245 .289 .457 2.6 0.6 3.47 4.65
Cade Horton .250 .316 .399 .214 .269 .379 2.4 0.7 3.44 4.50
Jameson Taillon .255 .312 .439 .249 .279 .440 2.1 0.4 3.75 4.85
Javier Assad .240 .327 .377 .251 .317 .425 1.8 0.4 3.62 4.57
Hunter Harvey .226 .293 .357 .204 .250 .312 1.6 0.4 2.10 4.15
Ben Brown .234 .304 .400 .227 .289 .367 1.8 0.1 3.48 4.87
Jordan Wicks .265 .321 .422 .238 .294 .398 1.6 0.1 3.44 4.81
Colin Rea .264 .326 .452 .245 .294 .402 1.7 0.0 3.85 5.01
Connor Noland .260 .321 .439 .256 .306 .412 1.6 0.0 3.95 5.02
Will Sanders .235 .317 .362 .257 .322 .452 1.3 -0.1 4.05 5.12
Daniel Palencia .196 .303 .314 .230 .302 .381 1.2 -0.1 3.06 4.62
Aaron Civale .235 .307 .418 .249 .308 .418 1.3 -0.3 4.01 5.31
Jaxon Wiggins .238 .324 .392 .236 .329 .385 0.9 -0.2 4.03 5.09
Nick Dean .238 .299 .385 .264 .316 .457 0.8 -0.1 4.03 5.12
Caleb Thielbar .209 .264 .373 .245 .302 .406 0.9 -0.3 2.67 4.94
Phil Maton .223 .324 .372 .207 .299 .342 1.0 -0.4 2.95 4.78
Chris Clarke .252 .311 .414 .252 .309 .386 0.7 -0.1 4.00 5.09
Wil Jensen .231 .318 .408 .259 .325 .417 0.8 -0.3 3.91 5.03
Walker Powell .292 .333 .467 .246 .295 .418 0.6 -0.1 4.14 5.15
Porter Hodge .219 .331 .343 .208 .311 .362 1.0 -0.3 3.49 5.01
Luke Little .197 .321 .338 .210 .329 .326 0.8 -0.4 3.26 4.95
Austin Gomber .243 .282 .408 .267 .316 .466 0.9 -0.5 4.26 5.45
Ryan Brasier .276 .344 .483 .215 .267 .329 0.5 -0.2 3.15 4.94
Hoby Milner .230 .277 .333 .260 .324 .427 0.7 -0.5 3.22 4.98
Connor Schultz .244 .302 .417 .274 .327 .465 0.6 -0.4 4.17 5.36
Taylor Rogers .203 .309 .288 .239 .328 .436 0.6 -0.5 3.15 5.38
Joe Ross .264 .352 .453 .237 .295 .356 0.5 -0.3 3.89 5.22
Antonio Santos .232 .340 .368 .259 .333 .435 0.7 -0.4 4.21 5.40
Zane Mills .276 .340 .433 .242 .309 .422 0.6 -0.3 4.21 5.28
Chris Flexen .241 .316 .429 .278 .338 .455 0.7 -0.6 4.32 5.46
Ryan Pressly .243 .317 .378 .253 .313 .425 0.4 -0.5 3.38 5.38
Peter Solomon .242 .328 .383 .262 .337 .441 0.6 -0.5 4.23 5.52
Ethan Roberts .228 .315 .405 .237 .321 .387 0.5 -0.4 3.52 5.03
Brandon Birdsell .270 .326 .460 .245 .313 .460 0.6 -0.6 4.46 5.57
Jacob Webb .211 .296 .368 .240 .311 .413 0.5 -0.6 3.45 5.12
Sam McWilliams .224 .325 .358 .240 .363 .440 0.3 -0.5 4.01 5.68
Ryan Jensen .237 .370 .434 .222 .330 .333 0.3 -0.5 4.10 5.56
Eli Morgan .247 .301 .416 .242 .314 .407 0.3 -0.5 3.56 5.13
Brad Deppermann .284 .360 .463 .233 .278 .397 0.2 -0.4 3.74 5.05
Jeff Brigham .228 .343 .421 .221 .308 .397 0.3 -0.5 3.72 5.94
Riley Martin .239 .360 .380 .219 .320 .377 0.4 -0.7 3.80 5.21
Corbin Martin .245 .341 .406 .236 .325 .391 0.4 -0.6 4.06 5.47
Ryan Rolison .269 .310 .463 .251 .323 .413 0.3 -0.6 4.04 5.38
Yency Almonte .240 .345 .380 .222 .324 .413 0.2 -0.4 3.69 5.38
Grant Kipp .260 .360 .438 .236 .333 .400 0.4 -0.8 4.62 5.73
Collin Snider .271 .351 .459 .235 .292 .378 0.2 -0.7 3.91 5.31
Tyler Schlaffer .255 .346 .433 .253 .335 .435 0.2 -0.8 4.76 5.82
Chris Kachmar .266 .351 .469 .246 .327 .429 0.5 -0.9 4.55 5.81
Nick Hull .259 .351 .440 .252 .329 .417 0.2 -0.6 4.45 5.58
Tom Cosgrove .209 .312 .343 .241 .346 .414 0.2 -0.8 3.96 5.61
Brandon Hughes .232 .306 .357 .245 .339 .464 0.2 -0.7 3.98 5.77
Jack Neely .257 .360 .432 .212 .306 .376 0.1 -0.7 3.93 5.32
Gavin Hollowell .247 .360 .411 .222 .311 .367 0.1 -0.7 4.10 5.56
Tyson Miller .239 .340 .386 .239 .333 .422 0.2 -0.8 4.19 5.69
Tyler Santana .269 .338 .445 .270 .331 .431 0.1 -0.8 4.47 5.65
Nolan Clenney .270 .365 .432 .244 .310 .400 0.0 -0.7 4.18 5.70
Tommy Romero .250 .338 .435 .263 .346 .453 0.1 -0.9 4.80 6.00
Cayne Ueckert .259 .377 .448 .227 .342 .364 0.0 -0.7 4.35 6.14
Zac Leigh .253 .366 .456 .229 .330 .373 0.0 -0.8 4.15 5.56
Sam Thoresen .209 .370 .326 .265 .373 .449 -0.2 -0.7 4.66 6.34
Mitchell Tyranski .231 .333 .369 .252 .344 .459 0.0 -0.8 4.20 5.41
Frankie Scalzo Jr. .250 .351 .405 .256 .340 .433 -0.1 -0.8 4.56 5.75
Erian Rodriguez .269 .365 .440 .260 .345 .460 0.0 -1.0 5.02 6.08
Evan Taylor .210 .319 .290 .250 .358 .457 0.0 -0.8 4.26 5.64
Robert Kwiatkowski .276 .353 .474 .250 .330 .396 0.0 -0.7 4.39 5.77
Peyton Graham .256 .343 .407 .257 .333 .426 0.0 -0.8 4.30 5.75

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.


A’s Prospect Mason Barnett Has an Atypical Arm Angle and an Old-School Approach

Sergio Estrada-Imagn Images

Mason Barnett doesn’t profile as a front-of-the-rotation starter, but he does project to provide solid innings for a major league staff. A 25-year-old right-hander who made his MLB debut with the Athletics at the end of August, Barnett is currently viewed by Eric Longenhagen as “a big league starter who has demonstrated durability [and] is a no. 4/5 on a good team.” Our lead prospect evaluator anticipates assigning him a 45 FV when our 2026 A’s list is published in the not-too-distant future.

The Kennesaw, Georgia native was originally in the Kansas City system. Drafted 87th overall by the Royals in 2022 out of Auburn University, Barnett was subsequently traded to his current club in the 2024 deadline deal that sent Lucas Erceg to America’s Heartland. With his time down on the farm now mostly complete, Barnett will head into the forthcoming campaign having logged a 6.85 ERA and a 4.88 FIP over five starts comprising 22 1/3 innings in his initial major league opportunity.

Longenhagen has assigned a 40/45 on the righty’s command, and it was that aspect of his game that Scott Emerson emphasized when I asked him about Barnett toward the tail end of last season.

“Barnett, interesting guy,” said the longtime Athletics pitching coach. “Very good competitor. Throws strikes with his fastball, which has some cut-ride. He’s got a good developing changeup. He spins the ball really well and has both the sweeper and the curveball. For me, a lot of it with Barnett is his being able to execute his pitches inside the strike zone when he needs to, and then being able to make them chase outside of the strike zone when he’s ahead in the count. He’s one of our guys who needs to learn to command the ball better.”

The numbers back that up. Barnett had a 10.8% walk rate (as well as a 17.3% strikeout rate) in his big league cameo, while in Triple-A those numbers were 11.9% and 22.8%. But, while concerning, it’s not as though he can’t throw strikes or miss bats. In 2024, he punched out Double-A batters at a 28.5% clip, and walked them at a more-acceptable (albeit still not great) 8.7% over 133 innings of work. Like Longenhagen and Emerson, Barnett also recognizes the need to improve his strike-throwing. Read the rest of this entry »


Pitchers Shouldn’t Be Allowed To Wear a Single-Digit Uniform Number Without a Government License

Mark J. Rebilas and John E. Sokolowski-Imagn Images

I try not to be a stick in the mud. I really do. But I was poking around in RosterResource recently, and I saw something that gave me a headache. Edwin Díaz, who wore no. 39 with the Mariners and Mets, had to pick a new number with his new team, as the Dodgers had retired no. 39 for Hall of Fame catcher Roy Campanella.

He’s choosing no. 3. Díaz actually made his new number public back in December, but I’d missed the news. Good thing; it would’ve ruined my Christmas. Too many pitchers are wearing single-digit numbers these days, and it has to stop. Read the rest of this entry »


Ha-Seong Kim’s Injury Leads Atlanta to Pivot at Short

Jordan Godfree and Daniel Kucin Jr.-Imagn Images

Over the weekend, Ha-Seong Kim’s whirlwind offseason took a jarring tumble. After opting out of his contract with the Braves (really his contract with the Rays, which the Braves assumed after they claimed him off waivers), he turned around and signed a one-year, $20 million deal to remain in Atlanta. But disaster struck when he slipped on a sheet of ice and tore a tendon in his right middle finger. That injury required surgery that will sideline Kim for four to five months, including roughly the first two months of the regular season.

This will be the second straight season where Kim misses significant time due to injury. In late 2024, he tore his labrum on a pickoff throw, then injured his hamstring and later his calf while rehabbing, costing him the first half of 2025. He then hit the IL twice with back injuries last year. In all, he managed just 191 plate appearances and looked understandably rusty.

That star-crossed sequence has to raise questions about the future course of Kim’s career. How could it not? It’s not so much that any of these injuries are devastating on their own, but this much missed playing time over two-plus years of his prime is no laughing matter. Last year, he never hit his stride after a late start. This year, it’s fair to expect more of the same. Even without knowing how Kim’s injured finger might affect him upon his return, our projection systems have him down for a below-average offensive line. Read the rest of this entry »


Filling Out My First Hall of Fame Ballot

Eric Hartline and Kim Klement-Imagn Images

Last year was my 10th year as a member of the Baseball Writers’ Association of America, so while I’ve voted regularly in the end-of-year awards — nine times out of 10, in fact — this was my first opportunity to cast a ballot for a Hall of Fame election. I’m a huge believer in transparency when it comes to the voting for awards; every time I cast a ballot, I discuss my underlying reasoning at length. Because there is a lot of leeway and wiggle room in the official Hall of Fame election rules, votes come down to the interpretation and philosophy of the individual voters. For that reason, I wanted to take some space to discuss the philosophical decisions I made to determine who ended up with checkmarks on my submitted ballot. This isn’t really an analysis of the individual candidates; for that, you should consult Jay Jaffe’s extensive series, where he goes deep into each player’s career and legacy.

I’ve attached a picture of my ballot. Not the best one in the world since I cut off a few words of my obnoxious, meaningless “signing statement,” but since I sent my ballot off a month ago, there won’t be a better photo forthcoming! Unlike the year-end awards, which are conducted through Google forms, the Hall of Fame balloting process is old school. You physically open an envelope that contains a sheet of paper — made of these things called “trees” — and check boxes yourself before returning the whole thing through the good ol’ U.S. Mail. Thankfully, the whole exercise came with a pre-addressed, postage-paid envelope, as I don’t physically appear to be the owner of any envelopes or stamps. I will also note that I am aware that I have the penmanship of a seven-year-old. My handwriting has always been atrocious.

Anyway, you’ll notice that I voted for the maximum 10 players, and from the signing statement, you’ll see that I would have voted for 12 players if given the opportunity. In recent years, the BBWAA has issued proposals to the Hall of Fame to expand the number of players we’re allowed to vote for and to make all ballots public, but those requests have been turned down.

I’m not necessarily a Small Hall or Big Hall guy, but I do think it is important to keep the Hall consistent. What a Hall of Famer is is determined by who the Hall of Famers are. The obvious, inner circle players like Henry Aaron and Lefty Grove are a small minority of the Hall of Fame. What the Hall of Fame does have is a ton of guys like Ted Lyons and Waite Hoyt and Pee Wee Reese and Goose Goslin, those mid-range Hall of Famers who, if they were on today’s ballots, would be derided as Hall of Very Good Candidates by the extreme section of the Small Hall crowd. There’s this idea that modern inductees have watered down the Hall of Fame when, in fact, what the Hall is drowning in is endless inductees from baseball’s supposed Golden Age. Here’s my updated chart of the yearly percentage of position player plate appearances by future Hall of Famers:

Now, the final ruling hasn’t yet been handed down on those 1990s players, but just because the Veterans Committee exists to catch players who fall through the cracks doesn’t strike me as a good reason to let players fall through those cracks. I find the moral value of a great honor is diminished if the honoree has to wait an indefinite amount of time, or even worse, does not live long enough to receive it. It’s an absolute shame that Ron Santo and Dick Allen died without knowing that their careers would ultimately be recognized with baseball’s most prestigious honor. And with baseball’s increasingly illogically designed Eras Committees, it’s going to be harder to catch the BBWAA’s misses.

Even so, I don’t think that all of the players who are better than the worst Hall of Famers should be in the Hall. There are lots of pitchers better than Jack Morris and Rube Marquard who still would not get a Hall of Fame vote from me. If we voted in everyone better than Tommy McCarthy, who was essentially the 19th Century Juan Pierre, the Hall would have quite the influx of outfielders. But all 12 players I wanted to vote for in this election were players I felt were better than the bottom quartile of Hall of Fame inductees, meaning that if they were inducted, they would at least be part of the Hall’s large middle class.

One of the most convincing arguments Bill James ever made about the Hall of Fame came when he introduced the concepts of career value and peak value as different kinds of greatness. The Hall’s record of recognizing peak value is very spotty, and while Sandy Koufax, one of the best examples of peak value, was given his due, players like Johan Santana have frequently gotten the shaft. But when we talk about greatness, how good a player was at his best seems to be very important information. Miguel Cabrera would not have attained the 3,000-hit or 500-homer career milestones if he had retired after the 2016 season at age 33, but did anything that happened after 2016 really enhance his greatness on an abstract level? After 2016, he was mostly a DH who hit .262/.329/.381 and averaged nine home runs a year. Cabrera’s peak is what makes his career great, after all.

And that is why I checked the boxes for David Wright and Dustin Pedroia. Wright was healthy enough for about a decade to play full time, and over that period, he was perhaps the top third baseman in the majors.

Top MLB Third Basemen, 2005-2014
Name PA HR AVG OBP SLG wRC+ WAR WAR/600 PA
Miguel Cabrera 6780 345 .326 .403 .574 157 57.8 5.1
David Wright 6248 216 .298 .379 .492 134 48.1 4.6
Adrian Beltré 6183 248 .291 .341 .489 119 45.1 4.4
Alex Rodriguez 4959 273 .291 .387 .538 144 43.5 5.3
Evan Longoria 4119 184 .271 .351 .494 130 37.8 5.5
Ryan Zimmerman 5183 184 .286 .352 .476 120 34.1 4.0
Chipper Jones 3980 158 .303 .402 .517 142 32.0 4.8
Aramis Ramirez 5356 242 .292 .355 .514 126 29.7 3.3
José Bautista 4880 246 .259 .369 .498 133 29.2 3.6
Kevin Youkilis 4188 143 .282 .383 .482 129 28.7 4.1
Alex Gordon 4396 121 .268 .345 .435 111 26.0 3.5
Placido Polanco 4861 54 .298 .345 .390 97 24.5 3.0
Scott Rolen 3396 90 .274 .344 .447 108 22.0 3.9
Chase Headley 3944 93 .265 .347 .409 114 21.8 3.3
Pablo Sandoval 3533 106 .294 .346 .465 122 20.3 3.5
Edwin Encarnación 4885 229 .265 .349 .487 122 19.7 2.4
Michael Young 6096 129 .305 .353 .444 109 18.9 1.9
Casey Blake 3677 120 .264 .338 .442 108 17.3 2.8
Juan Uribe 4262 131 .253 .299 .415 89 17.1 2.4
Chone Figgins 4440 30 .272 .350 .355 94 17.0 2.3

Cabrera has the edge in WAR, and he had a better postseason record, but he also wasn’t a full-time a third baseman during this period. (He’s second among first basemen in the same years). It’s worth mentioning that Wright received more playing time during his 10-year peak than a lot of the competition, but he also had one of the highest WAR rates over that decade. He’s not the undisputed best third baseman during that span, but he certainly has a strong case for that title. That peak is enough for me. The case for Pedroia is similar.

Top MLB Second Basemen, 2007-2016
Name PA HR AVG OBP SLG wRC+ WAR
Robinson Canó 6786 249 .305 .357 .499 129 48.0
Dustin Pedroia 6182 131 .303 .368 .447 118 45.0
Chase Utley 5517 175 .275 .361 .460 120 44.7
Ian Kinsler 6397 198 .276 .344 .450 112 42.0
Ben Zobrist 5446 143 .268 .362 .437 122 40.4
Brandon Phillips 6312 174 .280 .325 .429 99 28.8
Howie Kendrick 5174 91 .289 .333 .417 107 25.9
Matt Carpenter 3016 74 .284 .376 .462 133 21.3
Jose Altuve 3649 60 .311 .354 .437 118 19.5
Dan Uggla 4826 208 .236 .335 .442 109 19.0
Jason Kipnis 3364 76 .272 .345 .423 111 18.5
Daniel Murphy 4201 87 .296 .339 .447 115 18.3
Placido Polanco 3815 41 .294 .342 .385 95 18.2
Rickie Weeks Jr. 4159 138 .245 .344 .427 109 17.8
Neil Walker 3884 116 .273 .339 .436 115 17.8
Aaron Hill 5124 152 .264 .319 .426 98 17.1
Marco Scutaro 4034 53 .284 .350 .387 100 17.1
Kelly Johnson 4805 146 .252 .329 .423 102 16.8
Brian Dozier 3065 117 .246 .320 .442 107 16.7
Mark Ellis 3716 66 .259 .320 .373 89 15.8

Neither Wright or Pedroia is a slam-dunk candidate, but each is just over my foggy line.

I’m probably not going to get out of here without discussing how I consider performance-enhancing drug use or general rulebreaking/bending. Even more so than performance, there’s a lot of room for philosophical differences here, so let me emphasize that even though I personally feel that my stance is the best one — after all, why would I not go with what I think is best? — I certainly can’t objectively claim that it’s the right one. Let’s start with the text of the Hall’s so-called character clause, which is actually only just one sliver of a sentence:

Voting shall be based upon the player’s record, playing ability, integrity, sportsmanship, character and contributions to the team(s) on which the player played.

Based on my knowledge of baseball and the Hall of Fame’s history, both in practice and when the rules were being discussed, I function under the belief that we’re talking sportsmanship and character related to their baseball-related life, not so much as a person on a wider level. The rules of the game are pretty important, and so I consider breaking baseball’s rules to be a demerit on a player’s permanent record. In this case, I believe PED rulebreaking to be something I am dutybound to consider after the summer of 2004, when steroid testing was first implemented. I don’t have the same feeling about pre-2004 PED use. Some people cite former commissioner Fay Vincent’s early 1990s memo about steroids as a reason not to vote for PED users in the pre-testing era, but as Vincent himself noted in an interview with Bernie Miklasz, he issued the memo only to make a statement. He pointed out that he didn’t have the power to implement any such rules against PED use without MLBPA approval.

“I sent it out because I believed it was important to take the position that steroids were dangerous, as were other illegal drugs,” Vincent said. “As you know, the union would not bargain with us, would not discuss, would not agree to any form of a coherent drug plan. So my memo really applied to all the people who were not players.”

In other words, Fay Vincent banned Pat Gillick and Dan Duquette from using steroids.

So I consider Barry Bondstesting positive for amphetamines in 2006 as a black mark on his résumé, as I do with Alex Rodriguez and Manny Ramirez for failing PED tests. But I also view each black mark as merely a factor to be weighed in a Hall of Fame case, not as a binary “they cheated, so they’re out” scenario. In my eyes, Bonds, A-Rod, and Manny are all worthy Hall of Famers, and a little bit of dirt in their story doesn’t tarnish the tale.

On the other hand, I would not have voted for Pedroia or Wright if they had been found to have broken those rules. I did not vote for Ryan Braun, because I think his performance was on the wrong side of the dividing line, but even if he had a slightly longer peak, I still would not have checked his box because of his situation. I don’t really care about the efficacy of the cheating when it comes to a player’s Hall of Fame case; it makes no difference to me if Carlos Beltrán and the other members of the 2017 Astros actually benefited from their electronic sign-stealing operation. Rather, what matters is that banging on a trash can to relay signs that were stolen in real time via a video camera is a blatant form of cheating. Yet, once again, when considering the totality of Beltrán’s career, he easily belongs in the Hall of Fame, even with the banging-scheme demerit.

Now, I wanted to vote for 12 players, but I could only vote for 10. So, I asked myself: What is the purpose of the checkmarks on a Hall of Fame ballot? I view it as getting deserving players into the Hall of Fame. There are three ways that a single voter can impact a player’s chances of making it to Cooperstown: 1) if a vote helps a player reach the 75% threshold required for induction, 2) if a vote allows a player to exceed the 5% mark necessary to remain eligible for future BBWAA elections, and 3) if a vote adds to the percentage of ballots cast in favor of a player from the previous year, thereby building that player’s momentum of support. The last one is kind of weird, but it does seem to be the case that a number of voters wait for the bandwagon to be rolling behind a player before they get on for the ride, so I have to take that into consideration, too.

Ultimately, my final decision came down to the following question: Which two votes of my desired 12 would be the least impactful at getting a deserving player in the Hall of Fame? I concluded those to be for Manny Ramirez and Alex Rodriguez. There was no chance that my vote would get either of them over 75%, keep them over 5%, or build enough momentum for them to eventually get elected. Most baseball writers have already made up their minds about how they will vote for players who used or likely used PEDs, and there aren’t enough new voters in any given year to make a difference. A-Rod and Manny are not Hall of Famers right now because they used steroids, not because writers are unsure about their baseball merit.

So, that’s my ballot, right or wrong. It’s OK to disagree with me — this would be a boring job if everyone agreed with me — but as I said at the top, I feel it’s my responsibility to you, the readers, to explain why I vote the way I do.


Twins Sign Victor Caratini, Fail in the Art of Deception

Troy Taormina-Imagn Images

“I’ve talked to Byron [Buxton] and other players through this offseason already about ways we can get better as a team,” Twins President of Baseball Operations Derek Falvey told reporters back in November at the GM meetings. The answer was in response to a report that Buxton’s loyalty to the Twins may waiver if he felt they were entering a rebuild, as Minnesota’s behavior during last season’s trade deadline suggested. Falvey went on to insist that the team intends to add, not subtract, and it seems the term rebuild is taboo among Twins spokespeople.

Falvey is lying. I say this with no inside information, malice, or even judgement. MLB organizations operate within a system where this particular lie is not only acceptable, but also encouraged. Because “we’re not rebuilding; we’re trying to get better” is a corollary to a larger lie — that all teams are trying their hardest to win.

What is the truth, but a lie agreed upon? — Friedrich Nietzsche

Though this quote is often attributed to him, Nietzsche never actually said it. However, it does seem to offer a reasonably accurate distillation of his beliefs. And if we all agree that he did say it, then by his own logic, it must be true. Likewise, teams have decided to hold to the line that they’re all trying to win, and since they’ve all agreed, it falls to fans to take the lie as truth, along with all the subsequent lies necessary to support the original lie. Read the rest of this entry »


They Don’t Make Pitch Models Like They Used To

Paul Rutherford-Imagn Images

Before we get started, I need you to promise to hold on until the end here. I have buried the lede. The crux of this article is in the last two graphs, all the way at the bottom. I put them there on purpose because I want the data to tell you a story, so I need you to see this story through to the end. I think it’s worth it.

Last Tuesday, Ben Clemens wrote an article titled, “They Don’t Make Barrels Like They Used To.” Sadly, it was not a scathing takedown aimed at the shoddy craftsmanship of modern-day coopers. It documented the steady decrease in the value of barrels over the course of the Statcast era. In 2025, barrels were worth roughly 250 fewer points of wOBA than they were in 2015. That’s a staggering loss – the entire career wOBA of Pepe Frias up in smoke – and Ben broke down several culprits for the theft, along with one other factor: intention. “Tell hitters that barrels get them paid,” Ben wrote, “and they might start to change their behavior in a way that produces less valuable barrels, squared up to center field or in other ways that are easier to produce but less likely to land safely.” He attributed this to Goodhart’s Law: “When a measure becomes a target, it ceases to become a good measure.”

This law has a sports-specific corollary that you’re probably familiar with. I’ve previously referred to it as the Competitive Advantage Life Cycle in the context of catcher framing:

  • Teams realize the immense value of a skill.
  • An arms race ensues as they scramble to cultivate it.
  • The skill becomes widespread across the league.
  • Since the skill is more evenly distributed, it loses much of its value.

The second we gained the ability to calculate the value of catcher framing, everybody started working on it. The terrible framers either got better or got run out of the sport. Players who were excellent at framing but worse at other parts of the game suddenly found more playing time because their skills were appreciated. Lastly, as the average framing level rose, the rest of the league started catching up to the very best framers. This graph is three years old now, but it shows that convergence very clearly.

The terrible framers are gone, and the great framers don’t stand out as much as they used to. Everybody’s a bit closer to the new, tougher standard, so framing is more important than it’s ever been, but also less valuable. All this got me thinking about one of the oddest measurement tools we have these days: pitch modeling. Read the rest of this entry »


Sunday Notes: Red Sox Prospect Franklin Arias Aspires To Out-Power Luis Arraez

Franklin Arias has a bright future in Boston. Signed out of Venezuela in 2023, the 20-year-old shortstop is the top position-player prospect in the Red Sox system thanks to plus tools on both sides of the ball. A slick-fielder — Eric Longenhagen has described him as an incredibly polished defender for his age” — Arias possesses a line-drive stroke that produced a 109 wRC+ across three levels last season. And while that number may not jump off the page, it stands out when put into context: the Caracas native not only played the entire year as a teenager, he finished it in Double-A.

The degree to which he can boost his power profile will go a long way toward determining his ceiling. Currently more contact than pop, Arias went deep just eight times in 526 plate appearances. At a listed 5-foot-11, 170 pounds, he is by no means built like a bopper.

Red Sox farm director Brian Abraham brought up that aspect of Arias’s game when I asked him about the young infielder earlier this week.

“He’s a guy who makes really good swing decisions,” Abraham said of Arias, who posted a 10.1% strikeout rate and a 5.3% swinging-strike rate in 2025. “He puts the bat on the ball and can drive it to all fields. We’re looking to see him add size and strength so that he can really impact the ball pull-side in the air.

“It’s definitely in there,” added Abraham. “We’ve seen flashes of it, it’s just a matter of him being able to do that on a consistent basis. As a young player who is continuing to grow and get bigger, I think it will come out the more he is able to hit the ball out front and drive it to the pull side. Right now I would say that he is a contact hitter with occasional power, and that the power can be more consistent than it has been.”

Not surprisingly, Arias echoed Abraham’s thoughts when addressing his near-term development goals. Read the rest of this entry »


J.T. Realmuto Will J.T. Realmain in Philadelphia

Eric Hartline-Imagn Images

Well, that’s a relief. On Friday afternoon, the Phillies, spurned by Bo Bichette, got swept up in the tidal wave of hot stove transactions, agreeing to a three-year, $45 million deal (plus $15 million in incentives) to keep J.T. Realmuto in Philadelphia, according to Ken Rosenthal and Matt Gelb of The Athletic. You may have your qualms about rebounding from a rejection by signing a catcher three years into his decline phase for another three years, but consider what other options the Phillies had, and then consider how weird it would have felt to watch Realmuto playing in another uniform after all this time. It’s probably too many years, and that’s not great, but look at everything else that’s going on in the world right now and realize how much nicer it is to spend a moment thinking about something that’s merely not great.

Before we dive into the here and now, let’s take this chance to remind ourselves just how special a career Realmuto has had. He debuted with the Marlins in 2014 and blossomed into a star in 2017, combining excellent defense with a great bat and an exquisite baserunning prowess unbefitting a backstop. (He currently ranks 23rd all-time among catchers with 104 stolen bases. If we limit ourselves to 1901 and later, he moves up to 11th.) Such things were never meant for Miami. In February 2019, after he’d put up two four-win seasons and earned an All-Star nod and a Silver Slugger, the Marlins traded him to Philadelphia for a blockbuster package that netted them 2.0 total WAR and $250,000 in international bonus pool money. Realmuto got even better the next season.

From 2017 to 2022, Realmuto wasn’t just the best catcher in baseball; there was an ocean between him and the rest of the competition. He led all catchers with 28.2 WAR. Yasmani Grandal, in second place, had just 19.6. Of the 207 catchers who played during that stretch, Grandal and future Hall of Famer Buster Posey were the only ones whose WAR total Realmuto didn’t double. Over that stretch, he tops our leaderboards at the plate, on the basepaths, and on defense, and nobody else is even close. Realmuto has earned two Gold Gloves, two Silver Sluggers, three All-Star nods, and MVP votes in two seasons. He has a career 104 wRC+ in the playoffs. It’s great that the Phillies have held onto him. He’ll reach 200 career home runs in Philadelphia. He’s the team’s longest-tenured position player, ahead of Bryce Harper by roughly a month and trailing only Aaron Nola on the pitching side. He’s a grinder, the heart of a Phillies team that has been at the top of the league for years now. Still, you know the problem as well as I do.

It’s not 2022 anymore, and Realmuto has got so, so many miles on his knees. He has caught at least 125 games seven different times, and led the league in innings caught in three of the last four seasons. He ranks seventh in innings caught since 2002. Two of the guys ahead of him played through their age-39 seasons. One is a manager now.

Realmuto started looking human in 2023, and he missed a couple months due to a meniscectomy in 2024. Over the past three years, he’s run a perfectly average 100 wRC+. That’s still plenty good for a catcher, but it dropped to 94 in 2025, and advanced numbers like DRC+ have him even lower. Although he hit the ball just about as hard as ever, his bat speed took a very scary dive from the 70th percentile in 2024 to the 47th in 2025, and his barrel rate followed suit. Realmuto once feasted on four-seamers, but over the past three seasons, he’s put up negative run values against them. He started struggling with cutters in 2024 and sinkers in 2025, meaning he now struggles against any kind of fastball.

He has combined this weaker bat with poor framing numbers, and despite still possessing plenty of speed, he’s even started to take on water in the baserunning department. Put it together, and Realmuto has recorded almost exactly 2.0 WAR in each of the past three seasons. Despite all the doom and gloom I just laid on you, that’s not just a useful player, it’s an above-average catcher.

It makes Realmuto the best option behind the plate on the Phillies roster, ahead of Rafael Marchán and Garrett Stubbs. Likewise, it made Realmuto the top-ranked catcher on our Top 50 Free Agents list, where he came in at 30th overall. Wouldn’t you rather have him than Danny Jansen or Victor Caratini, who ranked 38th and 39th? In 2025, you definitely would, but projections pegged Realmuto for a two-year deal with an average annual value of $13 million. Instead, he’s making $15 million for an extra year, which will be, once again, the age-37 season of the guy who already ranks seventh in innings caught this century. Still, there was no better catcher on the trading block, and unless the Tyrell Corporation has started manufacturing them while I wasn’t paying attention, we’ve now exhausted all the ways by which a baseball team can get its hands on a baseball player.

Everything makes sense here. The Phillies are a win-now team that’s already above the highest luxury tax threshold. It’s hard to blame them for holding onto the best catcher available to them, especially when he’s a guy they love – a guy they and their fans are capable of appreciating far more deeply than anybody else is – for a year and a few million dollars more than would be ideal. Three years is not forever, and Realmuto now has an excellent chance at ending his career as a Phillie. It’ll be OK. Try to enjoy your weekend.