The projection system OOPSY made its major league debut this year. So how did it do?
OOPSY’s methodology mirrors that of the other FanGraphs projection systems, with a few twists — most notably, the inclusion of bat speed for hitters and Stuff+ for pitchers. Projection systems are comprised of many different components, however, including aging curves, major league equivalencies to account for minor league and foreign league performance, recency weights, regression to the mean, league run environment, and park factors. There are many ways for projection systems to stand out or lag behind their peers beyond just the inclusion of a particular variable like bat speed. Projection systems are comprised of hundreds of small methodological decisions. Given the sum total of the decisions that went into OOPSY, did it hold its own in 2025 relative to its more established peers?
To review the projections, this article follows industry best practices as outlined by Tom Tango, MLBAM’s senior data architect. I have conducted this review process for pitchers before, as my pitching projections have been featured by Eno Sarris in The Athletic since 2023, but this was my first year publishing a full set of hitting projections. This review focuses on wOBA for hitters and wOBA against for pitchers (an alternative to ERA, further defined below). These metrics are typically the focus of projection system reviews, the most important hitting and pitching rate statistics for projection systems to get right from a “real-life” perspective. Both are catch-all rate statistics that measure, respectively, a player’s offensive and pitching value. The various component projections, e.g., K% and BB%, feed into these catch-all metrics. Read the rest of this entry »
NEW YORK — Aaron Judge didn’t deserve the rumblings. After he struck out with the bases loaded on Saturday in Game 1 of the ALDS against the Blue Jays, Yankee fans started to grumble that maybe he just didn’t have it in the postseason. It’s true that he’d struggled in 2020 and 2022, but Judge had excelled in the playoffs earlier in his career, and he came into Game 3 of the ALDS on Tuesday night with a career postseason wRC+ of 116. He hit three home runs during the Yankees’ World Series run just last year, including a game-tying shot in Game 3 of the ALCS.
On Tuesday night, with a performance that would be eye-opening if it had come from just about any other player in baseball, Judge pushed his batting average in the 2025 postseason to an even .500. He went 3-for-4 with an intentional walk and a couple of great plays in right field, and for the rumblers and grumblers with short memories, he launched a mammoth, game-tying, season-saving, signature home run, pulling the Yankees back from the abyss and into Game 4 with a 9-6 victory over the Blue Jays. Read the rest of this entry »
Brad Keller and Drew Pomeranz have been bullpen stalwarts for the Chicago Cubs this season. The former made a club-high 68 appearances during the regular season and pitched to a 2.07 ERA and a 2.94 FIP over 69 2/3 innings, while the latter toed the rubber 57 times and put up a 2.17 ERA and a 3.36 FIP over 49 2/3 innings. Working primarily in setup roles, the right-left duo combined for six wins, four saves, and 39 holds. Not bad for a pair of hurlers who were essentially reclamation projects when they reported to spring training.
Now with his fourth team in the past three seasons, Keller was 9-22 with a 5.05 ERA from 2022 to 2024. Moreover, one year ago, he lost all four decisions while logging a 5.44 ERA. As for Pomeranz’s recent numbers… well, there weren’t any. Hampered by multiple arm injuries, the southpaw hadn’t taken the mound in a big league game since August 2021. At age 36, he had quite possibly reached the end of the road.
Keller’s path has included injury-related speed bumps as well. Most notable was the righty being diagnosed with Thoracic Outlet Syndrome, which required him to go under the knife after the 2023 season. Read the rest of this entry »
Water falling from the skies over Comerica Park delayed the start of a pivotal ALDS Game 3 between the Tigers and the Mariners by close to three hours. Once things dried out, Seattle’s batters rained on Detroit’s parade. Eugenio Suárez, J.P. Crawford, and Cal Raleigh all homered, and that was more than enough to support the pitching of Logan Gilbert and four Mariners relievers. When all was said and done, Seattle had an 8-4 win and a 2-1 edge in the best-of-five series.
The game started with a successful challenge. Randy Arozarena was initially ruled safe after Gleyber Torres threw to first to field a comebacker that glanced off of Jack Flaherty’s glove, but replay review reversed the call. Seattle’s leadoff hitter was out by an eyelash. A few swings later, Detroit’s starter had retired the side on just eight pitches. It was to be his only easy inning.
The Mariners made the right-hander work in the second. Josh Naylor had an 11-pitch at-bat, finally grounding out on Flaherty’s first changeup of the evening. Three other batters saw six pitches apiece. Suárez walked, Jorge Polanco and Dominic Canzone fanned, and Flaherty walked off the mound having thrown 29 in the frame, and 37 overall. It was apparent early that the Tigers bullpen would be well-worked by game’s end.
A Dillon Dingler single gave Detroit a runner in the bottom half, but as had happened in the first, Gilbert ended the mini-threat with a strikeout, leaving a Tiger stranded. Never really in trouble over the course of his outing, the tall right-hander nonetheless squelched every semblance of a Detroit rally. Read the rest of this entry »
Megan Mendoza/The Republic/USA TODAY NETWORK via Imagn Images
The 33rd Arizona Fall League season opened last night with a single game in Scottsdale. There are future stars in the Fall League every year, as well as many more workmanlike players who are competing for a 40-man roster spot on next year’s club. It’s a wonderful league for teams to develop and scout prospects because of the cross section of talent it tends to include (there are usually lots of good position player prospects), its timing (which allows players who were injured during the regular season to catch up on reps), and its structure (which allows for six weeks of steady looks). Teams almost always take the AFL seriously and send players here who they want to see more of, or who they want to test. Being on the roster is, on its own, a flare. It’s an indication that a player is worth paying attention to from a scouting standpoint even if I didn’t know the guy’s name until I saw a roster.
Previewing this league with prospects’ scouting reports risks putting the cart before the horse because the scouting part has yet to happen. I want to give you the reports I already have, to play the hits and make sure you have Kevin McGonigle and Josue De Paula reports and tool grades in front of you (don’t worry, you will), but a huge part of the pro scouting exercise that is the Arizona Fall League is mining for the deeper cut prospects, and I can’t tell you who those guys are going to be just yet. But I can show you the initial steps I take to prepare to go to the field and try to systematically unearth these guys, give you the tools to do so on your own, and, in the process, let know you who it is I’m most curious and excited to learn more about for the next six weeks. Read the rest of this entry »
Charles LeClaire, Neville E. Guard, Charles LeClaire-Imagn Images
This season, four different starters suffered a loss in which they went exactly six innings, struck out exactly six batters, and allowed exactly seven hits, three earned runs, and no unearned runs. Three of them faced the exact same number of batters. But those four pitchers all finished with different pitching lines because they all walked a different number of batters. Our regular season database goes back to 1871, and it contains 241,730 games, each of them unique. In 1927, Bob Smith set a record by facing a whopping 89 batters in a 4-3, 22-inning loss to the Cubs. In 2021, Pablo López became the first starter ever to be charged with a loss after plunking the one and only batter he faced. There may be 50 ways to leave your lover and 5,000 ways to die, but the various ways to lose a baseball game are unconstrained by any such limits.
I could keep on going. In 1959, Harvey Haddix was perfect through 12 innings, then lost the game and the perfecto in the 13th. Five years later, Ken Johnson of the Houston Colt .45s pitched the only complete-game no-hitter in history to end as a loss. I bring up these performances because, watching these playoffs, I can’t help but think about pitchers who earn losses despite pitching brilliantly. Just last night in the NLDS matchup between the Dodgers and Phillies, Jesús Luzardo threw six scoreless innings and retired 17 batters in a row, but he took the loss when two inherited runners scored. Last week, Nick Pivetta took the loss after allowing two runs over five innings to the Cubs, and on the same day, Gavin Williams took a loss for the Guardians because he allowed two unearned runs over six innings.
Today, we’re specifically looking for the pitchers who put up great numbers across all of their losses during the 2025 season. This doesn’t necessarily mean the pitchers who had the worst run support or defense behind them overall. It just means that specifically during the games they went on to lose, they pitched particularly well. Hard luck losses will always happen. As Jacob deGrom can tell you from long experience, any pitcher good enough to hold the other team to a single run will eventually suffer a 1-0 loss. (In fact, all five of the top spots on that particular Stathead search belong to Hall of Famers, with Walter Johnson and Nolan Ryan tied at 63. Amazingly, Johnson, the second-winningest pitcher of all time, also lost 13 games in which he didn’t allow a single earned run, the highest mark ever.) But it takes a confluence of factors to end the season with great numbers across all of your losses. Read the rest of this entry »
The Yankees got absolutely thrashed by the Blue Jays during the first two games of the Division Series, losing Saturday’s opener 10-1 and then again on Sunday, 13-7. To be fair, the first game was tight right up to the seventh-inning stretch, after which the Blue Jays expanded their 2-1 lead with four runs apiece in the seventh and eighth innings, but by the same token, Game 2 wasn’t even as close as that six-run margin suggests. The Yankees not only trailed 12-0 through five innings, but also were no-hit by Trey Yesavage through 5 1/3 innings before breaking through against reliever Justin Bruihl in the sixth. Now, for the second time in less than a week, they’ll turn to Carlos Rodón to face an AL East rival with their season on the line.
The 32-year-old Rodón started Game 2 of the Wild Card Series against the Red Sox, one night after Garrett Crochet and Aroldis Chapmanstifled the Yankees in the opener. Rodón held the Red Sox to three runs in six-plus innings, getting by with more than a little help from his friends. He retired the first six batters he faced before running into trouble in the third inning. Jarren Duran, the lone lefty in the lineup, singled, then Ceddanne Rafaela worked a walk, with Rodón exacerbating the situation with a throwing error on switch-hitter Nick Sogard’s sacrifice bunt. Though he recovered to strike out lefty-masher Rob Refsnyder, both runners scored on a sharp single by Trevor Story. Rodón escaped further damage when he induced Alex Bregman to ground into a double play that began with an acrobatic spin move by second baseman Jazz Chisholm Jr.
After a clean top of the fifth, Rodón was briefly staked to a 3-2 lead thanks to Aaron Judge’s RBI single, but it proved short-lived. Rodón fell behind Story 2-0 to lead off the fifth, then threw him a meatball, a 95.2-mph four-seamer that ended up in the middle of the strike zone and was hammered 381 feet to left field for a game-tying home run. A four-pitch walk to Bregman put him on the ropes, but he recovered by retiring Romy Gonzalez on a popout, then getting Carlos Narváez to ground into an around-the-horn double play. With his pitch count at a reasonable 82, manager Aaron Boone sent Rodón back out to start the seventh, but he walked Nate Eaton on four pitches, threw a wild pitch that sent him to second, then grazed Duran with a 3-0 pitch. Reliever Fernando Cruz managed to clean up the mess without further damage, aided by a stellar diving stop by Chisholm on a Masataka Yoshida infield single that, had it not been stopped, probably would have plated both Duran and Eaton. The Yankees scored what proved to be the decisive run in the eighth, when Chisholm worked a walk against Garrett Whitlock, then raced home on a long single into the right field corner by Austin Wells. Read the rest of this entry »
Some playoff games flow like beautiful novels. Two ace starters might have a duel – narratively satisfying. Maybe one pitcher is trying to hold off the opposing offense – who doesn’t like a siege story? Or, perhaps a superstar slugger is on an absolute tear – the great man theory of postseason baseball is alive and well. But Monday night, the Brewers and Cubs played a game that doesn’t fit any of those tropes. The Brewers bullpenned it. The Cubs answered with Shota Imanaga, who gave up 15 homers over his final nine regular season starts, on a short leash. The result? A disjointed game, which can best be captured by a disjointed recap.
Justin Turner, Leadoff Hitter
Justin Turner doesn’t hit leadoff. In his lengthy major league career, he’s racked up exactly 69 plate appearances in the leadoff spot, and only one in the past decade. He’s never hit leadoff in the playoffs. He was well below average at the plate this year – a 71 wRC+ and negative WAR. Naturally, he hit leadoff in the most important game of the Cubs season so far.
Why? Because Chicago manager Craig Counsell is no dummy. The Brewers started Aaron Ashby, who astute observers will note pitched in Saturday’s Game 1. Ashby was just in there as an opener, a southpaw option against Kyle Tucker and the rest of the Cubs lefty contingent. Counsell’s counter-move was straightforward. The other guy starts with a lefty reliever? He’ll start with a lefty-killing righty as more or less a pinch-hitter.
The move didn’t pan out right away; Turner flied out softly to open the game. But the rest of the Chicago lineup immediately went to work – single, walk, massive home run from Seiya Suzuki. It was 3-0 in a blink. Brewers manager Pat Murphy tried to stretch Ashby through a second inning even after the setback, but it just wasn’t happening. Ashby needed 43 pitches just to get through 10 hitters. That’s right, 10 – his last batter was Turner a second time, and Turner flared an easy single to left to chase Ashby. Counsell’s gambit worked to perfection; he somehow got two straight good platoon matchups for Turner in a series where high-octane righties abound.
Bombs Away
Imanaga ended the year in poor form. All those homers ballooned his September ERA to a nasty 6.51. His 6.68 FIP was somehow worse. He appeared against San Diego in the opening round of the playoffs, as a bulk innings option behind opener Andrew Kittredge, and gave up another blast en route to an uneven appearance (four innings, three strikeouts, two walks, one homer, two earned runs). But what was Counsell going to do, not start him?
The Brewers aren’t necessarily a home run-hitting team, but they’re open to the idea if invited. Imanaga’s arsenal is nothing if not inviting; after a pair of two-out singles, Andrew Vaughn turned on a belt-high sweeper and tucked it into the left field stands. It was 3-3 before we left the first inning, but it wouldn’t stay that way long. When the top of the order came up again in the third inning, Willson Contreras demolished a 91-mph fastball to put Milwaukee on top 4-3. Christian Yelich followed with a hard-hit single, and Counsell had seen enough. He went to the pen after 46 pitches and eight outs.
The Miz!
Jacob Misiorowski must eat sugary cereal for breakfast. I say that because I know how I act after I’ve had a bowl of Frosted Flakes, and he was exhibiting similar symptoms when Murphy turned to him to start the third inning. Think his fastball is fearsome at its usual 101 miles an hour? It’s downright terrifying when he ramps it up to 104, as he repeatedly did in his first inning of work.
Misiorowski is pretty much unhittable when he’s on. In the third, he tallied two weak groundouts, an overpowering strikeout – and a four-pitch walk. The second of the groundouts ended the inning, but also showed Misiorowski’s mindset. After fielding it cleanly, he ran to first base himself on a full sprint, perhaps a little too amped up to trust himself with an underhand toss. Then he flexed and roared, exulting in the playoff atmosphere.
The next inning brought more of the same – an amped-up Miz, two strikeouts, and a five-pitch walk where he got increasingly wild with each pitch. Oh yeah, the last of those batters was Michael Busch, in the game for Turner now that the leadoff spot came up with a righty on the mound. Again, though, you don’t so much beat Misiorowski when he’s this keyed up as wait him out. Nico Hoerner finally tallied a hit against him in the fifth, an opposite-field line drive, but there’s just no headway to be had when you’re trying to time up 103-mph fastballs and 95-mph sliders. The other three Cubs that inning managed a strikeout and two weak foul pops.
When Misiorowski finally departed at the start of the sixth, the Brewers led comfortably. The Cubs never looked particularly close to stringing anything together against him. I’m not sure how long he’ll be able to go in his next October appearance, or how many days of rest the Brewers will want to give him after 57 adrenaline-pumping pitches. I am confident that it’s going to be electric to watch, and that the Cubs are desperately hoping that they can somehow pull off a reverse sweep in this series without having to face any more 104-mph heaters. What a performance.
Action Jackson
Jackson Chourio missed almost the entirety of August with a hamstring strain. He looked less explosive upon his return, with less power and a less-adventurous approach to baserunning. Then he aggravated the injury in the first game of this series, putting his availability for Monday night in at least a bit of doubt. His first two at-bats produced two outs against the otherwise reeling Imanaga. His third time up? A towering, 419-foot homer to dead center that put the Brewers up 7-3 in the fourth inning.
Is Chourio back? It depends on how you’d define back. He’s still limping around at times, and it’s clear that the hamstring is bothering him. He bumped into Busch while rounding first base on a sixth-inning play and looked meaningfully slower as he continued to second (speed wasn’t an issue; Dansby Swanson had just sailed a throw into foul territory and there was little chance of a play at the base). But on the other hand, he’s blasting huge home runs and making nifty plays in foul territory, where he turned a foul ball into an out with a smooth, wall-scraping grab. I don’t think he’s at full strength, but he’s still a dangerous hitter, and even if his baserunning prowess is down, the Brewers will happily keep running him out there.
We’ve Got Ice
Caleb Durbin’s batting line in this game doesn’t look particularly impressive. He recorded no hits or walks. He hit into a double play. But in that fateful fourth inning, he saw a Daniel Palencia fastball headed in his general direction and heroically tossed his elbow at it. He caught the ball as flush as you can imagine, a direct hit on his arm, one of those “act like you’re getting out of the way but make sure to do the opposite” moves that grind-and-grit hitters have been using to accrue free bases since time immemorial.
It’s no accident that Durbin led the NL with 24 hit-by-pitches this year, only three off the major league lead. It’s more impressive than that, even; Durbin did it in 506 plate appearances, while leader Randy Arozarena needed 709 to get to 27 HBPs. You might not like this skill, but it’s real, and Durbin is the best in the majors at it right now.
Those free bases don’t always matter. This time, they did. Durbin’s spot in the lineup produced a baserunner instead of an out, which means that when Blake Perkins struck out immediately afterwards, there were two outs instead of three. That meant more pitches for Palencia, and also that Joey Ortiz’s line drive single turned the lineup over. You’ve already read what happened next – Chourio hit the ball to Wauwatosa (a wonderful suburb of Milwaukee, I promise) and gave the Brewers an insurmountable lead.
Lockdown
The Cubs offense might have gone quiet against Misiorowski, but there was still time left. They had 12 outs to play with after Milwaukee’s scariest arm departed, but they couldn’t do anything with them, because the guys behind the Miz are pretty good too. Chad Patrick struck out two Cubs in a perfect sixth. Jared Koenig followed with four straight outs, with huge assistance from Vaughn, who made a nifty play in foul territory behind first base to turn a would-be infield single into an out. All of the sudden, there were only five outs to play with, and Milwaukee hadn’t even gone to its late-inning options.
Even a one-run deficit feels almost insurmountable against the Brewers by the time the eighth inning rolls around. Trevor Megill and Abner Uribe were both spectacular this year, with matchingly gaudy ERAs and strikeout rates. Megill’s health was a question heading into Game 2; his first appearance back from a flexor strain was the regular season finale, and he didn’t appear in the first game of this series. His stuff looked slightly diminished – slower fastball, less-biting curve – but stuff has never really been Megill’s problem. The little stuff heatmaps on our player pages? They don’t get darker red than Megill’s. He looked plenty nasty even sitting down a tick, and he pounded the strike zone with plus command. Good luck, hitters.
No one knew how good Megill would be Monday. There was no such doubt about Uribe’s form. He started 2025 strong and got stronger as the year wore on, blowing lineups away with his trademark sinker/slider duo while halving his walk rate. The Cubs were just the latest victims as he struck out the side on 13 pitches, retiring each batter with a scintillating slider below the strike zone. The Brewers didn’t need a lockdown performance from their bullpen, but with a travel day Tuesday, there was no reason to leave anything to chance; Murphy put the hammer down consistently as soon as he had a lead.
Conclusions
Don’t let the early innings fool you; the Brewers absolutely torched the Cubs today. They were constantly on base, threatening to score in nearly every inning, and only let off the gas at the very end. How in the world are you going to score seven runs against their bullpen? This one wasn’t as close as the not-very-close scoreline. Even before Chourio put things away, the Cubs didn’t seem particularly likely to put anything together against Milwaukee’s endless parade of strong relievers.
I don’t know if a bullpen game is helpful to Milwaukee’s long-term chances, but it’s pretty hard to argue with its effectiveness on a single night. Toss an in-form Misiorowski into the mix, and there just isn’t much time to score runs before the door closes. Even with the nifty Turner-leadoff gambit, the Cubs ended up with a lot of tough matchups against a lot of excellent pitchers. I can imagine a seven-game series blunting the effectiveness of the strategy, and the Brewers will probably tinker with their roster ahead of a potential championship series, but this is a really strong run prevention plan. They might be able to make the entire series out of pitching from Freddy Peralta, a to-be-announced starter (Jose Quintana or Quinn Priester), and a dominant bullpen.
On Chicago’s side, there’s not a ton of strategy to discuss; the Cubs just need to score some runs, and also to give up fewer of them. There weren’t a ton of interesting situations where a different decision might have sent us down a different path, no spots where a pivotal play could have gone Chicago’s way. The Cubs seized on their big chance with a three-run first. It just wasn’t enough. That doesn’t mean that the rest of the series will go the same way – as they always say, momentum is tomorrow’s starting pitcher – but so far, the Brewers have been thoroughly outclassing the Cubs.
Ben Lindbergh and Meg Rowley banter about Meg’s recovery from illness and her ongoing emotional distress as a postseason spectator, then share their takeaways from the first two games of each ALDS and the first game of each NLDS. After that (51:15), Ben Gibbard of Death Cab for Cutie joins to talk about how he’s handling postseason stress, his thoughts on the Mariners season and playoff performance so far, the team he would root for if he weren’t an M’s fan, and whether he’d write a Mariners victory song, plus a postscript (1:31:15) on how Guardians fans are feeling.
PHILADELPHIA – If the lesson to learn from Game 1 of the NLDS is that nobody’s perfect, the lesson to learn from Game 2 is that some pitchers come close. Blake Snell and Jesús Luzardo delivered the kind of pitchers’ duel to warm the hearts of dyspeptic ex-pros who should have to drop a quarter in the swear jar whenever they start a sentence with, “Back in my day…” Snell allowed only a single hit against four walks and nine strikeouts in six innings of work; Luzardo, after a tricky first inning, recorded 17 straight outs.
After watching a blank scoreboard for the first two-thirds of the game, both teams cracked under the strain in the endgame. The two clubs followed this pair of near-perfect pitching performances with a manifestly imperfect bottom of the ninth, as both teams committed blunders in tactics and execution that threw a settled game into chaos.
The final score: Dodgers 4, Phillies 3. In this heavyweight bout, the Dodgers are one win away from a knockout victory. Read the rest of this entry »