The Triumphant Return of a Thing Nobody Will Care About

Posted on June 29, 2026

In 2002, legendary baseball sabermetrician Bill James released Win Shares, his mega-calculation of how to create a single baseball stat that combines everything a player can do to create value.

It was not a complete success. The baseball stat that is used these days for combining everything is called WAR, which stands for “Wins over Replacement”. Both stats attempt to summarize a player’s entire contribution into a single number. Both are effectively impossible for a normal person to calculate. But they come from different assumptions and measure things differently. It’s maybe easy to see why James’ version didn’t take off — it’s a little weird in how it works, and James never had the time or energy to convert people to it.

In the early 2000s, I spent a bunch of time writing a program that calculated Win Shares from the existing data sources, since nobody was doing it reliably. Those sources mostly don’t exist these days, so I have now rescued the code, re-implementing it as a Rails app with an HTML generated front-end, and pointing it at today’s available MLB data. I then took the liberty of updating the method a bit. Which is dangerous, but I think my steps are modest.

Since I’m basically writer’s blocked writing about coding itself, I’m going to unstick myself by writing about this little side project for a bit.

What’s a Win Share?

I don’t want to get into a huge discussion about Win Shares vs. WAR — okay, to be fair, I’d love to do that, but it’s somewhat digressive from the main point and I’m not really qualified, so let’s start with what a Win Share is.

A Win Share is… a one third of a win. Each team gets exactly three win shares for every game they have won in a season. These Win Shares are allocated precisely across the players on the team. For example, as I write this, the Cubs are 45-38, which means they have exactly 135 win shares as a team. The Win Shares method allocates those 135 shares among the Cub players. The number of Win Shares given to each player reflects the value that player has delivered. And the total number of Win Shares for all Cub players equals 135. As I write this Pete Crow-Armstrong has been allocated 19 of those Win Shares, leading the team. A typical MVP-candidate season is 30 Win Shares or so.

Also, in the Win Share system as written, players get integer numbers of Win Shares. So, PCA has 19 Win Shares and not 18.9

You likely have questions:

  • Wait, what?
  • That works? It sounds bizarre?
  • Why three?

