Angels Shock Baseball World With Sensible Free Agent Behavior

Kelley L Cox and Jeff Curry-Imagn Images

Bob Dylan can’t get no relief, but the Los Angeles Angels don’t have that problem. They just signed two veteran pitchers, Drew Pomeranz and Jordan Romano, to one-year deals worth $4 million and $2 million, respectively.

I’m starting to get worried that the Angels are becoming orthodox. For most of this decade, there have been two teams — the Angels and Rockies — that you could count on to be truly iconoclastic. The other 28 clubs differed from each other mostly due to flavor of ownership: How many resources their boss was willing to commit to the cause, and what time pressure, if any, was being placed on the executives to win. (It’s probably more like 27 other teams now, with the Buster Posey Era underway in San Francisco, though that’s another story.)

But for the most part, the way you run a baseball team is you hire some business school goon, give him a budget and a list of goals, and let him cook. He then goes out and hires as many quants and biomechanics experts as he can, and let the chips fall where they may. Read the rest of this entry »


Chris Martin Runs It Back With the Rangers Once More

Raymond Carlin III-Imagn Images

If you’re a regular FanGraphs reader, then you know that this week, the week after the Winter Meetings, is a week for roundups. The Rangers make a couple moves on a Friday? I’ll bundle them into one snug article. A passel of lefties comes off the board on a Tuesday? Michael Rosen will arrange them into a tidy bouquet. A couple teams talk themselves into believing that they could be the ones to figure out Josh Bell and Adolis García? Michael Baumann will slam his head into the wall repeatedly for our amusement. That’s how it goes.

On Wednesday, Chris Martin, the big, 39-year-old middle reliever from Texas, signed up for one last rodeo with his hometown Rangers. As with many minor deals, no one has reported how much Martin will be paid for the 2026 season. The news seemed all but destined to occupy one quarter of a reliever roundup, but I’d like to give Martin single billing here, because I don’t think we’ve done a good enough job of celebrating just how good he’s been. Let’s start at the beginning. Read the rest of this entry »


JAWS and the 2026 Hall of Fame Ballot: Ryan Braun

Mark J. Rebilas-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 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.

Along with Prince Fielder, who debuted in mid-2005 and joined the lineup as a regular the following season, Ryan Braun was a transformative figure in the history of the Brewers. Including its one-off season as the Seattle Pilots, the franchise made the playoffs just twice in its first 38 campaigns, back in 1981 and ’82. With Braun — the club’s first-round pick in 2005 — bopping 34 homers in just 113 games en route to NL Rookie of the Year honors in ’07, the Brewers finished above .500 for the first time in 15 years, and the next year, with Braun moving from third base (where he was terrible) to left field and making his first of six All-Star teams, they made the playoffs as the National League Wild Card. They would go on to qualify for the playoffs four more times during Braun’s career, with division titles and trips to the National League Championship Series in 2011 and ’18, though they fell just short of trips to the World Series.

Braun won NL MVP honors in 2011 and went on a memorable October run before the Brewers were eliminated, then led the league in home runs while finishing as runner-up in the voting the following year. He accumulated at least 30 homers and 30 steals in both seasons, but by that point, the legitimacy of those accomplishments was in question. In December 2011, less than a month after he beat out Matt Kemp for MVP, Major League Baseball suspended him for 50 games for testing positive for elevated levels of testosterone, later discovered to be synthetic; the sample had been taken after the Brewers’ first postseason game. With a spokesman citing “highly unusual circumstances,” “Ryan’s complete innocence,” “impeccable character and no previous history” of violations, Braun challenged the suspension. In February 2012, an arbitration panel overturned it due to a technicality involving the delay between when he submitted his sample and when the collector, a man named Dino Laurenzi Jr., sent it to the lab.

Both that reversal and Braun’s following actions — smearing Laurenzi both publicly and privately, even alleging that the collector was anti-Semitic (Braun’s father is Jewish, and Braun publicly embraced his Jewish heritage) — are without parallel in MLB’s long steroid saga. What’s more, Braun’s indignation and proclamations of innocence turned out to be a total sham; in 2013, he was discovered to have received PEDs through the Biogenesis Clinic, and earned a 65-game suspension. Thereafter, he publicly apologized, made amends with Laurenzi, and did his best to rehabilitate his image and demonstrate solid citizenship by continuing his involvement in several charitable organizations; he even earned multiple nominations for the Roberto Clemente Award. While he continued to play a supporting role on some very good Brewers teams (and some not-so-good ones), age and injuries limited his availability and effectiveness. Read the rest of this entry »


Pitcher Potpourri: The Mid-Tier Lefties Vanish in One Fell Swoop

Patrick Gorski, Darren Yamashita, Mark J. Rebilas-Imagn Images

At first, it was a trickle. A Gregory Soto here, a Hoby Milner there. On Tuesday, though, we were staring down a veritable deluge. In a single day, the low-to-mid-tier short-term left-handed pitching market got ransacked like a Ralph’s on the Wednesday before Thanksgiving. In rapid succession, three cromulent southpaws inked deals. First, it was Caleb Thielbar, returning to the Cubs on a one-year pact. Foster Griffin followed, lured back from Japan by a $5.5 million guarantee from the Nationals. Finally, Caleb Ferguson linked up with the Reds, also for a single year. (Later on Tuesday, Drew Pomeranz joined the party; he agreed to a one-year contract with the Angels, which be covered in a separate post.) Let’s assess each of these deals in the order in which they signed:

Caleb Thielbar

When Thielbar appeared on one of these roundups around this time last year, it was under sorrier circumstances. The weathered middle reliever had just dropped a stinker, walking 11.1% of hitters on his way to 47 1/3 innings of a 5.32 ERA. The Cubs handed him a “here’s your last chance” $2.75 million; given that Thielbar was heading into his age-38 season, another shoddy campaign would’ve likely marked the end of a surprisingly successful career for the former 18th rounder.

Instead, the wily veteran innovated his way out of a hole, adding a new pitch and delivering a vintage Thielbar performance. The terms of his deal have not yet been disclosed, but considering that many relievers this offseason have signed for more money than they were expected to get, Thielbar almost certainly received a healthy raise to keep playing ball for a living.

In 2025, his strikeout rate remained down a few points from his 30ish% peak, but Thielbar got his command back, in part due to his decision to replace a good chunk of his big old sweepers with a tighter, cutterish hard slider. The slutter (sorry) was a genius bridge between his three other pitches, which are all relatively easy to identify out-of-hand. By adding a pitch that he could conceivably tunnel with his four-seamer, curveball, and sweeper, he seems to have increased the effectiveness of his entire arsenal.

See all of those yellow dots on the pitch plot above? That pitch did not exist before this year. In 2024, Thielbar primarily attacked lefties with the sweeper, throwing it 55% of the time in same-handed matchups. A pitch with all that movement — 14 inches of horizontal movement on average — is hard to land for strikes. His new slider doesn’t have that sort of crazy break, and he had a much easier time throwing it in and around the zone.

And it wasn’t just a chase pitch to lefties. Thielbar also used the new slider as a soft-contact generator against right-handed batters, jamming them inside with respectable velo and glove-side break:

Otherwise, it was vintage Thielbar, slinging slow, high-ride fastballs and some of the prettiest curveballs in the sport. He handled righties and lefties alike, and will assume a similar role in the Chicago bullpen, navigating medium-high leverage situations, particularly when that leverage context coincides with a run of lefties.

Foster Griffin

Last we saw of Griffin stateside, it was 2022, and he was languishing in Quad-A limbo, making brief cameos with the Royals and Blue Jays before hopping on a bus back to Omaha or Buffalo. Back then, he was a fringy bullpen arm, leaning on a cutter with a movement profile that coincidentally resembled Thielbar’s new slider. On top of the cutter, Griffin featured a dead-zone four-seamer at 93 mph, a pretty standard curveball, and a changeup with some quality arm-side fade.

The uninspiring stuff and varied arsenal felt more befitting of a backend starter, and starting is exactly what Griffin took to with the Yomiuri Giants, where he pitched some excellent ball for three seasons. The final was his finest for the Tokyo-based club. He posted the third-best FIP (1.78) among NPB hurlers with at least 70 innings pitched, striking out a quarter of hitters and allowing just a single home run.

What changed? For that, I’ll hand it over to James Fegan, who wrote up a little blurb on Griffin for The Board:

The addition of a low-80s splitter is the profile-changing development since the last of Griffin’s eight career big league innings. Its raw action won’t knock you out of your chair, but it flirted with a 50% miss rate this past season because Griffin almost never leaves it in mistake locations. His steep approach angle makes the pitch nearly impossible to lift, allowing Griffin to allow fewer home runs (18) in over 300 innings in Japan than he gave up in his last full season in the PCL (20) in 2019. Even topping out at 93 mph now, this is still too much of a nibbling profile to project him beyond a multi-inning swingman role. But now that he can wield his splitter as an out pitch to either side, it’s easier to see Griffin carving out a Tyler Alexander-shaped niche at the end of a pitching staff.

The prospect team gave Griffin a 35+ FV grade, suggesting he is unlikely to do much more than hoover up innings for the Nationals. But if there’s a club in need of some innings-hoovering, it’s the Nats, who have a bunch of question marks on the staff after MacKenzie Gore, and that’s assuming they hang onto Gore, which, who knows.

Caleb Ferguson

The second left-handed Caleb in this roundup is 10 years younger than his predecessor. Once a whiff chaser with shaky command, Ferguson leaned hard into contact suppression in 2025, scaling back his four-seamer against same-handed hitters while boosting the sinker to nearly 50% usage. At times, this worked great. His strikeout rate dropped over eight percentage points, but the heavy combination of sinkers and cutters gave Ferguson some of the lowest barrel rates and exit velocities in the league.

