Interested in the underlying code that builds this report? Check it out on GitHub: mlb24
What is NPR?
NPR, Naive Performance Rating, is a metric I devised as a measure of team performance above/below expected. The logic behind it is this: I calculate each team’s expected runs scored in each game by taking the average of their runs scored per game and their opponent’s runs allowed per game. I then compare this expected value to the actual value of runs scored or allowed to calculate each team’s offensive and defensive NPR for each game. Here is an example.
Suppose the Cubs are playing the Cardinals. Let’s say the Cubs, on average, score 4.5 runs per game and allow 3.25 runs per game. And let’s say the Cardinals score 3.75 runs per game and allow 2.75 runs per game. We calculate the Cubs’ expected run value as the average of their runs scored per game and the Cardinals’ runs allowed per game, so (4.5 + 2.75) / 2 = 3.63. We would calculate the Cardinals’ expected run value the same way, so (3.75 + 3.25) / 2 = 3.5. We now have the Cubs’ expected run value as 3.63 and the Cardinals’ expected run value as 3.5.
Suppose that the final score of the game is a Cubs victory, 5-3. We would calculate the Cubs’ offensive NPR as their actual score minus their expected score: 5 - 3.63 = 1.37. We would calculate their defensive NPR as the Cardinals’ expected score minus their actual score: 3.5 - 3 = 0.5 (we do it in this order so positive values are good). For the Cardinals, their offensive NPR is their actual score minus their expected score, 3 - 3.5 = -0.5, and their defensive NPR is the Cubs’ expected score minus their actual score, 3.63 - 5 = -1.37. Notice how these numbers are opposite each other. So each team will have an offensive and defensive NPR for each game, which are aggregated in the plot below.
Of course, there are so many other factors that would play into a team’s true expected value, such as any injuries, starting pitchers, weather, and more. That is why I have named it Naive Performance Rating, because it assumes matchup metrics are independent of each other and does not take external factors into account. Which, of course, will lead to flaws in the metric, but is done for the sake of simplicity and interpretability.