To answer the last question first, it’s three because that’s what James perceives as the reasonable precision of the system. At that level, he’s reasonably confident that a difference of one win share is meaningful. (In a 2023 article, James talks about mistakes he made in the system, and refuses to declare the three-share thing a mistake, even as he acknowledges that a more decimal based formula might have been more approachable.

The integer rounding has a related, James argues that a tenth of a win share is so far within the potential error of the system that it’s not worth arguing about, and he didn’t want people to ascribe meaning to a tenth of a Win Share.

Fair enough, but I do think it’s objectively funny to write a system so complex that it takes 40 pages to explain, that gets deep into the minutiae of things like sacrifice bunts allowed and how many left-handed batters the team has faced above average and then have the last step be “round to the nearest integer”. (The 2023 article lists “complexity” as one of the mistakes).

To answer the first two questions: yeah, it does work.

The way to think about the whole system is as an accounting system. The Cubs have 45 wins, that’s the value of their season to date. The system then asks: Which players responsible for those wins? And for how many of them? The system is a careful attempt to allocate responsibility for the team’s success across the players.

The next question you might have is whether it’s better to be a player on a good team because a good team has more Win Shares to allocate. The answer is no, because a good team also has more players who have delivered value — that’s why it’s a good team. Turns out there’s a more or less predictable relationship between the performance of the players and the performance of the team, so it doesn’t usually matter how good the team is overall.

That said, the system strictly adheres to the idea that all values must add up to the team total. If you’ve seen any in advanced sports statistics at all, you know that there’s always some variation between the team total and individual totals. For example, a baseball team’s wins and losses are easily predictable from their runs scored and runs allowed, but no team will exactly match that prediction. What causes that gap is something of an open question, it could be better clutch performance, it could be that the team has been unusually good at winning close games, it could be luck.

In James’ view, that gap consists of some kind of skill or value that the system is not measuring. (In the 2023 article, he calls this a mistake, but it’s clear that he thinks the underlying logic is strong, but that it could have been expressed differently.)

The gap between stats and wins is assigned to players. So, if a team has won 90 games, but their raw stat performance suggests they should have only won 86 games, that extra 5% gap is assigned to every player, on the theory that there’s 5% of value unaccounted for, and something must have caused it.

How do you calculate Win Shares?

The system starts by splitting responsibility for wins at a team level among batting, pitching, and fielding. Then the wins in each of those buckets are allocated them to individual players. Basically, the more runs you score the more value goes to your offense and fewer runs you allow the more value goes to defense. Defensive shares are split between pitching and fielding, so things like lots of strikeouts means more value for pitching, while more double plays means more value for fielding.

The batting and pitching shares are then apportioned to players based on their stats — the system calls these “claim points”, and then the win shares are allocated to players proportionally to their claim points. For batters James uses his Runs Created formula (more or less). Pitchers are more complicated but most of their claim points are based on runs allowed per inning.

The thing is, this structure — starting from the team total and trying to split things up — does a very good job of allocating value. Since you are kind of bounded by the team total, almost any reasonable measure of individual worth that’s even vaguely proportional gets you pretty decent results. James actually presents a one-page version of the formula that is within 2 Win Shares of the 40 page version for like 90% of players. Which, again, is kind of funny.

The fielding stats are both where I think the real breakthrough of the system was in 2002, and also where 85% of the complexity is. To really oversimplify, James:

  • Realized that good teams and bad teams alike both have three defensive outs an inning and 27 defensive outs a game.
  • As a result the team fielding stats of good teams and bad teams will look superficially similar, causing a huge amount of distortion in individual fielding stats.
  • But we do have a good idea of whether a team is generally good at defense, because a team that is good at defense will give up fewer runs based on the amount of balls the pitchers let be put in play.
  • We can assume that the results at a team level are a result of the abilities of the players individually. So a team of overall good defensive performance should have, on balance, good defensive players.

So the complexity in James system is trying to tease out how much credit each individual position gets at a team level, and then splitting the credit for that position among the people who played it. Credit by position at a team level is generally whether the players at that position, as a group, have made more plays than league average. Credit by player is basically proportional to how many plays each player has made.

Again, the idea of starting with team performance and trying to account for it does a decent job of isolating players that are providing defensive value.

So What Did I Do?

Win Shares are a very convoluted system that pulls in a ton of stats and ends in a very satisfying single number for each player, and the system was described in the book excruciating detail.

Naturally I wanted to build it.

One thing about revisiting this code is that there is just way more data available now than there was in 2002. I’m not smarter than Bill James, but there are a couple of cases where he is clearly and explicitly trying to estimate a piece of data that we can now just access directly.

1B Putouts

James’ formula for first basemen does some contortions to estimate the number of unassisted putouts made by first basement. We now have that information directly, so I used the direct count.

Similarly, James has a complex formula to estimate the number of plays where a first basement makes an assist via a throw, but that number is now counted directly, so I used the direct count.

Outfield Splits

In 2002, outfield fielding wasn’t as readily available split by position. But I do now have that information, and so I treat fielding by each outfield position separately rather than treating all outfield as one bucket. (This information may have existed in 2002, so this may have been a deliberate choice by James, but I’m not 100% sure).

Relief Pitchers

This is kind of a big change, but I think it’s directionally correct. James wants to give extra credit to relievers who pitch in important situations. What he does is calculate “Save Equivalent Innings”, where a relief pitcher is given credit for “bonus” innings pitched based on his saves and holds, and is credited with extra runs saved based on those bonus innings.

But that’s, at best, a very approximate measure of who is pitching in really important situations, and is somewhat less appropriate now than it was in 2002 based on changes in how pitchers are used. The data now available has an actual measure of the average importance of the situations that a reliever comes into a game, so I’m now using that number to calculate bonus innings. If a reliever comes into a game in unusually important situations, the reliever gets bonus innings.

Game Shares

This is the place where I walked out the farthest on my own.

James’ original work calculates Win Shares but not Loss Shares. He says in the book that Loss Shares are complicated and he didn’t want to wait another two years to publish, but he doesn’t really elaborate. He does describe this as the biggest flaw in the system.

I think there are at least two complications:

  • Any reasonable structure is either going to conclude that the very best players have negative loss shares or is going to have to very much contort itself to avoid that.
  • It seems to be pretty easy to do this in such a way that players are penalized for playing harder defensive positions, which leads to bad results.

Also, it’s not clear what a “Loss Share” is. It seemed to me that it was much easier to try to calculate opportunities — call them “Game Shares” — allocate the Game Shares to individual players and then assume Loss Shares are (Game Shares - Win Shares).

So, here’s what I did. There’s a bunch of super-fiddly small choices here, and I’m not very confident in them, but the final numbers seem decent. Still tweaking.

Each team gets three game shares for each game played: Effectively, this means that each team also gets three loss shares for each loss.

Split among groups: I use the inverse of the split for win shares, based on the default, which is 52% for defense, if the team has 55% win shares for defense, then they have 49% loss shares for pitching. We handle the pitching -> fielding split similarly. I don’t split fielding into positions on the grounds that a) it’d be a huge pain and b) doing so is exactly how I learned that you can penalize players at high skill positions.

