Archive for Mets

JAWS and the 2025 Hall of Fame Ballot: Curtis Granderson

Rick Osentoski-USA TODAY Sports

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

2025 BBWAA Candidate: Curtis Granderson
Player Pos Career WAR Peak WAR JAWS H HR SB AVG/OBP/SLG OPS+
Curtis Granderson CF 47.2 34.7 40.9 1800 344 153 .249/.337/.465 113
SOURCE: Baseball-Reference

Like Sara Lee, nobody doesn’t like Curtis Granderson. A power-hitting center fielder who reached the 20-homer plateau 10 times, with a high of 43, he was a threat to steal a base during the first decade of his major league career as well. He made three All-Star teams and had a knack for turning up on winners, starting (and starring) for six teams that made the playoffs, including two that reached the World Series, while reaching the postseason twice as a reserve acquired for the stretch run. His penchant for strikeouts made him a somewhat streaky performer, but he earned a reputation within the game for being even-keeled, thoughtful, hard working, and generous — a clubhouse leader and a favorite of teammates, fans, and media. At a time when African-American participation in baseball was (and still is) on the wane, he wore his socks high every day as a tribute to Negro Leagues players, and channeled his charitable efforts towards increasing Black participation in the sport, an effort that has carried over into his retirement. Read the rest of this entry »


About Those Juan Soto Photos

Brad Penner-Imagn Images

On December 12, the day of Juan Soto’s introductory press conference with the Mets – imagine for a moment being one of the three people in New York City who still requires an introduction to the concept of Juan Soto – the temperature at nearby La Guardia Airport peaked at 43 degrees. Soto wore a turtleneck and chain under his blazer, presumably to ward off the cold, but possibly because he was inspired by the look his new teammate Mark Vientos rocked during the National League Championship Series.

During the press conference, Soto swapped out the blazer for a crisp, new Mets jersey, but he left the turtleneck in place. The temperature was down to 37 by the time he ventured out to the elevated seats behind home plate for a photo op. “We got about fifteen minutes with Soto and his family,” said photographer Brad Penner in an email, “and it was COLD.” The photo op wasn’t just quick. It was weird, and the images it left us with are bizarre and beautiful. “I’ve done many press conferences,” wrote Penner, “but few that were like this one.”

Brad Penner-Imagn Images

As he so often does, Soto seemed to jump right out of the photos. “I chose a seat as close to where Soto would be,” Penner said, “so I could line him up with the scoreboard, rather than the field and seats.” That was smart, as the Mets displayed a “Welcome to the//New York Mets//Juan Soto” graphic on both scoreboards, each featuring three images of him. That left many of the photos with seven Sotos in them, quite possibly a world record. With the focus of the lens necessarily all the way in the foreground, the scoreboard isn’t crisp. You can just make out the tiny “Welcome to the” portion of the graphic, but only if you zoom in and enhance like a CIA agent tracking Jason Bourne through a train station. (Also, there’s no comma between “Mets” and “Juan Soto,” so it reads like the entire team has been renamed the New York Mets Juan Soto. Take that, Cleveland Napoleons!)

Soto was standing in an area that was much darker than the field and the scoreboard in the background, and in the twilight, the black fabric of the turtleneck discolored his paper-thin jersey in an odd way. The white jersey shone brightly where it hung free, but where it lay flat against the turtleneck, it failed to contain the darkness within. The numbers on Soto’s jersey lit up like reflectors while the underside of his cap swallowed light like a black hole. In one picture, Soto smiles and spreads his arms wide, but his arms and his entire head are fully engulfed in impenetrable shadow.

Brad Penner-Imagn Images

In case you can’t tell, I adore these pictures. They’re not the action-packed hero shots that we’re used to seeing splashed across the sports section or the homepage of our favorite baseball analytics website. We’re accustomed to crisp, perfectly lit pictures of batters flattening fastballs into pancakes and pitchers grimacing mid-delivery with their UCLs stretched past the point of no return. But for the past month, with no new art to take their place, these photos of Soto looking, of all things, human, are everywhere. There he is on the television, in the newspaper, on the internet: in the dark, wearing a baseball jersey over a chain and a turtleneck that probably cost more money than I have ever seen in my life, alternating between posing confidently and standing awkwardly.

That’s part of the deal for professional baseball players. From the moment they arrive at spring training until the moment their season ends, they’re fair game for photographers. The Imagn photo service has 4,455 pictures of Soto, 1,113 of them from the 2024 season alone. But when the season ends, the players disappear. In the winter, they get to live their quasi-private lives away from the cameras, and baseball editors get to scroll through Imagn’s 56 pages of 2024 Juan Soto pictures in an attempt to avoid reusing that one shot they used back in December.

But now we’ve got art of Soto in a Mets uniform. Sure, the art isn’t what we’re used to, but it beats using an old photo of him in a Yankees uniform. Here’s what you see what you search Imagn for Juan Soto (which you can do here).

For any editor whose news organization didn’t send a photographer to Soto’s presser, this is what you have to choose from. It’s one closeup after another: Juan Soto with his arms outstretched like Moses parting the Red Sea, Juan Soto nervously smiling and adjusting the cuff of his turtleneck, Juan Soto with his hands raised like he’s conducting an orchestra, Juan Soto with the same goofy, sideways smile that Steve Carell wore in the poster for The 40-Year-Old Virgin.

I was a teenager when digital cameras began to fully replace film cameras, and I remember that era just well enough to appreciate what the transition cost us. Today, you can take and instantly delete an infinite number of pictures until you get one that shows exactly what you want it to show. Before that option was available, you couldn’t see your photos until you remembered to take the roll to the developer months later. When you finally got them back, you’d discover that you had your finger over the lens for a couple of them, that you had your eyes closed for a couple more, that the lighting was off for a couple more, and that one was, for no discernible reason, completely gray. If you were a total amateur like me, you’d consider yourself lucky to end up with two or three photographs that actually came out well. In other words, photography used to accurately represent real life. Real life is 90% crazy eyes and pre-sneeze faces, and you don’t get to dial up the saturation. I don’t mean to sound like a crank. I love having a decent camera in my pocket at all times; I’m just saying that it has distorted our world a bit.

For that reason, I love the fact that these pictures are everywhere you look. Penner took all of them, and he’s a fantastic photographer. He took the widely circulated picture of Francisco Lindor celebrating on the field after the Mets dispatched the Phillies in the NLDS, and he even had a comp in mind for the madness of Soto’s press conference: Kemba Walker’s 2021 introductory presser for the Knicks, which took place at the top of the Empire State Building. But still, these are not the perfect pictures we’re used to seeing. They show the rare photo opportunity that ends up looking every bit as contrived as it actually is.

Brad Penner-Imagn Images

For the next month, do your best to enjoy these pictures. The moment Soto arrives in Port St. Lucie, you’ll stop seeing them. They’ll be replaced by low-angle shots of a godlike Soto in a crisp uniform, an immaculate Florida sky behind him. He’ll be launching batting practice home runs and laughing with his teammates. It will be perfect. There will be no turtleneck.


2025 ZiPS Projections: New York Mets

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

Batters

It’s funny how a few months can change the vibes surrounding a team. After a disappointing 75-87 season in 2023, the Mets had a relatively light winter going into 2024. While the team didn’t squeeze every penny until it screamed like, say, the Marlins, Sean Manaea’s two-year, $28 million contract was the big ticket signing, with the rest of the free agents brought in came on one-year deals to fill specific short-term roster holes. The rather bland winter transitioned into an equally bland season. Or, shall I say, an equally bland start of the season. Because a funny thing happened on the way to the draft lottery: After dwelling below .500 as late as July 6, the Mets played nearly .600 ball in the second half, made it into the playoffs, and fell only two wins short of reaching the World Series.

By contrast, this winter has been a loud one, mainly due to the addition of Juan Soto, who signed the largest contract in professional sports. Soto’s addition gives the Mets one of the most feared offensive forces of this generation, and though the Mets didn’t struggle with run scoring in 2024, his addition likely wipes out the potential impact of any regression toward the mean from players like Mark Vientos or Francisco Lindor. With Soto on the team now, the Mets project as average or better at every single lineup spot. This sets up an odd kind of philosophical debate in which the Mets may be one of the teams that needs Pete Alonso’s 2025 services the least while wanting them the most! So is the life of a good first baseman heading to over-30 land and showing some early signs of fading.

ZiPS is a big fan of Jose Siri starting in center field for the Mets, and with Brandon Nimmo joining Soto at the corners, the outfield shouldn’t be a worry for the Mets. Vientos likely takes over at first in an Alonso-less world, with Brett Baty getting what is likely his last chance with the Mets. While I wouldn’t want to count on Baty working out, one has to take chances on players like him; remember when everyone was piling on the Mets before 2024 for having faith in Vientos? Over at second, Jeff McNeil’s on the downslope of his career and recovering from a broken wrist, but ZiPS thinks he’ll rebound enough to keep the position about league average. McNeil’s approach at the plate, which results in a lot of contact against pitches he really shouldn’t be swinging at, will continue to be maddening at times, of course; entering his mid-30s, he’s not likely to reinvent himself as a hitter.

Bottom line: By pairing Soto with Lindor, the Mets have a really good offense, one that may be just a skosh behind the elite ones.

Pitchers

ZiPS like the Mets’ offense quite a lot, but its cyber-feelings about the rotation are more mild satisfaction than enthrallment. Of the breakout soft-tossers from 2024, ZiPS much prefers former Met Seth Lugo to current Met Manaea. And yes, I’m old enough to still feel in my heart that it’s weird that guys throwing 92-93 mph are the soft-tossers. ZiPS does have confidence in Kodai Senga and the Clay Holmes Starting Experiment, and it sees David Peterson as a solid league-average starter. Where the computer doesn’t have much confidence is in Frankie Montas, but if he’s their fifth-best starter, they’re not doing too badly.

ZiPS believes the Mets have pretty solid starting pitching depth behind the front five, too, but oddly enough, not in the first two pitchers likely heading that queue: Paul Blackburn and Griffin Canning. The projections would much rather see Brandon Sproat get an aggressive call-up if an early need presents itself, and lesser prospect Jonah Tong also has a solid projection. Prospects like Blade Tidwell, Dom Hamel, and Nolan McLean also come out on par with or even better than the veteran backups.

As for the bullpen, ZiPS kind of sees a really polarizing unit, not all that different from what Steamer projects. Edwin Díaz, José Buttó, Reed Garrett, and Dedniel Núñez all project solidly, but then there’s a big step down to the next tier. Basically all of the WAR accrued in the ZiPS projections are from these top four relievers; of the remaining guys, ZiPS is especially skeptical about Danny Young, Génesis Cabrera, Blackburn or Canning in relief, and Chris Devenski. Getting a couple bullpen arms would benefit the Mets greatly, even though signing middle relievers wouldn’t be as sexy as landing Roki Sasaki. (Then again, maybe for the Mets it isn’t an either/or choice.)