Chasing weak contact as a relief pitcher can be a blessing and a curse. Attacking the zone with three fastballs keeps the walks down and the extra base hits to a minimum. But it also means a big chunk of balls in play, and one day the BABIP gods will rise with vengeance and rain misery upon your poor ERA. Unfortunately, this happened to Ferguson at a crucial juncture. Plucked from Midwestern obscurity in Pittsburgh and thrust into a playoff push in Seattle, he initially performed well before running into a spate of poor performances in late August and early September. In a tight postseason race, that was that — Ferguson didn’t get many leverage opportunities for the remainder of the season, and his brief playoff work went terribly. Brought in to close down a seven-run lead in the ninth inning of ALDS Game 3, Ferguson allowed three runs without recording an out, requiring Dan Wilson to throw Andrés Muñoz on a day that he could’ve secured some crucial rest. It cannot be great for a reliever to get shelled on a big stage in his final moments before hitting the free market.

For most of his Mariners tenure, Ferguson was treated like a member of the B team, deployed mostly in losing efforts. Will the Reds, themselves a recent playoff club, trust him to handle leads in close games? It’s sort of on the edge. RosterResource sees Ferguson as the fourth arm out of the pen, behind Emilio Pagán, Tony Santillan, and Graham Ashcraft. Astute readers will note that all three of those guys throw baseballs with their right arm, and so Ferguson will assume the mantle of Most Trusted Lefty, prying that loosely held title from Sam Moll’s fingertips.


Here’s How I’m Planning on Evaluating Free Agency Predictions

Kyle Ross-Imagn Images

Every year, FanGraphs (in this case, I am FanGraph) releases contract predictions for our top 50 free agents. We also run a contract crowdsourcing project for those players, and I have to say, the crowd is spectacularly good at this. Last year, for example, I looked through all of the various predictions across the internet and awarded the crowd the title of best overall prognosticator.

But honestly, the winner of that award was hard to determine because I didn’t have a great way to evaluate the various predictions. Why so difficult? Because not every deal ended up being for the length we all predicted. As an example, I predicted 12 years and $48 million per year for Juan Soto, while the crowd predicted 13 years and $45 million per year. Soto signed a deal that was for 15 years and $51 million per year. Who was closest to the mark? It’s not immediately clear. I did better on the AAV, but the crowd did better on the number of years. There’s no obvious determining factor to use when comparing the two. Even worse, the two are inversely correlated; more years generally means a lower AAV. The two predictions seem pretty similar to me, but I had to grade AAVs and total guarantees separately, and that just felt clunky and confusing.

After some time bouncing ideas off my friends and colleagues, and plenty of time in the FanGraphs Idea Generation Lab (not real, but man, it should be), I think I have a solution. It’s simple, really. Evaluating contract predictions would be much easier if the predictions and the actual contract were for the same length, so I made them all the same length. Read the rest of this entry »


2026 ZiPS Projections: Cleveland Guardians

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 Cleveland Guardians.

Batters

The 2025 Cleveland Guardians proved that necromancy is, in fact, possible, and despite looking dead by the All-Star break, they went on a monumental late-season tear to close a 12 1/2-game gap in the AL Central over the last five weeks of the season. While the season ended in dissatisfying fashion, with the Guardians dropping the Wild Card Series in three games to the Detroit Tigers, just getting to the playoffs in 2025 felt like they were playing with house money. The fun of Cleveland’s postseason run did hide some serious problems with the team, though, most notably an offense that scored fewer runs than every team except the Pirates and Rockies. The Guardians may have made their big September surge without Emmanuel Clase’s services, but the loss of their best reliever — for what is looking more and more likely to be forever — removes a key part of their core. Cleveland did win 88 games, but the team was outscored by its opponents on the year, and the context of this sentence ought to indicate to you, fair reader, whether run differential or actual wins has more predictive value.

ZiPS projects the Guardians to have a lot of the same strengths and weaknesses as the Twins in 2026. On offense, ZiPS sees both teams as having one hitter it really likes, with José Ramírez being the healthier star compared to Byron Buxton. Then, each team has a couple position players the system likes, with Steven Kwan and the catchers — OK, Bo Naylor — standing in as Cleveland’s version of Luke Keaschall and the Minnesota catchers. But just like with the Twins, once you get past the top guys, ZiPS sees a whole lotta mid going ’round in Cleveland. Kyle Manzardo’s uneven platoon splits keep his ceiling fairly low, so the Guardians could use a lefty smasher to pair with him to make first base a plus position. Second base is fine at the moment, and it should be even better than that if Travis Bazzana, the computer’s preference, pushes for the job sooner rather than later.

The projections look most problematic at center field and designated hitter. Lots of teams slum it at DH, so I can see the Guardians just rolling with [insert mediocre burly batter here] at the position, but there’s probably at least some chance that they’ll make an upgrade in center. Harrison Bader is probably the most interesting option available, at least of the players that the Guardians could theoretically afford; I’d be really surprised to see them want to shell out the cash needed to bring in Cody Bellinger. Perhaps a trade is more likely for Cleveland than signing either free agent.

Put it all together and the Guardians have a below-average offense with some real highlights. Yes, I still think Ramírez is one of the most underrated players of this generation, and I’m already planning my social media meltdowns for 10-15 years from now when I see Hall of Fame ballots with his box unchecked. ZiPS is projecting him for yet another 20/20 season with more than 4 WAR, and considering he’s gone 30/40 with more than 6 WAR in each of the past two seasons, it wouldn’t be surprising to him exceed even ZiPS’ expectations for his age-33 season.

Pitchers

ZiPS is much more confident about the state of the Guardians pitching staff than the lineup. Even if neither pitcher really fits the mold of a typical ace, ZiPS expects both Tanner Bibee and Gavin Williams to surpass 3 WAR based on our Depth Chart playing time. There aren’t any big names in this rotation after Bibee and Williams, but ZiPS sees Slade Cecconi, Logan Allen, and Parker Messick as quietly competent starters. ZiPS has had a silicon-crush on Joey Cantillo for a while now, and led by Austin Peterson, the team has pretty good depth in the form of unexciting pitchers with generally decent command. These are the types that Cleveland, like the A’s, has historically produced like clockwork. Luis Ortiz has a good projection as well, but like Clase, it looks like he won’t ever pitch again in the majors or affiliated ball; the good news is the rotation is deep enough to withstand his likely absence.

Last year, ZiPS was quite taken with the Cleveland bullpen, projecting a 5.9 Depth Chart WAR over the winter. That’s one of those fortune-readings that worked out, as the Guardians actually beat that, finishing the season with 6.6 WAR out of the pen. Crossing out Clase, Sam Hentges, and Nic Enright takes this unit down a notch, but the Guardians still project to have a solid group of relievers. A good bullpen can have Cade Smith as its best reliever, and Hunter Gaddis, Erik Sabrowski, and Tim Herrin make for a darn good trio of lieutenants. ZiPS sees Cantillo as being very good when used in relief, and while he’ll have to break out to get a lot of innings in the majors, there are so many good upside scenarios for Franco Aleman that the computer is far less annoyed than you may expect about his walk rate in Triple-A. The only prominent denizen on the bullpen depth chart that ZiPS is uneasy about is Peyton Pallette, a Rule 5 draftee last week.

