2024 FanGraphs WAR Update
Today, we’ve made some changes to Wins Above Replacement that completes the move from UZR to the full suite of Statcast equivalent metrics in FanGraphs WAR. This process began in 2022, when we replaced UZR’s range component with Statcast’s Fielding Runs Prevented, which is Outs Above Average (OAA) converted to runs above average. UZR will continue to be calculated on FanGraphs through the end of the 2025 season. Today’s changes are retroactive to the 2016 season.
Here is the complete list of what is included in this update:
- The catcher blocking component of Statcast’s Fielding Run Value has been added
- UZR’s ARM runs above average has been replaced with the arm component of Statcast’s Fielding Run Value
- DRS’ stolen base prevented runs above average has been replaced with the catcher throwing component of Statcast’s Fielding Run Value
- Ultimate Base Running and Weighted Grounded into Double Play Runs have been replaced with Statcast’s baserunning metric (labeled XBR)
- UZR’s Double-Play Runs has been removed
You can read more about the Statcast metrics here:
- Outfield Throwing Arms Metric
- Catcher Blocking Metric
- Caught Stealing Above Average
- Baserunning Runs Above Average
We’ve added XBR (Statcast’s baserunning metric) to the Advanced section of our leaderboards. We have also added a new Statcast fielding section to our leaderboards, which include all of the additional metrics that have been added to WAR.
There are a handful of notable changes in WAR from the update, but almost all players’ WAR totals are within 1 WAR of their previous totals from 2016-2023. We’ve updated Legacy WAR (L-WAR) on the leaderboards if you’d like to see all the changes.
Here are the players whose WAR increased more than 1 WAR:
| Name | Previous WAR | New WAR | Change |
|---|---|---|---|
| Yadier Molina | 11.1 | 14.1 | 3.0 |
| J.D. Martinez | 19.6 | 22.5 | 2.9 |
| Tucker Barnhart | 3.6 | 5.5 | 2.0 |
| Jacob Stallings | 3.3 | 5.1 | 1.8 |
| Trea Turner | 35.6 | 37.2 | 1.7 |
| Robinson Chirinos | 2.6 | 4.2 | 1.6 |
| Yasiel Puig | 7.0 | 8.6 | 1.6 |
| Roberto Pérez | 6.4 | 8.0 | 1.6 |
| Carlos Correa | 29.0 | 30.5 | 1.5 |
| Vladimir Guerrero Jr. | 10.1 | 11.6 | 1.5 |
| Jose Altuve | 40.3 | 41.8 | 1.4 |
| J.T. Realmuto | 31.2 | 32.5 | 1.3 |
| Gio Urshela | 6.3 | 7.7 | 1.3 |
| Yasmani Grandal | 24.6 | 25.9 | 1.3 |
| Christian Vázquez | 11.2 | 12.5 | 1.3 |
| Hunter Dozier | -0.4 | 0.9 | 1.3 |
| Austin Hedges | 5.7 | 7.0 | 1.3 |
| Michael Pérez | -1.8 | -0.6 | 1.2 |
| Martín Maldonado | 7.3 | 8.5 | 1.2 |
| Amed Rosario | 7.6 | 8.8 | 1.2 |
| Brandon Drury | 6.4 | 7.6 | 1.2 |
| Ty France | 6.5 | 7.7 | 1.2 |
| Buster Posey | 20.5 | 21.7 | 1.2 |
| Eric Hosmer | 3.7 | 4.9 | 1.1 |
| Albert Pujols | -0.7 | 0.4 | 1.1 |
| Alejandro Kirk | 6.3 | 7.4 | 1.1 |
| Austin Romine | -0.7 | 0.4 | 1.1 |
| AJ Pollock | 8.3 | 9.3 | 1.1 |
| Stephen Piscotty | 5.0 | 6.1 | 1.1 |
| Matt Duffy | 3.4 | 4.4 | 1.0 |
And here are the players whose WAR decreased more than 1 WAR:
| Name | Previous WAR | New WAR | Dif |
|---|---|---|---|
| Mookie Betts | 51.7 | 48.8 | -3.0 |
| Joey Gallo | 15.1 | 12.7 | -2.4 |
| Andrew Benintendi | 13.1 | 11.0 | -2.1 |
| Paul Goldschmidt | 36.5 | 34.6 | -2.0 |
| Gary Sánchez | 16.0 | 14.3 | -1.7 |
| Michael Conforto | 18.5 | 16.8 | -1.7 |
| Jarrod Dyson | 6.0 | 4.3 | -1.7 |
| Matt Chapman | 27.5 | 25.9 | -1.6 |
| José Ramírez | 45.0 | 43.5 | -1.5 |
| Delino DeShields | 3.9 | 2.4 | -1.5 |
| Max Muncy | 19.5 | 18.1 | -1.4 |
| Kyle Schwarber | 12.8 | 11.4 | -1.4 |
| Avisaíl García | 10.1 | 8.7 | -1.4 |
| Brett Gardner | 14.4 | 13.1 | -1.4 |
| Tyler Flowers | 11.9 | 10.5 | -1.3 |
| Adolis García | 11.1 | 9.8 | -1.3 |
| Mike Zunino | 13.0 | 11.7 | -1.3 |
| Yoán Moncada | 14.9 | 13.6 | -1.3 |
| Aaron Hicks | 10.9 | 9.6 | -1.3 |
| Pedro Severino | 0.4 | -0.8 | -1.3 |
| Omar Narváez | 9.0 | 7.7 | -1.3 |
| Freddie Freeman | 43.5 | 42.2 | -1.2 |
| Adam Eaton | 10.8 | 9.6 | -1.2 |
| Rougned Odor | 8.6 | 7.4 | -1.2 |
| Brandon Lowe | 14.1 | 12.9 | -1.2 |
| Mike Yastrzemski | 11.0 | 9.9 | -1.2 |
| Aaron Judge | 41.6 | 40.5 | -1.2 |
| Francisco Lindor | 43.7 | 42.6 | -1.1 |
| Leonys Martin | 4.7 | 3.6 | -1.1 |
| Eddie Rosario | 10.9 | 9.8 | -1.1 |
| Justin Turner | 27.9 | 26.8 | -1.1 |
| Matt Olson | 24.9 | 23.8 | -1.1 |
| Alex Verdugo | 9.2 | 8.1 | -1.1 |
| Kyle Seager | 17.7 | 16.6 | -1.1 |
If you have any questions, or notice any errors, please let us know in the comments.
David Appelman is the creator of FanGraphs.
Amazing!
One of the reasons I love FanGraphs is that you guys keenly understand that WAR is a process, not “the answer.”
Give me all the Tom Tango stats, hahaha
If only they would finally stop basing their Pitching WAR off of FIP…
I’ll take their raw RA9-WAR over rWAR for career totals eight days a week
Then fWAR for pitchers needs to switch to being based on RA9 instead of FIP, since we’ve long known that pitchers do in fact have significant control over their BABIP.
As it is, fWAR for pitchers is even worse than bWAR for pitchers due to being based on a heavily flawed theory that was debunked around 20 years ago.
I disagree. Between Jim Palmer’s 91.6 RA9-WAR and 67.6 rWAR, I’ll take the one that at least tries to take into account the effect of pitching in front of Brooks Robinson, Mark Belanger, Paul Blair, and Bobby Grich.
Now I’m sorting the pitching value columns by various measures and I wanted to pour one out for Glendon Rusch, who has the second most negative BIP wins of all time behind Jim Kaat, in one-third of Kaat’s innings. Rusch had -11.8 BIP wins out of 19.8 career fWAR, leaving him with 7.6 RA9-WAR. Weirdly, rWAR thinks he pitched in front of approximately scratch defenses and gives him 5.4 career rWAR.
Bruce Ruffin is even more extreme, with -8.4 BIP wins out of 13.7 fWAR, and Zach Duke had -8.3 BIP wins out of 15.4 fWAR, but they both made some of that back with LOB wins (2.4 for Ruffin, 5.5 for Duke). Ruffin has 9.8 rWAR and Duke has 10.7, both getting some credit for bad defenses but I guess not that much credit.
(There are some 19th century pitchers with truly freaky numbers, like John Coleman and Bill Stearns, but I’m chalking that up to “19th century baseball was weird.”)
Anyway I’m not saying rWAR is always better than RA9-WAR or fWAR, but they’re all worth looking at.
I respect that!
I just don’t like the rWAR methodology in accounting for defense…or their defensive stats.
The granularity of the Statcast numbers Tom uses in the Snell/Strider article he cites below are my ideal application of the rWAR concept.
Are these changes now visible under the WAR Leaderboards and, if so, when exactly were they published? Asking because I just exported the last 25 years two days ago. Thanks!
They are visible and they were made live this morning. If you want updated data you’ll have to grab them again. Though, only 2016-2024.
Any change that strengthens Yadier Molina’s HoF case is a good change in my book.
Pretty incredible that it seems like all the updates I can remember boosted his totals.
Well, catcher defense is one of the hardest parts of the game to quantify, so the gradual progress we do make in that area should naturally help one of the best defensive catchers of all time who was also extremely durable.
Does the framing component of WAR use Statcast’s framing runs?
It doesn’t, we use Jared Cross’s catcher framing metric, as well as his catcher framing metric for pitchers on the Pitcher WAR side.
It looks like the “Def” column has different numbers depending whether you’re looking under the Batting tab or under the Fielding tab. Is one updated and the other not?
This should be corrected now.
Michael Perez would probably be okay if you didn’t point out his “improvement.”
The one game I’ve ever attended in Pittsburgh was the game where he hit 3 homers. Baseball!
I’d be really interested in an article exploring what specific metrics drove the WAR losses among some of the big names (Betts, Judge, Lindor, etc.) and especially the group of first basemen who are/were thought of as having good gloves – Goldy, Freeman, and Olson.
Well, the only update that could affect 1B is the baserunning metric. They lost baserunning value, not defensive value.
Actually it would be good to see the breakdown for everyone. Did Molina’s catching WAR get better or is it something with base running or both?
Do we have a timeline on when pitching WAR moves over to Statcast numbers?
I’m guessing that timeline is “When Tom builds a Statcast-based DIPS model to which he’s comfortable assigning run values.”
That said…the offensive run values on Statcast are unmistakably base-out state dependent.
Which is what the numbers on MLB.com SHOULD be…while also firmly diverging from fWAR’s True North of assessing context-neutral performance.
How you feel about Strider/Snell in 2023 will tell you how a pitching WAR metric should work (for you)
https://twitter.com/tangotiger/status/1725543492644913312
That’s really great piece – and I would add that Strider is a perfect example of my frustrations with FIP.
At this point, it’s pretty clear that his performance with men on base isn’t luck – he just doesn’t pitch as well from the stretch as he does from the windup.
That’s your frustration with FIP? We’ve known for around 20 years now that FIP is heavily flawed, since pitchers do in fact have significant control over contact quality on balls in play.
That being said, there’s also precedent for Strider’s issue. Trevor Rosenthal had the opposite problem and eventually decided to pitch exclusively from the stretch.
“Frustrations.”
Plural.
There is no flaw in FIP. It sets out to do what it wants to do. You may not like it, or you may not like how others use it, but that’s a different story.
OBP treats a walk = HR. That’s not a flaw.
Yeah, I should have said “FIP-based WAR.”
FIP perfectly measures the aspects of pitcher performance that it measures.
It just doesn’t measure all of pitcher performance…and it would be a lot less useful if it tried.
How far back to these changes go? 2015?
In the very first paragraph:
“Today’s changes are retroactive to the 2016 season.”
Aha! Thanks. Definitely missed that.
So technically, since the start of the 2024 season, Mookie has a 1.686 OPS but has lost 1.5 career WAR in that time.
technically correct (the best kind of correct)
RIP Pedro Severino
This is a nice update and also a perfect example of why not to fixate on WAR differences of <1 per season
Hmm, Pujols’s baserunning in his later years wasn’t nearly as bad as we thought, huh?
I’m confused — it seems this update has taken the negative runs created by players who ground out into a lot of DP’s. Is statcast’s baserunning taking DPs into account? Also, doesn’t statcast give baserunning credit for things like stretching a single into a double? If a player hits a double they get ~0.8 runs I think. If they needed good baserunning to turn it into a double, would there be some double counting with them getting credit for a double and good baserunning?
Am I making sense? Am I not understanding something?
I never understood why GDP was a baserunning stat instead of a hitting stat, when it has almost nothing to do with your speed.
Maybe not much, but it is affected by speed to some degree. A faster runner is more likely to beat out the second throw to first base on a ground ball fielder’s choice.
Meanwhile, it has even less to do with hitting, since it’s the harder hit balls (either ground balls or line drives) that are more likely to turn into double or triple plays.
Hi David,
I appreciate your hard work. In addition to WAR, I am wondering if you could add WAA metrics as well? Or failing that, point me in the direction of how to figure those out on my own?
I’d jury rig WAA by dividing the “Replacement” total in the Value section by 10 and subtracting it from their WAR
OFF + DEF is Runs Above Average. Divide by ~10 to get it into WAA
Thank you. Physics-based stats should be chosen over psychology-based stats.
That said, how could such an analytically-driven team like the Rays continue to run Taylor Walls out onto the field in 2023?
This is great. Huge step in the right direction. That being said theyre known to rush things out before theyre ready. I would only use the data though that is 100% ready to go. Several of these items are not…with the biggest one is catcher throwing.
It doesn’t take into account Pitchers time to home plate at all. Its 2024 and somehow they won’t release. They put all of it on the Catchers. It also doesn’t take into account fielding errors or missed tags by the 2B etc. Catcher throwing component isn’t any better than what was previously being used. Also the blocking runs they have isn’t normalized by opportunities/chances like their framing is. Its cumulative.
This is incorrect regarding catcher throwing. What have you read to make you say that its “all on the catchers”?
And Blocking Runs is cumulative, and this is the best way to do it. We don’t normalize any other stat. I can’t speak for Fangraphs Framing, but I’m 99% sure they also don’t normalize that.
Your right…when i said they put it all on the catchers that is incorrect.
You do try to add some portion to the fielder etc but its all guess work on that front. I haven’t seen anything about Pitcher to Homeplate times. I haven’t seen anything about postion player tag effeciciencies or tag quickness or tag accuracy, or position player positions on throws…are they in the right spot etc.
They tried to back calculate the pitchers to home plate last year or how good they held the runners on but that was more on the catchers reputation whether those runners would run on them or not. The teams they had the top simply had the catchers with the best defensive reps. They were assigning all of that data to the pitchers though. In that excercise they had some of the teams that were the slowest to home plate but were saying they were good at not letting players run on them….reality was they just had the best defensive catchers with best reputation. There needs to be a component on catchers throwing, how many chances were there for someone to take off and steal, and how many times did they actually take off. Same with pitchers….especially if they can’t calculate times to home plate.
I’ve seen several examples this year where the catcher threw to 2nd and the runner was out by 5+ feet. Easy out, in 2 examples one ricocheted off the 2nd baseman’s glove, and the other just simply went to the OF as the guy didn’t get to the base in time. Extremely accurate throws. Both go against the catcher but it should go against the position player as the catcher did everything right.
There’s catchers that very few try to run on, and there’s pitchers that very few try on per each available opportunity. None of that it is captured and it should be if we are not able to calculate times to home plate etc.
Also on the normalizations, the framing does have it, with Strike rate%. If you want to know the best framers, sort by that, the catcher framing runs has more to do with the guys that play the most.
if i want to know the best blockers, it should have blocks above average per attempt….not the guys who play the most for blocking runs.
statcast is incredible and the site does a great job…its my favorite. These are just a few things that I feel like could be easy improvements relative quickly. Maybe i’m wrong on that though.
It’s very difficult to respond here, because you are making assertions, and we’d have to walk back everything you are saying in order to have a productive discussion.
It would be helpful if you can ask questions, without making any assumptions, and then I can answer those questions.
Feel free to email me: tangotiger~yahoo~com