top of page
Post: Blog2 Post
Writer's picturePeter Majors

How Truly Anyone Can Calculate League Normalized Statistics: OPS+ and WRC+

Updated: Feb 1, 2021

Peter Majors


Since their inception, baseball statistics have been subject to traditional notions of what constitutes below average, average, and above average performance. These may include arbitrary beliefs about hitting for a certain batting average or meeting a specific home run threshold. These attitudes, love them or hate them, have shaped the way we think about baseball statistics at all levels of play.


Over the last two decades, baseball has experienced a sharp rise in the popularity of sabermetrics, or more advanced baseball statistics. These metrics have allowed us to measure player performance in a far more accurate manner. Despite being extremely useful for player evaluation, sabermetrics have only truly taken hold in Major League Baseball. This has left baseball at lower levels of play subject to the aforementioned arbitrary beliefs. I believe that this is a big problem with a simple solution - and that is transparency. In order for sabermetrics to truly take hold outside of Major League Baseball, we need to make that sure people outside of Major League Baseball understand their incredible potential and have the ability to use them on their own. This brings us to the reason why I wrote this post.


The goal of this post is to make calculating sabermetrics so easy that anyone can compute them. More specifically, it is to make easier calculating a certain type of sabermetric, what I call “league normalized statistics". In recent years, two of the most popular of these have become On-Base Plus Slugging Plus (OPS+) and Weighted Runs Created Plus (WRC+). These are the metrics I will be teaching you how to calculate in this post.

  • Side note: All of the information I used to calculate OPS+ and WRC+ is available online, in one place or another. However, I have condensed the most relevant of it into this post, making the process for computing these metrics much more straightforward.

To demonstrate, I will calculate these statistics for the Atlantic 10 conference, the division in which Fordham’s baseball team plays. In doing so, I only selected statistics from games played between two A-10 schools, as to eliminate the influence of non-conference teams. I took all of my data from the 2019 season, as the 2020 season did not last long enough to record any data from conference play.


Below is a screenshot of the excel file I used which contains these statistics:

If you are looking to calculate OPS+ or WRC+ for a particular league, I would recommend making sure you have access to this information ahead of time - as gathering it during the process can be extremely tiresome.


Now that we have our data set, let's get to work.

 

How to Calculate OPS+


The formula to calculate On-Base Plus Slugging Plus is deceptively simple. It requires only five inputs - four that are easy to obtain and one that is a bit more difficult. In order to calculate OPS+, you must know:

The formula for OPS+ is:

  • OPS+ = 100 * ((OBP / lgOBP) + (SLG / lgSLG) - 1) / BPF

I will gather the first four components from the excel file above. However, as I mentioned, obtaining the fifth component requires a bit of work. In order to find the Batting Park Factor, you must know:

  • The number of home and away games played by a team

  • The number of home and away losses by a team

  • The number of runs scored and allowed at home by a team

  • The number of runs scored and allowed on the road by a team

  • The total runs scored by teams at home and on the road in the league

  • The total games played in the league

If you are so inclined, the formulas required to obtain the Batting Park Factor can be found here: Park Factors Formulas.


However, there is no longer any need for them, as I have created a Park Factors Calculator using Google Sheets. It is based entirely on formulas found in the link above. If you plan on calculating either OPS+ or WRC+, this will make your life much, much easier.

  • Side note: To order to use the calculator, simply plug in the information on the bullet points above. If done correctly, the Batting Park Factor will appear in the column titled “BPF”. Do not forget to insert the total games played in cell B15, the total runs scored at home for the league in cell F12, and the total runs scored on the road for the league in cell G13. If your calculations require more than 10 teams, and therefore rows, ensure that the denominator in the “TBR” and “TPR” calculations remains the equivalent of the “RAL” and that the inputs for the number of teams remain consistent for the “OPC”, “BPF”, "PPF" and calculations. If you experience any issues, please send us an email at fordhamsas@gmail.com.

Below is a screenshot of the excel file I used to compute the Batting Park Factor for the entire Atlantic 10 conference. As you can see, it is quite involved - which is why I would recommend using the calculator linked above.

If you were wondering, the Batting Park Factor functions similar to OPS+ and WRC+ in that every point above or below 1.00 represents one percentage point above or below the average park in the league. For example, Richmond’s Pitt Field actually yielded 32.7% more runs than the average Atlantic 10 ballpark. Thus, it is considered to be by-far the most hitter-friendly ballpark in the Atlantic-10.


Since I will be calculating Fordham’s team OPS+, I will use their park’s .912 BPF in my calculation. All of the inputs in this formula were taken from the files above. My calculations are shown here:

  • OPS+ = 100 * ((.315 / .420) + (.347 / .378) - 1) / .912

  • OPS+ = 100 * ((.750) + (.918) - 1) / .912

  • OPS+ = 100 * (.668) / .912

  • OPS+ = 100 * .73245614

  • OPS+ = 73.24