All told, the Guardians will likely end up at 80-85 wins, which puts them a little bit behind the Royals and Tigers, but not so far back that it would be crazy to see Cleveland surpass them in the standings.

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
José Ramírez B 33 3B 637 564 91 153 31 3 26 88 63 73 28 6
Steven Kwan L 28 LF 648 580 84 163 24 3 10 61 57 57 18 5
Bo Naylor L 26 C 434 380 53 82 19 1 16 52 47 103 3 2
Travis Bazzana L 23 2B 433 375 65 82 16 3 10 48 50 129 7 2
Kyle Manzardo L 25 DH 513 449 57 109 23 1 22 69 51 119 2 0
Cooper Ingle L 24 C 474 410 54 92 27 0 8 48 58 91 1 2
C.J. Kayfus L 24 1B 504 445 61 111 24 6 13 64 46 140 6 2
Brayan Rocchio B 25 SS 560 500 64 118 26 2 10 57 43 103 12 6
Nolan Jones L 28 RF 447 393 50 96 18 2 11 47 47 130 9 3
Gabriel Arias R 26 SS 444 408 46 94 19 2 13 49 26 136 7 4
Johnathan Rodríguez R 26 RF 503 454 56 115 19 2 17 66 44 143 2 2
Daniel Schneemann L 29 2B 429 383 50 85 19 2 11 43 41 115 8 3
Milan Tolentino L 24 SS 472 422 52 90 19 2 11 48 42 167 12 4
Juan Brito B 24 2B 516 452 62 102 23 1 12 56 51 105 7 6
Austin Hedges R 33 C 191 166 15 31 4 0 4 15 16 50 1 1
Angel Martínez B 24 CF 524 476 59 111 23 3 11 54 32 114 8 3
Kody Huff R 25 C 390 352 32 74 14 1 5 33 29 110 2 1
Alfonsin Rosario R 22 RF 512 462 60 102 19 2 18 66 38 182 8 2
Angel Genao B 22 SS 437 406 52 97 18 3 6 42 27 83 6 2
George Valera L 25 RF 342 305 40 72 13 1 11 39 33 99 1 1
Chase DeLauter L 24 RF 200 179 26 44 10 0 6 23 19 35 1 1
Christian Cairo R 25 3B 406 354 44 75 13 3 2 32 40 108 18 5
Will Wilson R 27 3B 423 381 44 81 14 1 9 41 30 116 4 2
Jacob Cozart L 23 C 400 358 38 73 13 2 7 38 33 113 0 0
Will Brennan L 28 RF 377 353 37 95 17 1 6 39 19 52 6 3
Kahlil Watson L 23 CF 431 386 49 82 15 3 14 53 35 142 11 6
Petey Halpin L 24 CF 528 481 67 106 20 3 10 51 39 159 9 3
Christian Knapczyk L 24 2B 520 464 53 102 15 3 4 46 41 121 6 4
Ralphy Velazquez L 21 1B 571 526 70 123 25 6 19 72 38 140 0 2
Wuilfredo Antunez L 24 RF 426 397 50 92 18 5 12 50 24 115 8 4
Jose Devers R 23 SS 507 475 57 97 22 2 9 49 25 164 8 4
David Fry R 30 DH 309 277 32 59 11 1 10 39 24 86 2 0
Esteban González L 23 LF 437 404 55 93 19 4 7 46 22 124 14 6
Nick Mitchell L 22 CF 356 316 43 68 7 4 3 30 31 69 12 3
Dom Nuñez L 31 C 278 238 25 40 9 1 4 22 33 94 1 1
Joe Lampe L 25 LF 469 424 48 91 18 4 7 44 34 126 11 3
Guy Lipscomb L 25 RF 389 351 45 78 14 1 4 33 30 82 15 5
Cameron Barstad L 25 C 274 249 21 49 12 0 5 29 17 110 1 0
Dayan Frias B 24 3B 468 418 45 83 16 1 6 39 41 138 8 5
Juan Benjamin B 23 3B 391 357 39 81 15 1 2 31 27 98 10 3
Yordys Valdes B 24 SS 387 358 37 71 12 2 5 32 19 130 9 2
Jhonkensy Noel R 24 1B 488 450 54 96 17 1 19 63 28 145 1 1
Jonah Advincula L 25 LF 371 319 40 66 9 3 4 31 40 75 20 5
Tyresse Turner B 26 3B 270 235 35 45 6 1 2 20 24 103 13 2
Jake Anchia R 29 C 248 233 24 45 9 0 5 23 10 87 1 0
Johnny Tincher R 24 C 244 219 15 39 9 0 1 17 18 63 1 1
Jorge Burgos L 23 1B 410 373 40 74 15 1 13 47 30 121 1 1
Micah Pries L 28 1B 345 312 39 65 13 3 8 38 24 91 4 4
Ryan Cesarini L 23 RF 428 382 43 79 12 4 4 37 35 83 15 4
Jaison Chourio B 21 CF 416 362 40 74 11 1 2 29 50 110 8 5
Jake Fox L 23 CF 398 357 42 70 13 4 4 30 37 106 7 2
Kyle Datres R 30 1B 300 264 28 52 8 0 5 28 29 92 7 3
Justin Boyd R 25 RF 108 96 10 15 4 0 0 7 9 47 1 0
Bennett Thompson R 23 C 373 335 37 67 16 1 4 32 28 76 3 3
Jeffrey Mercedes B 21 3B 343 316 23 64 12 2 3 27 20 83 3 1
Kevin Rivas B 23 1B 146 130 10 19 3 1 1 9 13 79 1 1
Kyle Dernedde R 25 2B 250 226 18 41 7 0 1 18 14 105 2 0
Maick Collado B 23 1B 351 318 28 68 10 1 3 26 26 67 2 1
Joe Naranjo L 25 1B 413 365 36 71 13 1 3 30 41 124 1 0
Alex Mooney R 23 SS 443 390 45 73 17 1 4 35 34 151 13 3
Garrett Howe L 23 SS 370 331 33 62 7 1 2 24 29 127 15 7

Batters – Advanced
Player PA BA OBP SLG OPS+ ISO BABIP Def WAR wOBA 3YOPS+ RC
José Ramírez 637 .271 .345 .475 125 .204 .273 4 4.4 .343 119 101
Steven Kwan 648 .281 .349 .384 104 .103 .298 11 3.0 .324 101 83
Bo Naylor 434 .216 .303 .397 93 .181 .253 2 1.8 .306 95 47
Travis Bazzana 433 .219 .322 .357 89 .138 .305 4 1.6 .304 95 45
Kyle Manzardo 513 .243 .324 .445 111 .202 .282 0 1.5 .331 113 65
Cooper Ingle 474 .224 .323 .349 88 .124 .270 -2 1.4 .302 91 47
C.J. Kayfus 504 .249 .328 .418 106 .169 .336 1 1.3 .325 108 63
Brayan Rocchio 560 .236 .304 .356 83 .120 .279 0 1.3 .292 85 59
Nolan Jones 447 .244 .330 .384 98 .140 .337 3 1.2 .314 97 53
Gabriel Arias 444 .230 .284 .382 83 .152 .313 1 1.1 .290 87 47
Johnathan Rodríguez 503 .253 .322 .416 104 .163 .333 -1 1.1 .321 105 62
Daniel Schneemann 429 .222 .299 .368 85 .146 .288 1 1.0 .294 83 45
Milan Tolentino 472 .213 .287 .346 75 .133 .324 2 1.0 .280 79 46
Juan Brito 516 .226 .310 .361 86 .135 .269 -1 0.9 .297 90 55
Austin Hedges 191 .187 .263 .283 53 .096 .241 10 0.8 .247 46 13
Angel Martínez 524 .233 .287 .363 80 .130 .285 1 0.6 .285 82 52
Kody Huff 390 .210 .278 .298 61 .088 .291 6 0.6 .259 63 30
Alfonsin Rosario 512 .221 .293 .387 87 .166 .321 2 0.5 .297 96 55
Angel Genao 437 .239 .286 .342 74 .103 .287 0 0.5 .276 78 42
George Valera 342 .236 .313 .393 95 .157 .313 0 0.5 .310 97 38
Chase DeLauter 200 .246 .315 .402 98 .156 .275 0 0.4 .313 100 23
Christian Cairo 406 .212 .302 .282 65 .070 .299 5 0.4 .268 67 36
Will Wilson 423 .213 .276 .325 67 .112 .281 6 0.4 .267 67 36
Jacob Cozart 400 .204 .280 .310 64 .106 .277 1 0.3 .265 70 31
Will Brennan 377 .269 .310 .374 90 .105 .302 1 0.3 .299 90 43
Kahlil Watson 431 .212 .286 .376 82 .164 .296 -5 0.2 .290 89 46
Petey Halpin 528 .220 .281 .337 71 .117 .308 1 0.2 .273 76 49
Christian Knapczyk 520 .220 .297 .291 65 .071 .289 2 0.0 .267 69 43
Ralphy Velazquez 571 .234 .291 .413 93 .179 .283 -3 0.0 .304 97 64
Wuilfredo Antunez 426 .232 .279 .393 84 .161 .296 1 0.0 .290 87 47
Jose Devers 507 .204 .250 .316 56 .112 .291 5 -0.1 .249 63 41
David Fry 309 .213 .288 .368 81 .155 .271 0 -0.2 .288 81 30
Esteban González 437 .230 .281 .349 74 .119 .315 3 -0.2 .277 78 45
Nick Mitchell 356 .215 .292 .291 64 .076 .266 -1 -0.2 .264 66 31
Dom Nuñez 278 .168 .275 .265 52 .097 .257 -1 -0.3 .250 52 18
Joe Lampe 469 .215 .280 .325 68 .110 .289 6 -0.3 .268 70 42
Guy Lipscomb 389 .222 .288 .302 65 .080 .279 4 -0.3 .265 68 36
Cameron Barstad 274 .197 .263 .305 58 .108 .328 -3 -0.4 .254 62 20
Dayan Frias 468 .199 .275 .285 57 .086 .281 4 -0.4 .253 62 36
Juan Benjamin 391 .227 .285 .291 62 .064 .307 0 -0.4 .259 64 33
Yordys Valdes 387 .198 .243 .285 47 .087 .296 4 -0.4 .234 53 27
Jhonkensy Noel 488 .213 .270 .382 79 .169 .269 0 -0.5 .284 83 47
Jonah Advincula 371 .207 .305 .292 68 .085 .258 -1 -0.5 .273 70 35
Tyresse Turner 270 .191 .277 .251 49 .060 .331 0 -0.5 .244 49 20
Jake Anchia 248 .193 .234 .296 46 .103 .284 -1 -0.6 .233 47 16
Johnny Tincher 244 .178 .250 .233 36 .055 .245 1 -0.6 .222 37 13
Jorge Burgos 410 .198 .263 .349 69 .151 .255 4 -0.6 .269 75 35
Micah Pries 345 .208 .276 .346 72 .138 .268 1 -0.6 .273 72 32
Ryan Cesarini 428 .207 .285 .291 61 .084 .254 3 -0.6 .261 66 36
Jaison Chourio 416 .204 .300 .257 58 .053 .288 -2 -0.7 .259 64 32
Jake Fox 398 .196 .271 .289 56 .093 .267 -1 -0.7 .252 63 30
Kyle Datres 300 .197 .287 .284 60 .087 .281 1 -0.7 .261 58 24
Justin Boyd 108 .156 .236 .198 23 .042 .306 0 -0.8 .204 32 5
Bennett Thompson 373 .200 .271 .290 56 .090 .247 -6 -0.9 .252 61 28
Jeffrey Mercedes 343 .203 .254 .282 49 .079 .265 1 -0.9 .238 55 24
Kevin Rivas 146 .146 .233 .208 24 .062 .360 -1 -1.2 .207 29 7
Kyle Dernedde 250 .181 .244 .226 32 .045 .333 -1 -1.2 .216 35 13
Maick Collado 351 .214 .274 .280 55 .066 .262 2 -1.2 .248 58 25
Joe Naranjo 413 .195 .280 .260 52 .065 .286 3 -1.3 .248 56 27
Alex Mooney 443 .187 .260 .267 47 .080 .294 -6 -1.4 .238 53 31
Garrett Howe 370 .187 .257 .233 38 .046 .297 -3 -1.4 .225 43 26

