Shark WAR is meant to be equivalent to the Wins Above Replacement (WAR) calculation found on baseball-reference.com and fangraphs.com. WAR combines offensive, defensive, and pitching statistics over a season into a single number that represents the number of wins the player contributed to their team, above the number of wins a "replacement" level player would be expected to contribute.
Shark WAR was created by Richard Franck, a data architect/analyst, baseball fan, and youth baseball umpire from Bethesda, Maryland. I created my own version because I wanted to perform calculations using WAR for all players and teams, and that data cannot be easily downloaded from other sites.
Instead, we define a replacement player based on team performance. A replacement player is the average player on a team that has a record of 48-112 in a 162 game season, or a .294 winning percentage. This applies to all phases of the game - pitching, hitting, and defense. (For comparison, the 2024 Chicago White Sox finished 41-121.)
The following definitions are used in the data tables on this site.
| Shark WAR | The total Wins Above Replacement, including hitting, fielding, and pitching | HR | Home Runs |
| Batting WAR | The batting portion of the player's Wins Above Replacement | BB | Walks, including intentional walks |
| G | Games Played | SB | Stolen Bases |
| PA | Plate Appearances, calculated as At Bats + Walks + Hit by Pitch + Sacrifice Flies + Sacrifice Hits | CS | Caught Stealing |
| wRC | Weighted Runs Created, a calculation of the number of runs the hitter contributed to his team as a batter | H | Hits |
| OBP | Times reached base (Hits + Walks + Hit by Pitch) divided by plate appearances (excluding Sacrifice Hits) | 2B | Doubles |
| SLG | Total bases (Hits + Doubles + (2 x Triples) + (3 x Home Runs)) divided by At Bats | 3B | Triples |
| Shark WAR | The total Wins Above Replacement, including hitting, fielding, and pitching | IP | Innings Pitched |
| Pitching WAR | The pitching portion of the player's Wins Above Replacement | W | Games Won |
| Pitch Runs Saved | The number of runs the pitcher did not allow compared to the number of runs a Replacement Player would have allowed in the same number of innings pitched | L | Games Lost |
| ERA | Earned Run Average: earned runs allowed per 9 innings pitched | CG | Complete Games |
| WHIP | Walks plus Hits per Innings Pitched | SV | Saves |
| SOper9 | Strikeouts per 9 innings pitched | R | Runs allowed (earned and unearned) |
| G | Games pitched | BB | Walks allowed, including intentional walks |
| GS | Games pitched as the starting pitcher | SO | Strikeouts |
| Fielding WAR | The fielding portion of the player's Wins Above Replacement | PO | Putouts |
| Def Runs Saved | The number of runs the fielder did not allow compared to the number of runs a Replacement Player would have allowed in the same number of defensive innings at that position | A | Assists |
| G | Games played defensively at the position | E | Errors made |
| Inn | Innings played defensively at the position | DP | Double Plays |
This section summarizes the calculations used in creating SharkWAR.
ExpectedWin% = RunsScored1.83 / (RunsScored1.83 + RunsAllowed1.83)
WAR for batting is based on Weighted On-Base Average (wOBA), which uses coefficients for the average number of runs generated by each possible outcome of at bats that are not an out. For example, in the National League in 2019, an average walk generated 0.693 runs, a single 0.872 runs, and a home run 1.949 runs. I use different coefficients for the AL and NL from 1947-2019 (from Baseball Reference). After 2019, when there are no longer any rule differences between the leagues, I use the value (from FanGraphs) for MLB as a whole.
Fielding is the most involved of the three components of WAR, and the least precise. My approach is informed by Bill James and the Win Shares methodology described in his 2001 book of that name.
My approach has some key differences, though. James starts by calculating the Win Shares for each position on a team basis, and then allots those Win Shares to individual players. I follow similar logic for the calculation of defensive value, but I assign that at the player level. Instead of "balancing" the totals at the team/season level, my totals are balanced at the league/season level.
The general approach is that for each position, the basic defensive statistics (Putouts, Assists, Double Plays, measured as above/below average per defensive inning) are weighted based on how important that statistic is to being a good defensive player at that position. For example: for second basemen, putouts are weighted at 1, assists are weighted at 3, and double plays are weighted at 4 - turning double plays is the most important thing a 2B does on defense. For third basemen, putouts are weighted at 1, assists are weighted at 5, and double plays are weighted at 1 - range (measured by making assists) is the most important factor for a 3B. These weights were first developed by Bill James and I have adjusted them based on my own analysis.
For all positions, the number or Error Runs is calculated based on the league average number of "Unearned Runs per Error" (with an adjustment for year, since the number or errors assigned by official scorers has been steadily declining since about 1975).
For Infielders and Outfielders, a player's opportunity to make plays is dependent on the team's pitching staff. For each team, a Fly Ball/Ground Ball ratio is calculated, and the number of putouts and assists for fielders is adjusted by 50% of the difference between the team's ratio and the league's ratio. This is a rough attempt to split the difference between giving fielders credit for the plays they actually made, and accounting for the increased/decreased opportunities they had for making plays due to the tendencies of the pitching staff they played behind.
For Catcher and First Base, some team calculations are used to infer defensive performance by each player based on the percentage of defensive innings that player played.
A position weighting factor is used to assign defensive value among the positions to approximately:
This is only an approximation, however, since the total number of assists and putouts by position varies from season to season by an unexpectedly large amount.
For each position, the calculation of Defensive Runs Saved is some form of: SUM (Adjusted Putouts, Assists, Double Plays, times weighting factors) * Position Factor - Error Runs
Unadjusted Fielding WAR is calculated as Defensive Runs Saved divided by Runs per Win.
The calculations for pitchers starts by calculating Adjusted Runs Allowed as Earned Runs allowed plus one-half Unearned Runs Allowed, adjusted by:
The key calculation for pitchers is Pitching Runs Saved: (Replacement Pitcher Runs Allowed per Innings Pitched - Adjusted Runs Allowed per Innings Pitched) * Inning Pitched.
Pitching Runs Saved is then adjusted by a Leverage Factor. The leverage factor is an attempt to give pitchers more credit for pitching in high-leverage situations - when the game is on the line. For relief pitchers (fewer than 50% of games pitched as a starter), the leverage factor is 0.8 times the number of wins plus losses plus saves. For starting pitchers, the calculation is 0.35 times the number of wins plus losses, + 0.1 times the percentage of starts that were complete games. To account for the change in how pitchers have been used over the seasons, this number is added to a "base" ranging from 0.87 (prior to 1977) to 1.02 (after 2004).
Unadjusted Pitching WAR is then calculated as Pitching Runs Saved divided by Runs per Win.
The final step is to adjust Pitching and Fielding WAR together to account for 50% of the total WAR in a season (the difference between a .500 winning percentage and the .294 winning percentage of a replacment team, times the number of games). The target is to assign pitching 85% of this amount, and fielding 15%; but this is adjusted by a "Defense Factor" that attempts to determine for each team how pitchers and fielders should split the credit (or blame) for preventing (or allowing) runs. The Defense Factor has 6 components, each based on the team's value compared to the league average:
In the first step of the adjustment, these six values are used to adjust the split between pitching and fielding per team up to +/-10% from the 85%/15% target.
In the second step of the adjustment, the total Pitching WAR plus Fielding WAR for a league/season is adjusted to conform to the 50% of total WAR available for the season.
The origin of the name "Shark WAR" comes from my time as an IT Architect, and a four-panel comic one of my co-workers found:
From that time, my professional alter-ego was the "lead sharkitect".
Restricting the Shark WAR data set to 1947 and later was done for three reasons:
There are a couple of areas I want to look into for improvements in the next version of the Shark WAR calculations.