The Mets look a lot like an 87-91 win team or so, with the possibility of adding a handful more wins with other moves this winter. I suspect the Braves and Phillies will have slightly better projections by the start of the season – unless New York pulls off another huge deal – but the Mets are right in the thick of it, and a division title is certainly a possibility.

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
Juan Soto L 26 RF 672 528 108 146 26 2 33 100 137 109 7 4
Francisco Lindor B 31 SS 656 580 97 151 30 3 27 93 60 124 21 4
Brandon Nimmo L 32 LF 622 537 83 135 25 4 19 71 70 138 9 1
Pete Alonso R 30 1B 649 562 83 137 26 1 33 101 68 149 4 0
Mark Vientos R 25 3B 560 508 66 127 24 2 26 86 43 169 0 0
Francisco Alvarez R 23 C 437 388 52 90 16 1 20 64 41 111 1 1
Jeff McNeil L 33 2B 505 456 57 119 25 1 9 50 33 64 5 0
Jose Siri R 29 CF 418 382 56 82 17 2 17 57 27 153 14 5
Brett Baty L 25 3B 480 430 57 103 16 0 17 61 43 124 2 1
Harrison Bader R 31 CF 394 363 49 86 16 1 10 44 22 84 16 5
Jared Young L 29 3B 446 389 56 91 19 3 14 62 44 114 5 2
Ronny Mauricio B 24 2B 585 552 64 129 23 3 18 73 27 143 15 7
Luisangel Acuña R 23 SS 593 553 79 135 21 4 8 55 34 125 29 11
Donovan Walton L 31 2B 358 323 41 79 17 2 5 38 25 53 3 2
Wyatt Young L 25 SS 494 439 52 102 15 2 4 42 45 118 9 4
Tyrone Taylor R 31 RF 344 316 46 73 18 2 10 41 19 80 8 1
Jakson Reetz R 29 C 315 277 33 57 15 0 10 44 26 89 1 1
Jesse Winker L 31 LF 466 393 54 94 18 1 12 51 62 94 7 2
J.D. Martinez R 37 DH 465 413 51 98 24 1 16 59 44 135 0 0
Luis De Los Santos R 27 3B 344 312 36 67 15 1 8 38 25 95 3 2
Starling Marte R 36 RF 375 340 48 90 15 2 7 41 24 80 17 3
Jose Iglesias R 35 2B 401 377 44 98 20 1 5 39 17 66 3 2
Rafael Ortega L 34 CF 353 306 39 68 13 1 7 32 41 78 12 6
Eddy Alvarez L 35 RF 363 311 47 70 16 2 8 41 31 101 9 4
José Azocar R 29 CF 366 341 44 83 14 3 5 35 16 81 20 6
Jose Peroza R 25 3B 399 358 40 76 17 1 8 43 31 137 2 0
Chris Williams R 28 C 366 319 39 61 13 1 12 43 39 136 2 0
Joey Meneses R 33 1B 539 493 50 123 23 1 15 74 36 120 1 0
Luis Torrens R 29 C 275 251 27 58 12 0 8 33 19 72 1 1
Luke Ritter R 28 1B 506 443 53 87 16 1 16 62 50 188 3 2
Jesus Baez R 20 SS 305 283 31 59 11 1 8 33 18 67 4 1
Drew Gilbert L 24 CF 382 341 39 73 13 1 10 42 32 89 4 2
Nick Morabito R 22 CF 510 460 60 105 14 4 3 46 40 118 27 10
Jett Williams R 21 SS 393 336 45 67 15 4 5 39 46 109 12 4
Taylor Kohlwey L 30 RF 475 421 46 97 19 2 6 44 45 109 6 3
Yolmer Sánchez B 33 LF 395 341 40 65 13 2 6 33 46 107 5 1
Ji Man Choi L 34 1B 284 241 26 49 11 0 9 33 38 91 0 0
JT Schwartz L 25 1B 430 386 40 90 18 2 6 46 35 86 4 1
Christopher Suero R 21 C 455 397 50 77 13 2 8 47 44 122 9 6
Edward Olivares R 29 RF 353 319 45 77 13 1 10 44 25 68 8 5
Matt Rudick L 26 RF 440 384 47 80 19 1 6 45 45 104 7 4
Austin Allen L 31 C 266 247 26 52 9 0 9 35 14 82 1 0
Kevin Parada R 23 C 454 411 38 83 17 2 12 51 33 165 0 1
Hayden Senger R 28 C 271 244 24 49 12 1 3 27 17 92 1 1
Brandon McIlwain R 27 LF 390 350 35 75 15 2 6 42 28 118 8 4
Ryan Clifford L 21 1B 560 481 58 96 21 0 18 67 65 191 2 1
Nick Lorusso R 24 1B 358 317 34 66 12 2 9 41 35 86 4 2
Mike Brosseau R 31 1B 348 310 36 67 9 0 9 40 27 94 1 1
DJ Stewart L 31 RF 339 294 33 59 10 1 10 37 36 98 4 1
Karell Paz L 25 LF 183 164 18 33 6 2 3 19 11 57 5 3
Boston Baro L 20 3B 432 395 44 85 17 3 3 36 32 101 4 1
Nolan McLean R 23 DH 143 131 14 21 5 0 7 20 11 86 0 0
D’Andre Smith R 24 2B 203 190 18 40 9 1 2 20 8 56 4 1
Jacob Reimer R 21 3B 315 274 30 55 9 0 3 29 30 74 1 2
Jackie Bradley Jr. L 35 CF 244 225 21 39 10 1 3 18 14 70 3 1
Joe Suozzi R 27 LF 302 270 32 54 7 2 4 30 22 112 4 1
Matt O’Neill R 27 C 214 189 20 29 5 1 3 15 23 91 0 0
Ronald Hernandez B 21 C 429 384 37 77 13 2 5 39 38 137 4 1
Eddie Rosario L 33 LF 397 367 41 80 17 2 12 47 24 88 8 3
Rowdey Jordan R 26 2B 462 416 45 82 17 2 7 43 37 135 13 5
Kellum Clark L 24 1B 247 214 21 38 4 2 2 17 28 100 1 1
William Lugo R 23 SS 419 373 39 69 15 1 9 42 38 127 2 1
Christian Pregent R 24 C 182 162 15 26 3 0 2 12 16 76 0 0
Jose Hernandez R 23 C 169 150 13 21 5 1 2 14 13 73 3 2
Estarling Mercado L 22 1B 284 253 25 38 9 2 8 32 23 122 1 1

Batters – Advanced
Player PA BA OBP SLG OPS+ ISO BABIP Def WAR wOBA 3YOPS+ RC
Juan Soto 672 .276 .426 .521 167 .244 .293 -4 6.2 .406 167 120
Francisco Lindor 656 .260 .337 .462 124 .202 .289 8 5.7 .344 118 96
Brandon Nimmo 622 .251 .348 .419 116 .167 .305 8 3.5 .337 111 81
Pete Alonso 649 .244 .337 .470 126 .226 .274 1 3.0 .345 121 90
Mark Vientos 560 .250 .313 .458 115 .209 .322 -1 2.8 .331 116 73
Francisco Alvarez 437 .232 .311 .433 108 .201 .272 -1 2.4 .323 112 53
Jeff McNeil 505 .261 .324 .379 99 .118 .287 1 1.9 .309 97 57
Jose Siri 418 .215 .274 .403 89 .189 .307 10 1.9 .293 88 47
Brett Baty 480 .239 .315 .395 100 .156 .297 1 1.8 .312 103 54
Harrison Bader 394 .237 .287 .369 85 .132 .283 8 1.5 .286 83 44
Jared Young 446 .234 .324 .406 106 .172 .295 -5 1.5 .321 101 53
Ronny Mauricio 585 .234 .274 .384 84 .150 .284 4 1.3 .284 88 64
Luisangel Acuña 593 .244 .289 .340 78 .096 .303 2 1.2 .277 81 65
Donovan Walton 358 .245 .309 .356 89 .112 .279 3 1.2 .292 88 37
Wyatt Young 494 .232 .309 .303 75 .071 .309 4 1.2 .277 75 45
Tyrone Taylor 344 .231 .288 .396 92 .165 .279 7 1.1 .296 90 38
Jakson Reetz 315 .205 .296 .368 87 .162 .263 0 1.0 .293 84 31
Jesse Winker 466 .239 .353 .382 109 .142 .286 -6 1.0 .328 106 55
J.D. Martinez 465 .237 .314 .417 105 .179 .313 0 0.9 .317 97 54
Luis De Los Santos 344 .215 .282 .347 77 .132 .283 6 0.8 .278 77 32
Starling Marte 375 .265 .327 .383 101 .118 .328 -2 0.8 .312 97 47
Jose Iglesias 401 .260 .299 .358 86 .098 .304 1 0.8 .288 84 42
Rafael Ortega 353 .222 .313 .340 85 .118 .276 1 0.8 .292 80 38
Eddy Alvarez 363 .225 .315 .366 93 .141 .306 3 0.8 .302 87 39
José Azocar 366 .243 .283 .346 78 .103 .306 4 0.8 .276 78 40
Jose Peroza 399 .212 .286 .333 75 .120 .320 5 0.7 .274 77 34
Chris Williams 366 .191 .285 .351 79 .160 .287 -2 0.7 .282 80 32
Joey Meneses 539 .249 .302 .391 95 .142 .301 2 0.6 .301 88 59
Luis Torrens 275 .231 .287 .375 86 .144 .293 -2 0.6 .289 85 28
Luke Ritter 506 .196 .291 .345 80 .149 .297 9 0.5 .284 80 46
Jesus Baez 305 .209 .262 .340 69 .131 .246 3 0.4 .264 76 27
Drew Gilbert 382 .214 .293 .346 81 .132 .260 -1 0.4 .283 84 36
Nick Morabito 510 .228 .302 .296 71 .067 .301 1 0.3 .270 75 51
Jett Williams 393 .199 .310 .312 78 .113 .279 -6 0.3 .284 83 37
Taylor Kohlwey 475 .230 .310 .328 81 .097 .297 3 0.2 .285 81 45
Yolmer Sánchez 395 .191 .294 .294 68 .103 .259 8 0.2 .268 64 31
Ji Man Choi 284 .203 .313 .360 91 .157 .283 0 0.1 .299 86 27
JT Schwartz 430 .233 .307 .337 83 .104 .286 3 0.1 .287 88 41
Christopher Suero 455 .194 .290 .298 68 .103 .259 -3 0.1 .268 73 39
Edward Olivares 353 .241 .306 .382 94 .141 .278 -3 0.0 .302 94 41
Matt Rudick 440 .208 .305 .310 75 .101 .270 3 0.0 .279 77 39
Austin Allen 266 .210 .260 .356 72 .146 .275 -3 0.0 .269 71 23
Kevin Parada 454 .202 .273 .341 73 .139 .304 -6 -0.1 .271 79 39
Hayden Senger 271 .201 .271 .295 61 .094 .308 -1 -0.1 .255 60 20
Brandon McIlwain 390 .214 .290 .320 73 .106 .306 4 -0.1 .274 73 36
Ryan Clifford 560 .199 .305 .355 87 .156 .286 -2 -0.2 .294 93 53
Nick Lorusso 358 .208 .291 .344 79 .136 .257 1 -0.2 .282 84 33
Mike Brosseau 348 .216 .296 .332 78 .116 .280 1 -0.3 .282 76 31
DJ Stewart 339 .201 .301 .343 83 .143 .263 -4 -0.3 .289 79 31
Karell Paz 183 .202 .271 .318 67 .116 .289 1 -0.3 .262 68 16
Boston Baro 432 .215 .275 .296 63 .081 .282 1 -0.4 .256 69 34
Nolan McLean 143 .161 .231 .360 64 .199 .373 0 -0.4 .257 76 11
D’Andre Smith 203 .210 .256 .300 57 .089 .287 -2 -0.5 .246 62 16
Jacob Reimer 315 .201 .298 .266 62 .066 .264 -3 -0.5 .262 67 23
Jackie Bradley Jr. 244 .173 .230 .266 41 .093 .236 4 -0.5 .222 39 15
Joe Suozzi 302 .200 .281 .285 62 .085 .324 1 -0.6 .258 61 23
Matt O’Neill 214 .154 .248 .239 39 .085 .275 -1 -0.6 .226 41 11
Ronald Hernandez 429 .201 .280 .284 61 .083 .298 -6 -0.6 .255 66 32
Eddie Rosario 397 .218 .266 .373 79 .155 .254 -3 -0.6 .277 76 39
Rowdey Jordan 462 .197 .271 .298 62 .101 .274 -3 -0.8 .255 63 38
Kellum Clark 247 .178 .283 .244 52 .066 .323 1 -0.9 .245 55 15
William Lugo 419 .185 .267 .303 62 .118 .253 -8 -0.9 .256 70 31
Christian Pregent 182 .160 .242 .216 32 .055 .285 -5 -1.1 .213 33 9
Jose Hernandez 169 .140 .232 .227 31 .087 .255 -5 -1.2 .214 37 9
Estarling Mercado 284 .150 .243 .296 52 .146 .244 0 -1.2 .243 59 19

