JAWS and the 2026 Hall of Fame Ballot: Matt Kemp

Jayne Kamin-Oncea-USA TODAY Sports

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

2026 BBWAA Candidate: Matt Kemp
Player Pos Career WAR Peak WAR JAWS H HR SB AVG/OBP/SLG OPS+
Matt Kemp CF 21.6 23.6 22.6 1,808 287 184 .284/.337/.484 121

From being called out publicly by his general manager, manager, and third base coach during an historically wretched season one year, to being robbed of an MVP award after falling just short of a 40-homer, 40-steal campaign the next, Matt Kemp was an enigma. Because he focused more on basketball than baseball growing up, his instincts for the sport sometimes lagged behind his physical abilities, but at his best, he was a superstar, and a sight to behold thanks to his speed and power — a combination of traits that earned him the nickname “The Bison.” He made three All-Star teams and won two Gold Gloves (despite subpar metrics), but unfortunately, a series of injuries to his shoulders and legs compromised those abilities. The $160 million contract he signed after that near-MVP 2011 season became a millstone that sent him from team to team during its eight-year run. Read the rest of this entry »


Let’s Look at a Few More Graphs About Hitter and Pitcher Ages

Daniel Kucin Jr.-Imagn Images

Earlier this week, I looked into the curious case of Benjamin Button. Er, no, that’s not right. I looked into the fact that the average age of big league hitters keeps declining, like Button, while pitchers haven’t followed suit. There are any number of possible explanations for that pattern, and if the mystery appeals to you, I highly suggest reading the comments of that article, where our excellent readers have advanced a number of solid theories. I think there’s plenty of meat left on the bone in figuring out what’s causing this trend, but I won’t be delving into that (much) today. Instead, I made like Woodward and Bernstein and followed the money.

Age is a decent proxy for service time; older players have generally, though not alway, been in the league longer than younger players. Similarly, service time is a decent proxy for salary; players who have been in the league longer generally make more money than newcomers, for a variety of reasons. So is our data really just saying pitcher salaries are going up? Well, kind of.

I took salaries for all major league players starting in 2019, discarding the abbreviated 2020 season. I split them up by type – pitchers in one bucket, hitters in another, and Shohei Ohtani in both. Total pitcher and hitter salaries have both gone up – passage of time, inflation, and so on. But after a huge increase heading into 2022, when seven different hitters signed nine-figure contracts, the total outlay to hitters has leveled off. Meanwhile, pitching salaries are catching up:

As an aside, I only pulled data through 2019 because it’s outrageously difficult to get complete salary data. If you’re looking for Opening Day annualized salaries, sure, those are reported. If you’re looking for free agency contracts, again, pretty easy to find. There are no disputes about what Freddie Freeman’s salary was in 2025; it’s public record. But what about Freeman’s former teammate Justin Dean, who racked up 52 days of service time in his debut season? What about split contracts? Late debuts? Up-and-down types? I worked out a method for what I consider a very good approximation of those salaries, but I don’t feel confident going back before the start of RosterResource’s database, which begins in 2019. Even then, this is approximate, though as I mentioned, I’m confident that it’s a good approximation. Read the rest of this entry »


Eric Longenhagen Prospects Chat: 1/9/26

12:12
Eric A Longenhagen: Howdy ho from a brisk and refreshing Tempe, Arizona, where I’ll be able to see baseball in person a week from today.

12:12
Eric A Longenhagen: Thanks for joining me for the first chat of the calendar year. If you’re new, we talk about prospects in this space for about an hour on Fridays.

12:13
Scotty: Happy Friday, Eric. How often in your analysis do you use comps to shape your thoughts about players? I was thinking about who is a starter comp for Jaxon Wiggins and I was coming up with a blank.

12:15
Eric A Longenhagen: If I go looking for a comp it’s usually via the shape of a player’s data. Like, “Alfonsin Rosario’s contact rate is X% and his measured power is Y, what big leaguers have a similar contact rate and measured power, etc. and what did they perform like in the bigs…

12:15
Eric A Longenhagen: It’s more about understanding viable MLB baselines than going looking for a comp player to player

12:16
Eric A Longenhagen: And then sometimes you’re just watching a guy and think, “This guy looks like Jon Garland” or whatever

Read the rest of this entry »


2026 ZiPS Projections: San Diego Padres

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 next team up is the San Diego Padres.

Batters

The season ended in disappointing fashion, as the Padres lost the NL Wild Card Series in three games against the Cubs. But overall, 2025 has to be considered a success for San Diego. For the first time in franchise history, the Padres passed the 90-win mark in consecutive seasons, and they did so against the backdrop of their owner’s death and their TV provider going bankrupt. They also lost Joe Musgrove for the year, and possibly Yu Darvish permanently. The Friars patched just enough pitching and hitting together to threaten the Dodgers’ supremacy in the division, and now they’ll try to do it again, without Dylan Cease and with a nearly maxed out payroll.

The good news is San Diego seems to have mitigated two of the problems on offense that ZiPS saw coming into last year. Ramón Laureano, whose career looked to be on life support a year ago, has largely returned to form, and though ZiPS is not projecting another .855 OPS from him, it does think he’s a legitimate, non-problematic starter in left field. ZiPS was quite down on catcher Elias Díaz, and while midseason acquisition Freddy Fermin didn’t hit all that well last year, he has a better offensive track record, and he’s still not far past 30. ZiPS still doesn’t like the team’s situation at first base, where Jake Cronenworth is set to play now that Luis Arraez is a free agent.

Jackson Merrill and Fernando Tatis Jr. remain terrific, and while Manny Machado and Xander Bogaerts are likely on the downslope of their careers, that’s more of a long-term worry than a problem for this year. I’d feel better about the Padres if they had a better starter at either first or designated hitter, but this is a solidly above-average lineup.

Pitchers

What San Diego gets from the rotation might truly determine the team’s ceiling and floor. ZiPS isn’t pegging Nick Pivetta to repeat his 2025, but he’s solid, and fairly durable, and that’s quite valuable. Bringing back Michael King was necessary, as this rotation just isn’t good enough to absorb the loss of both King and Cease, even if King chooses to opt out after the 2026 season. But the questions begin after the two of them. I’ve always liked Musgrove, and ZiPS thinks he’ll be fine, but there’s a great deal of risk for any pitcher coming off Tommy John surgery, especially immediately.

After Musgrove, the questions grow darker still. Randy Vásquez had a 3.84 ERA in 2025, with peripherals that didn’t remotely support that performance, and let’s just say that baseball has a long history of pitchers who are declared to have invalidated FIP theory, right before it becomes clear that no such thing happened. JP Sears is pure innings-eater, and while he remains the last Sears location open for business, that’s not saying much at this point. ZiPS likes Kyle Hart more as a reliever than a starter, and cordially hates all the other starting options currently in the organization, with the possible exception of any surprise reliever–>starter conversions.

ZiPS isn’t as excited as Steamer is about the bullpen, but it does see it as a solid B/B+ squad. Mason Miller is, of course, absolutely stunning, and ZiPS likes the Adrian Morejon/Jeremiah Estrada/Jason Adam part of the supporting cast. But it’s lukewarm on guys like Wandy Peralta and David Morgan, and doesn’t really care for the back of the pen. There’s only one “no name special” here, in that ZiPS is highly interested in Garrett Hawkins, with a 3.70 ERA projected as a reliever, and would very much like to see him in the big league bullpen soon. Well, if ZiPS actually had human feelings, of course.

