ZiPS Midseason Movers and Shakers: Pitchers

Charles LeClaire-Imagn Images and Sam Greene/The Enquirer-USA TODAY NETWORK via Imagn Images

One of the things I try to emphasize when I talk about projections is that they’re not numbers written in stone, but an array of estimates that’s always moving. Each individual plate appearance or inning pitched, while not a needle-mover on its own, adds to our knowledge of a player and very gently changes his career trajectory. Forecasting a player isn’t all that different from forecasting a hurricane, but thankfully, players cause a lot less mayhem. Except maybe Len Koenecke.

It’s been three months since the start of the season, and we have a lot of new information about players. Since we’re approaching the halfway point of the season, and the fact that I’m getting a few dozen chat questions a week about which players have seen their projections change the most, I thought this would be an appropriate time to do an in-season ZiPS run with the full-fat model that is too compute-intensive to run every day. To keep the list relevant to 2026 MLB goings-on, I narrowed it to players who either have played in the majors this year or are one of the 1,232 prospects on The Board. So my apologies to players such as Peyton Alford, who has seen his 2027 ERA+ projection jump from 88 to 110.

I’ve also separated starters from relievers, with pitchers projected to start in at least a third of their appearances landing with the starters. Since relievers tend to be more volatile than starting pitchers, I wanted to make sure the latter were represented. After all, a bump of 10 points of ERA+ in 180 innings is more impactful for a team than 15 points of ERA+ in 60 relief innings! Read the rest of this entry »


FanGraphs Feature Focus: College Stats

With the 2026 college baseball season having just concluded (a hearty congratulations to both the University of Oklahoma and the College World Series’ Most Outstanding Player, Jaxon Willits), the MLB Draft Combine still in progress, and the Draft itself rapidly approaching, now seems like as good time as any to remind everyone that we added Division I college baseball statistics to the site last year. In addition to college leaderboards, Division I players have their own player pages, while the college stats of drafted pro players can be found on their pro player pages (undrafted free agents currently have separate college and pro player pages, though we’re working to merge them).

The leaderboards can be accessed within the Leaders tab on the main FanGraphs navigation bar:

Before I dive in, here are the basics:

  • Stats go back to 2021 and, as they are for professional leagues on the site, they’re updated daily during the season.
  • wRC+ is conference-adjusted, not park-adjusted as it is for the minors and majors.
  • Unlike most other FanGraphs leaderboards, there are no Dashboard or customization options for Members; what you see under the Standard and Advanced options is the full suite of college stats available.

Using the various drop-downs at the top of the page, you can build your own leaderboard. For example, you might be interested in the best seasons for Miami University (go RedHawks!) hitters since 2021, by wRC+:

Or the best SEC seasons by strikeout rate:

I used “Qualified” as my plate appearance/innings pitched minimum for both of these leaderboards. The qualified playing time rules are same as they are for affiliated ball: 2.1 plate appearances or one inning pitched per team game.

Our college player pages look much the same as the pro player pages, just with fewer statistics. There are even the customizable player cards you’ll find on all player pages, though of course the RosterResource information and Spark Graphs will have to wait:


College stats on the player pages is hidden by default for players who have more than one year of minor league data. College stats can be toggled back on using the College button at the top of each data table:

Turning college stats on for any table within a player’s page will turn it on for all tables, so long as you remain on that player’s page. Turning college stats on doesn’t make the other stats go away, of course, so you can view a player’s entire journey from college up through the minor leagues and into the majors. Here are Nick Kurtz’s ridiculous hitting lines since college:

One last thing to highlight: If the team abbreviations you see prove inscrutable, don’t worry – we have a fix for that! You don’t have to Google where the country’s second-leading hitter by batting average attended school. You can simply hover over the abbreviation in question to view the school’s full name:

As is always the case at FanGraphs, exporting college data to Excel is limited to Members.


The Best Catcher In Baseball Is Dead. Long Live The (New) Best Catcher In Baseball.

Rick Scuteri-Imagn Images

To repurpose an old quote about the weather, if you don’t like the identity of the best catcher in baseball, just wait a year and you’ll have a new best catcher in baseball. It’s almost uncanny. Every year, there are two contenders for best catcher in baseball. And every year, one of them falls to the wayside, to be replaced by someone new. It’s like clockwork:

Top Catchers By WAR, 2021-2025
Year Top Catcher 2nd Catcher
2021 Buster Posey J.T. Realmuto
2022 J.T. Realmuto Adley Rutschman
2023 William Contreras Adley Rutschman
2024 William Contreras Cal Raleigh
2025 Cal Raleigh Alejandro Kirk

Last year was an exception to the rule in that Cal Raleigh was a lot better than Alejandro Kirk, but for the most part, the top two catchers in the game have put up similar WAR. It’s hard to stand out all the way at catcher, and it’s also hard to stay near the top for long. Truthfully, that isn’t all that surprising. Catching is phenomenally difficult on the body, and WAR is a counting stat. The best catchers play a lot, and they wear down. Before long, they’re either playing less often or playing less effectively.

With that backdrop, you might expect one of Kirk or Raleigh to be clinging to the top spot while a new contender appears. But that hasn’t happened. They’ve both been hurt – Raleigh missed a month on the IL, and Kirk missed more than two. And they’ve both played poorly when healthy – both are off to the worst offensive starts of their careers, though Kirk’s is in a tiny sample. There’s still more than half a season to play, and it’s reasonable to think that the two of them might end up posting solid numbers the rest of the way, but they’ve racked up a combined 0.5 WAR so far this year. It’s safe to say that there will be some new faces at the top. Read the rest of this entry »


Cedric Mullins Is Elevating And… Oh No. Oh No, No, No, No, No.

Pablo Robles-Imagn Images

I ended up here by accident. I was writing about Steven Kwan yesterday, and I found myself on a leaderboard that contained all 3,658 qualified seasons for batters since 2002. That’s the first year Sports Info Solutions started tracking its reams and reams of granular data, so I spend a lot of time with the leaderboards set to that particular date range. If somebody is at the top or bottom of a column on that leaderboard, then they have earned a superlative. For example, in 2003, SIS credited Tony Batista with a 63.4% pull rate — the highest pull rate ever recorded! I have to believe it’s the highest of all time, too. How is it even possible to pull the ball 63% of the time? It certainly sounds impossible, but I believe the number to be true both because the second and eighth spots also belong to Batista, and because, well, do you remember Tony Batista’s batting stance?

Yeah, that’s what you’d expect a guy with a 63% pull rate to look like. Batista’s offensive approach made him look like a guy who had time traveled from an age long before right field was even discovered.

Today, we’re talking about a different former Oriole who, at least as of right now, can lay claim to one of the most extreme seasons of all time. Here’s the top of the fly ball rate leaderboard. Once again, we’re looking only at qualified seasons. Read the rest of this entry »


Kyle Tucker Needs a Reset

Mark J. Rebilas-Imagn Images

Kyle Tucker’s tenure with the Dodgers hasn’t gone as well as anyone hoped so far, and on Monday night at Target Field, things took a turn for the worse. After walking during his first plate appearance, he yielded to a pinch-runner upon reaching second base due to back spasms. While he hasn’t yet landed on the injured list, the Dodgers have set a timetable that allows for “a mental reset” — to use manager Dave Roberts’ term — as Tucker tries to end a prolonged slump.

Tucker apparently began experiencing back spasms when the Dodgers took the field in the bottom of the first inning, though he didn’t have any balls hit in his direction. When he batted with one out in the top of the second, he fouled off Zebby Matthews’ first pitch — a four-seamer just off the plate — then looked at four straight balls, three of them in similar locations to that initial offering. Tommy Edman followed with a single, at which point Roberts replaced Tucker with pinch-runner Alex Call, who took over in right field.

“Back just like lit up and [I] went out there just tried to hope that it would calm down or go away or something, I’d just keep flying through it,” said Tucker afterwards, adding that “finishing the swing hurt.”

Roberts first noticed Tucker’s discomfort when he was batting. “I saw him take his at-bat — a little bit of wincing and kind of when he was jogging to first base,” the manager said. “And then once he got to second base, I think it was just more not seeing him move the right way, and I didn’t want to put him in any more jeopardy.” Read the rest of this entry »


Brendan Gawlowski Prospects Chat: 6/24/26

12:00
Brendan Gawlowski: Hello everybody

12:01
Brendan Gawlowski: I am chatting from beautiful Bend, OR, where I absconded for a few days after finishing the Marlins list.

12:01
Brendan Gawlowski: Eric is working furiously on the Rays, that will be up later this week and then we’ll be mercifully done with those… for a few months.