Batters – Top Near-Age Offensive Comps
Player Hit Comp 1 Hit Comp 2 Hit Comp 3
José Ramírez Barry Larkin Bill Madlock Frankie Frisch
Steven Kwan Adam Eaton Michael Brantley Gene Richards
Bo Naylor Ed Kirkpatrick Darrell Porter Fred Walters
Travis Bazzana Robert Hewes Rance Mulliniks Tim Barker
Kyle Manzardo Sid Bream Rhys Hoskins Mark Teixeira
Cooper Ingle Jim French Bill Hance Bruce Look
C.J. Kayfus Dan Briggs Kole Calhoun Daryl Sconiers
Brayan Rocchio Dick Schofield Derrel Thomas Chris Coghlan
Nolan Jones Mike Hegan Larry Harlow Jacob Robson
Gabriel Arias Roberto Mejia Kurt Abbott Kevin Smith
Johnathan Rodríguez Lee Walls Mike Shannon Jeremy Hermida
Daniel Schneemann Brad Tyler Tug Hulett Wayne Terwilliger
Milan Tolentino Tim Barker Robby Thompson Antonio Perez
Juan Brito Felipe Crespo Ralph Milliard Steve Staggs
Austin Hedges Carlos Maldonado Sandy León Mike Knapp
Angel Martínez George Wright Charlie Chant Vernon Wells
Kody Huff Joe McCabe Andy Skeels Carl Nichols
Alfonsin Rosario Horace Speed Alonzo Powell Edward Cook
Angel Genao Frank Kostro Tony Medrano Juan Castro
George Valera Jim Nettles Dan Duran Benjamin Downs
Chase DeLauter Vinnie Pasquantino Tom Hutton Barry Butera
Christian Cairo Bill Crone Mike Mesh Bobby Knecht
Will Wilson Bob O’Connor Grant Buckner Rob Sperring
Jacob Cozart Lloyd McClendon Chris Cannizzaro Juan Gutierrez
Will Brennan Buddy Hassett Timo Perez Leon Brown
Kahlil Watson Ike Blessitt Mike Patterson Nelson Mathews
Petey Halpin Tito Nanni Clete Thomas Terrence Long
Christian Knapczyk Jake Peter Nate Mondou Ryne Birk
Ralphy Velazquez Jim Spencer Ismael Oquendo Fred Whitfield
Wuilfredo Antunez Scott Cousins Nic Jackson Raul Mondesi
Jose Devers Adrian Marin Pedro Florimón Tommy Murphy
David Fry Tagg Bozied Jabari Henry Jeff Liefer
Esteban González Jason Repko Connor Scott Daniel Johnson
Nick Mitchell Chris Prieto Devyn Bolasky John Finn
Dom Nuñez Craig Kuzmic Del Bates Fred Walters
Joe Lampe Cam Gibson Ka’ai Tom Jon Hamilton
Guy Lipscomb Kevin Long Scott Podsednik Doug Schutt
Cameron Barstad Francisco Morales Jacob Wallis Jeff Arnold
Dayan Frias Andy Fox Niko Goodrum John Damon
Juan Benjamin Tony Giarratano Bryan Hoppie Harold Reichenbach
Yordys Valdes Jason Smith Jerry Gil Andres Duncan
Jhonkensy Noel John Scoras Mike Fitzgerald Dave Koza
Jonah Advincula Ryan Rogowski Chris Prieto John Gibbons
Tyresse Turner Jose Sandoval Eric Pringle Kris Goodman
Jake Anchia Josh Johnson Jeff Mathis Tom Gregorio
Johnny Tincher Ricky Gonzalez Tony DeFrancesco Tanner Murphy
Jorge Burgos Bill Haynes Joe De Berry Will Love
Micah Pries Scott Youngbauer Mike Sarbaugh Steve Rinaudo
Ryan Cesarini Brian Ralph Pin-Chieh Chen Eddie Milner
Jaison Chourio Corey Wright Donald Ellis Tommy Toman
Jake Fox Mark Budzinski Rick Prieto James Ramsay
Kyle Datres Chick Fewster Josh Prince Tillman Pugh
Justin Boyd Keith Eaddy Wil Sowers Troy Sieber
Bennett Thompson Jason Fennell Joe Hudson Mike Durant
Jeffrey Mercedes Matt Kata Jerry Salzano Chuck Scrivener
Kevin Rivas Tyler Gibson Daniel Lopez Darwinson Salazar
Kyle Dernedde Matt Nuzzo Jason Benyo Ryan Priddy
Maick Collado Jeffrey Ronevich Kenneth Hamann Steven Wagner
Joe Naranjo Brett McMillan Ryan Rieger Reed Eastley
Alex Mooney Brent Brewer Brett King Edwin Maysonet
Garrett Howe Orlando Ramirez Steve Garrabrants Marcus Sanders

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
José Ramírez .296 .371 .530 144 6.0 .251 .323 .429 107 2.9
Steven Kwan .311 .377 .419 122 4.6 .254 .319 .349 88 1.8
Bo Naylor .244 .331 .457 116 3.0 .191 .273 .336 71 0.6
Travis Bazzana .246 .348 .403 107 2.6 .196 .297 .308 68 0.5
Kyle Manzardo .267 .346 .497 130 2.7 .219 .300 .388 92 0.4
Cooper Ingle .252 .355 .406 109 2.6 .196 .301 .302 70 0.3
C.J. Kayfus .276 .351 .471 126 2.5 .226 .307 .370 89 0.3
Brayan Rocchio .261 .329 .408 102 2.6 .209 .278 .317 66 0.2
Nolan Jones .268 .351 .431 116 2.2 .216 .301 .340 80 0.2
Gabriel Arias .258 .308 .433 105 2.3 .204 .256 .333 63 0.0
Johnathan Rodriguez .283 .349 .467 124 2.4 .224 .292 .365 84 -0.2
Daniel Schneemann .248 .324 .425 104 2.0 .191 .268 .322 64 -0.1
Milan Tolentino .241 .314 .396 95 2.1 .188 .264 .295 57 -0.1
Juan Brito .249 .337 .417 107 2.2 .202 .287 .319 69 -0.1
Austin Hedges .216 .293 .331 72 1.3 .159 .235 .238 35 0.4
Angel Martínez .256 .310 .404 95 1.6 .207 .262 .321 63 -0.5
Kody Huff .245 .309 .343 81 1.5 .182 .249 .259 43 -0.3
Alfonsin Rosario .246 .317 .443 108 1.8 .195 .268 .340 70 -0.7
Angel Genao .264 .307 .382 90 1.4 .214 .262 .301 59 -0.4
George Valera .261 .337 .447 115 1.3 .209 .284 .348 78 -0.2
Chase DeLauter .272 .338 .448 116 0.8 .220 .287 .350 77 -0.1
Christian Cairo .238 .329 .321 82 1.2 .187 .280 .252 50 -0.3
Will Wilson .237 .302 .370 85 1.4 .187 .250 .282 48 -0.6
Jacob Cozart .234 .308 .367 86 1.4 .177 .250 .272 47 -0.5
Will Brennan .301 .339 .416 109 1.3 .238 .279 .328 70 -0.6
Kahlil Watson .237 .312 .422 102 1.2 .187 .263 .331 65 -0.7
Petey Halpin .246 .310 .383 89 1.4 .196 .257 .299 55 -0.8
Christian Knapczyk .245 .324 .324 81 0.9 .196 .276 .253 49 -1.1
Ralphy Velazquez .262 .317 .463 113 1.5 .208 .266 .360 73 -1.3
Wuilfredo Antunez .260 .306 .440 104 1.1 .206 .255 .349 68 -0.9
Jose Devers .229 .277 .363 72 1.0 .179 .225 .270 37 -1.3
David Fry .237 .311 .415 99 0.5 .188 .264 .320 64 -0.9
Esteban González .257 .309 .399 94 0.9 .209 .260 .317 60 -1.0
Nick Mitchell .246 .324 .340 84 0.7 .190 .267 .253 49 -0.9
Dom Nuñez .197 .307 .314 71 0.5 .144 .244 .225 33 -1.0
Joe Lampe .240 .307 .368 86 0.8 .192 .255 .291 52 -1.2
Guy Lipscomb .248 .310 .344 81 0.5 .199 .263 .270 49 -1.1
Cameron Barstad .228 .293 .349 76 0.2 .168 .235 .260 38 -1.1
Dayan Frias .227 .299 .326 74 0.7 .176 .249 .244 40 -1.4
Juan Benjamin .253 .312 .331 79 0.5 .199 .259 .255 45 -1.2
Yordys Valdes .220 .265 .323 61 0.2 .170 .218 .246 29 -1.4
Jhonkensy Noel .240 .295 .432 97 0.6 .187 .246 .336 59 -1.7
Jonah Advincula .231 .334 .328 84 0.4 .183 .281 .255 53 -1.1
Tyresse Turner .221 .301 .290 66 0.1 .161 .246 .213 31 -1.1
Jake Anchia .226 .267 .350 67 0.1 .166 .205 .254 28 -1.2
Johnny Tincher .207 .281 .271 54 -0.1 .150 .224 .196 19 -1.2
Jorge Burgos .227 .292 .398 88 0.4 .176 .240 .304 53 -1.4
Micah Pries .237 .303 .395 93 0.3 .187 .252 .305 56 -1.3
Ryan Cesarini .234 .314 .336 79 0.4 .178 .262 .248 43 -1.6
Jaison Chourio .238 .334 .301 78 0.3 .177 .273 .220 41 -1.5
Jake Fox .223 .301 .336 75 0.2 .169 .245 .251 39 -1.5
Kyle Datres .224 .316 .331 81 0.0 .169 .256 .247 43 -1.5
Justin Boyd .183 .262 .234 40 -0.5 .127 .207 .160 5 -1.0
Bennett Thompson .228 .299 .339 76 0.0 .172 .240 .249 38 -1.9
Jeffrey Mercedes .233 .287 .332 71 0.0 .176 .227 .242 32 -1.7
Kevin Rivas .181 .267 .262 47 -0.8 .114 .200 .161 5 -1.6
Kyle Dernedde .210 .268 .260 47 -0.7 .155 .217 .188 16 -1.7
Maick Collado .242 .303 .314 73 -0.4 .188 .248 .243 39 -1.9
Joe Naranjo .223 .310 .296 70 -0.4 .172 .254 .228 36 -2.2
Alex Mooney .211 .285 .305 64 -0.4 .161 .233 .228 30 -2.4
Garrett Howe .213 .283 .264 54 -0.7 .159 .230 .198 24 -2.1