The Padres look a lot like the 2025 team, with a win projection in the high 80s and 90 being well within the probable range. But it’s a fragile 90 wins. A few nasty surprises in the rotation could unravel things very quickly, as the team doesn’t have a deep farm system at the moment to acquire good starting pitching.

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
Fernando Tatis Jr. R 27 RF 644 562 101 149 28 2 26 80 74 126 25 5
Jackson Merrill L 23 CF 547 500 71 135 24 5 20 75 36 104 6 3
Manny Machado R 33 3B 616 558 76 144 27 0 23 84 52 122 9 2
Xander Bogaerts R 33 SS 536 479 60 124 23 1 10 52 46 96 15 2
Luis Campusano R 27 C 441 392 55 97 16 1 13 54 44 88 1 0
Jake Cronenworth L 32 2B 539 459 63 107 22 3 12 55 61 108 3 2
Sung Mun Song L 29 3B 576 520 64 124 21 3 12 57 50 104 12 1
Luis Arraez L 29 1B 641 591 71 177 27 3 7 60 35 26 8 3
Ramón Laureano R 31 LF 442 397 59 96 19 2 17 58 34 120 7 3
Will Wagner L 27 3B 383 338 42 84 17 2 5 36 38 66 3 2
Mason McCoy R 31 SS 428 381 48 78 17 2 7 39 36 136 13 4
Francisco Acuna R 26 SS 467 411 53 91 19 1 8 51 38 117 10 4
Freddy Fermin R 31 C 330 299 31 70 12 0 7 32 22 66 1 1
Bryce Johnson B 30 CF 338 295 39 68 12 2 4 32 29 91 14 3
Tirso Ornelas L 26 LF 476 427 52 102 19 1 10 49 42 99 5 3
Yonathan Perlaza B 27 RF 574 512 70 118 29 1 15 66 57 151 8 5
Rodolfo Durán R 28 C 329 303 36 68 14 1 9 37 18 81 1 0
Clay Dungan L 30 2B 531 463 59 95 20 4 7 49 51 149 15 4
Gavin Sheets L 30 DH 478 431 43 102 21 1 16 59 39 98 1 1
Ripken Reyes B 29 2B 424 348 47 73 12 4 3 42 34 64 6 2
Trenton Brooks L 30 1B 434 374 51 81 18 1 10 46 50 84 3 0
Marcos Castañon R 27 3B 496 450 48 98 21 1 13 56 36 137 1 2
Blake Hunt R 27 C 292 264 27 57 12 2 6 31 21 76 1 0
Pablo Reyes R 32 SS 311 275 37 63 11 1 6 30 29 62 7 3
Jose Iglesias R 36 2B 339 312 34 77 14 0 4 31 17 57 3 1
Tim Locastro R 33 LF 341 292 47 64 13 2 5 36 22 73 16 3
Oscar Gonzalez R 28 LF 394 373 42 93 19 3 10 45 16 92 2 1
Jase Bowen R 25 CF 447 407 49 88 16 3 9 51 28 146 13 5
Carlos Rodriguez L 25 LF 531 481 51 115 16 2 5 43 42 79 12 7
Eguy Rosario R 26 SS 368 332 39 66 15 2 10 38 31 113 8 4
Eli Wilson R 27 C 144 131 13 25 4 0 4 16 8 44 1 1
Ryan Jackson R 24 SS 553 484 46 100 14 2 4 43 56 127 8 4
Jason Heyward L 36 LF 263 236 30 48 10 1 6 27 21 60 2 1
Nick Schnell L 26 RF 498 456 62 96 19 4 14 57 33 178 9 3
Addison Kopack R 24 C 117 104 12 20 4 2 1 9 10 48 0 2
Braedon Karpathios L 23 RF 514 456 52 91 18 3 10 48 54 185 4 3
Brendan Durfee L 24 C 361 328 28 62 13 1 6 34 24 119 0 0
Cody Roberts R 30 C 212 191 21 37 8 0 2 17 15 78 1 0
Elias Díaz R 35 C 331 302 30 64 11 0 8 33 23 82 0 0
Kai Roberts L 25 CF 353 304 37 59 5 1 4 27 32 128 16 4
Nate Mondou L 31 2B 479 418 44 95 18 3 4 45 46 99 4 3
Ethan Salas L 20 C 414 367 31 67 18 2 2 29 36 99 5 2
Yuli Gurriel R 42 DH 334 304 30 68 15 1 6 31 26 56 4 0
Moisés Gómez R 27 RF 453 413 45 84 17 2 12 50 31 168 4 1
Rosman Verdugo R 21 3B 512 454 53 81 15 2 12 49 48 205 3 2
Mike Brosseau R 32 3B 339 305 30 62 9 0 7 33 25 88 3 1
Nerwilian Cedeño B 24 CF 293 269 34 54 10 2 4 26 19 87 6 4
Oswaldo Linares R 23 C 222 196 18 34 7 0 2 16 19 71 1 1
Kasen Wells L 22 CF 399 363 49 78 11 1 2 31 30 94 16 4
Romeo Sanabria L 24 1B 498 452 48 102 19 0 10 48 39 132 2 1
Albert Fabian L 24 LF 321 293 32 61 12 1 9 36 21 85 1 2
Kai Murphy L 25 LF 421 374 42 75 14 1 3 33 36 107 5 5
Tyler Robertson R 26 CF 273 240 27 47 7 2 4 26 17 96 11 2
Jacob Campbell R 26 RF 251 230 23 44 6 1 4 23 13 87 3 2
Sean Barnett R 23 DH 252 227 25 41 7 1 5 26 16 113 1 1
Anthony Vilar L 27 2B 377 330 34 62 10 2 6 31 40 126 5 2
Jake Snider L 28 LF 352 302 41 58 9 2 2 28 36 98 10 3
Zach Evans R 23 3B 546 507 45 110 16 1 3 41 30 138 7 2
Lamar King Jr. R 22 C 437 399 42 85 19 2 4 40 28 120 8 1
Chase Valentine R 24 CF 275 246 27 44 8 1 2 20 19 112 5 5
Ethan Long R 25 1B 210 190 16 32 4 0 3 16 17 86 0 0
Kaden Hollow L 25 LF 338 293 31 58 12 1 3 25 34 87 0 1
Martín Maldonado R 39 C 240 216 17 37 6 0 6 20 15 84 0 0
Jose Sanabria R 23 SS 277 252 23 47 6 1 1 17 20 92 4 3
Jack Costello R 25 1B 420 388 37 74 13 1 9 45 18 90 5 1
Wyatt Hoffman R 27 LF 265 230 22 35 7 0 1 17 20 113 7 2

Batters – Advanced
Player PA BA OBP SLG OPS+ ISO BABIP Def WAR wOBA 3YOPS+ RC
Fernando Tatis Jr. 644 .265 .356 .461 125 .196 .300 10 4.9 .353 124 99
Jackson Merrill 547 .270 .320 .458 113 .188 .306 5 3.6 .333 115 76
Manny Machado 616 .258 .321 .430 106 .172 .293 2 3.2 .324 100 80
Xander Bogaerts 536 .259 .326 .374 94 .115 .306 2 2.7 .307 89 62
Luis Campusano 441 .247 .327 .393 99 .146 .289 -5 1.9 .317 97 51
Jake Cronenworth 539 .233 .335 .373 97 .140 .280 -3 1.8 .315 94 59
Sung Mun Song 576 .238 .304 .360 84 .121 .277 4 1.7 .290 82 60
Luis Arraez 641 .299 .341 .391 103 .092 .305 1 1.6 .320 99 82
Ramón Laureano 442 .242 .314 .428 104 .186 .304 2 1.6 .322 98 56
Will Wagner 383 .249 .330 .355 91 .106 .296 3 1.5 .306 87 41
Mason McCoy 428 .205 .277 .315 64 .110 .298 9 1.2 .263 64 38
Francisco Acuna 467 .221 .302 .331 76 .110 .290 0 1.1 .283 77 45
Freddy Fermin 330 .234 .288 .344 75 .110 .279 4 1.0 .278 70 30
Bryce Johnson 338 .231 .311 .325 77 .094 .320 2 0.9 .286 74 34
Tirso Ornelas 476 .239 .309 .358 85 .119 .289 6 0.9 .295 86 50
Yonathan Perlaza 574 .230 .310 .379 90 .149 .298 1 0.8 .302 91 64
Rodolfo Durán 329 .224 .271 .366 75 .142 .277 0 0.7 .277 74 30
Clay Dungan 531 .205 .291 .311 68 .106 .287 2 0.6 .271 66 47
Gavin Sheets 478 .237 .303 .401 94 .164 .271 0 0.6 .306 90 53
Ripken Reyes 424 .210 .318 .293 71 .083 .249 0 0.6 .282 68 34
Trenton Brooks 434 .217 .310 .350 83 .133 .254 5 0.6 .293 81 41
Marcos Castañon 496 .218 .284 .356 76 .138 .283 0 0.5 .281 78 47
Blake Hunt 292 .216 .284 .345 74 .129 .280 -2 0.4 .278 72 26
Pablo Reyes 311 .229 .305 .342 80 .113 .275 -5 0.3 .288 77 31
Jose Iglesias 339 .247 .297 .330 74 .083 .291 0 0.3 .278 70 32
Tim Locastro 341 .219 .309 .329 78 .110 .276 0 0.2 .287 73 34
Oscar Gonzalez 394 .249 .282 .397 86 .148 .306 -1 0.1 .291 85 43
Jase Bowen 447 .216 .275 .337 69 .120 .313 -1 0.1 .270 72 42
Carlos Rodriguez 531 .239 .301 .312 71 .073 .277 6 0.0 .274 72 51
Eguy Rosario 368 .199 .272 .346 70 .147 .268 -5 -0.1 .273 74 35
Eli Wilson 144 .191 .246 .313 54 .122 .253 1 -0.1 .247 56 11
Ryan Jackson 553 .207 .298 .269 59 .062 .272 -2 -0.1 .262 61 42
Jason Heyward 263 .203 .274 .331 67 .127 .247 2 -0.2 .266 64 22
Nick Schnell 498 .211 .266 .362 72 .151 .311 3 -0.2 .273 76 47
Addison Kopack 117 .192 .267 .298 57 .106 .345 -2 -0.3 .253 58 9
Braedon Karpathios 514 .200 .286 .318 68 .118 .310 4 -0.3 .271 74 44
Brendan Durfee 361 .189 .258 .290 52 .101 .276 0 -0.3 .246 55 25
Cody Roberts 212 .194 .257 .267 46 .073 .315 0 -0.3 .237 45 13
Elias Díaz 331 .212 .271 .328 65 .116 .264 -6 -0.3 .265 62 27
Kai Roberts 353 .194 .280 .257 51 .063 .320 1 -0.3 .248 56 27
Nate Mondou 479 .227 .312 .313 75 .086 .289 -8 -0.3 .281 73 43
Ethan Salas 414 .183 .258 .259 44 .076 .244 3 -0.4 .235 50 26
Yuli Gurriel 334 .224 .287 .339 73 .115 .256 0 -0.4 .276 73 30
Moisés Gómez 453 .203 .265 .341 67 .138 .309 3 -0.5 .265 69 39
Rosman Verdugo 512 .178 .266 .300 57 .122 .291 1 -0.5 .255 64 38
Mike Brosseau 339 .203 .277 .302 61 .099 .262 -4 -0.6 .261 56 27
Nerwilian Cedeño 293 .201 .257 .297 54 .096 .281 0 -0.6 .245 59 23
Oswaldo Linares 222 .173 .256 .240 39 .066 .260 -1 -0.6 .229 45 13
Kasen Wells 399 .215 .281 .267 54 .052 .285 -4 -0.8 .250 57 32
Romeo Sanabria 498 .226 .286 .334 72 .108 .297 0 -0.8 .273 75 44
Albert Fabian 321 .208 .271 .348 70 .140 .261 -4 -0.9 .272 72 29
Kai Murphy 421 .201 .280 .267 53 .066 .273 4 -0.9 .250 55 31
Tyler Robertson 273 .196 .264 .292 54 .096 .307 -6 -0.9 .250 54 22
Jacob Campbell 251 .191 .256 .278 49 .087 .288 0 -0.9 .242 50 18
Sean Barnett 252 .181 .258 .286 51 .106 .330 0 -1.0 .246 57 17
Anthony Vilar 377 .188 .280 .285 58 .097 .283 -7 -1.0 .257 58 28
Jake Snider 352 .192 .295 .255 55 .063 .277 -2 -1.0 .257 56 26
Zach Evans 546 .217 .265 .270 49 .053 .292 3 -1.0 .240 53 39
Lamar King Jr. 437 .213 .277 .301 61 .088 .295 -14 -1.1 .259 66 35
Chase Valentine 275 .179 .244 .244 36 .065 .318 -1 -1.2 .223 41 18
Ethan Long 210 .168 .243 .237 34 .069 .287 1 -1.2 .221 41 11
Kaden Hollow 338 .198 .283 .276 57 .078 .271 -2 -1.2 .255 58 23
Martín Maldonado 240 .171 .232 .282 42 .111 .246 -7 -1.2 .230 38 14
Jose Sanabria 277 .187 .248 .230 34 .043 .289 -4 -1.4 .219 35 16
Jack Costello 420 .191 .250 .299 52 .108 .225 0 -1.6 .245 55 30
Wyatt Hoffman 265 .152 .237 .196 22 .044 .293 1 -1.6 .205 24 13