12:02
Brendan Gawlowski: I’m staying with a couple family friends, one of whom is Austrian and knows nothing about baseball, but he gave me a piece of advice just before starting here: “Don’t embarrass yourself.” So, with that in mind, let’s go.

12:02
KURTIS SWENSON: Christian Oppor is making me sad, is there any hopes he gets over his intense yips hes having this season?

12:03
Brendan Gawlowski: Sure, but he’s gonna fall off the T100 in our next update.

Read the rest of this entry »


ZiPS Midseason Movers and Shakers: Hitters

Mitch Stringer and Denis Poroy-Imagn Images

One of the things I try to emphasize when I talk about projections is that they’re not numbers written in stone, but an array of estimates that’s always moving. Each individual plate appearance or inning pitched, while not a needle-mover on its own, adds to our knowledge of a player and very gently changes his career trajectory. Forecasting a player isn’t all that different from forecasting a hurricane, but thankfully, players cause a lot less mayhem. Except maybe Len Koenecke.

It’s been three months since the start of the season, and we have a lot of new information about players. Since we’re approaching the halfway point of the season, and the fact that I’m getting a few dozen chat questions a week about which players have seen their projections change the most, I thought this would be an appropriate time to do an in-season ZiPS run with the full-fat model that is too compute-intensive to run every day. To keep the list relevant to 2026 MLB goings-on, I narrowed it to players who either have played in the majors this year or are one of the 1,232 prospects on The Board. So my apologies to players such as Tre Richardson III, whose projected 2027 OPS+ has improved from 54 to 74. I’ve ranked the players by the largest changes in projected 2027 OPS+ compared to what it was in the preseason. Read the rest of this entry »


We’ve Updated Our Custom Teams Feature

Site customization has become an increasingly important part of our development strategy here at FanGraphs; it’s also one of the core benefits of becoming a Member. Today, we’re introducing our revamped Custom Teams feature, a tool popular with fantasy baseball managers as they track the statistics and projections of the players on their roster.

This tool shouldn’t be confused with the Custom Reports you can create in our leaderboards. Custom Teams are collections of players that can be accessed across different FanGraphs tools; Custom Reports are a collection of specific stat fields and players that can only be accessed in the leaderboards.

What’s new?

We’ve rebuilt the Custom Teams interface from the ground up to utilize our current player search functionality, while also introducing additional improvements to make the tool more useful:

  • We now have three different types of teams: Manual, Ottoneu, and Legacy.
  • Manual teams are the default team type, where you enter player names to create your team. We’ve updated the player search so that it performs the same as the main search bar on the site:
  • We’ve also added a “Paste names” section to the interface. You can now copy and paste player names to import many players at once, including a column of player names from Excel or Google Sheets. The name and spelling has to be an exact match to what’s in our database (though it doesn’t require the use of diacritical marks), and you must have one player per line with a return separating them:
  • Ottoneu integration means you can now import your teams directly from Ottoneu. This automatically connects if you are logged in with your FanGraphs/Ottoneu account. You can then preview your roster and select a sync mode:
  • The Ottoneu sync mode has three options:
    • Auto Sync – This mode will reload your teams every time it is used (in the Custom Teams interface, loading a leaderboard, etc.), so it will pick up any changes you’ve made to your team.
    • User-Controlled Sync – This mode gives you more control over when your team updates.
    • One-Time Import – This mode effectively makes your team a manual team, but it keeps the reference to your team intact, just in case you want to change the update mode.
    • Please note, if you are using Auto/User-Controlled Sync, you cannot edit your team in this interface; you can only do that in one-time import mode. Any updates will need to made on the Ottoneu side.
  • Legacy teams are the temporary bridge between the current tool and the new one. All the teams that you’ve created on the legacy myteams.aspx page are accessible here, but you still need to use the old page to modify them:

The Legacy myteams.aspx Page

What will happen to the legacy myteams.aspx page?

  • We are phasing it out. We do not want to disrupt people’s use of the tool during the season, so the legacy page will remain available through the end of the 2026 season. It will be removed after the conclusion of the World Series.

What will happen to my old teams?

  • Before we remove the legacy page, you will only be able to modify your team through the old interface. You can view or use your team through the new interface, but the team information only flows in one direction.
  • Once we remove the legacy page, whatever legacy custom teams you have will be migrated to manual custom teams in the new tool.