Batters – Platoon Splits
Player BA vs. L OBP vs. L SLG vs. L BA vs. R OBP vs. R SLG vs. R
José Ramírez .276 .340 .483 .269 .348 .472
Steven Kwan .275 .340 .376 .284 .353 .388
Bo Naylor .203 .286 .347 .221 .311 .420
Travis Bazzana .216 .316 .333 .220 .324 .366
Kyle Manzardo .226 .303 .380 .250 .332 .474
Cooper Ingle .209 .302 .318 .230 .331 .360
C.J. Kayfus .241 .315 .397 .252 .332 .426
Brayan Rocchio .240 .304 .371 .234 .304 .348
Nolan Jones .236 .317 .366 .248 .336 .393
Gabriel Arias .232 .291 .391 .230 .281 .377
Johnathan Rodríguez .265 .337 .464 .248 .314 .393
Daniel Schneemann .207 .279 .345 .228 .308 .378
Milan Tolentino .203 .272 .293 .217 .293 .368
Juan Brito .230 .307 .365 .224 .311 .359
Austin Hedges .189 .279 .264 .186 .256 .292
Angel Martínez .238 .290 .369 .231 .286 .360
Kody Huff .218 .286 .317 .207 .275 .291
Alfonsin Rosario .227 .301 .398 .219 .290 .383
Angel Genao .239 .280 .350 .239 .288 .339
George Valera .216 .289 .343 .246 .325 .419
Chase DeLauter .224 .291 .327 .254 .324 .431
Christian Cairo .211 .311 .289 .213 .298 .279
Will Wilson .216 .283 .328 .211 .272 .324
Jacob Cozart .200 .270 .310 .205 .284 .310
Will Brennan .257 .295 .324 .274 .317 .395
Kahlil Watson .204 .272 .379 .216 .291 .375
Petey Halpin .206 .261 .298 .226 .289 .353
Christian Knapczyk .208 .284 .283 .224 .301 .294
Ralphy Velazquez .229 .283 .393 .236 .294 .420
Wuilfredo Antunez .225 .266 .343 .234 .284 .410
Jose Devers .210 .257 .341 .202 .248 .306
David Fry .219 .299 .375 .208 .279 .362
Esteban González .224 .282 .308 .232 .281 .364
Nick Mitchell .200 .274 .282 .221 .299 .294
Dom Nuñez .154 .253 .231 .173 .284 .277
Joe Lampe .196 .259 .280 .221 .287 .341
Guy Lipscomb .215 .275 .280 .225 .292 .310
Cameron Barstad .188 .250 .275 .200 .268 .317
Dayan Frias .202 .275 .290 .197 .274 .282
Juan Benjamin .232 .287 .303 .225 .285 .287
Yordys Valdes .205 .250 .286 .195 .240 .285
Jhonkensy Noel .217 .277 .395 .211 .267 .376
Jonah Advincula .198 .286 .279 .210 .312 .296
Tyresse Turner .191 .267 .265 .192 .280 .246
Jake Anchia .203 .247 .316 .188 .227 .286
Johnny Tincher .176 .250 .221 .179 .250 .238
Jorge Burgos .190 .259 .314 .201 .265 .362
Micah Pries .202 .270 .317 .212 .279 .361
Ryan Cesarini .198 .274 .277 .210 .289 .295
Jaison Chourio .206 .293 .265 .204 .303 .254
Jake Fox .188 .252 .267 .199 .279 .297
Kyle Datres .205 .295 .313 .193 .283 .271
Justin Boyd .161 .235 .194 .154 .236 .200
Bennett Thompson .206 .281 .284 .197 .266 .292
Jeffrey Mercedes .198 .245 .286 .204 .257 .280
Kevin Rivas .163 .250 .186 .138 .224 .218
Kyle Dernedde .181 .241 .222 .182 .246 .227
Maick Collado .215 .275 .280 .213 .274 .280
Joe Naranjo .193 .268 .254 .195 .285 .263
Alex Mooney .195 .270 .265 .184 .256 .267
Garrett Howe .180 .245 .202 .190 .261 .244

Pitchers – Standard
Player T Age W L ERA G GS IP H ER HR BB SO
Tanner Bibee R 27 11 9 3.71 28 28 165.0 150 68 21 48 153
Gavin Williams R 26 9 7 3.59 29 29 150.3 128 60 18 62 154
Parker Messick L 25 7 7 3.98 26 25 124.3 118 55 17 42 120
Logan Allen L 27 8 9 4.13 27 26 139.3 138 64 18 53 116
Cade Smith R 27 8 3 2.71 68 0 69.7 50 21 5 22 93
Joey Cantillo L 26 6 4 3.65 33 18 106.0 91 43 13 47 118
Emmanuel Clase R 28 6 2 2.69 61 0 60.3 49 18 4 13 59
Luis L. Ortiz R 27 7 7 3.98 23 17 106.3 96 47 14 43 102
Austin Peterson R 26 6 8 4.00 25 24 125.7 132 61 19 32 92
Hunter Gaddis R 28 4 4 3.65 56 7 81.3 71 33 10 26 80
Slade Cecconi R 27 6 8 4.38 26 22 125.3 124 61 20 31 105
Will Dion L 26 5 5 4.15 27 17 97.7 98 45 12 33 79
Yorman Gómez R 23 6 7 4.40 25 16 108.3 108 53 14 42 89
Josh Hartle L 23 6 7 4.41 23 23 102.0 102 50 13 36 77
Trenton Denholm R 26 7 8 4.43 23 18 111.7 121 55 16 30 75
Ryan Webb L 27 5 7 4.54 24 19 103.0 102 52 14 47 88
Khal Stephen R 23 5 5 4.42 20 19 89.7 89 44 13 28 73
Kolby Allard L 28 3 3 4.10 31 11 85.7 89 39 12 26 66
Doug Nikhazy L 26 5 7 4.50 22 19 90.0 87 45 12 47 81
Jakob Junis R 33 3 3 3.71 41 4 70.3 68 29 8 18 60
Rodney Boone L 26 4 5 4.44 17 16 71.0 73 35 11 24 55
Ben Lively R 34 5 6 4.57 17 16 84.7 87 43 13 29 62
Tim Herrin L 29 5 3 3.54 60 0 56.0 46 22 5 26 59
Vince Velasquez R 34 3 4 4.48 16 13 62.3 61 31 10 28 60
Triston McKenzie R 28 4 6 4.66 23 17 85.0 82 44 15 45 80
Rorik Maltrud R 26 4 4 4.66 19 17 67.7 69 35 10 30 55
Peyton Pallette R 25 3 3 4.41 41 6 63.3 57 31 9 28 64
Aaron Davenport R 25 5 7 4.97 24 21 112.3 116 62 18 51 85
Franco Aleman R 26 4 3 3.95 33 1 41.0 36 18 5 18 46
Nic Enright R 29 2 2 3.86 30 0 37.3 35 16 5 13 35
John Means L 33 2 2 4.50 9 9 36.0 37 18 6 9 24
Erik Sabrowski L 28 2 2 3.95 41 1 43.3 34 19 5 27 53
Colin Holderman R 30 3 2 4.02 44 1 47.0 43 21 5 20 45
Dylan DeLucia R 25 4 7 4.97 20 18 83.3 85 46 14 32 65
Trevor Stephan R 30 3 4 4.12 40 1 39.3 38 18 5 15 37
Andrew Walters R 25 2 2 4.15 45 1 43.3 35 20 6 23 51
Carlos Hernández R 29 2 2 4.34 45 3 58.0 54 28 7 26 55
Jack Leftwich R 27 3 4 4.56 30 5 49.3 51 25 7 20 38
Matt Festa R 33 4 4 4.09 55 0 55.0 49 25 7 20 55
Connor Brogdon R 31 3 3 4.25 51 1 59.3 56 28 9 25 62
Davis Sharpe R 26 4 4 4.50 38 3 62.0 64 31 9 20 48
Jake Miller R 25 4 4 4.47 35 3 52.3 55 26 7 19 37
Andrew Misiaszek L 28 2 1 4.37 26 1 35.0 33 17 4 17 32
Carter Spivey R 26 2 3 5.05 18 13 66.0 72 37 10 30 41
Matt Jachec R 24 3 2 4.14 29 0 45.7 47 21 6 16 36
Tanner Burns R 27 3 3 4.77 29 5 54.7 56 29 8 28 42
Magnus Ellerts R 25 2 2 4.30 35 0 44.0 40 21 6 23 45
Mason Hickman R 27 2 4 4.61 26 2 41.0 40 21 6 22 38
Luis Frías R 28 2 1 4.57 35 1 41.3 41 21 5 21 39
Tommy Mace R 27 5 8 5.31 25 19 96.7 106 57 15 53 61
Nick Mikolajchak R 28 2 2 4.73 30 0 32.3 33 17 4 16 24
Alaska Abney R 26 2 2 4.66 30 0 36.7 36 19 5 15 30
Ross Carver R 26 2 4 5.02 29 6 61.0 61 34 9 29 49
Steven Pérez L 25 2 3 4.61 34 0 52.7 53 27 8 23 45
Zane Morehouse R 26 3 4 4.63 40 0 44.7 44 23 6 21 39
Zach Jacobs R 24 3 4 4.99 34 3 61.3 62 34 10 26 46
Adam Tulloch L 25 2 2 5.24 29 4 55.0 57 32 8 33 43
Tyler Thornton R 25 1 3 5.14 30 0 35.0 31 20 5 21 35
Shawn Rapp L 25 1 2 5.40 24 0 30.0 30 18 4 17 21
Alonzo Richardson R 23 2 2 5.43 23 5 69.7 79 42 10 35 36
Jack Jasiak R 25 4 5 4.99 34 0 61.3 66 34 10 23 45