Batters – Top Near-Age Offensive Comps
Player Hit Comp 1 Hit Comp 2 Hit Comp 3
Fernando Tatis Jr. Joe Judge Amos Otis Jackie Jensen
Jackson Merrill Paul Blair Jimmy Welsh Vladimir Guerrero
Manny Machado Buddy Bell Ryne Sandberg Aramis Ramirez
Xander Bogaerts Edgar Renteria Phil Rizzuto Jason Bartlett
Luis Campusano Matt Stark Ron Hassey Matt Wieters
Jake Cronenworth Dick McAuliffe Tony Phillips Jose Offerman
Sung Mun Song Billy Klaus Jose Macias Terry Pendleton
Luis Arraez Buddy Hassett Don Mueller Lloyd Waner
Ramón Laureano Carlos Gómez Luis Terrero Denis Phipps
Will Wagner Tommy La Stella Mark Wasinger Dean Anna
Mason McCoy Joe Koppe Joe Hoover Paul Noce
Francisco Acuna Steve Tolleson Sean Jamieson Max Schuemann
Freddy Fermin Gary Bennett Mike Hubbard Chris Heintz
Bryce Johnson Mike Brumley Ollie Linton Thomas Simon
Tirso Ornelas Billy Bean Andy Ibáñez Lee Handley
Yonathan Perlaza Dave Stegman Chris Nyman Jackie Bradley Jr.
Rodolfo Durán Bob Melvin Dennis Paepke Dick Windle
Clay Dungan Trent Durrington Tim Barker Joe Koppe
Gavin Sheets Scott Spiezio Benny Distefano Warren Cromartie
Ripken Reyes Spike Owen Augie Ojeda Jose Macias
Trenton Brooks Brock Stassi Mike Twardoski Larry Sutton
Marcos Castañon Brad Seitzer Jason Vosler Bobby Cox
Blake Hunt Jim Horner James Hamilton Adan Amezcua
Pablo Reyes Tony Graffanino Dave Machemer Mark Belanger
Jose Iglesias Luis Figueroa Jose Vizcaino Aaron Miles
Tim Locastro Sean Collins Steve Bieser Jerry Hairston Jr.
Oscar Gonzalez Richard Wissel David Dahl Dick Davis
Jase Bowen Randle Granger Santiago Perez Vic Hithe
Carlos Rodriguez Rafael Ortega Adam Frazier John Roberts
Eguy Rosario Aaron Sisk Jose Valentin Bill Barrett
Eli Wilson Jeff Lanning Jack Mull Adolfo Suarez
Ryan Jackson Austin Nola Nick Shaw Albenis Machado
Jason Heyward Jackie Brandt Ken Landreaux Orlando Merced
Nick Schnell Todd Dunwoody Matthew den Dekker Al Martin
Addison Kopack Mike Dean Alfred Davis Jose Capellan
Braedon Karpathios Tim Norrid Drew Robinson Marv Blaylock
Brendan Durfee Cole Armstrong Shawn Hughes Matt Wallach
Cody Roberts John Orton Pat Tomkinson Joel Skinner
Elias Díaz Shawn Wooten Terry Kennedy Randy Knorr
Kai Roberts Johnny Wilson Amado German Tow Maynard
Nate Mondou Brock Holt Jeff Gardner Pete Coachman
Ethan Salas Erik Pappas Brad Gulden Kris Harmes
Yuli Gurriel Dick Phillips Mark Kotsay Mike Lamb
Moisés Gómez Joe Gaetti Jerry Williams Bill Cline
Rosman Verdugo Bill Southworth Corey Smith Patrick Wisdom
Mike Brosseau Amos Ramon Eric Gonzalez Ron Cox
Nerwilian Cedeño Tony Terzarial Jose Taveras Marty Durkin
Oswaldo Linares Jeff Glenn Matt Garrick Dan Plante
Kasen Wells Miguel Santana Alex Marte Danny Woodrow
Romeo Sanabria Talmadge Nunnari Dave Bettendorf Billy Owens
Albert Fabian Eduardo Zambrano Richard O’Daniels Frank Wren
Kai Murphy Bob Servoss Tom Spitz Tom Eccleston
Tyler Robertson Todd Hobson Casanova Donaldson Ryan Crespi
Jacob Campbell Gary Nalls Ruben Rodriguez Matt Weaver
Sean Barnett Doe Boyland Corey Thomas Mauro Gomez
Anthony Vilar Ken Jackson Odie Davis Steve Bethea
Jake Snider Whitey Herzog Gregg Ritchie Jordan Schafer
Zach Evans Doug Flynn Jackie Gutierrez Damian Rolls
Lamar King Jr. Conrado Lezcano Brad Ausmus Gioskar Amaya
Chase Valentine Todd Hobson Bobby Bonds Eric Darjean
Ethan Long Manny Crespo Craig Massoni Travis Ozga
Kaden Hollow Brian Heere Jeff Baldwin Brendon Sanger
Martín Maldonado Louis Heyman Sandy Martinez Al Lakeman
Jose Sanabria Wellington Sanchez Joe Cathey Joe Morgan
Jack Costello Fred Hanker Frankie Rubino Jody Friedman
Wyatt Hoffman Phil Thompson Clay Greene Mark Thomas

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
Fernando Tatis Jr. .291 .381 .520 145 6.6 .239 .330 .414 106 3.4
Jackson Merrill .296 .347 .513 133 5.0 .239 .294 .399 91 2.0
Manny Machado .284 .349 .481 126 4.7 .233 .294 .386 87 1.5
Xander Bogaerts .282 .352 .412 110 3.8 .236 .305 .336 80 1.7
Luis Campusano .277 .350 .445 121 3.0 .223 .298 .343 82 1.0
Jake Cronenworth .262 .361 .420 115 3.1 .209 .306 .326 79 0.6
Sung Mun Song .260 .331 .399 100 3.0 .213 .281 .316 67 0.5
Luis Arraez .331 .373 .433 123 3.2 .269 .313 .352 84 0.2
Ramón Laureano .265 .336 .474 120 2.5 .214 .288 .372 82 0.4
Will Wagner .273 .354 .401 109 2.3 .221 .299 .317 73 0.5
Mason McCoy .229 .306 .361 82 2.2 .180 .252 .278 48 0.3
Francisco Acuna .244 .326 .372 91 1.9 .195 .277 .291 58 0.0
Freddy Fermin .260 .318 .391 96 1.9 .209 .265 .302 59 0.3
Bryce Johnson .256 .336 .368 94 1.6 .205 .285 .287 60 0.1
Tirso Ornelas .265 .336 .396 102 2.0 .212 .284 .316 68 -0.1
Yonathan Perlaza .253 .337 .421 108 2.2 .207 .290 .334 75 -0.3
Rodolfo Durán .256 .301 .419 97 1.6 .197 .245 .314 55 -0.2
Clay Dungan .233 .320 .355 86 1.9 .180 .266 .271 52 -0.4
Gavin Sheets .262 .330 .452 114 1.8 .211 .280 .353 75 -0.6
Ripken Reyes .234 .345 .335 87 1.4 .184 .293 .260 56 -0.4
Trenton Brooks .240 .337 .395 101 1.6 .192 .283 .310 64 -0.4
Marcos Castañon .239 .306 .401 93 1.5 .196 .260 .311 59 -0.6
Blake Hunt .245 .316 .394 94 1.2 .187 .256 .293 52 -0.3
Pablo Reyes .256 .330 .386 97 1.0 .204 .280 .300 64 -0.3
Jose Iglesias .270 .323 .363 90 1.0 .217 .269 .295 57 -0.4
Tim Locastro .245 .336 .376 96 1.0 .194 .285 .286 60 -0.6
Oscar Gonzalez .279 .307 .447 107 1.2 .222 .254 .347 66 -0.9
Jase Bowen .238 .299 .382 86 1.0 .191 .250 .302 53 -0.9
Carlos Rodriguez .264 .324 .347 86 1.0 .214 .274 .280 55 -1.1
Eguy Rosario .221 .298 .395 90 0.9 .173 .248 .300 53 -0.8
Eli Wilson .222 .279 .371 78 0.4 .163 .219 .267 33 -0.5
Ryan Jackson .234 .328 .304 76 1.0 .182 .274 .238 46 -1.1
Jason Heyward .232 .302 .385 89 0.5 .177 .250 .279 46 -0.9
Nick Schnell .237 .290 .407 90 1.0 .186 .239 .318 54 -1.4
Addison Kopack .232 .304 .358 83 0.1 .163 .235 .253 36 -0.6
Braedon Karpathios .224 .313 .362 85 0.8 .175 .261 .273 50 -1.5
Brendan Durfee .214 .285 .336 70 0.6 .164 .232 .250 36 -1.0
Cody Roberts .225 .291 .310 66 0.3 .165 .229 .229 28 -0.8
Elias Díaz .240 .296 .378 84 0.5 .184 .246 .280 48 -1.0
Kai Roberts .222 .305 .293 66 0.5 .162 .249 .217 34 -1.1
Nate Mondou .252 .334 .351 91 0.7 .201 .286 .278 60 -1.2
Ethan Salas .217 .292 .311 66 0.9 .156 .229 .224 29 -1.2
Yuli Gurriel .251 .318 .384 92 0.4 .189 .259 .291 52 -1.3
Moisés Gómez .231 .291 .383 85 0.6 .180 .240 .290 49 -1.6
Rosman Verdugo .206 .294 .352 76 0.7 .156 .241 .254 40 -1.6
Mike Brosseau .235 .307 .344 79 0.2 .180 .259 .265 46 -1.2
Nerwilian Cedeño .231 .287 .345 74 0.2 .176 .230 .261 37 -1.3
Oswaldo Linares .204 .286 .284 59 -0.1 .146 .228 .197 21 -1.2
Kasen Wells .243 .305 .306 72 0.1 .189 .255 .234 39 -1.6
Romeo Sanabria .249 .309 .380 89 0.4 .201 .259 .298 55 -1.8
Albert Fabian .237 .299 .398 89 -0.1 .181 .244 .304 52 -1.6
Kai Murphy .224 .309 .301 71 0.0 .174 .250 .232 37 -1.9
Tyler Robertson .224 .291 .339 73 -0.2 .169 .238 .253 37 -1.6
Jacob Campbell .222 .285 .320 67 -0.3 .168 .231 .242 32 -1.5
Sean Barnett .210 .287 .339 72 -0.3 .152 .229 .238 33 -1.6
Anthony Vilar .213 .309 .329 74 -0.2 .156 .252 .240 38 -2.0
Jake Snider .214 .323 .292 71 -0.3 .167 .268 .223 39 -1.7
Zach Evans .242 .291 .304 64 0.1 .193 .243 .241 37 -1.8
Lamar King Jr. .241 .307 .345 79 -0.1 .187 .251 .265 44 -2.1
Chase Valentine .205 .271 .285 54 -0.6 .151 .215 .206 19 -1.8
Ethan Long .191 .268 .279 50 -0.7 .142 .212 .200 17 -1.6
Kaden Hollow .225 .314 .315 75 -0.4 .170 .253 .238 40 -1.9
Martín Maldonado .204 .260 .340 64 -0.5 .147 .206 .237 25 -1.7
Jose Sanabria .218 .279 .269 54 -0.7 .162 .223 .199 20 -1.9
Jack Costello .214 .273 .341 67 -0.8 .168 .228 .255 33 -2.7
Wyatt Hoffman .181 .262 .237 40 -1.1 .127 .211 .164 6 -2.2