Batters – Top Near-Age Offensive Comps
Player Hit Comp 1 Hit Comp 2 Hit Comp 3
Juan Soto Carl Yastrzemski Albert Pujols Mel Ott
Francisco Lindor Marcus Semien Hanley Ramirez Charlie Gehringer
Brandon Nimmo Melvin Mora Dexter Fowler Roy White
Pete Alonso Glenn Davis Roy Sievers Tino Martinez
Mark Vientos Kevin Mitchell Larry Parrish Vern Stephens
Francisco Alvarez Todd Zeile Earl Williams Gary Carter
Jeff McNeil Felix Millan Jim Gantner Johnny Ray
Jose Siri Bill Schlesinger Bobby Mitchell Billy Cowan
Brett Baty Luis Valbuena Colin Moran Roy Howell
Harrison Bader Gary Varsho Jim Busby Ethan Allen
Jared Young Johnny Werhas Joe Dillon Bobby Prescott
Ronny Mauricio Carlos Garcia Jordany Valdespin Shawon Dunston
Luisangel Acuña Gustavo Nunez Cleo James Abraham O. Nunez
Donovan Walton Jarrett Hoffpauir Casey Wise Donnie Hill
Wyatt Young J.T. Stotts Ted Kubiak Don Wallace
Tyrone Taylor George Schmees Jim Eisenreich Dewayne Wise
Jakson Reetz Vic Correll Larry Howard Michael McKenry
Jesse Winker Steve Braun Norm Siebern Cal Emery
J.D. Martinez Tony Perez Derrek Lee Joe Brovia
Luis De Los Santos Chris Hayes Ruben Gotay Jim Baumer
Starling Marte Skeeter Barnes Jim Piersall Carl Crawford
Jose Iglesias Emil Verban Alcides Escobar Freddy Sanchez
Rafael Ortega Len Johnston Nick Capra Sam Fuld
Eddy Alvarez Carlos Gómez Andres Torres Shawn Gilbert
José Azocar Pookie Bernstine Justin Christian Amaury Garcia
Jose Peroza Jeff Baker Ramon Santana Bryan Pounds
Chris Williams Jerry Goff Gary Rushing Jim Hutto
Joey Meneses Eric Hosmer Ronnie Belliard Andres Rodriguez
Luis Torrens Tom Pagnozzi Scott Makarewicz Terry McGriff
Luke Ritter Reggie Whittemore Gary Martz Mike Fuentes
Jesus Baez Arquimedes Gamboa Manny Olloque Kevin Stocker
Drew Gilbert Jordan Czarniecki Joe Solimine Paul Thoutsis
Nick Morabito Alejandro De Aza Mike Westbrook Buck McNabb
Jett Williams Zeke DeVoss Garrett Hampson Jay Woolf
Taylor Kohlwey Mitch Maier Marv Thompson Jerry Scala
Yolmer Sánchez Ron Roenicke Jim Gosger Brian Guinn
Ji Man Choi Tony Solaita Brian Daubach Steve Bilko
JT Schwartz Derek Nicholson Tim Hyers Bobby Darula
Christopher Suero John Wathan Jayson Werth Kurt Kingsolver
Edward Olivares Jordany Valdespin Juan Beniquez Heinie Mueller
Matt Rudick John Yeglinski Andrew Lefave John Gibbons
Austin Allen Jeff Newman Nelson Santovenia Edward Irons
Kevin Parada Alfredo Torres Craig Faulkner Chris Howard
Hayden Senger Tony Caldwell Dan Rohlfing John Nester
Brandon McIlwain Pat Dietrick Brad McElroy Mike O’Neill
Ryan Clifford Matt Olson Jon Singleton Dernell Stenson
Nick Lorusso Ty Martin Bobby Holley Billy Best
Mike Brosseau Mario Lisson Paul Torres George Vico
DJ Stewart Ray Giannelli Scott Ullger Pat Dodson
Karell Paz Cristian Paulino Sandy Santos Carlos Duran
Boston Baro Edwards Guzman Isaias Velasquez Randy Rogers
Nolan McLean Genaro Campusano Jared Walker Seth Loman
D’Andre Smith Kevin Ramos Welfrin Mateo Jhombeyker Morales
Jacob Reimer Will Craig Kevin Baez Mark Chetock
Jackie Bradley Jr. Steve Lyons Jacob Brumfield Thurman Tucker
Joe Suozzi Mark Doran Don Sheppard Matt Sauls
Matt O’Neill Robert Palmer Dave Huppert Buddy Pryor
Ronald Hernandez Mitch Meluskey Pat Corrales Donnie Scott
Eddie Rosario Eric Byrnes Nate Schierholtz Carl Reynolds
Rowdey Jordan Rick Richardi Drew Jackson Joe Camacho
Kellum Clark Joe Cronin Charles Lelas Nick Yarnall
William Lugo Jason Maxwell John Weghorn Tommy Dean
Christian Pregent Sean Gousha Patrick Johnson Jose Umbria
Jose Hernandez Jordan Newton David Partrick Todd Winston
Estarling Mercado Jarrod Patterson Art Charles Joseph Shields

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
Juan Soto .303 .461 .582 189 7.9 .255 .397 .468 148 4.7
Francisco Lindor .281 .361 .520 142 7.2 .234 .311 .416 103 4.2
Brandon Nimmo .275 .373 .468 135 4.9 .226 .321 .371 96 2.0
Pete Alonso .266 .364 .529 146 4.6 .218 .315 .423 107 1.6
Mark Vientos .276 .338 .520 136 4.2 .221 .281 .401 93 1.3
Francisco Alvarez .259 .338 .489 131 3.5 .208 .285 .381 89 1.3
Jeff McNeil .287 .350 .418 115 2.9 .235 .300 .339 81 0.9
Jose Siri .242 .300 .463 111 3.1 .189 .244 .350 67 0.8
Brett Baty .263 .340 .449 122 3.0 .213 .293 .353 83 0.8
Harrison Bader .268 .319 .423 106 2.6 .211 .262 .321 64 0.6
Jared Young .255 .349 .460 126 2.5 .207 .298 .355 87 0.4
Ronny Mauricio .257 .297 .437 104 2.7 .209 .248 .340 67 0.0
Luisangel Acuña .270 .315 .381 95 2.5 .222 .265 .308 63 0.0
Donovan Walton .277 .338 .399 108 2.1 .214 .281 .310 68 0.3
Wyatt Young .261 .335 .337 91 2.1 .204 .280 .269 59 0.1
Tyrone Taylor .257 .316 .448 112 2.0 .200 .257 .338 67 0.0
Jakson Reetz .233 .321 .416 106 1.7 .180 .269 .306 65 0.2
Jesse Winker .265 .379 .429 127 2.0 .213 .324 .329 88 -0.2
J.D. Martinez .262 .341 .473 125 2.0 .214 .292 .372 87 -0.1
Luis De Los Santos .244 .308 .403 100 1.7 .192 .254 .307 59 0.0
Starling Marte .292 .355 .429 120 1.8 .236 .301 .345 84 0.0
Jose Iglesias .287 .324 .391 102 1.6 .233 .271 .316 67 -0.2
Rafael Ortega .252 .343 .390 103 1.6 .193 .282 .288 64 -0.1
Eddy Alvarez .253 .338 .414 112 1.6 .197 .286 .316 74 -0.1
José Azocar .271 .307 .393 95 1.5 .218 .256 .306 60 -0.1
Jose Peroza .235 .307 .381 91 1.6 .188 .259 .297 59 -0.1
Chris Williams .221 .315 .405 101 1.6 .166 .254 .296 58 -0.3
Joey Meneses .275 .326 .430 111 1.7 .220 .275 .341 74 -0.8
Luis Torrens .256 .315 .425 108 1.3 .205 .262 .323 70 0.0
Luke Ritter .222 .315 .401 101 1.8 .167 .263 .296 60 -0.7
Jesus Baez .242 .291 .394 93 1.4 .182 .236 .287 48 -0.4
Drew Gilbert .240 .319 .397 100 1.3 .188 .268 .304 63 -0.4
Nick Morabito .250 .322 .329 85 1.2 .205 .277 .265 57 -0.6
Jett Williams .226 .336 .365 98 1.2 .175 .287 .270 61 -0.6
Taylor Kohlwey .256 .333 .365 98 1.2 .207 .287 .293 65 -0.7
Yolmer Sánchez .217 .324 .342 88 1.2 .164 .268 .253 51 -0.6
Ji Man Choi .226 .344 .416 112 0.8 .176 .283 .308 69 -0.6
JT Schwartz .259 .333 .379 101 1.1 .205 .281 .299 65 -0.8
Christopher Suero .227 .319 .356 91 1.3 .164 .257 .255 51 -1.0
Edward Olivares .271 .335 .431 114 0.9 .217 .283 .328 74 -0.8
Matt Rudick .232 .330 .351 94 0.9 .181 .278 .269 57 -1.0
Austin Allen .239 .288 .415 91 0.6 .185 .232 .300 50 -0.7
Kevin Parada .230 .299 .384 90 0.9 .178 .247 .297 55 -1.1
Hayden Senger .231 .307 .345 82 0.7 .171 .244 .251 42 -0.7
Brandon McIlwain .238 .316 .365 90 0.7 .189 .263 .288 57 -0.9
Ryan Clifford .225 .333 .398 104 1.0 .172 .281 .307 67 -1.6
Nick Lorusso .234 .317 .389 98 0.6 .184 .270 .297 62 -1.0
Mike Brosseau .242 .322 .386 98 0.6 .189 .271 .284 58 -1.1
DJ Stewart .225 .329 .395 104 0.6 .174 .273 .293 61 -1.1
Karell Paz .229 .296 .366 85 0.1 .176 .246 .277 49 -0.7
Boston Baro .238 .300 .332 78 0.4 .191 .251 .258 46 -1.3
Nolan McLean .198 .268 .442 98 0.2 .120 .193 .265 32 -1.0
D’Andre Smith .235 .282 .347 76 0.0 .188 .232 .262 41 -0.9
Jacob Reimer .229 .327 .307 80 0.1 .178 .275 .238 49 -1.1
Jackie Bradley Jr. .199 .257 .313 60 0.1 .146 .207 .227 23 -1.0
Joe Suozzi .228 .309 .327 80 0.1 .170 .258 .242 43 -1.3
Matt O’Neill .184 .275 .289 60 -0.1 .126 .214 .203 20 -1.1
Ronald Hernandez .231 .311 .331 82 0.5 .171 .249 .243 42 -1.7
Eddie Rosario .246 .293 .428 102 0.5 .189 .236 .318 57 -1.7
Rowdey Jordan .220 .296 .342 81 0.4 .175 .248 .260 47 -1.6
Kellum Clark .203 .311 .285 70 -0.3 .150 .252 .209 33 -1.4
William Lugo .210 .295 .352 82 0.2 .161 .243 .267 45 -1.7
Christian Pregent .188 .272 .254 49 -0.7 .132 .211 .181 15 -1.5
Jose Hernandez .171 .264 .274 53 -0.7 .113 .206 .183 12 -1.5
Estarling Mercado .175 .268 .354 72 -0.4 .127 .218 .257 36 -1.8