Thus, according to OPS+, Fordham’s offense was about 27% worse than league average during 2019 conference play. This is after accounting for the pitcher-friendly ballpark that the Rams played half their games in, which decreased their offensive output by 8.8%. Despite this, they fared very well against conference opponents, going 15-9 during the regular season.


Since we have the Batting Park Factors for every Atlantic-10 ballpark, as well as the league average On-Base Percentage and Slugging Percentage for conference play, all we need to solve for an individual player’s On-Base Plus Slugging is their individual On-Base Percentage and Slugging Percentage.


Seeing that this blog is completely unbiased, we will also be calculating the OPS+ of Fordham’s best hitter during 2019 conference play: Jake MacKenzie


Against Atlantic-10 opponents, MacKenzie had a Triple-Slash Line of .309/.358/.468. This performance yielded MacKenzie an .826 OPS, which means that he was only slightly better than the average A-10 hitter during conference play. Let's see if by calculating his OPS+, we can get a different answer.


We solve for MacKenzie's OPS+ here:

  • OPS+ = 100 * ((.358 / .420) + (.468 / .378) - 1) / .912

  • OPS+ = 100 * ((.852) + (1.238) - 1) / .912

  • OPS+ = 100 * (1.09) / .912

  • OPS+ = 100 * 1.19517544

  • OPS+ = 119.51

Thus, MacKenzie was actually about 20% better than the average Atlantic-10 hitter during 2019 conference play. Remember, this is after accounting for the pitcher-friendly ballpark he played half his games in, which decreased his offensive output by 8.8% at home. By using OPS+, we find that Mackenzie was a far better hitter than what his OPS would suggest. Without the help of this OPS+, we might undervalue Mackenzie's production at the plate. Thankfully, this metric takes into account the parks and league Mackenzie played in, allowing us to gain a more accurate assessment of his performance.

 

How To Calculate WRC+


The formula for calculating Weighted Runs Created Plus is substantially more difficult than that of OPS+. However, if you have access to the below inputs, the calculation becomes a simple plug-and-chug. In order to calculate WRC+, you must know:

The formula for WRC+ is:

  • wRC+ = (((wRAA / PA + League R / PA) + (League R / PA – Park Factor * League R / PA)) / (AL or NL wRC / PA excluding pitchers))*100

Some of the inputs for calculating WRC+ are a bit difficult to obtain - namely WRAA and WRC. Unless you have access to these metrics, I would recommend using JT Jordan’s handy WRC+ Calculator. The calculator is quite intuitive, however there are few things you should be aware of if you decide to use it. In the “Desired League wOBA” cell, you are expected to input the league average On-Base Percentage. It also requires you to know the Batting Park Factor, which we explained how to obtain earlier in this post.

  • Side note: I take no credit for the creation of this calculator. It was developed by JT Jordan of The Hardball Times. My goal in including it here was to simply give it more visibility and allow for more people to calculate WRC+ on their own.

Just for fun, let's calculate Jake MacKenzie’s WRC+. Again, he was Fordham’s best offensive player during 2019 conference play and posted an OPS+ of 119.51. Below is a screenshot of JT Jordan’s calculator with the Atlantic-10 conference set as the league and MacKenzie set as the player:

As we can see, Jake MacKenzie is again a well above average hitter. He posted a WRC+ of 115, meaning he “produced” 15% more runs than the league average hitter during conference play. I would note that this calculation is not entirely accurate, as I was unable to gather information on how often he reached base on errors and was intentionally walked. However, assuming that he reached base on errors more often than he intentionally walked, his WRC+ should be slightly higher. I feel that this is a safe assumption to make since intentional walks in regular season college play are quite rare. For example, if MacKenzie reached base even once on an error without being intentionally walked, his WRC+ would jump to 122.


Thus, according to both OPS+ and WRC+, Jake MacKenzie was 15 - 20% better than the league average batter during 2019 conference play. I should also note that OPS+ and WRC+ share a 0.992 correlation with one another. This is actually quite surprising, since as we have seen, they arrive at their assessment of batter performance in radically different ways. OPS+ is typically considered to be inferior to WRC+; however as the above Baseball Prospectus article suggests, that is far from the truth. Therefore, if you do not have access to the myriad of inputs required to calculate WRC+, OPS+ is a more than acceptable substitute.

 

I hope you learned something from this article. As I mentioned at the start, my goal in writing this was to inform. It was to make the computation of league normalized statistics so simple that they could be calculated by anyone and for any league. I also hope this article helped you to understand the value of league normalized statistics, and how much of an incredible improvement they are over traditional baseball statistics such as Batting Average.


As this class of sabermetrics moves further and further into the mainstream, I expect there to be a greater demand for their use in collegiate and high school baseball. My hope is that this article, and the links included in it, can be of assistance to anyone looking to help usher in this new age of player evaluation.

 

Sources


4,513 views0 comments

Comments


bottom of page