Pitchers – Advanced
Player IP K/9 BB/9 HR/9 BB% K% BABIP ERA+ 3ERA+ FIP ERA- WAR
Tanner Bibee 165.0 8.3 2.6 1.1 7.0% 22.3% .281 114 114 3.96 88 2.8
Gavin Williams 150.3 9.2 3.7 1.1 9.7% 24.2% .277 118 118 4.01 85 2.7
Parker Messick 124.3 8.7 3.0 1.2 7.9% 22.6% .293 106 110 4.22 94 1.8
Logan Allen 139.3 7.5 3.4 1.2 8.8% 19.3% .291 102 103 4.43 98 1.7
Cade Smith 69.7 12.0 2.8 0.6 7.9% 33.2% .287 156 152 2.59 64 1.6
Joey Cantillo 106.0 10.0 4.0 1.1 10.3% 25.9% .288 116 117 3.95 86 1.6
Emmanuel Clase 60.3 8.8 1.9 0.6 5.4% 24.4% .276 158 152 2.82 63 1.5
Luis L. Ortiz 106.3 8.6 3.6 1.2 9.5% 22.5% .281 106 107 4.28 94 1.4
Austin Peterson 125.7 6.6 2.3 1.4 6.0% 17.3% .291 97 100 4.55 103 1.3
Hunter Gaddis 81.3 8.9 2.9 1.1 7.7% 23.7% .279 116 117 3.94 86 1.2
Slade Cecconi 125.3 7.5 2.2 1.4 5.9% 20.0% .284 97 99 4.42 103 1.2
Will Dion 97.7 7.3 3.0 1.1 7.9% 18.8% .294 102 105 4.22 98 1.2
Yorman Gómez 108.3 7.4 3.5 1.2 8.9% 18.9% .292 96 103 4.47 104 1.1
Josh Hartle 102.0 6.8 3.2 1.1 8.2% 17.6% .287 96 101 4.66 104 1.0
Trenton Denholm 111.7 6.0 2.4 1.3 6.3% 15.6% .295 95 99 4.57 105 1.0
Ryan Webb 103.0 7.7 4.1 1.2 10.3% 19.3% .292 93 97 4.82 108 0.9
Khal Stephen 89.7 7.3 2.8 1.3 7.3% 19.2% .287 96 103 4.42 104 0.9
Kolby Allard 85.7 6.9 2.7 1.3 7.0% 17.9% .294 103 106 4.39 97 0.9
Doug Nikhazy 90.0 8.1 4.7 1.2 11.6% 20.0% .291 94 98 4.76 106 0.8
Jakob Junis 70.3 7.7 2.3 1.0 6.1% 20.4% .291 114 110 3.87 88 0.8
Rodney Boone 71.0 7.0 3.0 1.4 7.8% 17.8% .288 95 99 4.77 105 0.7
Ben Lively 84.7 6.6 3.1 1.4 8.0% 17.0% .286 93 88 4.83 108 0.7
Tim Herrin 56.0 9.5 4.2 0.8 10.8% 24.6% .281 120 118 3.82 83 0.6
Vince Velasquez 62.3 8.7 4.0 1.4 10.2% 21.8% .293 95 88 4.77 106 0.6
Triston McKenzie 85.0 8.5 4.8 1.6 11.7% 20.8% .284 91 93 5.23 110 0.5
Rorik Maltrud 67.7 7.3 4.0 1.3 10.0% 18.3% .292 91 96 4.88 110 0.5
Peyton Pallette 63.3 9.1 4.0 1.3 10.3% 23.4% .282 96 102 4.55 104 0.4
Aaron Davenport 112.3 6.8 4.1 1.4 10.2% 17.0% .287 85 90 5.28 117 0.4
Franco Aleman 41.0 10.1 4.0 1.1 10.2% 26.0% .295 107 109 4.04 93 0.3
Nic Enright 37.3 8.4 3.1 1.2 8.2% 22.2% .288 110 110 4.15 91 0.3
John Means 36.0 6.0 2.3 1.5 6.0% 15.9% .277 94 90 4.91 106 0.3
Erik Sabrowski 43.3 11.0 5.6 1.0 14.1% 27.7% .282 107 109 4.22 93 0.3
Colin Holderman 47.0 8.6 3.8 1.0 9.8% 22.1% .290 105 104 4.16 95 0.3
Dylan DeLucia 83.3 7.0 3.5 1.5 8.9% 18.0% .284 85 89 5.12 117 0.2
Trevor Stephan 39.3 8.5 3.4 1.1 8.9% 21.9% .297 103 101 4.31 97 0.2
Andrew Walters 43.3 10.6 4.8 1.2 12.4% 27.4% .276 102 109 4.41 98 0.2
Carlos Hernández 58.0 8.5 4.0 1.1 10.3% 21.7% .290 97 98 4.28 103 0.2
Jack Leftwich 49.3 6.9 3.7 1.3 9.2% 17.5% .293 93 95 4.74 108 0.2
Matt Festa 55.0 9.0 3.3 1.1 8.6% 23.7% .284 103 98 4.13 97 0.2
Connor Brogdon 59.3 9.4 3.8 1.4 9.7% 24.0% .296 100 97 4.41 100 0.2
Davis Sharpe 62.0 7.0 2.9 1.3 7.4% 17.8% .293 94 97 4.71 106 0.1
Jake Miller 52.3 6.4 3.3 1.2 8.3% 16.1% .293 95 98 4.69 106 0.1
Andrew Misiaszek 35.0 8.2 4.4 1.0 11.0% 20.8% .290 97 100 4.45 103 0.1
Carter Spivey 66.0 5.6 4.1 1.4 10.1% 13.8% .290 84 87 5.44 119 0.1
Matt Jachec 45.7 7.1 3.2 1.2 8.0% 18.0% .295 102 106 4.41 98 0.1
Tanner Burns 54.7 6.9 4.6 1.3 11.3% 17.0% .289 89 91 5.18 112 0.1
Magnus Ellerts 44.0 9.2 4.7 1.2 11.6% 22.7% .288 99 103 4.60 101 0.0
Mason Hickman 41.0 8.3 4.8 1.3 12.0% 20.7% .293 92 95 4.97 109 0.0
Luis Frías 41.3 8.5 4.6 1.1 11.2% 20.9% .305 93 95 4.52 108 0.0
Tommy Mace 96.7 5.7 4.9 1.4 11.9% 13.7% .292 80 83 5.75 125 0.0
Nick Mikolajchak 32.3 6.7 4.5 1.1 11.0% 16.4% .290 89 93 4.77 112 -0.1
Alaska Abney 36.7 7.4 3.7 1.2 9.4% 18.9% .287 91 94 4.85 110 -0.1
Ross Carver 61.0 7.2 4.3 1.3 10.6% 17.9% .287 84 88 5.25 119 -0.1
Steven Pérez 52.7 7.7 3.9 1.4 9.7% 19.1% .292 92 96 4.85 109 -0.1
Zane Morehouse 44.7 7.9 4.2 1.2 10.4% 19.3% .292 91 95 4.91 110 -0.1
Zach Jacobs 61.3 6.8 3.8 1.5 9.6% 17.0% .281 85 91 5.30 118 -0.2
Adam Tulloch 55.0 7.0 5.4 1.3 13.0% 16.9% .293 81 85 5.62 124 -0.3
Tyler Thornton 35.0 9.0 5.4 1.3 13.4% 22.3% .277 82 87 5.42 122 -0.3
Shawn Rapp 30.0 6.3 5.1 1.2 12.5% 15.4% .280 78 83 5.70 128 -0.3
Alonzo Richardson 69.7 4.6 4.5 1.3 10.8% 11.1% .292 78 83 5.59 128 -0.4
Jack Jasiak 61.3 6.6 3.4 1.5 8.5% 16.7% .295 85 90 5.19 118 -0.4