Batters – Platoon Splits
Player BA vs. L OBP vs. L SLG vs. L BA vs. R OBP vs. R SLG vs. R
Juan Soto .262 .396 .476 .283 .439 .542
Francisco Lindor .270 .340 .483 .256 .336 .453
Brandon Nimmo .247 .333 .380 .253 .354 .435
Pete Alonso .241 .342 .475 .245 .336 .468
Mark Vientos .262 .324 .482 .243 .306 .445
Francisco Alvarez .236 .325 .439 .229 .302 .429
Jeff McNeil .252 .317 .351 .265 .326 .391
Jose Siri .222 .283 .429 .211 .269 .391
Brett Baty .234 .303 .376 .242 .321 .405
Harrison Bader .243 .293 .374 .234 .284 .367
Jared Young .224 .310 .376 .239 .331 .420
Ronny Mauricio .231 .265 .385 .235 .279 .384
Luisangel Acuña .246 .298 .344 .243 .285 .338
Donovan Walton .240 .304 .365 .247 .310 .352
Wyatt Young .216 .293 .288 .239 .316 .309
Tyrone Taylor .236 .293 .425 .229 .285 .381
Jakson Reetz .214 .307 .402 .200 .289 .345
Jesse Winker .215 .330 .323 .247 .360 .400
J.D. Martinez .250 .336 .446 .233 .306 .405
Luis De Los Santos .226 .292 .371 .207 .275 .330
Starling Marte .258 .327 .371 .267 .327 .386
Jose Iglesias .269 .310 .380 .257 .295 .349
Rafael Ortega .211 .288 .282 .226 .320 .357
Eddy Alvarez .215 .302 .344 .229 .321 .376
José Azocar .243 .283 .346 .244 .284 .346
Jose Peroza .227 .304 .348 .204 .275 .323
Chris Williams .195 .294 .364 .189 .278 .343
Joey Meneses .254 .309 .407 .247 .299 .383
Luis Torrens .239 .297 .424 .226 .282 .346
Luke Ritter .200 .297 .360 .195 .288 .338
Jesus Baez .218 .277 .368 .204 .256 .327
Drew Gilbert .204 .282 .301 .218 .297 .363
Nick Morabito .225 .306 .295 .230 .301 .296
Jett Williams .198 .311 .327 .200 .310 .306
Taylor Kohlwey .222 .302 .320 .235 .314 .332
Yolmer Sánchez .190 .289 .286 .191 .296 .297
Ji Man Choi .185 .286 .278 .209 .321 .385
JT Schwartz .217 .289 .304 .240 .315 .351
Christopher Suero .195 .299 .297 .194 .286 .297
Edward Olivares .248 .321 .393 .238 .297 .376
Matt Rudick .207 .296 .279 .209 .308 .322
Austin Allen .211 .259 .329 .211 .261 .368
Kevin Parada .208 .278 .367 .199 .271 .330
Hayden Senger .205 .283 .289 .199 .266 .298
Brandon McIlwain .216 .292 .328 .214 .288 .316
Ryan Clifford .186 .287 .305 .204 .311 .372
Nick Lorusso .208 .300 .365 .208 .286 .335
Mike Brosseau .221 .304 .344 .212 .290 .324
DJ Stewart .189 .286 .297 .205 .306 .359
Karell Paz .196 .275 .326 .203 .269 .314
Boston Baro .206 .265 .290 .219 .279 .299
Nolan McLean .163 .234 .419 .159 .229 .330
D’Andre Smith .220 .270 .322 .206 .250 .290
Jacob Reimer .205 .302 .277 .199 .297 .262
Jackie Bradley Jr. .175 .235 .270 .173 .229 .265
Joe Suozzi .208 .290 .323 .195 .277 .264
Matt O’Neill .156 .260 .234 .152 .241 .240
Ronald Hernandez .196 .266 .259 .202 .285 .294
Eddie Rosario .211 .248 .337 .221 .272 .386
Rowdey Jordan .203 .280 .313 .194 .267 .292
Kellum Clark .172 .284 .190 .179 .283 .263
William Lugo .190 .272 .306 .183 .265 .302
Christian Pregent .167 .246 .241 .157 .240 .204
Jose Hernandez .149 .245 .255 .136 .224 .214
Estarling Mercado .149 .241 .284 .151 .244 .302

Pitchers – Standard
Player T Age W L ERA G GS IP H ER HR BB SO
Clay Holmes R 32 10 7 3.66 23 16 110.7 114 45 8 34 96
Kodai Senga R 32 9 7 3.51 24 24 138.3 111 54 15 62 149
David Peterson L 29 7 7 4.09 27 24 127.7 121 58 13 52 120
Sean Manaea L 33 8 7 4.31 28 25 144.0 131 69 21 47 145
José Quintana L 36 8 8 4.27 27 26 137.0 136 65 16 57 109
Edwin Díaz R 31 6 3 2.95 56 0 55.0 37 18 5 19 81
Brandon Sproat R 24 5 6 4.27 24 23 103.3 98 49 13 40 90
Tylor Megill R 29 6 6 4.37 24 23 115.3 108 56 15 46 116
Christian Scott R 26 3 4 4.19 17 17 81.7 76 38 11 23 76
Jonah Tong R 22 5 5 4.44 25 23 101.3 96 50 13 48 98
Joander Suarez R 25 7 7 4.47 22 20 104.7 105 52 14 37 87
Frankie Montas R 32 7 9 4.65 26 26 131.7 126 68 19 54 125
José Buttó R 27 4 2 3.50 61 0 69.3 54 27 7 30 77
Blade Tidwell R 24 7 8 4.72 25 21 108.7 104 57 14 55 97
Paul Blackburn R 31 5 5 4.65 19 18 91.0 94 47 12 32 71
Max Kranick R 27 3 2 4.37 36 10 68.0 67 33 8 23 56
Dedniel Núñez R 29 3 2 3.51 38 0 48.7 41 19 5 18 56
Dominic Hamel R 26 6 7 4.79 24 23 112.7 110 60 15 53 95
Nolan McLean R 23 6 8 4.84 25 25 100.3 98 54 12 41 81
Reed Garrett R 32 6 5 3.71 47 0 51.0 43 21 5 25 62
Justin Hagenman R 28 4 5 4.56 30 10 81.0 79 41 12 26 69
Kevin Herget R 34 3 4 4.27 34 4 59.0 58 28 8 18 50
Joey Lucchesi L 32 5 7 4.88 23 17 99.7 104 54 14 45 70
Luis Ortiz R 29 2 2 4.13 32 2 48.0 47 22 5 14 39
Griffin Canning R 29 7 9 5.01 26 25 140.0 137 78 24 53 123
Jonathan Pintaro R 27 4 5 4.85 16 14 65.0 65 35 8 26 51
Ryne Stanek R 33 4 3 3.91 56 0 50.7 42 22 6 25 57
Sean Reid-Foley R 29 2 2 3.89 37 0 34.7 28 15 3 20 41
Oliver Ortega R 28 2 3 3.89 31 0 41.7 37 18 4 15 41
Adam Ottavino R 39 3 2 3.96 54 0 50.0 42 22 5 22 54
Brooks Raley L 37 1 2 3.93 44 0 36.7 32 16 4 16 38
Luis Moreno R 26 5 6 5.03 24 18 96.7 100 54 13 48 72
TJ Shook R 27 6 8 4.86 25 12 79.7 76 43 11 33 70
Huascar Brazobán R 35 3 2 4.17 41 0 54.0 46 25 5 27 56
Dakota Hawkins R 25 4 5 4.86 27 10 79.7 85 43 11 30 54
Jordan Geber R 25 5 6 5.01 22 11 73.7 80 41 11 23 46
Phil Maton R 32 3 2 4.24 62 0 57.3 50 27 7 22 58
Dylan Covey R 33 1 2 4.20 23 0 30.0 31 14 3 12 22
Alex Young L 31 2 2 4.15 49 0 47.7 46 22 6 18 44
Danny Young L 31 3 2 4.33 46 0 43.7 36 21 4 22 50
Troy Miller R 28 1 1 4.99 10 8 30.7 33 17 5 15 23
Drew Smith R 31 3 3 4.35 42 0 41.3 37 20 7 18 43
Cameron Foster R 26 3 4 5.10 24 11 67.0 71 38 10 30 50
Anthony Gose L 34 4 3 4.28 37 0 40.0 35 19 6 20 47
Shintaro Fujinami R 31 4 4 4.76 32 5 58.7 51 31 6 38 62
David Griffin R 28 3 5 5.18 18 12 64.3 69 37 10 28 43
Génesis Cabrera L 28 3 3 4.48 63 0 60.3 55 30 8 28 55
Trey McLoughlin R 26 1 2 4.61 33 0 41.0 40 21 6 16 38
Sean Harney R 26 1 2 5.13 27 7 47.3 48 27 7 18 34
Junior Santos R 23 3 4 5.02 29 6 66.3 69 37 8 29 43
Grant Hartwig R 27 3 4 4.56 42 1 51.3 47 26 5 24 45
Chris Devenski R 34 2 2 4.84 37 2 44.7 44 24 8 16 43
Yacksel Ríos R 32 2 2 4.65 28 0 31.0 28 16 4 18 29
Rico Garcia R 31 3 4 4.56 44 0 49.3 45 25 7 24 53
Jeffrey Colon R 25 1 2 5.09 22 4 53.0 57 30 7 22 34
Hunter Parsons R 28 2 4 4.99 26 1 39.7 36 22 5 22 38
Jake Diekman L 38 2 2 4.74 47 0 38.0 31 20 5 26 45
Ty Adcock R 28 2 3 4.86 29 0 33.3 34 18 6 11 29
Daniel Juarez L 24 2 3 4.87 34 1 40.7 39 22 5 21 35
Carlos Guzman R 27 3 5 5.20 30 6 64.0 65 37 9 32 50
Tyler Zuber R 30 2 3 4.99 38 0 39.7 37 22 6 21 39
Cam Robinson R 25 2 2 4.80 36 0 45.0 43 24 5 27 39
Josh Hejka R 28 2 2 4.76 32 0 51.0 53 27 6 17 35
Donovan Walton R 31 1 1 8.31 9 0 8.7 12 8 2 5 1
Joshua Cornielly R 24 3 4 4.93 33 0 49.3 47 27 7 21 43
Andre Scrubb R 30 1 1 5.79 20 0 23.3 23 15 4 17 20
Wilkin Ramos R 24 3 5 5.10 37 0 47.7 47 27 6 28 39
Michael Hobbs R 25 1 3 5.52 39 0 45.7 45 28 7 28 38