Each bucket is split among players: I tried to make this pretty simple, mostly based on time played with a sight penalty for poor performance.

  • A batter earns a claim share by making an out
  • A pitcher earns a share by pitching a third of an inning. Plus a share for a fielding error, plus some shares for poor performance, essentially if you give up runs more than 150% of the league average.
  • a fielder earns a share by being in the field a third of an inning, plus a share for a fielding error. (DH’s earn shares as though they were fielders).

This does mean that the best players have negative losses, especially the best pitchers, but I’m fine with that, the numbers seem, to me, to be reasonable.

I did compare my results to WAR and by and large there are three systemic differences:

  • Win Shares gives credit for performance as a batter with runners in scoring position, WAR doesn’t.
  • My defensive opportunities create a small penalty for players at low-skill positions (or DH), because all players accrue opportunity at the same rate, but a Shortstop can accumulate more wins that, say, a First Baseman. WAR’s penalties for this are apparently harsher because I seem to be rating DH and 1B players a little higher.
  • Win Shares are clearly less generous to the best starting pitchers.

It seems to me that the last two are calibration issues that I might be able to fix, though it’s not 100% clear to me that Win Shares is wrong here.

Future Frontiers

There are a couple of other things that are now counted that James estimated, probably the biggest one is opportunities for outfielders to throw out runners and how often runners advance on an outfielders arm. We also now count stolen base attempts at second and third separately, that could make a very minor difference in the catcher ratings.

Okay, but what are the numbers?

As I write this, at the end of June, the Win Shares MLB all-star team looks like this — we’re rating players based on Win Shares above Replacement, where Replacement is considered to be a .300 win percentage, so it’s Win Shares - (Game Shares x 0.3).

Catcher:

Player Name Team WS LS WSAR
William Contreras MIL 16 0 11.2
Shea Langeliers ATH 13 4 7.9
Liam Hicks MIA 12 2 7.8
Dillon Dingler DET 12 5 6.9
Ryan Jeffers MIN 8 -2 6.2

I think Contreras has the highest defensive Win Share total of anybody.

First Base:

Player Name Team WS LS WSAR
Nick Kurtz ATH 18 -2 13.2
Jonathan Aranda TBR 14 2 9.2
Bryce Harper PHI 14 3 8.9
Michael Busch CHC 14 4 8.6
Alec Burleson STL 13 4 7.9

White Sox rookie sensation would be on this list except for injury.

Second Base:

Player Name Team WS LS WSAR
JJ Wetherholt STL 17 -1 12.2
Brice Turang MIL 15 2 9.9
Luis Arraez SFG 13 4 7.9
Ketel Marte ARI 12 5 6.9
Ozzie Albies ATL 12 5 6.9

I’m not actually tracking it, but I think Wetherholt is the top rookie in the ratings so far.