Pitchers – Top Near-Age Comps
Player Pit Comp 1 Pit Comp 2 Pit Comp 3
Tanner Bibee José Berríos Matt Garza Jack McDowell
Gavin Williams Ron Darling Dean Chance Carlos Martinez
Parker Messick Mike Sirotka Jordan Montgomery Sean Manaea
Logan Allen Darren Oliver Kyle Hart Jeff Locke
Cade Smith Mariano Rivera Bob James Danny Frisella
Joey Cantillo Hector Santiago Drew Pomeranz Darrell Jackson
Emmanuel Clase Héctor Rondón Hunter Strickland Bobby Jenks
Luis L. Ortiz Eric Show Rubby De La Rosa Michael Wacha
Austin Peterson Brian Meadows Virgil Vasquez Matt Swarmer
Hunter Gaddis Al Benton Vladimir Nunez Gene Nelson
Slade Cecconi Matt Wisler Luke Hochevar Phil Hughes
Will Dion Randy Lerch Sam McConnell Denis Boucher
Yorman Gómez Paul Stewart Mike Nannini Nate Minchey
Josh Hartle Eric Fowler Kent Murphy Denis Boucher
Trenton Denholm Andrew Moore Kyle Middleton Tyler Eppler
Ryan Webb Ken Reynolds Justin Hampson Trevor Lubking
Khal Stephen Isaac Anderson Kyle Jackson Jesus Castillo
Kolby Allard Mike Caldwell Mike Bacsik J.D. Arteaga
Doug Nikhazy Ken Reynolds Bill Boemler Dave Owen
Jakob Junis Dave Schmidt Rene Arocha Bob Stanley
Rodney Boone Bryan Braswell Wes Benjamin Alan Viebrock
Ben Lively Bob Porterfield Joaquin Andujar Jack Knott
Tim Herrin Sam Freeman Jeff Calhoun Mike Mohler
Vince Velasquez Danny Cox Red Munger Marty McLeary
Triston McKenzie Claudio Vargas Dave Sisler Rich Gale
Rorik Maltrud T.J. Stanton Rocky Cherry Paul Brown
Peyton Pallette Wei-Chieh Huang Alexander Guillen Armando Rodriguez
Aaron Davenport David Hess Gerson Garabito Jordan Milbrath
Franco Aleman Aris Tirado Enosil Tejeda Ian Kadish
Nic Enright Randy St. Claire Pete Appleton Jack Aker
John Means Lefty Tyler Lefty Stewart Hal Newhouser
Erik Sabrowski Kevin Siegrist Renyel Pinto Al Osuna
Colin Holderman Jacob Barnes Jimmy Cordero Chris Ray
Dylan DeLucia Buck Ross Matt Petersen Tommy Wilson
Trevor Stephan Dick Colpaert Randy Veres Federico Castaneda
Andrew Walters Gary Neibauer Pete Ladd Mark Acre
Carlos Hernández JC Ramírez Tom Wilhelmsen Mitchell Boggs
Jack Leftwich Cecilio Garibaldi Ed Reilly Kevin Fynan
Matt Festa Tom Hume Bobby Bolin Al Worthington
Connor Brogdon Sheldon Jones Barry Latman Julio Santana
Davis Sharpe Chad Blackwell Ricky Rojas Sam Bragg
Jake Miller Mark Randall Freddie Davis Nolan Blackwood
Andrew Misiaszek Felix Heredia Don Leshnock Len Whitehouse
Carter Spivey Mark Heuer Cory Taylor Matt Summers
Matt Jachec Cary Hiles Rodney Ormond Steven Fair
Tanner Burns Edgar Martinez A.J. Morris Gary Parmenter
Magnus Ellerts Jake Cosart Jeff Jones Ryan Prahm
Mason Hickman Fernando Zarranz Jim Henderson Mark Voisard
Luis Frías R.J. Rodriguez Josh Judy Carlos Chavez
Tommy Mace Dace Kime Stephen McCray Scott Lyman
Nick Mikolajchak Terry Cornutt Paul Thorp Dave Sells
Alaska Abney Dan Brown Mike Sullivan Brian Otten
Ross Carver Dick Lange Jeremy King Fernando Zarranz
Steven Pérez Hunter Schryver Dave Dowling Derron Spiller
Zane Morehouse Marcus Hostetler Justin Barnes Aaron Kurcz
Zach Jacobs Matty Ott Howie Judson Pete Sivess
Adam Tulloch Marty Schreiber Troy Carrasco Jeff Kelly
Tyler Thornton Dick Drott Gene Pentz Dave Beard
Shawn Rapp Jeffery Sunderlage Rick Williams Bob O’Brien
Alonzo Richardson Trey Watten Trevor Mallory Tayler Scott
Jack Jasiak Austin Fleet Brandon Braboy Francisco Jimenez

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
Tanner Bibee .245 .309 .412 .230 .284 .377 3.9 1.7 3.23 4.32
Gavin Williams .215 .310 .367 .236 .303 .378 3.8 1.5 3.09 4.24
Parker Messick .210 .276 .370 .257 .326 .419 2.6 0.9 3.48 4.63
Logan Allen .218 .291 .352 .264 .333 .435 2.6 0.6 3.64 4.75
Cade Smith .181 .256 .284 .207 .282 .307 2.5 0.7 1.95 3.71
Joey Cantillo .243 .328 .383 .220 .302 .376 2.4 0.7 3.14 4.35
Emmanuel Clase .217 .257 .330 .220 .273 .314 2.0 0.8 2.10 3.54
Luis L. Ortiz .247 .332 .435 .226 .297 .362 2.1 0.7 3.50 4.59
Austin Peterson .247 .303 .390 .276 .318 .484 2.1 0.5 3.81 5.01
Hunter Gaddis .230 .308 .396 .231 .292 .367 1.8 0.4 3.12 4.52
Slade Cecconi .250 .306 .442 .256 .298 .429 2.0 0.4 3.82 4.95
Will Dion .229 .292 .381 .265 .323 .422 1.8 0.4 3.67 4.84
Yorman Gómez .255 .337 .440 .250 .312 .389 1.7 0.4 3.97 4.92
Josh Hartle .237 .308 .336 .262 .338 .450 1.6 0.4 3.94 4.92
Trenton Denholm .267 .321 .446 .270 .312 .435 1.6 0.3 3.95 5.01
Ryan Webb .248 .324 .388 .255 .347 .433 1.6 0.1 3.98 5.22
Khal Stephen .247 .315 .416 .255 .300 .431 1.4 0.3 3.86 5.02
Kolby Allard .267 .318 .455 .258 .310 .421 1.3 0.1 3.60 4.90
Doug Nikhazy .238 .319 .390 .252 .347 .423 1.4 0.2 4.00 5.08
Jakob Junis .261 .320 .418 .236 .285 .364 1.3 0.2 3.04 4.59
Rodney Boone .267 .326 .419 .255 .319 .444 1.1 0.1 3.96 5.10
Ben Lively .268 .345 .465 .257 .305 .429 1.2 0.1 4.04 5.34
Tim Herrin .194 .299 .269 .234 .327 .383 1.1 -0.1 2.89 4.48
Vince Velasquez .265 .349 .442 .237 .313 .420 0.9 0.0 3.88 5.33
Triston McKenzie .250 .339 .434 .249 .343 .463 1.2 -0.2 4.06 5.38
Rorik Maltrud .258 .345 .419 .257 .325 .438 0.9 0.0 4.17 5.27
Peyton Pallette .225 .320 .396 .242 .327 .402 0.9 -0.1 3.78 5.12
Aaron Davenport .262 .350 .447 .261 .338 .445 0.9 -0.3 4.58 5.47
Franco Aleman .217 .316 .391 .236 .317 .371 0.7 -0.1 3.21 4.68
Nic Enright .246 .303 .393 .241 .312 .422 0.5 -0.1 3.24 4.74
John Means .250 .308 .389 .275 .324 .490 0.5 0.0 3.98 5.14
Erik Sabrowski .192 .311 .327 .224 .344 .383 0.8 -0.3 3.13 5.23
Colin Holderman .238 .337 .400 .235 .313 .363 0.7 -0.2 3.38 4.79
Dylan DeLucia .258 .341 .439 .260 .323 .462 0.8 -0.3 4.40 5.58
Trevor Stephan .257 .342 .429 .241 .312 .398 0.6 -0.2 3.46 5.03
Andrew Walters .227 .341 .387 .209 .310 .384 0.6 -0.2 3.53 5.20
Carlos Hernández .220 .313 .400 .258 .331 .387 0.6 -0.2 3.78 5.07
Jack Leftwich .247 .327 .404 .271 .331 .449 0.5 -0.1 4.04 5.19
Matt Festa .258 .343 .449 .218 .288 .353 0.6 -0.3 3.41 4.94
Connor Brogdon .252 .333 .423 .233 .306 .408 0.7 -0.4 3.55 5.20
Davis Sharpe .268 .336 .482 .252 .315 .385 0.6 -0.3 3.85 5.19
Jake Miller .247 .317 .387 .271 .331 .449 0.5 -0.3 3.93 5.07
Andrew Misiaszek .190 .277 .286 .266 .358 .447 0.4 -0.2 3.74 5.20
Carter Spivey .265 .360 .444 .275 .343 .463 0.5 -0.3 4.60 5.63
Matt Jachec .265 .344 .410 .250 .296 .420 0.4 -0.2 3.62 4.64
Tanner Burns .250 .348 .396 .269 .348 .462 0.4 -0.3 4.31 5.47
Magnus Ellerts .273 .371 .468 .204 .299 .344 0.4 -0.3 3.72 4.98
Mason Hickman .247 .345 .438 .247 .340 .404 0.3 -0.4 4.09 5.50
Luis Frías .278 .366 .444 .228 .321 .370 0.3 -0.4 3.84 5.39
Tommy Mace .274 .365 .463 .271 .366 .447 0.5 -0.7 4.89 5.95
Nick Mikolajchak .263 .354 .421 .254 .325 .423 0.2 -0.4 4.04 5.63
Alaska Abney .270 .370 .492 .241 .315 .367 0.2 -0.4 4.05 5.38
Ross Carver .273 .391 .464 .238 .310 .400 0.3 -0.5 4.50 5.66
Steven Pérez .203 .278 .281 .278 .356 .500 0.2 -0.5 4.05 5.27
Zane Morehouse .235 .340 .420 .260 .345 .406 0.2 -0.4 4.13 5.23
Zach Jacobs .255 .342 .441 .263 .342 .453 0.2 -0.6 4.41 5.62
Adam Tulloch .234 .367 .359 .271 .370 .465 0.1 -0.8 4.58 5.99
Tyler Thornton .250 .392 .417 .222 .345 .403 0.0 -0.6 4.42 5.95
Shawn Rapp .222 .364 .333 .272 .375 .469 -0.1 -0.6 4.84 6.38
Alonzo Richardson .293 .376 .472 .264 .342 .442 0.0 -0.9 4.95 6.05
Jack Jasiak .274 .366 .443 .261 .316 .458 0.1 -0.8 4.37 5.60

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.


Job Posting: Pittsburgh Pirates – Multiple Openings

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

Tech Lead – Baseball Systems
Data Scientist – Research and Development

The Pirates Why
The Pittsburgh Pirates are a storied franchise in Major League Baseball who are reinventing themselves on every level. Boldly and relentlessly pursuing excellence by:

  • purposefully developing a player and people-centered culture;
  • deeply connecting with our fans, partners, and colleagues;
  • passionately creating lifetime memories for generations of families and friends; and
  • meaningfully impacting our communities and the game of baseball.

At the Pirates, we believe in the power of a diverse workforce and strive to create an inclusive culture centered in Passion, Innovation, Respect, Accountability, Teamwork, Empathy, and Service.


Tech Lead – Baseball Systems