Pitchers – Advanced
Player IP K/9 BB/9 HR/9 BB% K% BABIP ERA+ 3ERA+ FIP ERA- WAR
Clay Holmes 110.7 7.8 2.8 0.7 7.1% 20.0% .317 111 106 3.44 90 2.7
Kodai Senga 138.3 9.7 4.0 1.0 10.5% 25.2% .272 115 112 3.86 87 2.6
David Peterson 127.7 8.5 3.7 0.9 9.4% 21.7% .298 99 98 4.01 101 1.5
Sean Manaea 144.0 9.1 2.9 1.3 7.8% 24.0% .284 94 90 4.19 106 1.3
José Quintana 137.0 7.2 3.7 1.1 9.5% 18.2% .291 95 88 4.46 105 1.3
Edwin Díaz 55.0 13.3 3.1 0.8 8.6% 36.7% .283 138 131 2.67 73 1.3
Brandon Sproat 103.3 7.8 3.5 1.1 9.0% 20.2% .285 95 99 4.32 105 1.0
Tylor Megill 115.3 9.1 3.6 1.2 9.3% 23.4% .295 93 92 4.18 108 1.0
Christian Scott 81.7 8.4 2.5 1.2 6.8% 22.5% .285 97 99 4.06 103 0.9
Jonah Tong 101.3 8.7 4.3 1.2 10.7% 21.9% .294 91 96 4.36 110 0.8
Joander Suarez 104.7 7.5 3.2 1.2 8.1% 19.1% .294 91 94 4.46 110 0.8
Frankie Montas 131.7 8.5 3.7 1.3 9.5% 21.9% .291 87 84 4.50 115 0.8
José Buttó 69.3 10.0 3.9 0.9 10.3% 26.6% .270 116 116 3.74 86 0.7
Blade Tidwell 108.7 8.0 4.6 1.2 11.4% 20.1% .289 86 91 4.75 116 0.5
Paul Blackburn 91.0 7.0 3.2 1.2 8.1% 18.1% .296 87 85 4.49 115 0.5
Max Kranick 68.0 7.4 3.0 1.1 7.9% 19.2% .292 93 96 4.21 108 0.5
Dedniel Núñez 48.7 10.4 3.3 0.9 8.8% 27.3% .293 115 113 3.32 87 0.5
Dominic Hamel 112.7 7.6 4.2 1.2 10.6% 19.0% .288 85 87 4.77 118 0.5
Nolan McLean 100.3 7.3 3.7 1.1 9.4% 18.6% .288 84 88 4.73 120 0.4
Reed Garrett 51.0 10.9 4.4 0.9 11.3% 28.1% .302 109 104 3.55 91 0.4
Justin Hagenman 81.0 7.7 2.9 1.3 7.6% 20.1% .285 89 90 4.51 112 0.4
Kevin Herget 59.0 7.6 2.7 1.2 7.2% 20.0% .289 95 90 4.26 105 0.3
Joey Lucchesi 99.7 6.3 4.1 1.3 10.1% 15.8% .289 83 81 5.01 120 0.3
Luis Ortiz 48.0 7.3 2.6 0.9 6.9% 19.3% .294 98 99 3.97 102 0.3
Griffin Canning 140.0 7.9 3.4 1.5 8.7% 20.3% .283 81 82 4.89 124 0.3
Jonathan Pintaro 65.0 7.1 3.6 1.1 9.2% 18.0% .291 84 86 4.73 120 0.3
Ryne Stanek 50.7 10.1 4.4 1.1 11.4% 26.0% .281 104 97 4.07 96 0.2
Sean Reid-Foley 34.7 10.6 5.2 0.8 13.2% 27.2% .291 104 105 3.67 96 0.2
Oliver Ortega 41.7 8.9 3.2 0.9 8.5% 23.2% .289 104 105 3.68 96 0.2
Adam Ottavino 50.0 9.7 4.0 0.9 10.2% 25.1% .285 102 96 4.00 98 0.2
Brooks Raley 36.7 9.3 3.9 1.0 10.2% 24.2% .286 103 92 4.08 97 0.2
Luis Moreno 96.7 6.7 4.5 1.2 11.0% 16.4% .292 81 84 5.11 124 0.2
TJ Shook 79.7 7.9 3.7 1.2 9.5% 20.2% .285 83 85 4.76 120 0.1
Huascar Brazobán 54.0 9.3 4.5 0.8 11.4% 23.7% .287 97 90 3.97 103 0.1
Dakota Hawkins 79.7 6.1 3.4 1.2 8.5% 15.3% .292 83 87 4.82 120 0.1
Jordan Geber 73.7 5.6 2.8 1.3 7.1% 14.3% .290 81 85 4.97 124 0.1
Phil Maton 57.3 9.1 3.5 1.1 9.1% 24.1% .281 96 92 4.26 105 0.1
Dylan Covey 30.0 6.6 3.6 0.9 9.2% 16.8% .298 97 91 4.31 104 0.0
Alex Young 47.7 8.3 3.4 1.1 8.7% 21.4% .294 98 95 4.23 102 0.0
Danny Young 43.7 10.3 4.5 0.8 11.6% 26.3% .291 94 91 4.14 107 0.0
Troy Miller 30.7 6.8 4.4 1.5 10.7% 16.4% .295 81 81 5.27 123 0.0
Drew Smith 41.3 9.4 3.9 1.5 10.1% 24.2% .278 93 91 4.75 107 0.0
Cameron Foster 67.0 6.7 4.0 1.3 10.0% 16.7% .295 79 84 5.06 126 0.0
Anthony Gose 40.0 10.6 4.5 1.4 11.3% 26.6% .290 95 87 4.35 105 0.0
Shintaro Fujinami 58.7 9.5 5.8 0.9 14.2% 23.1% .290 85 82 4.54 117 0.0
David Griffin 64.3 6.0 3.9 1.4 9.8% 15.0% .289 78 79 5.35 128 -0.1
Génesis Cabrera 60.3 8.2 4.2 1.2 10.6% 20.9% .278 91 92 4.62 110 -0.1
Trey McLoughlin 41.0 8.3 3.5 1.3 8.9% 21.2% .293 88 93 4.40 114 -0.1
Sean Harney 47.3 6.5 3.4 1.3 8.7% 16.5% .283 79 83 5.12 127 -0.1
Junior Santos 66.3 5.8 3.9 1.1 9.8% 14.6% .288 81 86 4.99 124 -0.1
Grant Hartwig 51.3 7.9 4.2 0.9 10.8% 20.2% .286 89 89 4.44 112 -0.1
Chris Devenski 44.7 8.7 3.2 1.6 8.3% 22.3% .290 84 78 4.72 119 -0.2
Yacksel Ríos 31.0 8.4 5.2 1.2 12.6% 20.3% .279 87 81 4.92 115 -0.2
Rico Garcia 49.3 9.7 4.4 1.3 11.1% 24.4% .292 89 85 4.39 113 -0.2
Jeffrey Colon 53.0 5.8 3.7 1.2 9.3% 14.3% .292 80 83 5.14 126 -0.2
Hunter Parsons 39.7 8.6 5.0 1.1 12.4% 21.3% .284 81 84 4.87 123 -0.2
Jake Diekman 38.0 10.7 6.2 1.2 15.0% 26.0% .280 86 77 4.81 117 -0.2
Ty Adcock 33.3 7.8 3.0 1.6 7.7% 20.3% .289 83 85 4.86 120 -0.2
Daniel Juarez 40.7 7.7 4.6 1.1 11.6% 19.3% .288 83 88 4.83 120 -0.2
Carlos Guzman 64.0 7.0 4.5 1.3 11.1% 17.3% .290 78 80 5.18 128 -0.3
Tyler Zuber 39.7 8.8 4.8 1.4 12.0% 22.3% .287 81 80 4.84 123 -0.3
Cam Robinson 45.0 7.8 5.4 1.0 13.0% 18.8% .290 84 87 4.89 118 -0.3
Josh Hejka 51.0 6.2 3.0 1.1 7.7% 15.8% .292 85 86 4.75 118 -0.3
Donovan Walton 8.7 1.0 5.2 2.1 11.6% 2.3% .294 49 49 7.68 205 -0.4
Joshua Cornielly 49.3 7.8 3.8 1.3 9.7% 19.8% .284 82 86 4.92 122 -0.4
Andre Scrubb 23.3 7.7 6.6 1.5 15.5% 18.2% .284 70 70 6.01 143 -0.4
Wilkin Ramos 47.7 7.4 5.3 1.1 13.0% 18.1% .291 80 84 5.26 126 -0.4
Michael Hobbs 45.7 7.5 5.5 1.4 13.2% 17.9% .284 73 78 5.61 136 -0.6