Batters – Platoon Splits
Player BA vs. L OBP vs. L SLG vs. L BA vs. R OBP vs. R SLG vs. R
Fernando Tatis Jr. .268 .376 .471 .264 .348 .457
Jackson Merrill .258 .304 .426 .275 .327 .472
Manny Machado .257 .329 .447 .259 .318 .424
Xander Bogaerts .264 .340 .380 .257 .321 .371
Luis Campusano .246 .336 .400 .248 .322 .389
Jake Cronenworth .228 .329 .353 .235 .338 .381
Sung Mun Song .225 .285 .331 .244 .312 .371
Luis Arraez .278 .320 .367 .307 .348 .400
Ramón Laureano .248 .321 .464 .239 .311 .412
Will Wagner .235 .321 .306 .254 .333 .375
Mason McCoy .207 .287 .329 .203 .271 .307
Francisco Acuna .223 .310 .338 .221 .298 .327
Freddy Fermin .241 .303 .370 .230 .280 .330
Bryce Johnson .235 .307 .348 .228 .314 .311
Tirso Ornelas .227 .295 .333 .244 .316 .369
Yonathan Perlaza .235 .308 .390 .228 .311 .372
Rodolfo Durán .240 .282 .385 .217 .266 .357
Clay Dungan .192 .271 .285 .212 .301 .324
Gavin Sheets .233 .292 .369 .238 .307 .412
Ripken Reyes .211 .320 .294 .209 .317 .293
Trenton Brooks .207 .290 .322 .221 .320 .364
Marcos Castañon .224 .300 .378 .215 .277 .345
Blake Hunt .216 .287 .351 .216 .283 .341
Pablo Reyes .232 .313 .364 .227 .301 .330
Jose Iglesias .253 .303 .330 .244 .294 .330
Tim Locastro .217 .306 .340 .220 .311 .323
Oscar Gonzalez .252 .284 .409 .248 .281 .390
Jase Bowen .224 .290 .352 .213 .268 .330
Carlos Rodriguez .227 .286 .291 .244 .307 .321
Eguy Rosario .206 .281 .389 .194 .266 .318
Eli Wilson .200 .265 .289 .186 .237 .326
Ryan Jackson .208 .304 .275 .206 .296 .266
Jason Heyward .194 .261 .274 .207 .278 .351
Nick Schnell .202 .250 .328 .214 .272 .374
Addison Kopack .212 .297 .303 .183 .253 .296
Braedon Karpathios .192 .277 .288 .202 .290 .329
Brendan Durfee .176 .248 .242 .194 .262 .308
Cody Roberts .197 .270 .288 .192 .250 .256
Elias Díaz .211 .269 .347 .213 .271 .319
Kai Roberts .181 .266 .229 .199 .285 .267
Nate Mondou .220 .302 .295 .231 .316 .322
Ethan Salas .170 .243 .230 .187 .263 .270
Yuli Gurriel .223 .288 .340 .224 .287 .338
Moisés Gómez .211 .273 .367 .199 .260 .327
Rosman Verdugo .184 .275 .319 .176 .262 .291
Mike Brosseau .213 .287 .320 .197 .271 .290
Nerwilian Cedeño .200 .258 .294 .201 .256 .299
Oswaldo Linares .182 .270 .273 .169 .248 .223
Kasen Wells .206 .264 .235 .218 .288 .280
Romeo Sanabria .210 .264 .303 .231 .293 .345
Albert Fabian .202 .258 .303 .211 .277 .368
Kai Murphy .191 .269 .255 .204 .283 .271
Tyler Robertson .192 .259 .288 .198 .266 .293
Jacob Campbell .200 .268 .267 .187 .250 .284
Sean Barnett .181 .263 .292 .181 .256 .284
Anthony Vilar .176 .262 .264 .192 .287 .293
Jake Snider .187 .291 .253 .194 .297 .256
Zach Evans .216 .269 .272 .217 .263 .270
Lamar King Jr. .221 .284 .311 .209 .274 .296
Chase Valentine .190 .261 .266 .174 .236 .234
Ethan Long .177 .261 .242 .164 .234 .234
Kaden Hollow .185 .272 .259 .203 .288 .283
Martín Maldonado .185 .243 .308 .166 .227 .272
Jose Sanabria .193 .256 .217 .183 .245 .237
Jack Costello .198 .254 .306 .187 .248 .296
Wyatt Hoffman .160 .241 .187 .148 .236 .200

Pitchers – Standard
Player T Age W L ERA G GS IP H ER HR BB SO
Nick Pivetta R 33 9 9 3.87 28 26 156.0 131 67 25 46 170
Michael King R 31 8 6 3.55 23 22 119.0 103 47 14 45 127
Mason Miller R 27 3 1 2.48 58 0 61.7 35 17 6 22 101
Joe Musgrove R 33 5 5 3.87 16 16 90.7 86 39 11 24 81
Nestor Cortes L 31 6 6 4.19 20 19 101.0 94 47 16 31 94
Adrian Morejon L 27 8 6 3.43 65 1 65.7 56 25 5 22 65
Jeremiah Estrada R 27 5 3 3.36 68 0 67.0 50 25 8 27 94
JP Sears L 30 8 11 4.00 28 28 144.3 139 75 27 42 125
Sean Boyle R 29 7 8 4.57 24 20 112.3 112 57 15 36 88
Wes Benjamin L 32 6 7 4.57 24 21 108.3 114 55 15 41 82
Yu Darvish R 39 6 6 4.50 17 17 90.0 87 45 13 28 80
Randy Vásquez R 27 6 7 4.68 26 25 125.0 126 65 17 45 84
Kyle Hart L 33 6 6 4.57 29 18 106.3 106 54 16 36 95
Jason Adam R 34 4 3 3.40 52 0 50.3 39 19 5 19 51
Jhony Brito R 28 5 5 4.33 22 11 70.7 71 34 9 24 54
Bryan Hoeing R 29 4 3 4.30 31 8 69.0 68 33 8 22 51
Jackson Wolf L 27 6 7 4.77 25 22 111.3 111 59 17 40 92
Garrett Hawkins R 26 5 5 4.18 37 4 56.0 51 26 8 22 60
Wandy Peralta L 34 3 3 4.01 59 1 58.3 51 26 5 26 50
Matt Waldron R 29 5 8 4.96 22 21 105.3 107 58 16 33 86
David Morgan R 26 3 2 4.03 48 1 58.0 50 26 7 23 61
Evan Fitterer R 26 5 8 4.91 26 15 91.7 92 50 12 44 69
Luis Patiño R 26 1 2 4.79 12 10 35.7 35 19 5 16 28
Omar Cruz L 27 4 4 4.75 30 8 77.7 72 41 10 42 73
Austin Krob L 26 3 3 4.83 23 13 76.3 79 41 9 38 56
Logan Gillaspie R 29 2 3 4.63 29 8 58.3 61 30 8 20 42
Reiss Knehr R 29 2 3 4.73 24 6 51.3 48 27 7 24 47
Triston McKenzie R 28 4 6 5.10 23 17 84.7 81 48 16 45 81
Bradgley Rodriguez R 22 4 3 4.09 49 0 55.0 49 25 6 24 50
Eric Yost R 23 5 8 5.13 23 22 107.0 113 61 15 47 74
Ron Marinaccio R 30 3 3 4.18 47 0 56.0 47 26 7 25 57
Yuki Matsui L 30 2 2 4.15 56 0 56.3 49 26 7 27 58
Jagger Haynes L 23 3 4 5.17 24 23 94.0 94 54 14 50 76
Ty Adcock R 29 2 2 4.33 32 1 35.3 34 17 5 14 32
Harry Gustin L 24 3 3 4.58 28 2 53.0 51 27 7 24 46
Miguel Cienfuegos L 29 4 5 4.95 26 10 76.3 83 42 11 30 49
J.B. Wendelken R 33 2 2 4.85 23 1 26.0 25 14 3 13 22
Jake Higginbotham L 30 4 5 4.55 40 0 57.3 58 29 8 23 50
Manuel Castro R 24 4 4 4.61 40 1 52.7 49 27 8 25 54
Francis Pena R 25 4 4 4.47 41 0 50.3 49 25 6 24 42
Daison Acosta R 27 3 4 4.62 41 1 48.7 44 25 7 28 50
Ryan Och L 27 2 2 4.66 39 0 46.3 43 24 6 25 43
Miguel Mendez R 23 5 8 5.42 20 20 83.0 81 50 12 43 65
Carter Loewen R 27 1 1 4.86 28 1 33.3 32 18 5 16 30
Enmanuel Pinales R 25 5 7 5.32 20 17 88.0 94 52 15 38 65
Jason Blanchard L 29 2 3 4.74 31 1 43.7 43 23 6 21 39
Misael Tamarez R 26 3 4 5.04 36 6 75.0 75 42 11 36 60
Fernando Sanchez L 25 3 5 4.92 29 3 64.0 66 35 9 28 50
Andrew Moore R 26 3 4 4.66 37 0 46.3 41 24 6 28 49
Alek Jacob R 28 2 3 4.74 47 0 57.0 53 30 8 24 51
Harold Chirino R 28 1 2 4.80 37 0 45.0 43 24 5 23 36
Stephen Jones R 28 2 3 5.05 40 1 51.7 53 29 7 22 40
Austin Davis L 33 1 3 5.40 30 1 31.7 30 19 4 21 31
Raul Brito R 29 4 4 4.82 39 0 56.0 53 30 7 26 50
Sean Reynolds R 28 1 2 4.96 44 1 52.7 49 29 7 32 49
Victor Lizarraga R 22 5 8 5.54 23 21 89.3 92 55 14 47 68
Sam Whiting R 25 2 3 5.93 19 10 54.7 59 36 9 30 35
Kevin Kopps R 29 2 4 5.17 40 1 54.0 55 31 7 30 41
Jared Kollar R 27 5 9 5.53 25 16 97.7 112 60 18 35 56
Ethan Routzahn R 28 3 5 5.26 40 0 49.7 53 29 7 22 32

