I spent much of the weekend creating Python scripts to automatically generate my baseball reports. I can now generate my TOP rankings by team and individual for batting and pitching.
If you don’t know what TOP rankings are, it’s a stat I developed. I’m not saying I’m the first to ever come up with this. I’m probably not. But I discovered this completely on my own.
What is TOP?
Before we can explain TOP, we have to begin with the basics.
Batting Average
We all know the formula for Batting Average:
$$BA = \frac{H}{AB}$$
This was the gold standard for over 100 years.
On Base Percentage
On Base Percentage (OBP) measures how frequently a batter reaches base. According to WikiPedia, this statistic was invented in the late 1940’s by Brooklyn Dodgers statistician Allan Roth. It became an official MLB statistic in 1984.
Here’s the formula:
$$OBP = \frac{H + BB + HBP}{AB + BB + HBP + SF}$$
Slugging Percentage
Now we’re starting to get somewhere. Slugging Percentage (SLG) measures the productivity of a hitter. It begins with total bases. Total bases are the accumulated bases given for a single, double, triple or home run. A single is worth 1 base, a double is 2 bases, a triple is 3 bases and a home run is 4 bases.
$$SLG = \frac{(1B) + (2 * 2B) + (3 * 3B) + (4 * HR)}{AB}$$
OPS
In 1984, Pete Palmer and John Thorn developed a new stat called OPS which combines the slugging percentage and on base percentage. This stands for on-base plus slugging. This is a very simple calculation, which is why it has become so prevalent.
$$OPS = OBP + SLG$$
OPS has become the defacto standard when watching a baseball game and seeing the stats up on the scoreboard or television screen. However, there’s still a glaring omission. It does not take into account a player’s base running ability.
Total Offensive Production (TOP)
Two players could have identical OPS’s. However, one player doesn’t steal any bases. The other player steals 50 bases. Who do you think is the more productive player? This is where I have come up with Total Bases Accumulated (TBA). TBA combines total bases, walks, hit by pitch, and net stolen bases. Divide this by the total number of plate appearances and you get TOP.
$$TOP = \frac{TB + BB + HBP + SB - CS}{PA}$$
I think TOP shows a better overall performance of the batter than just OPS. Oh by the way, it works for the pitchers just as well. Using the Batting Against stats provided by Baseball Reference, I provide a report for TOP for pitchers as well.
See my weekly reports here: 2025 MLB Season