Pitchers – Top Near-Age Comps
Player Pit Comp 1 Pit Comp 2 Pit Comp 3
Clay Holmes Zach Wheeler Billy O’Dell Brad Penny
Kodai Senga Bullet Joe Bush David Cone Rick Sutcliffe
David Peterson Andy Pettitte Shane Rawley Paul Gibson
Sean Manaea Scott Kazmir J.A. Happ CC Sabathia
José Quintana Kenny Rogers Tom Glavine Jimmy Key
Edwin Díaz Jeff Reardon Darren Holmes Tom Henke
Brandon Sproat Nathan Eovaldi Fernando Romero Bryse Wilson
Tylor Megill Russ Butler Larry Carter Alex Ronay
Christian Scott Pablo Lopez Gary Wheelock Craig Swan
Jonah Tong Curt Lyons Grant Roberts Jordan Walden
Joander Suarez Scott Rivette Jeremy Hefner Glenn Isringhaus
Frankie Montas Edinson Volquez Bobby Witt Kyle Gibson
José Buttó Billy Koch Ramon Ramirez Hector Carrasco
Blade Tidwell Garrett Richards Travis Chick Kyle Drabek
Paul Blackburn Jerry Lane Matt Rusch Dwayne Pollok
Max Kranick Blake Hawksworth Anthony Bass Frank Herrmann
Dedniel Núñez Santos Hernandez Jonathan Albaladejo Brad Clontz
Dominic Hamel Chuck Locke Taylor Cole Chris Ellis
Nolan McLean Sal Romano Clay Carroll Adam Bass
Reed Garrett Oliver Drake Doug Bair Matt Miller
Justin Hagenman Albert Suarez Bart Johnson Carlos Reyes
Kevin Herget John DeSilva Juan Eichelberger Galen Cisco
Joey Lucchesi Randy Keisler Aaron Laffey Chris Michalak
Luis Ortiz Chris Reitsma Brian Schlitter Derek Law
Griffin Canning Ervin Santana Luke Hochevar Pete Hernandez
Jonathan Pintaro Erick Fedde Carlos Frias Phil Irwin
Ryne Stanek Jose Veras Curt Leskanic Fernando Rodney
Sean Reid-Foley Jim Duffalo Victor Cruz Tim Stoddard
Oliver Ortega Edubray Ramos Bret Prinz Josh Martin
Adam Ottavino Salomon Torres Dick Tidrow Al Worthington
Brooks Raley Brian Fuentes Kent Mercker Rheal Cormier
Luis Moreno Mike Buddie Tim Crabbe Jarett Miller
TJ Shook Kent Greenfield Mike Brunet Kevin Beirne
Huascar Brazobán Diego Segui Brad Brach Jose Alvarez
Dakota Hawkins Jack Fisher Eddie Bonine Dustin Renfrow
Jordan Geber Raymar Diaz Kevin Mlodik Scott Barber
Phil Maton Chad Durbin Pat Neshek Noe Ramirez
Dylan Covey Johnny Murphy Danny Kolb Cecil Upshaw
Alex Young Craig Skok John O’Donoghue Bryan Eversgerd
Danny Young Mike Matthews Hector Mercado Charlie Manning
Troy Miller Santo Alcala Aaron France Kyle Evans
Drew Smith John Costello Lou North Bill Risley
Cameron Foster Alex Santos Dave Gil Tip Fairchild
Anthony Gose Mike Dunn Jeff Tabaka Ray Searage
Shintaro Fujinami Andy Shibilo Mike Barlow John Pacella
David Griffin Jerry Magness Travis Kane Jose Cano
Génesis Cabrera Dave Geisel Mike Mohler Josh Osich
Trey McLoughlin Paul Thorp Scott McCrary Neil Jamison
Sean Harney Ken Kendrena Matty Ott Brian Parker
Junior Santos Hank Williams Marcelino Dominguez George Rewerts
Grant Hartwig Eric Mustad Blaine Boyer Michael Blazek
Chris Devenski Xavier Rescigno George Caster Stan Bahnsen
Yacksel Ríos Dave Sisler Felix Rodriguez Dalier Hinojosa
Rico Garcia Don Larsen Tony Menendez Matt Karchner
Jeffrey Colon Kody Kerski Pat Currin Jake Dunning
Hunter Parsons Bill Moran Barry Manuel Francisco Rodriguez
Jake Diekman John Hiller Jesse Orosco Tippy Martinez
Ty Adcock Derek Fahs Amad Stephens Tanner Scheppers
Daniel Juarez Julio Alonso Rick Williams Greg Simpson
Carlos Guzman Paul Clemens Brandon Mathes Matt Peterson
Tyler Zuber Charlie Sullivan Hank Behrman Chad Harville
Cam Robinson Jim Newlin Jim Vosk Brendan Sullivan
Josh Hejka David Peterson Eric Yardley Clayton Hamilton
Donovan Walton Charlie Fuchs Dick Balderson Bobby Hogue
Joshua Cornielly Neil Jamison Ralph Roberts Julio Strauss
Andre Scrubb Bobby Reis Jack Berly Jim Ray
Wilkin Ramos Greg Infante Tommy Taylor Alec Zumwalt
Michael Hobbs Kris Keller Mike Hermanson Carlos Bohorquez

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
Clay Holmes .288 .354 .419 .239 .291 .344 3.6 1.5 3.21 4.31
Kodai Senga .215 .312 .340 .215 .291 .363 3.5 1.7 2.98 4.04
David Peterson .231 .294 .331 .249 .333 .397 2.5 0.5 3.50 4.75
Sean Manaea .211 .271 .336 .245 .312 .431 2.4 0.1 3.72 5.11
José Quintana .240 .303 .380 .257 .336 .414 2.2 0.5 3.63 4.93
Edwin Díaz .167 .272 .289 .202 .267 .321 2.1 0.2 1.97 4.76
Brandon Sproat .258 .333 .434 .232 .298 .369 1.8 0.3 3.72 4.81
Tylor Megill .252 .340 .419 .232 .296 .384 1.7 0.1 3.85 5.12
Christian Scott .237 .290 .410 .245 .309 .403 1.5 0.3 3.55 4.82
Jonah Tong .231 .316 .397 .258 .336 .412 1.5 0.1 3.95 5.02
Joander Suarez .274 .346 .462 .236 .297 .372 1.5 0.1 4.00 5.05
Frankie Montas .259 .347 .466 .234 .296 .375 1.6 -0.3 4.13 5.40
José Buttó .211 .316 .351 .208 .286 .333 1.5 -0.1 2.83 4.39
Blade Tidwell .256 .359 .409 .237 .321 .402 1.1 -0.1 4.31 5.18
Paul Blackburn .256 .325 .411 .267 .323 .439 1.1 -0.1 4.08 5.30
Max Kranick .260 .331 .402 .245 .303 .403 1.0 -0.1 3.80 5.07
Dedniel Núñez .250 .323 .369 .200 .264 .350 1.0 -0.2 2.67 4.84
Dominic Hamel .252 .342 .405 .248 .330 .422 1.2 -0.3 4.30 5.34
Nolan McLean .254 .349 .403 .246 .327 .403 1.0 -0.3 4.39 5.43
Reed Garrett .216 .317 .386 .229 .311 .333 1.1 -0.3 2.79 4.87
Justin Hagenman .250 .325 .450 .250 .304 .409 1.0 -0.4 3.97 5.43
Kevin Herget .248 .306 .386 .254 .310 .438 0.8 -0.2 3.56 5.13
Joey Lucchesi .238 .322 .337 .272 .345 .466 0.9 -0.4 4.36 5.53
Luis Ortiz .261 .330 .443 .242 .296 .343 0.7 -0.1 3.41 4.97
Griffin Canning .245 .327 .442 .255 .314 .447 1.2 -0.7 4.45 5.64
Jonathan Pintaro .266 .354 .406 .244 .322 .409 0.7 -0.2 4.33 5.47
Ryne Stanek .217 .316 .386 .222 .315 .352 0.8 -0.5 2.99 5.19
Sean Reid-Foley .206 .324 .333 .224 .312 .358 0.6 -0.2 3.04 4.80
Oliver Ortega .216 .293 .324 .247 .316 .400 0.6 -0.2 3.22 4.79
Adam Ottavino .260 .372 .425 .198 .288 .310 0.8 -0.5 3.04 5.34
Brooks Raley .196 .275 .304 .245 .339 .404 0.6 -0.5 2.99 5.71
Luis Moreno .266 .361 .435 .257 .340 .422 0.7 -0.5 4.60 5.60
TJ Shook .247 .331 .416 .245 .333 .419 0.7 -0.5 4.28 5.49
Huascar Brazobán .215 .324 .355 .234 .323 .351 0.8 -0.5 3.21 5.43
Dakota Hawkins .259 .326 .418 .275 .337 .463 0.7 -0.4 4.33 5.43
Jordan Geber .273 .344 .476 .270 .317 .434 0.5 -0.4 4.53 5.59
Phil Maton .228 .313 .366 .231 .321 .393 0.7 -0.6 3.45 5.33
Dylan Covey .263 .344 .421 .258 .319 .387 0.3 -0.2 3.53 5.03
Alex Young .238 .314 .365 .252 .321 .423 0.5 -0.4 3.38 5.01
Danny Young .183 .310 .267 .240 .355 .394 0.5 -0.6 3.43 5.67
Troy Miller .267 .353 .467 .270 .338 .460 0.2 -0.2 4.58 5.57
Drew Smith .232 .329 .406 .236 .310 .438 0.5 -0.5 3.52 5.41
Cameron Foster .255 .340 .438 .277 .345 .462 0.4 -0.4 4.58 5.67
Anthony Gose .204 .278 .306 .240 .339 .452 0.4 -0.5 3.31 5.47
Shintaro Fujinami .229 .356 .367 .228 .341 .368 0.5 -0.7 3.97 5.68
David Griffin .269 .343 .454 .268 .350 .442 0.3 -0.5 4.68 5.76
Génesis Cabrera .231 .315 .346 .240 .330 .422 0.5 -0.6 3.77 5.21
Trey McLoughlin .240 .313 .427 .259 .319 .424 0.3 -0.4 3.88 5.32
Sean Harney .241 .330 .414 .273 .342 .455 0.3 -0.4 4.52 5.74
Junior Santos .271 .360 .449 .255 .331 .386 0.3 -0.6 4.48 5.61
Grant Hartwig .236 .349 .371 .241 .325 .380 0.3 -0.5 4.03 5.28
Chris Devenski .233 .298 .453 .270 .333 .449 0.2 -0.6 4.07 5.79
Yacksel Ríos .245 .365 .453 .227 .325 .364 0.1 -0.5 3.83 5.58
Rico Garcia .213 .320 .382 .257 .327 .426 0.3 -0.7 3.78 5.45
Jeffrey Colon .265 .350 .431 .273 .347 .436 0.1 -0.5 4.59 5.54
Hunter Parsons .254 .383 .403 .224 .316 .388 0.1 -0.6 4.35 5.99
Jake Diekman .226 .349 .321 .211 .345 .411 0.3 -0.9 3.56 6.68
Ty Adcock .266 .329 .484 .250 .307 .441 0.1 -0.5 4.10 5.73
Daniel Juarez .232 .328 .411 .255 .353 .402 0.1 -0.5 4.24 5.58
Carlos Guzman .265 .360 .470 .252 .342 .393 0.2 -0.8 4.65 5.94
Tyler Zuber .260 .365 .452 .225 .308 .400 0.1 -0.7 4.24 5.97
Cam Robinson .238 .358 .363 .253 .351 .421 0.0 -0.7 4.34 5.52
Josh Hejka .273 .363 .432 .254 .317 .404 0.0 -0.6 4.17 5.29
Donovan Walton .353 .450 .588 .300 .364 .550 -0.3 -0.4 7.11 8.74
Joshua Cornielly .260 .360 .458 .232 .315 .379 0.0 -0.8 4.36 5.57
Andre Scrubb .244 .367 .463 .260 .377 .420 -0.2 -0.7 5.08 6.85
Wilkin Ramos .263 .385 .475 .245 .347 .368 -0.1 -0.8 4.55 5.81
Michael Hobbs .235 .356 .435 .266 .369 .426 -0.3 -1.0 4.97 6.23

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

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

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