Third Base:

Player Name Team WS LS WSAR
Miguel Vargas CHW 17 0 11.9
Junior Caminero TBR 15 2 9.9
Isaac Paredes HOU 12 4 7.2
José Ramírez (10-day IL)# CLE 12 4 7.2
Matt Chapman SFG 12 5 6.9

Shortstop:

Player Name Team WS LS WSAR
CJ Abrams WSN 17 0 11.9
Bobby Witt Jr. KCR 15 2 9.9
Otto Lopez MIA 13 4 7.9
Brayan Rocchio CLE 12 4 7.2
Kevin McGonigle DET 12 5 6.9

Elly De La Cruz was in the mix before his injury.

Left Field:

Player Name Team WS LS WSAR
Bryan Reynolds PIT 15 1 10.2
Brandon Marsh PHI 13 2 8.5
Sam Antonacci CHW 12 0 8.4
Mauricio Dubón ATL 13 3 8.2
Randy Arozarena SEA 13 3 8.2

Center Field:

Player Name Team WS LS WSAR
Pete Crow-Armstrong CHC 19 -2 13.9
Andy Pages LAD 15 4 9.3
Mike Trout LAA 13 2 8.5
Michael Harris II ATL 12 2 7.8
Byron Buxton MIN 12 4 7.2

Quite a comeback here for PCA, who had a very rough start to the year.

Right Field:

Player Name Team WS LS WSAR
James Wood WSN 17 1 11.6
Corbin Carroll ARI 16 1 10.9
Jordan Walker STL 15 2 9.9
Aaron Judge NYY 11 2 7.1
Ronald Acuña Jr. ATL 9 2 5.7

If I remember correctly, Judge was leading at the time of his injury.

Designated Hitter:

Player Name Team WS LS WSAR
Yordan Alvarez HOU 23 -7 18.2
Shohei Ohtani LAD 22 0 15.4
Yandy Díaz TBR 19 -4 14.5
Kyle Schwarber PHI 17 -1 12.2
Iván Herrera STL 12 5 6.9

Alvarez has the best total in the league by a bit. Diaz is third, so this is where I think I might not be penalizing DH’s enough.

Ohtani is 13 - (-1) as a hitter, 10 - (-2) as a pitcher, and is credited as 0-4 as a DH, he rounds to 22-0 instead of 23-1.

Starting Pitcher:

Player Name Team WS LS WSAR
Cristopher Sánchez PHI 13 -3 10.0
Chase Burns CIN 12 -3 9.3
Jacob Misiorowski MIL 12 -3 9.3
Eduardo Rodríguez ARI 11 -3 8.6
Cam Schlittler NYY 11 -1 8.0

Ohtani just misses this list a pitcher, largely because he has fewer innings than the other top players.

Relief Pitcher:

Player Name Team WS LS WSAR
Mason Miller SDP 10 -7 9.1
Jhoan Duran PHI 9 -6 8.1
Louis Varland TOR 9 -4 7.5
Cade Smith CLE 8 -4 6.8
Antonio Senzatela COL 8 -4 6.8

A weird quirk of the system is that relief pitchers are the most likely to have negative losses.

Total

Put it all together and here is your top 10:

Rank Player Name Team Position WS LS WSAR
1 Yordan Alvarez* HOU DH 23 -7 18.2
2 Shohei Ohtani* LAD DH 22 0 15.4
3 Yandy Díaz TBR DH 19 -4 14.5
4 Pete Crow-Armstrong* CHC CF 19 -2 13.9
5 Nick Kurtz* ATH 1B 18 -2 13.2
6 JJ Wetherholt* STL 2B 17 -1 12.2
7 Kyle Schwarber* PHI DH 17 -1 12.2
8 Miguel Vargas CHW 3B 17 0 11.9
9 CJ Abrams* WSN SS 17 0 11.9
10 James Wood* WSN RF 17 1 11.6

That feels defensible…


Subscribe to the Dynamic Rubyist Newsletter

Subscribe to the blog via RSS

RSS Feed