Interested in the underlying code that builds this report? Check it out on GitHub: mlb24
- Team Standings
- Team NPR
- Total NPR Rankings
- Offensive NPR Rankings
- Defensive NPR Rankings
- Scorigami
- Yesterday’s Largest Victories
- Team Volatility
- Runs Scored per Game
- One-Run Games
- NPR and Win Percentage
- Best Records in Last Ten Games
- Early Leads
- First Score Dependence
- Home Field Advantage
- Winning and Losing Streaks
- Records vs. Above/Below .500 Teams
- Pythagorean Wins
- Season Long NPR Trends
- Runs Scored and Allowed Streaks
- Team NPR Trends in Past Ten Games
- First Inning Score Rates
- One Run vs. Multi Run Games
- Rolling Ten-Game Windows
- Pythagorean Rolling Windows
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.
- Atlanta Braves def. New York Mets 3-0
- New York Mets def. Atlanta Braves 8-7
- NA
- Arizona Diamondbacks (6.95)
- Colorado Rockies (6.58)
- Oakland Athletics (6.57)
- Arizona Diamondbacks (3.7)
- Chicago Cubs (3.4)
- Oakland Athletics (3.35)
- Miami Marlins (3.44)
- Colorado Rockies (3.39)
- Pittsburgh Pirates (3.31)
- Los Angeles Dodgers (8-2)
- Seattle Mariners (8-2)
- Atlanta Braves (7-3)
- Baltimore Orioles (7-3)
- Detroit Tigers (7-3)
- San Diego Padres (7-3)
- Chicago Cubs (6-4)
- Houston Astros (6-4)
- Miami Marlins (6-4)
- San Francisco Giants (6-4)
- Colorado Rockies (45.7% home / 29.6% away)
- Philadelphia Phillies (66.7% home / 50.6% away)
- Seattle Mariners (60.5% home / 44.4% away)
- New York Yankees (53.8% home / 61.7% away)
- Boston Red Sox (46.3% home / 53.1% away)
- San Diego Padres (55.6% home / 59.3% away)
- Winning Streaks: Los Angeles Dodgers (W5), Miami Marlins (W4), Seattle Mariners (W4), Baltimore Orioles (W3), Texas Rangers (W3), Chicago White Sox (W2), Houston Astros (W2)
- Losing Streaks: Los Angeles Angels (L6), Minnesota Twins (L4), Colorado Rockies (L3), Oakland Athletics (L3), Toronto Blue Jays (L3), Cleveland Guardians (L2), Detroit Tigers (L2)
- Miami Marlins (7)
- St. Louis Cardinals (6)
- Washington Nationals (4)
- Baltimore Orioles (3)
- Pittsburgh Pirates (3)
- Kansas City Royals (7)
- Los Angeles Dodgers (6)
- Tampa Bay Rays (4)
- Baltimore Orioles (3)
- Chicago Cubs (3)