Rickey Henderson (1958-2024): Split Him in Two, You’d Have Two Hall of Famers

Tony Tomsic-USA TODAY NETWORK

Rickey Henderson had something to offer everyone. He was a Bay Area icon who spent more than half his career wearing the green and gold of the Oakland Athletics, yet he was traded away twice, and spent time with eight other teams scattered from Boston to San Diego, all of them viewing him as the missing piece in their quest for a playoff spot. For fans of a throwback version of baseball that emphasized speed and stolen bases, “The Man of Steal” put up numbers that eclipsed the single-season and career records of Lou Brock and Ty Cobb. To those who viewed baseball through the new-fangled lens of sabermetrics, he was the platonic ideal of a leadoff hitter, an on-base machine who developed considerable power. To critics — including some opponents — he was a showboat as well as a malcontent who complained about being underpaid and wouldn’t take the field due to minor injuries. To admirers, he was baseball’s most electrifying player, a fierce competitor, flamboyant entertainer, and inner-circle Hall of Famer. After a 25-year major league career full of broken records (not to mention the fourth-highest total of games played, ahem), Henderson spent his age-45 and -46 seasons wowing fans in independent leagues, hoping for one last shot at the majors.

It never came, but Henderson’s résumé could have hardly been more complete. A 10-time All-Star, two-time world champion, an MVP and Gold Glove winner, he collected 3,055 hits and set the career records for stolen bases (1,406), runs scored (2,295), and walks (2,190); the last was eclipsed by Barry Bonds three years later, though Henderson still has more unintentional walks (2,129). He also holds the single-season record for stolen bases (130), as well as the single-season and career records for caught stealing (42 and 335, respectively).

“If you could split him in two, you’d have two Hall of Famers. The greatest base stealer of all time, the greatest power/speed combination of all time (except maybe Barry Bonds), the greatest leadoff man of all time,” wrote Bill James for The New Bill James Historical Baseball Abstract in 2001. “Without exaggerating one inch, you could find fifty Hall of Famers who, all taken together, don’t own as many records, and as many important records, as Rickey Henderson.” Read the rest of this entry »


Sean Manaea and the Mets Run It Back

Jayne Kamin-Oncea-Imagn Images

Every story written about the Mets this offseason starts with Juan Soto, but pretty much all of them immediately introduce a caveat: “They’ll also need to sign more pitching.” And it’s true! The Mets, as constituted after signing Soto, had a fearsome top of the lineup and a mystery box of a pitching staff. But they also had money, which can be exchanged for goods and services, and now they’ve given that money to Sean Manaea, who signed a three-year, $75 million deal to return to Queens last week.

Manaea was comfortably the team’s best starter in 2024. He signed a one-year prove-it deal that valued him somewhere between a swingman and a fourth starter, and he delivered the goods, to the tune of a 3.47 ERA over 181 innings of work. He got even better in the second half, adopting a new cross-fire delivery and changing the shape of his fastball for the better. A down postseason hardly put a damper on his year; the 2024 version of Manaea fulfilled the promise he’d shown since breaking into the majors in 2016.

The question, then, is whether he can do it again. There’s plenty of reason to believe he can. Manaea’s fastball plays much better from a low slot, and he misses enough bats to run an above-average strikeout rate even without a true wipeout pitch. He also got his walk rate under control in the second half of the year, which has long been a sticking point in his game. It’s not so much that Manaea’s wild, but at his best, he was running walk rates around 5%, and that number had ballooned into the 8-9% region in recent years. After changing his delivery in late July, he walked only 6.2% of opposing batters. He’s never going to strike out a gaudy number of guys, but if he isn’t issuing free passes, his stuff keeps hitters off balance and results in a lot of easy innings even without strikeouts. Read the rest of this entry »


Welcome to the Minor Pitcher Deal Bonanza

Jonathan Dyer, Troy Taormina, Robert Edwards-Imagn Image

It’s been dark here at FanGraphs for a few days, so admit it — you’re desperate to read anything right now. How about a roundup of analysis on three pitchers that went off the market right before our holiday hiatus?

Griffin Canning, Michael Soroka, and Patrick Sandoval all fit somewhere between the back of their new team’s rotation or the front of its starter depth; each received deals commensurate with those expectations. If the going rate for a fourth starter these days is something like $15 million AAV (Alex Cobb got one year and $15 million, Matthew Boyd got two years and $29 million), this trio is probably one tier below that.

Do these three signings, grouped together, mean anything in particular? Probably not. Each year, the starter/reliever binary grows blurrier, and perhaps someday, every pitcher will throw exactly three innings and the distinction will disappear completely. Perhaps each of these signings brings us closer to that day; Soroka, in particular, seems best served to go through a lineup once and then head out on his way. For various reasons, the expectation for all of these pitchers should be somewhere in the 80- to 120-inning range for the 2025 season. But for now, no further trends will be drawn. Without further ado, here is the lowdown on the three hurlers.

Griffin Canning

Canning drew some attention on the pitching nerd internet earlier this year due to the remarkably unremarkable shape of his fastball. The image below is courtesy of Max Bay’s dynamic dead zone app:

Because Canning throws his fastball from a roughly league-average arm angle (45°), a league-average release height (5.8 feet), and with league-average ride (16.2 inches of induced vertical break), the pitch — in theory! — moves on a trajectory that hitters expect. (I say “in theory” because, as Remi Bunikiewicz pointed out, Canning does a great job hiding his fastball during the windup, complicating any perceptive analysis.)

This fastball was the bane of Canning’s existence in 2024. He did qualify for the ERA title, something only 57 other pitchers could claim they did, but his 5.26 FIP was worst among those qualified starters, and his strikeout rate was third worst. That strikeout rate dropped nearly eight percentage points from 2023 to 2024, and the performance against his fastball explained essentially all of that drop. The whiff rate on Canning’s three other primary pitches stayed virtually the same; on the fastball, the percentage of swings that resulted in misses went from 28% in 2023 to just 14% in 2024.

A drop in velocity appears to be the main culprit for the decline in performance. The four-seamer averaged 94.7 mph in 2023; that dipped to 93.4 mph in 2024. Could a 1.5-mph difference in velocity be the entire explanation? I’m inclined to think that the answer is mostly yes. But it’s also possible that the decline in slider quality impacted batter performance against his fastball. Canning’s death ball slider dropped three fewer inches relative to 2023, reducing the separation between his fastball and his primary out pitch against right-handed hitters.

Could a reduced role help Canning return to his prior form? These considerations could be part of the plan. The Mets employ something like eight starters; Canning sits outside the favored five. Assuming perfect health, it’s likely that they will deploy him in two- or three-inning bursts, perhaps allowing him to get back to that mid-90s velocity on the heater. Even in a swingman role, the $4.25 million contract makes good sense — with fewer workload responsibilities, it doesn’t feel unreasonable to expect Canning to deliver something like a 4.00 ERA over 100ish innings. And if injuries do strike the rotation, he can stretch out to a starter’s workload. Either way, there’s a role to play in this era where quality innings can be difficult to come by, especially in the late summer months.

Michael Soroka

Soroka exploded after a midseason move to the White Sox bullpen. As a reliever, Soroka struck out 39% of the hitters he faced, which would’ve ranked second in all of baseball.

Curiously, this wasn’t a case of Soroka ramping up the stuff over 15-pitch spurts. Unlike those pitchers topping the strikeout leaderboards — Mason Miller, Edwin Díaz, Josh Hader — Soroka did it mostly in chunky multi-inning appearances. Soroka pitched 36 innings out of the bullpen; all but 5 2/3 of them came in appearances that spanned two innings or more. In those slightly shorter appearances — he averaged nearly five innings per appearance as a starter and 2 1/3 as a reliever — the strikeout rate somehow tripled.

After moving full-time to relief work, Soroka added 1.5 mph to his four-seam fastball. But the four-seamer isn’t anything special; instead, at 94 mph with dead zone-ish movement, it’s mostly there to set up the slider, which generated nearly a 42% whiff rate.

What’s so special about the slider? It isn’t the velocity — it averages just 82.2 mph, well below the average for major league sliders. But its shape is distinct. There are slower curveballs that resemble the movement profile, but outside of Bryan Abreu, nobody really throws a slider with the combination of depth and sweep that Soroka manages to get. Starting May 18, when Soroka shifted to a bullpen role, the slider averaged -4.5 inches of induced vertical break with 5.2 inches of sweep, moving sharply on two planes.

But averages obscure the full truth. Soroka can also manipulate the pitch to move in a variety of break patterns. Look at the range of movement profiles on his slider, seen in yellow on his pitch plot below:

Soroka can firm it up, throwing it more like a gyro slider at 84 mph with zero inches of induced vertical break:

But he can also bend it like a curveball, dropping over 10 inches more than his firmest sliders:

(Look at poor Spencer Torkelson there — I think he was expecting the gyro.)

Between the identical frequency of the fastball and slider, the distinct two-plane movement profile, and the diversity of potential shapes, Soroka had batters swinging and missing more than almost any pitcher in baseball.

Evidently, the Nationals, who gave Soroka $9 million on a one-year deal, plan to use him as a “starter.” Given his usage patterns as a reliever, I’m not exactly sure what that means. I would expect that the Nationals will tell Soroka to let it loose for 60 or so pitches, just as he did in Chicago, and he’ll take on 12 or 13 hitters in a game. Like Canning, I think Soroka will end up closer to 90 innings than 180, letting his best stuff cook in outings that sit somewhere between a one-inning shutdown reliever and a starter trying to turn the lineup over three times.

Patrick Sandoval

Sandoval, who signed a two-year, $18.25 million deal with the Red Sox, is a perfect fit for their “no fastballs” organizational philosophy. This guy hates four-seamers now — they made up just 16% of his pitches in his injury-shortened 2024 campaign, by far a career low. Regardless of batter handedness, Sandoval mixes in all six of his pitches, but he works them in differently depending on whether he’s facing a righty or lefty. A plurality of his pitches to righties were changeups; to lefties, Sandoval spammed his slider and sweeper over half the time.