Who can access the new Custom Teams tool?

  • We developed this tool for FanGraphs Members, so you’ll need to be a Member to access all of its features. Non-Members can try it out, however. They will be able to create teams with a maximum of 10 players, and are limited to manually created teams only. The legacy tool doesn’t have any Membership restrictions, but as noted above, it is being phased out.
  • After we phase out the legacy tool, you will still be able to access your old teams regardless of team size. However, non-Members won’t be able to add or change players if their team already has 10 players.

Glen Perkins Tackles a Challenging Career Quiz

Bruce Kluckhohn-USA TODAY Sports

Glen Perkins had a successful four-season stint at the back end of the Minnesota Twins bullpen. From 2012-2015, the St. Paul-born southpaw was credited with 12 wins and 118 saves while posting a 2.93 ERA over 254 appearances comprising 251 2/3 innings. Moreover, he was an All-Star in three of those campaigns. A mixed-results starter earlier in his career, Perkins ultimately finished with a 35-25 won-lost record, 120 saves, and a 3.88 ERA over 624 1/3 frames while pitching exclusively with the Twins from 2006-2017.

He now serves as one of the team’s broadcast analysts, providing insight befitting a reputation he had during his playing days. Perkins was rightly regarded as one of the game’s most analytically inclined pitchers.

How well does the left-hander remember his matchups against big league hitters? Let’s just say that Perkins’ power of recollection is every bit as impressive. He proved as much when he sat down recently for the eighth installment of our Challenging Career Quiz, a series that had thus far comprised Geoff Blum, David Cone, Mark Grant, Mark Gubicza, Jeff Montgomery, Dan Petry, and Steve Sparks. (Links to those pieces can be found on their player pages.)

I began by asking Perkins to whom he surrendered the most hits. His first two guesses, Miguel Cabrera (seven hits) and Carlos Santana (eight) were both wrong. He then correctly named Paul Konerko, who had 11. What does the southpaw remember about the erstwhile Chicago White Sox slugger?

“I had two different careers,” Perkins replied. “I was a starter and gave up a bunch of hits, then I was reliever and didn’t give up nearly as many. Pauly probably got me a bunch when I was a starter, although I do think I did well against him when he was still closer to his prime. I remember that the last year he played [2014] he mostly just hit singles. He had a little short swing and just punched the ball. He didn’t do any damage, but he did have some hits against me.”

Perkins was spot-on with his recollections. Konerko had five singles in six trips to the plate against him that year. He had previously gone 6-for-24 with a pair of doubles and a home run.

A batter who did do damage against Perkins was Santana. The still-active, 40-year-old switch-hitter went 8-for-13 with two doubles and four home runs. Perkins promptly named him when asked who took him deep most often. Read the rest of this entry »


The Freddy Peralta Deal Has Been a Dud for the Mets

Wendell Cruz-Imagn Images

Fireworks season came early to Citizens Bank Park, where on Saturday evening the Phillies collected 17 hits — 10 for extra bases, including four home runs — in a 15-3 win over the Mets. Kyle Schwarber launched three of those homers, with two traveling more than 450 feet in the third inning, and by the time the fifth inning ended, Bryce Harper had hit for the cycle for the first time in his major league career. At the wrong end of that onslaught was Freddy Peralta, who was tagged for 10 runs in 2 2/3 innings. It was the worst start of his nine-year career, as well as a reminder of just how poorly the team’s offseason acquisitions have panned out.

Saturday’s start began inauspiciously enough, with Peralta allowing a two-out solo shot to Harper in the first inning. After falling behind 2-0, he threw a 93.9-mph four-seamer inside, but Harper was nonetheless able to extend his arms and lift a 37-degree blast. In the second inning, Peralta surrendered two more runs via the combination of an Alec Bohm single, a one-out J.T. Realmuto double, and a two-out Justin Crawford double.

At that point, the Mets were down 3-0, not a good start but hardly catastrophic, but Peralta began the third inning by serving up a 456-foot solo homer to Schwarber on a changeup at the bottom of the zone, and from there the floodgates opened. Harper doubled, Brandon Marsh singled and took second on a Marcus Semien throwing error, and after the first out, Bryson Stott and Realmuto hit back-to-back doubles. A strikeout, a Crawford walk, and a Trea Turner single later, and the Mets were down 7-0. Peralta was done for the evening, but the official scorer wasn’t quite done with him. Crawford and Turner scored when reliever Cionel Pérez left a middle-middle sinker for Schwarber to demolish, a 457-footer for his second home run of the inning, putting the Mets into an 11-0 hole. Read the rest of this entry »