Job Summary
We are looking for a Tech Lead to guide the next evolution of our internal baseball decision-making platform. This web-based system equips players, coaches, analysts, and executives with the insights they need to make better, faster decisions. You’ll be combining bleeding edge ML research with the latest in baseball statistics. You’ll pair hands-on engineering with technical leadership: setting the bar for code quality, modern architectures, and DevOps practices while mentoring a high-performing team of software and data engineers.

Responsibilities
Primary

  1. Ensure every baseball systems feature is intuitive, reliable, and delivers measurable impact.
  2. Design clean, scalable architectures and champion platform-wide standards that reflect the latest industry best practices.
  3. Lead cloud-native engineering efforts, including containerization, Kubernetes orchestration, and infrastructure-as-code pipelines.
  4. Partner with data scientists, analysts, software engineers, and front-office leaders to translate baseball strategy into resilient software and ML pipelines.
  5. Model fast, high-quality execution—from building custom React components to tuning data services or ML workflows—and see initiatives through from concept to delivery.
  6. Mentor engineers of varying experience levels, promoting knowledge sharing, thoughtful code review, and continuous improvement.
  7. Champion an Agile product development process that balances experimentation, user feedback, and operational excellence.
  8. Keep a relentless focus on features that strengthen the organization’s competitive edge.

Qualifications
Required:

  1. Authorized to work lawfully in the United States.
  2. Bachelor’s degree in Computer Science, Information Systems, or a related field (or equivalent experience).
  3. Strong communication skills—you translate complex technical concepts for non-technical partners and build trust across departments.
  4. Familiarity with building and operating ML pipelines or advanced analytics services alongside traditional application development.
  5. Track record of shipping full-stack web applications in data-driven, end-user centric environments.
  6. Proven success leading engineering teams, designing technical implementations, and mentoring others to deliver their best work.
  7. Hands-on experience with Kubernetes, Docker, container orchestration, and modern DevOps practices (CI/CD, infrastructure as code).
  8. Expert-level experience with React, Node.js, and Python, plus comfort moving across the stack—from front-end polish to backend services and data workflows.

Desired:

  1. Hands on experience in Statistical Learning or AI Development
  2. Deep curiosity about baseball and how data, analytics, and technology inform strategy and performance.

Equal Opportunity Employer
The Pittsburgh Pirates are an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, disability status, protected veteran status or any other characteristic protected by law.

To Apply
To apply, please follow this link.


Data Scientist – Research and Development

Job Summary
As a Data Scientist on the Pirates Research & Development team, you will help transform a wealth of baseball data — from box scores and player tracking to video and biomechanics — into actionable insights that drive the Pirates to make better, faster acquisition, development, and deployment decisions. You will work closely with other data scientists, analysts, and software engineers across Baseball R&D as well as other stakeholders across Baseball Operations (scouts, coaches, player development, front office) to turn your statistical and machine learning models into actionable decision tools.

Responsibilities:

  1. Design, build, validate, and deploy statistical and/or machine-learning models to support all facets of baseball operations, including scouting, player acquisition, player development, and on-field decision making.
  2. Build tools, prototypes, and visualizations to translate complex data and model results into insights understandable by coaches, players, and decision-makers.
  3. Communicate results and insights clearly to both technical and non-technical audiences.
  4. Partner with data engineers to build scalable data pipelines and maintain data quality.
  5. Stay abreast of new data sources, analytical techniques, and research.
  6. Help the organization experiment, learn, and iterate.

Qualifications
We recognize that no candidate will meet every qualification listed below. If you are excited about this role and believe you can add value to our work, we encourage you to apply even if your experience does not align perfectly with every requirement.
Required:

  1. Degree (or equivalent experience) in a quantitative discipline (e.g., Statistics, Computer Science, Mathematics, Economics, Machine Learning, Biomechanics, Engineering, Operations Research).
  2. Demonstrated experience applying complex statistical and/or machine learning tools to real-world problems.
  3. Demonstrated proficiency in a programming language such as Python or R for data analysis and modeling.
  4. Demonstrated ability to communicate complex quantitative concepts clearly, both written and verbally.
  5. Demonstrated experience collaborating with others on data science projects.
  6. Authorized to work lawfully in the United States.

Desired:

  1. Familiarity with advanced statistical techniques (e.g., fixed-effect / random-effect models, generalized additive models, Bayesian modeling, probabilistic programming).
  2. Experience with machine-learning / deep-learning frameworks (e.g., PyTorch, Tensorflow), especially applied to high-dimensional, spatiotemporal, or biomechanical data.
  3. Background in computer vision, biomechanics, sports-science, or modeling of dynamic physical systems.
  4. Prior experience in sports analytics context; baseball is a plus.
  5. Experience with database languages (e.g., SQL) and working with large / relational datasets.

Equal Opportunity Employer
The Pittsburgh Pirates are an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, disability status, protected veteran status or any other characteristic protected by law.

To Apply
To apply, please follow this link.

The content in this posting was created and provided solely by the Pittsburgh Pirates.


Effectively Wild Episode 2415: Catch if You Can

EWFI
Ben Lindbergh and Meg Rowley banter about the Ha-Seong Kim, Adrian Houser, and Foster Griffin signings, a prospect-for-prospect Red Sox and Nationals trade, and the Twins’ partial sale, then (34:00) answer emails about saying “pitchoff” instead of “first pitch,” the value of a cool nickname, a Hall of Fame reference in The Wizard of Oz, whether teams value batter performance against elite pitching, protesting ball/strike calls from the dugout, keeping Pete Rose out of the Hall, a running start for pitchers, and moving the catcher back instead of the mound.

Audio intro: Alex Glossman and Ali Breneman, “Effectively Wild Theme
Audio outro: The Shirey Brothers, “Effectively Wild Theme

Link to FG post on Kim
Link to Anthopoulos comments on Kim
Link to MLBTR on Houser
Link to MLBTR on Griffin
Link to FG post on pitching prospects trade
Link to Twins sale story
Link to $/WAR analysis
Link to $/WAR analysis 2
Link to ceremonial first puck wiki
Link to “baseball exceptionalism” series
Link to Sam’s hockey quote
Link to Raleigh “Beef Boys” story
Link to Sam on Trout in 2012
Link to The Wizard of Oz song
Link to halls of fame wiki
Link to Hall of Fame for Great Americans
Link to Schwarber’s postseason stats
Link to pitcher quality adjustment post
Link to Capps hop post
Link to Ben on moving the mound
Link to listener emails database

 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!


Twins Sign Bell, Phillies Sign García, Because Nobody Learns From Others’ Mistakes

Jim Rassol and Jerome Miron-Imagn Images

On Monday morning, the Twins signed Josh Bell to a one-year contract with a mutual option for 2027. Between salary, signing bonus, and option buyout, the deal guarantees Bell $7 million. A couple hours later, the Phillies and outfielder Adolis García agreed to terms on a one-year, $10 million contract.

Look around whatever room you’re sitting in as you read this. Consider the material of the walls, the furniture, whatever appliances (if any) are in view. The carpet, or wood or laminate or tile of the floor. Pens and pencils, soap, hand lotion, power cables, books, magazines, children’s toys… whatever you can see, you know what it’d feel like and taste like if you licked it.

That’s from experience. At some point in your life, you put everything you encountered in your mouth, just to see what would happen. If you’ve ever raised a child, or met a child, or been a child, you know kids are always putting stuff in their mouths. You know equally well that kids aren’t supposed to do that. They could choke, or get sick, or otherwise come to harm by licking the sidewalk.

But they do it anyway, no matter how forcefully their parents remind them not to. There’s only one way to know for sure what the TV remote tastes like, and it’s too important an issue to take anyone else’s word for it. Read the rest of this entry »


Ha-Seong Kim Returns to Atlanta on One-Year Deal

Jordan Godfree-Imagn Images

Well, the Braves must have liked what they saw. After Atlanta claimed Ha-Seong Kim off waivers in September and watched him decline his $16 million option for the 2026 season, the team is bringing him back on a one-year, $20 million contract. In a rare coup, Jon Heyman scooped the Braves by breaking the news before they could slap some text onto their trusty press release template and post a JPEG to social media. (Peter Labuza of Twins Daily made note of the most important part of the deal: The press release featured no mention of Kim donating 1% of his salary to the Atlanta Braves Foundation.) The reunion isn’t necessarily surprising, as president of baseball operations Alex Anthopoulos expressed interest in bringing Kim back when he opted out. However, the deal represents a departure from Atlanta’s recent strategy, and doesn’t match most of the estimates of what Kim would get in free agency.

This is the first time the Braves have deigned to spend money on the shortstop position since they let Dansby Swanson walk in 2022. They rolled with Orlando Arcia in 2023, and he rewarded them with a 100 wRC+ and 2.4 WAR. When Arcia reverted back to his career norms with a 72 wRC+ in 2023, the Braves got just 0.7 WAR from the position, fifth worst in the league. The punchless, slick-fielding Nick Allen didn’t work out in 2025, prompting the team to claim Kim; on the year, Atlanta’s 0.4 WAR at short was third from the bottom. They recently traded Allen to Houston in exchange for utilityman Mauricio Dubón, who has surprisingly good numbers at short but isn’t really an everyday option. The Braves are clearly sick of having a gaping black hole at short, but you might not be prepared for just how big a departure this is. Swanson made just $10 million in his final year of arbitration, meaning the Braves are about to spend double the amount they’ve ever spent on a shortstop.

Coming into the offseason, most estimates had Kim signing a deal like the one he signed with the Rays last year: two or three years with an opt-out for something like $15 million per year. That made sense, because he was still in a similar position. After a brilliant seven-year KBO career, Kim struggled in his first stateside campaign, then settled in as a reliably above-average middle infielder for the Padres. From 2022 to 2024, he combined great defense with a 106 wRC+, averaging 3.7 WAR per 150 games. That’s a borderline All-Star at a premium position. In 2023, Kim won a Gold Glove and earned some MVP votes. He looked primed for a payday and a long contract heading into free agency. Instead, he tore the labrum in his right shoulder diving back into first base against the Rockies in August 2024. Read the rest of this entry »