As one would expect with a pitcher who throws all that junk, Sandoval struggles to get the ball in the strike zone. He ran a 10% walk rate last year; even in his excellent 2022 campaign, in which he racked up 3.7 WAR, his walk rate was above 9%. The walks are just part of the package with Sandoval, but the hope is that at his best, he can pitch around them, striking out enough hitters and staying off enough barrels with his diverse pitch mix and refusal to throw anything straight.

Sandoval is likely to pitch the fewest innings of this trio in 2025. He tore his UCL and was shut down in mid-June before undergoing Tommy John surgery, so he’ll miss a big chunk of the upcoming season. When he returns, it figures that he will assume a traditional starter’s workload, though following the Walker Buehler signing, Boston’s rotation looks pretty packed. Ultimately, this deal is mostly a 2026 play, with some nice depth for the end of next year as a bonus.

Conclusion

None of these guys is too exciting. All of them have stanky fastballs. But each has a reason to believe that he might contribute surplus value on a modest deal. In the end, that’s what a minor pitcher signing is all about.


Sunday Notes: Pondering Pedroia, Wright, and a HoF Ballot Dilemma

Which player had a better career, Dustin Pedroia or David Wright? I asked that question in a Twitter poll a few days ago, with the erstwhile Boston Red Sox second baseman outpolling the former New York Mets third baseman by a measure of 58.8% to 41.2%. Results aside, how they compare in historical significance has been on my mind. Both are on the Hall of Fame ballot I will be filling out in the coming days, and depending on what I decide to do with a pair of controversial players that have received my votes in recent years, each is a strong consideration for a checkmark. More on that in a moment.

It’s no secret that Pedroia and Wright were on track for Cooperstown prior to injuries sidetracking their seemingly clear paths. Rather than having opportunities to build on their counting stats, they finished with just 1,805 and 1,777 hits, and 44.8 and 51.3 WAR, respectively. That said, each has a resumé that includes an especially impressive 10-year stretch (Wright had 10 seasons with 100 or more games played. Pedroia had nine).

To wit:

From 2007-2016, Pedroia slashed .303/.368/.447 with an 118 wRC+ and 45 WAR. Over that span, he made four All-Star teams, won four Gold Gloves, and earned both Rookie of the Year and MVP honors. Moreover, he was an integral part of two World Series-winning teams.

From 2005-2014, Wright slashed .298/.379/.492 with a 134 wRC+ and 48.1 WAR. Over that span, he made seven All-Star teams and won two Gold Gloves. Unlike his Red Sox contemporary, he captured neither a Rookie of the Year or MVP award, nor did he play for a World Series winner. That said, as Jay Jaffe wrote earlier this month, “Wright is the greatest position player in Mets history.” Read the rest of this entry »


JAWS and the 2025 Hall of Fame Ballot: Omar Vizquel and Francisco Rodríguez

RVR Photos-Imagn Images; Gary A. Vasquez-Imagn Images

The following article is part of Jay Jaffe’s ongoing look at the candidates on the BBWAA 2025 Hall of Fame ballot. For a detailed introduction to this year’s ballot, and other candidates in the series, use the 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.

The fourth and final multi-candidate pairing of this series is by far the heaviest, covering two candidates who have both been connected to multiple incidents of domestic violence. Read the rest of this entry »


Looking In at Juan Soto’s Career Projections

Brad Penner-USA TODAY Sports

Earlier this week, when Juan Soto agreed to a 15-year, $765 million contract with the New York Mets, I included a projection chart with some very pretty numbers. Now that the dust has settled on the seismic signing, I think it would be interesting to look a little bit deeper at Soto’s long-term projections, which reflect his possible place in baseball history beyond his immediate impact on the Mets.

This time, I’m including the full rest-of-career projections for Soto, along with the career totals should the projections be shockingly — and unrealistically — inaccurate.

ZiPS Projection – Juan Soto
Year BA OBP SLG AB R H 2B 3B HR RBI BB SO SB OPS+ WAR
2025 .276 .426 .521 528 108 146 26 2 33 100 137 109 7 167 6.2
2026 .274 .427 .518 525 109 144 25 2 33 98 140 106 7 167 6.2
2027 .274 .430 .513 522 108 143 25 2 32 96 143 104 7 167 6.2
2028 .271 .429 .505 521 107 141 25 2 31 93 144 103 6 164 6.0
2029 .263 .424 .481 520 105 137 24 1 29 90 145 103 5 157 5.5
2030 .261 .421 .472 521 103 136 24 1 28 88 144 103 5 153 5.2
2031 .259 .418 .464 522 101 135 24 1 27 86 143 104 5 150 4.9
2032 .258 .417 .457 523 99 135 24 1 26 85 142 104 4 148 4.7
2033 .256 .414 .448 524 96 134 24 1 25 83 141 105 4 145 4.4
2034 .255 .412 .442 525 94 134 24 1 24 81 140 107 3 143 4.2
2035 .254 .409 .437 512 90 130 23 1 23 77 134 105 3 141 3.9
2036 .248 .402 .416 469 78 116 20 1 19 67 120 97 2 133 2.9
2037 .244 .395 .404 423 68 103 18 1 16 58 106 88 2 128 2.2
2038 .244 .394 .401 381 59 93 16 1 14 51 94 80 1 127 1.9
2039 .242 .390 .393 343 52 83 14 1 12 44 83 73 1 124 1.4
2040 .239 .385 .383 306 44 73 12 1 10 37 72 65 1 119 1.0
Career .266 .416 .481 10946 2076 2917 527 35 583 1826 2797 2252 121 151 103.2

Suffice it to say, that’s a line that would lead to an obvious Hall of Fame election during his first year on the ballot. Soto’s long-term projections have shot up quite a bit the last two seasons after his relative slump a couple years ago. After 2022, the season he was traded to the Padres, he dipped to a 146 wRC+ and 3.7 WAR — good enough numbers for the vast majority of the baseball world, but they felt a little underwhelming considering his earlier trajectory. After all, Soto is one of the few players to ever get Ted Williams as one of their near-age offensive comps.

This projection puts him right on pace to get to 3,000 hits, at just below a coin flip (43%). Among active players, only Freddie Freeman projects to finish with more career hits (3,012, 52% at 3,000). It’s also the first time Soto has hit the century mark in projected WAR. Just for fun, here’s a look at the projected career WAR leaders among active players from a decade ago, before 2015.

Career WAR Projections – Hitters (Pre-2015)
Player Final WAR Actual WAR
Alex Rodriguez 113.6 113.6
Mike Trout 100.8 85.7
Albert Pujols 95.2 89.9
Andrew McCutchen 85.9 52.5
Buster Posey 85.0 57.9
Miguel Cabrera 76.9 68.8
Derek Jeter 73.4 73.0
Evan Longoria 73.3 55.1
Yadier Molina 70.5 55.6
David Wright 70.1 51.3
Chase Utley 68.0 61.5
Troy Tulowitzki 65.9 37.8
Dustin Pedroia 63.8 44.8
Giancarlo Stanton 63.7 42.5
Russell Martin 62.5 54.5
Bryce Harper 61.4 52.5
Brian McCann 60.0 52.1
Manny Machado 58.9 53.6
Hanley Ramirez 57.9 41.8
Ichiro Suzuki 57.6 57.5

And here’s how it looks today.

Career WAR Projections – Hitters (Pre-2025)
Player WAR
Juan Soto 103.2
Mike Trout 95.6
Aaron Judge 82.4
Julio Rodríguez 80.5
Mookie Betts 79.3
Francisco Lindor 79.2
Bobby Witt Jr. 76.4
Freddie Freeman 73.0
Ronald Acuña Jr. 70.0
José Ramírez 68.3
Gunnar Henderson 66.9
Shohei Ohtani 66.8
Elly De La Cruz 65.3
Jose Altuve 65.0
Bryce Harper 64.7
Manny Machado 64.2
Fernando Tatis Jr. 63.5
Jackson Merrill 62.6
Yordan Alvarez 62.4
Corbin Carroll 59.1

Note that the Ohtani projection is only as a hitter.

Overall, Soto’s career projections give him a JAWS score of 74.4 – ZiPS projects JAWS natively these days – enough to rank him as the seventh-best right fielder in baseball history, sandwiched between Roberto Clemente and Al Kaline.

Those 583 projected home runs are the most among active players as well, giving Soto the best chance — a very slim shot — at reaching the career totals of Babe Ruth (714, 2%), Henry Aaron (755, 0.62%), and Barry Bonds (762, 0.55%). Soto is one of only three current hitters projected to finish with more than 500 homers; the other two, Judge and Ohtani, are both projected to finish at 549.

And since we’re saber-nerds, Soto is projected to seize the all-time walks record from Bonds. What’s even more shocking is that Soto’s projected walk total (2,797) is nearly double the projected total of Harper, who ranks second of the projected leaderboard among active players, with 1,489 walks. Soto also paces the all-time walks leaderboard for players through their age-25 season — by 99!

BB Leaders Through Age 25
Name BB
Juan Soto 769
Mickey Mantle 670
Mel Ott 622
Eddie Yost 620
Bryce Harper 585
Mike Trout 571
Eddie Mathews 561
Jimmie Foxx 556
Rickey Henderson 520
John McGraw 518
Harlond Clift 498
Ted Williams 495
Donie Bush 468
Arky Vaughan 466
Adam Dunn 462
Joe Kelley 445
Rusty Staub 433
Elbie Fletcher 427
Ken Griffey Jr. 426
Willie Randolph 425

So, will this all come true? Probably not. But Juan Soto is a special hitter who is tremendously accomplished for a hitter still only in his mid-20s. There’s a reason that many of the wealthiest teams were bidding obscene amounts of money to get him.


JAWS and the 2025 Hall of Fame Ballot: David Wright

Brad Penner-USA TODAY Sports

The following article is part of Jay Jaffe’s ongoing look at the candidates on the BBWAA 2025 Hall of Fame ballot. For a detailed introduction to this year’s ballot, and other candidates in the series, use the 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.

David Wright is the greatest position player in Mets history, a face-of-the-franchise player who holds the team leads in plate appearances, hits, runs, RBI, total bases, walks, and WAR. A first-round pick out of high school in 2001, the Virginia native spent his entire career with the team, making seven All-Star teams, winning two Gold Gloves, and helping the club to a pair of playoff appearances, including their 2015 pennant.

Though he was surrounded by dysfunction in Queens under the late stages of the Wilpon family’s ownership — the financial tight-fistedness in the wake of the owners’ involvement in the Madoff scandal, the endless micromanagement of injuries, the tone-deaf approach when it came to public relations — Wright stood apart from all of that. Charismatic, exceptionally talented on both sides of the ball, with an off-the-charts work ethic, he was Queens’ answer to Derek Jeter, an icon who avoided scandal, almost invariably said the right thing, and never did anything to embarrass himself or the franchise. Small wonder that he was named team captain in the spring of 2013, and even acquired the nickname “Captain America” while playing for Team USA in that year’s World Baseball Classic. Read the rest of this entry »