Pitchers – Advanced
Player IP K/9 BB/9 HR/9 BB% K% BABIP ERA+ 3ERA+ FIP ERA- WAR
Nick Pivetta 156.0 9.8 2.7 1.4 7.2% 26.6% .269 106 101 4.03 94 2.3
Michael King 119.0 9.6 3.4 1.1 9.0% 25.5% .286 115 112 3.84 87 2.2
Mason Miller 61.7 14.7 3.2 0.9 9.1% 41.7% .264 165 163 2.32 61 1.7
Joe Musgrove 90.7 8.0 2.4 1.1 6.3% 21.4% .288 106 100 4.05 95 1.4
Nestor Cortes 101.0 8.4 2.8 1.4 7.3% 22.3% .279 98 95 4.37 102 1.1
Adrian Morejon 65.7 8.9 3.0 0.7 8.0% 23.6% .285 120 122 3.22 84 0.9
Jeremiah Estrada 67.0 12.6 3.6 1.1 9.7% 33.7% .290 122 124 3.21 82 0.9
JP Sears 144.3 7.8 2.6 1.7 7.0% 20.7% .274 88 87 4.92 114 0.8
Sean Boyle 112.3 7.1 2.9 1.2 7.5% 18.3% .287 90 90 4.59 112 0.8
Wes Benjamin 108.3 6.8 3.4 1.2 8.6% 17.2% .296 90 87 4.70 112 0.8
Yu Darvish 90.0 8.0 2.8 1.3 7.3% 21.0% .287 91 87 4.40 110 0.7
Randy Vásquez 125.0 6.0 3.2 1.2 8.3% 15.5% .279 87 89 4.88 114 0.7
Kyle Hart 106.3 8.0 3.0 1.4 7.9% 20.9% .294 90 85 4.55 112 0.7
Jason Adam 50.3 9.1 3.4 0.9 9.1% 24.5% .260 121 110 3.86 83 0.6
Jhony Brito 70.7 6.9 3.1 1.1 7.9% 17.9% .288 95 96 4.39 106 0.6
Bryan Hoeing 69.0 6.7 2.9 1.0 7.4% 17.2% .284 95 97 4.24 105 0.5
Jackson Wolf 111.3 7.4 3.2 1.4 8.4% 19.2% .287 86 87 4.71 116 0.5
Garrett Hawkins 56.0 9.6 3.5 1.3 9.2% 25.2% .293 98 102 4.11 102 0.4
Wandy Peralta 58.3 7.7 4.0 0.8 10.4% 20.0% .275 102 98 4.05 98 0.3
Matt Waldron 105.3 7.3 2.8 1.4 7.3% 19.1% .291 83 83 4.59 121 0.3
David Morgan 58.0 9.5 3.6 1.1 9.2% 24.5% .283 101 105 4.08 99 0.3
Evan Fitterer 91.7 6.8 4.3 1.2 10.7% 16.7% .287 83 86 5.06 120 0.2
Luis Patiño 35.7 7.1 4.0 1.3 10.1% 17.7% .283 85 91 4.85 118 0.2
Omar Cruz 77.7 8.5 4.9 1.2 12.0% 20.9% .286 86 88 4.85 116 0.2
Austin Krob 76.3 6.6 4.5 1.1 11.0% 16.3% .295 85 87 4.96 118 0.2
Logan Gillaspie 58.3 6.5 3.1 1.2 7.9% 16.6% .293 88 88 4.64 113 0.2
Reiss Knehr 51.3 8.2 4.2 1.2 10.7% 20.9% .285 87 87 4.68 116 0.2
Triston McKenzie 84.7 8.6 4.8 1.7 11.7% 21.1% .280 80 83 5.37 125 0.1
Bradgley Rodriguez 55.0 8.2 3.9 1.0 10.1% 21.1% .279 100 106 4.35 100 0.1
Eric Yost 107.0 6.2 4.0 1.3 9.8% 15.5% .291 80 85 5.17 125 0.1
Ron Marinaccio 56.0 9.2 4.0 1.1 10.4% 23.8% .272 98 97 4.41 102 0.1
Yuki Matsui 56.3 9.3 4.3 1.1 11.0% 23.7% .282 99 97 4.21 101 0.1
Jagger Haynes 94.0 7.3 4.8 1.3 11.7% 17.8% .287 79 85 5.27 126 0.0
Ty Adcock 35.3 8.2 3.6 1.3 9.2% 21.1% .290 95 93 4.47 106 0.0
Harry Gustin 53.0 7.8 4.1 1.2 10.3% 19.7% .288 89 95 4.56 112 0.0
Miguel Cienfuegos 76.3 5.8 3.5 1.3 8.8% 14.4% .293 83 83 5.13 120 0.0
J.B. Wendelken 26.0 7.6 4.5 1.0 11.2% 19.0% .289 84 81 4.70 118 -0.1
Jake Higginbotham 57.3 7.9 3.6 1.3 9.1% 19.8% .298 90 90 4.54 111 -0.1
Manuel Castro 52.7 9.2 4.3 1.4 10.8% 23.4% .289 89 96 4.63 112 -0.1
Francis Pena 50.3 7.5 4.3 1.1 10.7% 18.8% .291 92 94 4.65 109 -0.1
Daison Acosta 48.7 9.2 5.2 1.3 12.7% 22.7% .285 89 91 4.89 113 -0.1
Ryan Och 46.3 8.4 4.9 1.2 12.1% 20.8% .285 88 91 4.80 114 -0.2
Miguel Mendez 83.0 7.0 4.7 1.3 11.6% 17.5% .279 76 81 5.46 132 -0.2
Carter Loewen 33.3 8.1 4.3 1.4 10.8% 20.3% .284 84 88 4.93 119 -0.2
Enmanuel Pinales 88.0 6.6 3.9 1.5 9.6% 16.5% .292 77 81 5.30 130 -0.2
Jason Blanchard 43.7 8.0 4.3 1.2 10.8% 20.0% .294 86 86 4.74 116 -0.2
Misael Tamarez 75.0 7.2 4.3 1.3 10.8% 18.0% .287 81 84 5.07 123 -0.2
Fernando Sanchez 64.0 7.0 3.9 1.3 9.8% 17.5% .294 83 87 5.02 120 -0.2
Andrew Moore 46.3 9.5 5.4 1.2 13.2% 23.1% .287 88 91 4.93 114 -0.2
Alek Jacob 57.0 8.1 3.8 1.3 9.8% 20.8% .280 86 87 4.72 116 -0.3
Harold Chirino 45.0 7.2 4.6 1.0 11.4% 17.9% .284 85 87 4.94 118 -0.3
Stephen Jones 51.7 7.0 3.8 1.2 9.6% 17.5% .293 81 83 4.89 123 -0.3
Austin Davis 31.7 8.8 6.0 1.1 14.4% 21.2% .295 76 73 5.31 132 -0.3
Raul Brito 56.0 8.0 4.2 1.1 10.5% 20.2% .288 85 86 4.66 118 -0.3
Sean Reynolds 52.7 8.4 5.5 1.2 13.4% 20.6% .286 83 83 5.08 121 -0.3
Victor Lizarraga 89.3 6.9 4.7 1.4 11.7% 16.9% .288 74 81 5.46 135 -0.4
Sam Whiting 54.7 5.8 4.9 1.5 11.9% 13.8% .286 69 74 5.89 145 -0.5
Kevin Kopps 54.0 6.8 5.0 1.2 12.0% 16.4% .291 79 79 5.27 127 -0.5
Jared Kollar 97.7 5.2 3.2 1.7 8.1% 12.9% .291 74 76 5.55 135 -0.5
Ethan Routzahn 49.7 5.8 4.0 1.3 9.9% 14.3% .289 78 80 5.28 128 -0.6

Pitchers – Top Near-Age Comps
Player Pit Comp 1 Pit Comp 2 Pit Comp 3
Nick Pivetta Don Sutton Red Ruffing Jack Morris
Michael King Sam Gray Camilo Pascual Sonny Gray
Mason Miller Daniel Bard Troy Percival Ugueth Urbina
Joe Musgrove Michael Pineda Chris Bassitt Francisco Campos
Nestor Cortes Dennis Cook Tyler Anderson Dennis Rasmussen
Adrian Morejon Gary Lucas Aaron Bummer Phil Coke
Jeremiah Estrada John Wetteland Ron Davis Paul Shuey
JP Sears Dennis Rasmussen Wei-Yin Chen John Tudor
Sean Boyle Scott Feldman Erv Palica Dick Tidrow
Wes Benjamin Kevin McGovern Geoff Zahn Dennis Rasmussen
Yu Darvish Mike Krukow Steve Renko Red Faber
Randy Vásquez Eddie Butler Braden Shipley José Ureña
Kyle Hart Charlie Leibrandt Al Smith Woodie Fryman
Jason Adam Pedro Strop Santiago Casilla Jerry Dipoto
Jhony Brito Luis Cessa Alfredo Figaro Adrian Houser
Bryan Hoeing Anthony Swarzak Pedro Villarreal Casey Sadler
Jackson Wolf David Huff Jason Wheeler Ryan Spille
Garrett Hawkins Ryan Meisinger Erik Stiller Marty Willis
Wandy Peralta Hal Woodeshick Ron Perranoski Rigo Beltran
Matt Waldron Shawn Boskie Bob Milacki Dereck Rodríguez
David Morgan Esteban Yan Carlos Estevez Scott Linebrink
Evan Fitterer Reid Cornelius Jake Thompson Thomas Arruda
Luis Patiño Geo Bosworth Laurin Pepper Nick Radakovic
Omar Cruz Brian Abraham Manny Banuelos Terry Burrows
Austin Krob Herb Hippauf Felix Oroz Harley Anderson
Logan Gillaspie Melvin McGavock Steve Peck Jim Bruske
Reiss Knehr Ray Harrell Ray Daviault Jose Pena
Triston McKenzie Claudio Vargas Dave Sisler Rich Gale
Bradgley Rodriguez Armando Huerta Geoff Combe Bill Atkinson
Eric Yost Myles Jaye Austin Kubitza Jay Yennaco
Ron Marinaccio Marvin Freeman Mike James Dyar Miller
Yuki Matsui Robby Scott Antonio Bastardo John Grabow
Jagger Haynes Mike Curtis Nick Additon Hector Mercado
Ty Adcock Ricky Trlicek Max Surkont Duane Shaffer
Harry Gustin Matt Murphy Tony Mosley James Thomas
Miguel Cienfuegos Bill Kirk Reid Santos Mike Antonini
J.B. Wendelken Reggie Harris Freddy Schmidt Felix Rodriguez
Jake Higginbotham Jeff Urban James Hurst Daniel Davidson
Manuel Castro Zack Sawyer John Nurthen Abel De Los Santos
Francis Pena Travis Schlichting Henry Mabee Dan Ledduke
Daison Acosta Doug Neuenschwander Zach Simons Bill Moran
Ryan Och Tom Funk Scott Wiegandt Angel Miranda
Miguel Mendez Bruce Von Hoff Jared Baker Jon Barnes
Carter Loewen Mike Gardner Steve Jones Gary Wex
Enmanuel Pinales Kris McWhirter Steven Ridings Everett Saul
Jason Blanchard Ryan Robowski Scott Wiggins Victor Kleine
Misael Tamarez Gary Lance Ryan Pressly Paul Cave
Fernando Sanchez Randy Rosario Lucas Luetge Randy Foster
Andrew Moore Jake Barrett Jermaine Van Buren Franklyn German
Alek Jacob Rocky Biddle Jerry Walker Al Fitzmorris
Harold Chirino David Gourieux Fabio Castillo Steve Wapnick
Stephen Jones Johnny Shuttlesworth Ed Cecil Luke Putkonen
Austin Davis Mike Mohler Dave Rajsich Mike Raczka
Raul Brito Brandon Brennan Jose Pena B.J. Rosenberg
Sean Reynolds Mark Silva Joe Valentine Jose Ortega
Victor Lizarraga Angel Sanchez Kyle Johnston Matt Anderson
Sam Whiting Moose Marris Jeremy Thorne A.J. Holland
Kevin Kopps Jim Leopold Adolfo Delfin Andrew Russell
Jared Kollar Ian Marshall Kyle Friedrichs Justin Dillon
Ethan Routzahn Chris Rivera Owen Johnson Mike Poehl

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
Nick Pivetta .217 .285 .380 .231 .283 .422 3.3 1.3 3.33 4.45
Michael King .233 .317 .400 .225 .294 .352 3.0 1.3 3.04 4.14
Mason Miller .170 .265 .310 .157 .228 .261 2.7 0.5 1.60 3.81
Joe Musgrove .247 .317 .406 .243 .298 .392 2.0 0.8 3.30 4.45
Nestor Cortes .236 .296 .427 .245 .304 .426 1.8 0.3 3.63 4.93
Adrian Morejon .209 .258 .279 .233 .304 .368 1.6 0.3 2.76 4.22
Jeremiah Estrada .204 .293 .343 .200 .276 .350 1.6 0.2 2.72 4.22
JP Sears .234 .292 .376 .254 .316 .482 1.9 -0.3 4.07 5.39
Sean Boyle .274 .357 .463 .237 .293 .378 1.5 0.1 4.09 5.12
Wes Benjamin .265 .333 .409 .262 .328 .439 1.4 -0.1 4.07 5.28
Yu Darvish .262 .327 .439 .235 .298 .407 1.3 0.0 3.88 5.37
Randy Vásquez .263 .341 .439 .251 .316 .414 1.4 -0.1 4.23 5.17
Kyle Hart .230 .296 .354 .262 .330 .459 1.4 -0.3 3.96 5.45
Jason Adam .195 .298 .305 .235 .315 .398 1.2 0.0 2.70 4.38
Jhony Brito .246 .319 .421 .261 .313 .399 1.0 0.0 3.85 5.01
Bryan Hoeing .256 .322 .426 .248 .301 .376 1.0 0.0 3.81 5.10
Jackson Wolf .227 .295 .345 .263 .331 .464 1.3 -0.4 4.22 5.48
Garrett Hawkins .235 .307 .402 .233 .302 .397 0.8 -0.2 3.49 5.04
Wandy Peralta .217 .305 .349 .243 .329 .360 0.9 -0.2 3.20 4.95
Matt Waldron .247 .310 .418 .263 .321 .446 0.9 -0.5 4.43 5.63
David Morgan .244 .347 .419 .215 .287 .348 0.8 -0.3 3.33 4.95
Evan Fitterer .229 .335 .358 .280 .357 .478 0.7 -0.4 4.49 5.52
Luis Patiño .254 .338 .429 .247 .322 .416 0.4 -0.1 4.38 5.46
Omar Cruz .233 .333 .367 .244 .351 .411 0.9 -0.6 4.04 5.53
Austin Krob .289 .375 .373 .249 .343 .430 0.6 -0.4 4.39 5.43
Logan Gillaspie .262 .322 .402 .262 .324 .444 0.6 -0.3 4.07 5.25
Reiss Knehr .244 .337 .442 .243 .331 .387 0.6 -0.3 4.12 5.58
Triston McKenzie .243 .333 .447 .249 .343 .458 0.8 -0.6 4.44 5.90
Bradgley Rodriguez .253 .339 .411 .219 .313 .351 0.5 -0.3 3.57 4.83
Eric Yost .271 .358 .437 .255 .333 .424 0.6 -0.6 4.77 5.66
Ron Marinaccio .228 .331 .406 .222 .315 .352 0.6 -0.5 3.50 4.97
Yuki Matsui .230 .310 .351 .230 .321 .403 0.6 -0.6 3.40 5.23
Jagger Haynes .221 .326 .336 .267 .359 .469 0.6 -0.6 4.70 5.68
Ty Adcock .242 .315 .409 .250 .321 .431 0.3 -0.4 3.72 5.46
Harry Gustin .232 .308 .362 .250 .329 .421 0.4 -0.4 4.03 5.26
Miguel Cienfuegos .231 .311 .352 .287 .355 .486 0.5 -0.6 4.51 5.63
J.B. Wendelken .244 .346 .356 .250 .338 .446 0.1 -0.4 4.11 5.80
Jake Higginbotham .235 .298 .353 .266 .342 .462 0.3 -0.7 3.88 5.46
Manuel Castro .223 .327 .394 .250 .320 .429 0.4 -0.6 3.94 5.31
Francis Pena .250 .340 .359 .243 .328 .430 0.2 -0.5 4.07 5.04
Daison Acosta .270 .375 .517 .204 .313 .306 0.3 -0.6 3.99 5.49
Ryan Och .230 .319 .361 .244 .350 .420 0.2 -0.6 4.01 5.39
Miguel Mendez .250 .354 .400 .253 .361 .451 0.4 -0.9 4.88 6.08
Carter Loewen .268 .349 .464 .230 .326 .405 0.1 -0.5 4.36 5.93
Enmanuel Pinales .257 .349 .455 .271 .329 .457 0.3 -0.8 4.88 5.84
Jason Blanchard .250 .344 .357 .248 .331 .444 0.1 -0.6 4.19 5.57
Misael Tamarez .264 .351 .450 .246 .332 .413 0.3 -0.8 4.57 5.74
Fernando Sanchez .231 .330 .372 .271 .350 .452 0.3 -0.7 4.37 5.62
Andrew Moore .212 .337 .424 .247 .366 .355 0.2 -0.7 4.06 5.57
Alek Jacob .264 .350 .414 .227 .313 .409 0.2 -0.8 4.04 5.50
Harold Chirino .250 .364 .381 .242 .340 .407 0.0 -0.7 4.27 5.59
Stephen Jones .273 .356 .443 .248 .326 .410 0.1 -0.8 4.38 5.87
Austin Davis .209 .333 .372 .263 .394 .425 0.0 -0.7 4.46 6.76
Raul Brito .260 .351 .375 .231 .324 .421 0.2 -0.8 4.13 5.59
Sean Reynolds .235 .364 .407 .246 .345 .402 0.1 -0.8 4.33 5.83
Victor Lizarraga .266 .356 .432 .253 .350 .452 0.2 -1.1 5.06 6.21
Sam Whiting .292 .387 .462 .246 .341 .447 -0.1 -0.9 5.36 6.66
Kevin Kopps .258 .362 .438 .256 .356 .400 -0.1 -1.0 4.57 6.04
Jared Kollar .277 .345 .480 .283 .333 .484 0.1 -1.1 5.02 5.99
Ethan Routzahn .275 .356 .418 .257 .339 .450 -0.2 -1.0 4.65 5.97

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.


Cleveland Guardians Top 45 Prospects

Chase DeLauter Photo: Jeff Lange/USA TODAY NETWORK via Imagn Images

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

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

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


Where Could the Blue Jays Tuck Kyle?

Jonathan Hui-Imagn Images

Nobody’s having more fun this offseason than the Toronto Blue Jays, who celebrated their first pennant in 32 years (and near-miss at winning the World Series) by rearming and getting back into the fight. Midseason acquisition Shane Bieber re-committed for pennies on the dollar, and Toronto supplemented its rotation by landing the top free agent pitcher on the market, Dylan Cease, as well as KBO breakout star Cody Ponce.

The Jays then kicked January off by reaching back into the international market to purchase third baseman Kazuma Okamoto from the Yomiuri Giants of NPB. The Jays are already up to third in projected 2026 payroll, at least for now; the Phillies and Yankees are fourth and fifth, and both of those clubs have some rounding out of the roster to do before spring training.

Except apparently the Jays might not be done either. Read the rest of this entry »


Effectively Wild Episode 2424: The Perfect Fits for Free Agents

EWFI
Ben Lindbergh and Meg Rowley banter about how the on-ramp for learning about sports analytics has changed since they were students, follow up on players who unretired after becoming coaches, break down the Edward Cabrera trade (and the Michael Lorenzen signing), and then discuss the remaining top-10 free agents (Kyle Tucker, Alex Bregman, Framber Valdez, Cody Bellinger, Bo Bichette, and Ranger Suárez) from three perspectives: where they’d have the biggest impact, where would be most fun for them to sign, and where they will sign.

Audio intro: Garrett Krohn, “Effectively Wild Theme
Audio outro: Philip Bergman, “Effectively Wild Theme

Link to Rice job listing
Link to Andres class article 1
Link to Andres class article 2
Link to Sabermetrics 101 MOOC
Link to Mota article
Link to Quirk bio
Link to Chambliss bio
Link to “Conformity Gate”
Link to Ben on Mass Effect 3
Link to Baumann on Cabrera
Link to Cabrera pitch values
Link to worst fastballs
Link to Andrews on Lorenzen
Link to FG top 50 FA
Link to Petriello on Tucker
Link to Gelb on Bichette
Link to IF fielding value
Link to team payrolls
Link to team SP depth charts
Link to team positional projections

 Sponsor Us on Patreon
 Give a Gift Subscription
 Email Us: podcast@fangraphs.com
 Effectively Wild Subreddit
 Effectively Wild Wiki
 Apple Podcasts Feed 
 Spotify Feed
 YouTube Playlist
 Facebook Group
 Bluesky Account
 Twitter Account
 Get Our Merch!


RosterResource Chat – 1/8/26

Read the rest of this entry »


Welcome to PhamGraphs

Patrick Gorski, Kamil Krzaczynski-Imagn Images,

“It’s not being quantified like it should.” That’s what Tommy Pham told Will Sammon and Eno Sarris of The Athletic. Pham isn’t your stereotypical ballplayer who hates advanced stats. He’s a visionary who wants them to be even more advanced, to factor in even more context, to do an even better job of turning every tiny thing that transpires on the field into cold, hard numbers that can be credited to or debited from a ballplayer’s account. On Monday, Sammon and Sarris published an article that described Pham’s dream of a brighter sabermetric future. “I want to create a system that is going to change all that,” he said. Tommy Pham, the old school grit-and-grinder with 12 years in the majors under his belt, wants us nerds to get even nerdier, and he’s here to help. He even has a name in mind: PhamGraphs. “It’s pretty self-explanatory,” he said.

First and foremost, we here at FanGraphs want to let Tommy Pham know that we are going to sue your ass back to the stone age for trademark infringement so incredibly flattered by this charming homage. Moreover, we are here to help. We are up for the challenge. We want in. Welcome to PhamGraphs.

I can relate to Pham’s plight personally, because once upon a time, I, too, created my own FanGraphs knockoff. Specifically, I experienced a burgeoning enthusiasm for apples in the summer of 2016, so I started a spreadsheet where I’d list all the apples I ate, rate them on a scale of one to five, and write a review. The spreadsheet was titled AppleGraphs, and I figured it that if I really liked tracking my apples, I’d eventually turn it into a blog. Instead, I kept it up for a couple months and then forgot about it. I never showed it to anybody. Here’s an excerpt.

A Taste of AppleGraphs
Date Cultivar Source Grown Rating Descriptors
8/2/2016 Fuji Trader Joe’s Chile 4 Gorgeous
Notes: I took a digital art class in college. There was little in the way of instruction about improving as an artist. It seemed like the main goal was to learn how to discuss art as pretentiously as possible. When a classmate called my friend’s work cool, the professor cringed and explained that she should instead say the piece was “visually interesting.” I enjoy euphemisms as much as anybody, but that never struck me as a great bargain: surrendering immediacy and directness for the chance to sound more impressive. This is all by way of saying that the apple I ate today looked cool as hell. It was all stripy, with vertical ribbons of greens and reds like some kind of marble offering to the god of picturesque produce. It tasted pretty cool, too. It was light and refreshing, and the first slice was surprisingly sweet. For some reason I didn’t really taste that sweetness in the remainder, but big deal. The pleasure of the first bite was more than enough. Can you really ask more from an apple than one nice moment?

I wrote a total of 13 entries before it petered out (though if some venture capitalist is reading this and wants to throw a million dollars my way, I will gladly resurrect AppleGraphs as a blog or a newsletter or a zine or whatever unwieldy medium you and you blood money would prefer). You can read the whole thing here, but only if you really, really don’t have anything better to do, because, once again, it was just a spreadsheet where I described apples as a way of killing time at my desk until FanGraphs published a new article for me to read.

My extraordinarily roundabout point here is that, as someone with experience ripping off David Appelman (with apples, no less), I am determined to take Pham very seriously and answer his points as best I can, one by one. However, I want to note first that Pham’s comments revealed two overarching concerns. First, he wants the numbers to feature more context, to get into deserved performance rather than actual performance. Weighted Runs Created Plus, our flagship hitting metric, is park-adjusted and league-adjusted. The numbers are measured against the league average, which is always 100, and they’re adjusted based on the hitting environment of the park a hitter plays in. But they’re not designed to show deserved performance. They’re designed to show how well you performed relative to the league average. They don’t factor in strength of opponent or batted ball luck or a host of other factors. However, those numbers are available to Pham if he wants them. DRC+, or Deserved Runs Created Plus, is the flagship offensive metric of Baseball Prospectus. Deserved performance is what they do at BP. That may just be the site for Pham, and he may want to rethink his branding.

Actually, now that I mention it, I should probably note that Baseball Reference WAR also takes the strength of your opponent into account. The point is, Pham can keep his options open. The sabermetric community is a big tent. We’re all Pham.

That said, you have to stop somewhere. It’s impossible to factor everything in. There’s no shortage of examples. If you’re Randy Johnson and you detonate a mourning dove that divebombs into the path of your fastball, and the umpire calls the pitch a ball (which would have been the right call), should that ball really count against you? If you’re Rafael Ortega and a double falls in over your head because a territorial goose has colonized deep center field and forced you to play too shallow, should you really have your defensive metrics docked? If you’re Cody Bellinger and some room service chicken wings give you such horrendous food poisoning that you have to miss a game and bat .143 with a 24 wRC+ over the next two weeks, is that really all your fault? Shouldn’t some of the -0.2 WAR you put up over that timeframe be doled out to the chef at the hotel, to Perdue AgriBusiness, and to the chickens themselves? I could keep going all day. I’m not even done with the bird examples yet. You could keep going forever because everything’s connected. At some point, you just have to draw the line and look at what happened on the field.

Pham’s second overarching concern was, obviously, to burnish his numbers. He’s a 37-year-old free agent who is looking for a deal. He has played for nine different teams over the last five seasons and put up a combined 0.1 WAR across the last two, and he’s been on something of a media campaign recently (and not so recently). In November, Pham revealed that he’s been playing through plantar fasciitis since the second half of 2023, but, conveniently, he’s all better now. These new comments no doubt express his true beliefs, but they also seem designed to put a positive spin on his performance in order to get himself a good deal – or as Zach Crizer put it over at The Bandwagon, “Tommy Pham has some ideas about stats that would make Tommy Pham look better.”

Now let’s get to Pham’s issues. He made two particular points. The first was that playing for a losing team, especially one that loses a lot of close games like the Pirates, means that you tend to face better pitching, because all the opponents who end up beating you have to use their high-leverage arms in order to close out their victories. The close-game qualification is an important one, and it takes some of the sting out of Pham’s argument, because bad teams end up in just as many blowouts as good teams, and the leverage is low for both teams at that point. If the Phillies are blowing your doors off, they’re not going to waste Jhoan Duran in a non-save situation. Now, the back of a good team’s bullpen is sure to be better than the back of a bad team’s, but the difference isn’t going to be quite as big.

Still, Pham is right that he’s been facing tougher arms than usual. In addition to noting all the close games the Pirates played last year, he mentioned that he switched teams twice during the 2024 season, and that those moves came at inopportune times. A series of scheduling quirks caused him to catch three straight prolonged stretches where his current team was facing off against particularly stiff competition. As a result, he believed that he faced much better pitching than most batters. (He also mentioned that he discussed this with his agent, who confirmed his hunch, and I have to admit that I’m a sucker for this line of reasoning. Anyone who has ever had an argument with a significant other has heard some version of the line, “I asked my friends, and they all think I’m right and you’re wrong.” No matter how bad the fight, it’s always at least a little bit amusing.)

We checked this out, and when I say we, I mean David Appelman. David calculated the average ERA and FIP of the pitchers that every batter faced in both 2024 and 2025. In 2024, the pitchers Pham faced had a combined ERA of 4.02, the 19th-lowest among all batters with at least 400 plate appearances. That put him in the 90th percentile. In 2025, his opponents had a 4.17 ERA, which put him in the 75th percentile. He really has faced tough pitching over the last two years. It’s not unprecedented – somebody’s got to be in the 99th percentile every year (sorry Royce Lewis) – but it is real.

Toughest and Easiest Pitchers Faced in 2025
Rank Name ERA Rank Name ERA
1 Royce Lewis 3.84 206 Cedric Mullins 4.47
2 Chandler Simpson 3.97 207 Matt McLain 4.49
3 Jonathan Aranda 3.98 208 Jeff McNeil 4.50
4 Junior Caminero 3.98 209 Nathan Lukes 4.50
5 Yandy Díaz 4.01 210 Pete Alonso 4.50
6 Jake Mangum 4.01 211 Alec Bohm 4.52
7 Gabriel Arias 4.02 212 Gavin Lux 4.57
8 Iván Herrera 4.03 213 Brett Baty 4.58
9 Ryan Jeffers 4.05 214 Austin Hays 4.58
10 Josh Lowe 4.05 215 Carlos Narváez 4.66
Source: PhamGraphs
Minimum 400 plate appearances.

Unfortunately, Pham’s argument falls a little bit flat at this point. If you try to give him credit by regressing his performance to account for this greater degree of difficulty, you learn that the effect is much smaller than you’d expect. In 2025, Pham faced pitchers whose combined ERA was 0.08 points lower than the league average, so let’s give him credit for those extra points. There are several ways to run the numbers, but Ben Clemens showed me a quick and dirty way to do it using constants from The Book. Skip the rest of this paragraph if you don’t like math. One point of wOBA works out to roughly half a run per 600 plate appearances, and 600 plate appearances works out to roughly 141 innings. Half a run over 141 innings works out to 0.032 points of ERA. Now we have a conversion rate: one point of wOBA equals 0.032 points of ERA.

That means if we give Pham 0.08 extra points of ERA to bring him up to the league average, it only adds 2.5 points to his wOBA. That’s it. He goes from .308 to .311. Among the 215 players with at least 400 plate appearances in 2025, that takes him from the 150th-highest wOBA to the 145th.

If we use FIP rather than ERA, which Pham would presumably prefer because it’s a better indication of a pitcher’s true talent level, we’d add only 1.3 points of wOBA. (We can go even further: If we use the pitchers’ projected ERA or FIP at the time of each plate appearance according to Steamer – effectively showing how good everybody thought the pitchers were at the time – then Pham actually faced an easier slate of pitchers than the average batter!) As I mentioned earlier, DRC+ takes the strength of opponent into account, and that’s likely why it graded Pham higher than wRC+ over the last two seasons, but that bonus was just three points in 2024 (a 92 wRC+ and 95 DRC+) and four points in 2025 (a 94 wRC+ and 98 DRC+). None of this turns him into even a league-average bat. So yes, Pham faced tough pitching, but no, it doesn’t make all that much difference.

That said, I don’t want to let all these numbers get in the way of a good story. While we’re talking about all the high-leverage arms Pham has faced, we need to note that he was great in high-leverage situations. In 2025, he ran a 168 wRC+ across 40 high-leverage plate appearances, batting .355. Over the past two seasons, his 136 wRC+ in high-leverage situations puts him in the 80th percentile of all hitters (minimum 80 high-leverage plate appearances). If I were Tommy Pham, I’d be making sure that high-leverage situations were part of the conversation, too.

Pham’s second point was about how wind can play havoc with outfield defense, and here I’ll rely on an excerpt:

Pham remembers a particular play from last season that frustrated him as it related to how defensive metrics are used to value players. In a game against the Milwaukee Brewers, he was playing left field. A ball hit approximately 360 feet with a 90-mph exit velocity short-hopped the outfield wall. The wind carried it. Pham was playing in, so he couldn’t get to the ball. The play reflected poorly in his defensive numbers.

“I got docked on the ball because Statcast doesn’t factor the wind part,” Pham said. “When I learned that, I’m like, OK, if the wind’s blowing out, I need to play a little bit deeper.

“It’s a really flawed system. But it’s getting factored into our value.”

Before we get into the play in question, let’s start with the part where Pham says that he didn’t learn until age 37 that he should probably play a bit deeper when the wind is blowing out really hard. That seems – how do I put this respectfully? – unlikely to be true. Surely, this sabermetric visionary had, you know, thought about what the wind does before the year 2025. Pham makes a valid point about how defensive metrics have so far been unable to account for wind, but the example he uses to illustrate it is, by his own account, just a story about how he was positioned poorly.

Some of the details are off, but I was able to find the play in question. I understand why Pham has it stuck in his mind. It cost the Pirates a game. It was a line drive double from Caleb Durbin on May 25. It left the bat at 97.1 mph, traveled 371 feet, got over Pham’s head, and short-hopped the wall. The Pirates were leading 5-3 in the top of the eighth, and because the tying run was on second base, Pham was playing a bit shallower than usual. In 2025, the average left fielder at PNC Park played 301 feet deep, and Pham averaged 295. On this play, he was at 293 feet. He was making sure that he’d be able to hold the runner at third if Durbin singled. For that reason, I’m not so sure that he would’ve been playing deeper even if he had factored in the wind. The double scored two runs, tying the game at five, and Durbin scored the game’s deciding run when the next batter also doubled to Pham in left field.

Pham was right that the wind aided the ball a bit. Over the course of the 2025 season, 12 balls were pulled at the same launch angle and exit velocity off the same pitch type, and they traveled an average of 353 feet. This ball went an extra 17 feet. Still, his argument has several problems. The first is that Statcast only gave this ball a catch probability of 30% to begin with, thanks to the wall penalty. It graded out as a four-star play, which means that it was so difficult that it barely hurt Pham’s numbers. Second, at this stage of his career, Pham doesn’t make four-star catches anyway. His numbers going back on the ball have been bad for years now. He’s 37 and not that guy anymore (unless his plantar fasciitis really is gone forever). In fact, less than a week earlier, Elly De La Cruz hit a nearly identical ball to Pham in left field. Durbin’s ball required Pham to travel 79 feet over 4.7 seconds. De La Cruz hit his harder, but it required Pham to travel 78 feet over 4.7 seconds, and it landed in pretty much the exact same spot. On both balls, Pham had a chance to make the catch but decided to slow down — especially on De La Cruz’s — rather than risk injury by crashing into the wall.

Third, it’s also important to note that the Statcast numbers here, at least to some extent, factored in the wind already. Those catch probability numbers aren’t perfect, but this is exactly the kind of batted ball where they work well. Pham isn’t getting graded based on the launch angle and exit velocity; he’s getting graded on the hang time and the distance he had to travel. Statcast is accounting for those extra 17 feet in its grading system, and then it is knocking off some of the difficulty because the ball landed near the wall. It’s not taking off a couple extra percentage points because the wind made the ball move unexpectedly, and Pham is right that in a perfect world he would get credit for that. However, this is pretty tame in terms of wind effects. The ball didn’t change direction because of a sudden gust, and it didn’t move unpredictably due to swirling conditions. It just had a tailwind that allowed it to get on top of him. Maybe we’ll get there one day, but right now, it’s hard to imagine any system detailed enough that it could put a specific number of catch probability percentage points on just how much harder the tailwind made this play, let alone do so accurately enough to be worthwhile.

To return to the most important point, why wasn’t Pham taking the wind into account already? He got docked because he didn’t catch the ball, but he did not get docked (at least not by Statcast) for his positioning. In fact, because he started out so far from where the ball landed, Statcast gave him more leeway, reducing the catch probability, and thus the hit to his OAA. Other systems like DRP and DRS factor in positioning, and they may well have docked him for playing too shallow here. Or, maybe the opposite is true; maybe they would’ve recognized that he was playing shallow in order to hold the runner at third on a base hit, and would’ve considered his positioning to be correct even though it didn’t work out. If that were the case, perhaps they wouldn’t have held it against him either. There’s always more context to take into account, even when there are no birds in sight.

I should also note that Pham once again came close to touching on something that would have made him look great. Did you know that our splits tools allow you to check how a player performs based on the wind conditions? We can’t split out outfield defense, but it turns out that Pham is actually a great hitter when it’s windy. Over the course of his career, we have him credited with making 164 plate appearances when the wind is blowing at least 18 mph. In those plate appearances, he’s batted .354 with a 197 wRC+. Our database shows 513 players who have at least 60 plate appearances in those conditions. Pham’s 197 wRC+ ranks eighth, just a couple of spots behind Aaron Judge and Juan Soto. Yet again, Pham is doing the right thing by bringing wind into the conversation.

Before I leave you, I want to mention that, although I’ve made plenty of jokes and taken a critical eye to the issues he raised, I think Pham has the exact right attitude here. Like every player, he’s run into some bad luck at times. And, like every player, he’s also faced some good luck. Here’s a popup that turned into a double only because Pham had the good fortune to hit it to Teoscar Hernández:

Pham doesn’t sitting around thinking about all the times he got lucky, and for good reason. He plays the game at the highest level, where failure lurks around every corner. Nine years ago, right around the time I started the now-legendary AppleGraphs, I was playing in a pickup baseball league in Queens and saved this quote from Grégor Blanco. Coincidentally, it too appeared in an article by Eno Sarris:

“These things are going to happen. You go up and you go down. When you go down, you need to realize that it happens. Don’t let frustration get you. Try to simplify the game. Take some pitches, start seeing the ball again. Build that confidence again. You need to start seeing it inside yourself. ‘I got a walk! That’s good. I hit the ball hard.’ Sometimes in a streak, you hit the ball hard right at someone, and you think, ‘What do I have to do?’ Instead, say, ‘Yeah, that’s what I want. I hit the ball hard.’”

I saved it because, even in this silly adult league, I found it useful to trick myself into staying positive. When I hit a bloop single or reached on an error, I’d tell myself, ‘Great job, you got on base.’ When I lined out, I’d tell myself, ‘Great job, you hit the ball hard.’ In other words, I found a way to take something positive out of nearly every at-bat.

Pham has a tattoo that reads “Believe in Yourself” on his left arm, just below the spot where his sleeve ends. I’d be remiss if I didn’t point out that it was a huge missed opportunity for him not to spell it ‘Yourselph,’ but I’m sure the location was no accident. I’m sure the tattoo is right there so that Pham can look down to remind himself of that whenever he feels the slightest bit of doubt creep in. If he wants to create his own statistics in order to help him follow the instructions on his arm, then we here at FanGraphs and PhamGraphs are happy to do our part.


Dan Szymborski FanGraphs Chat – 1/8/26

12:02
Avatar Dan Szymborski: Greeting friends, enemies, and the possibly neutral who accidentally found their way here with a misclick somehow

12:02
JC: What are your personal expectations for Alonso in Baltimore?

12:04
Avatar Dan Szymborski: I think he’ll be quite awesome for the first few years. I expect the end won’t be great, but it ought to be a better situation than Chris Davis, and I imagine the front office is realistic about what the abck end could like like

12:04
Lowetide: Hi Dan, I giggled about the ‘refrigerate’ pills tweet yesterday. I’ve done many similar things. Among Misiorowski, Mclean, Yesavage, Bubba and the rest of the young arms emerging now, is there one or two who shine beyond the rest for Zips?

12:05
Avatar Dan Szymborski: I mean, the drug seems to be working, but I should probably read things!

12:05
Bubba: I don’t mean to be insensitive, as this is a genuine question, but what makes ZIPS projections worthy of an article per team in a way that Steamer or The Bat is not?

Read the rest of this entry »