My rankings for batting and pitching are based on TOP (Total Offensive Production). TOP is calculated by getting the Total Bases Accumulated and dividing it by PA. Total Bases Accumulated is the sum of Total Bases, Base on Balls, Hit By Pitch and Net Stolen Bases.
But if we look further at this formula, and focus specifically on the Total Bases Accumulated, we can determine expected Runs by dividing the Total Bases Accumulated by 4.
This is based on the idea that in order to score a single run, you will need to accumulate 4 total bases. Now this isn’t always the case. You could have three singles to load the bases but not score a run. So you accumulated 3 bases. You could also have a walk, reach third on a throwing error and then score on a sacrifice fly. You have just scored a run on one total base. Over the course of a season, it mostly averages out. The total runs scored in 2025 was 21,614 while the expected Runs was 21,372.25. That’s a difference of 241.75 or 1.1%.
But what if it doesn’t average out for a team?
The Milwaukee Brewers scored 806 runs during the 2025 season. Their expected runs was 742.5. That is 63.5 runs more than expected. What does this mean? Well, I think this means they were extremely efficient in scoring runs.
On the other hand, the Pittsburgh Pirates scored 583 runs during the 2025 season. Their expected runs was 636.2. This means they scored 53.2 runs less than expected. I assumed this meant they had trouble getting their runners around the bases. I did some more research and found that the Pirates reached first base around 1,828 times (hits + walks + hbp), not taking into account reaching on error. They also had 1,127 runners left on base. This is 61.65% of the runners reaching first base. The New York Yankees also left 1,127 runners on base. However, they reached first base 2,065 times. That is 237 times more than the Pirates.
Team Expected Runs Batting
Rank | Team | Games | Plate Appearances | Runs | xR | Δ Runs |
---|---|---|---|---|---|---|
1 | New York Yankees | 162 | 6235 | 849 | 819.5 | 29.5 |
2 | Los Angeles Dodgers | 162 | 6187 | 825 | 778.5 | 46.5 |
3 | New York Mets | 162 | 6178 | 766 | 777.5 | -11.5 |
4 | Chicago Cubs | 162 | 6162 | 793 | 772.8 | 20.2 |
5 | Arizona Diamondbacks | 162 | 6210 | 791 | 770.0 | 21.0 |
6 | Seattle Mariners | 162 | 6200 | 766 | 767.0 | -1.0 |
7 | Philadelphia Phillies | 162 | 6166 | 778 | 765.0 | 13.0 |
8 | Boston Red Sox | 162 | 6206 | 786 | 758.8 | 27.2 |
9 | Toronto Blue Jays | 162 | 6180 | 798 | 747.8 | 50.2 |
10 | Athletics | 162 | 6151 | 733 | 746.5 | -13.5 |
11 | Milwaukee Brewers | 162 | 6227 | 806 | 742.5 | 63.5 |
12 | Atlanta Braves | 162 | 6186 | 724 | 720.8 | 3.2 |
13 | Detroit Tigers | 162 | 6093 | 758 | 719.2 | 38.8 |
14 | Tampa Bay Rays | 162 | 6045 | 714 | 713.5 | 0.5 |
15 | Minnesota Twins | 162 | 6059 | 678 | 705.0 | -27.0 |
16 | Miami Marlins | 162 | 6142 | 709 | 702.5 | 6.5 |
17 | Houston Astros | 162 | 6087 | 686 | 697.0 | -11.0 |
18 | Cincinnati Reds | 162 | 6082 | 716 | 695.8 | 20.2 |
19 | Baltimore Orioles | 162 | 6020 | 677 | 694.5 | -17.5 |
20 | Los Angeles Angels | 162 | 6000 | 673 | 691.2 | -18.2 |
21 | San Diego Padres | 162 | 6087 | 702 | 689.8 | 12.2 |
22 | San Francisco Giants | 162 | 6072 | 705 | 685.2 | 19.8 |
23 | Kansas City Royals | 162 | 6008 | 651 | 682.0 | -31.0 |
24 | Texas Rangers | 162 | 6046 | 684 | 681.2 | 2.8 |
25 | Washington Nationals | 162 | 5982 | 687 | 674.0 | 13.0 |
26 | St. Louis Cardinals | 162 | 6069 | 689 | 671.0 | 18.0 |
27 | Cleveland Guardians | 162 | 5943 | 643 | 657.8 | -14.8 |
28 | Chicago White Sox | 162 | 5987 | 647 | 654.8 | -7.8 |
29 | Colorado Rockies | 162 | 5908 | 597 | 645.0 | -48.0 |
30 | Pittsburgh Pirates | 162 | 6008 | 583 | 636.2 | -53.2 |
Team Expected Runs Pitching
Rank | Team | Games | Batters Faced | xRA | Runs Allowed | Δ Runs Allowed |
---|---|---|---|---|---|---|
1 | Texas Rangers | 162 | 5942 | 656.5 | 605 | -51.5 |
2 | San Diego Padres | 162 | 5981 | 661.0 | 621 | -40.0 |
3 | Milwaukee Brewers | 162 | 6041 | 662.5 | 634 | -28.5 |
4 | Chicago Cubs | 162 | 5904 | 665.0 | 649 | -16.0 |
5 | Pittsburgh Pirates | 162 | 5982 | 668.2 | 645 | -23.2 |
6 | Kansas City Royals | 162 | 5997 | 669.0 | 637 | -32.0 |
7 | Philadelphia Phillies | 162 | 6026 | 675.0 | 648 | -27.0 |
8 | Cleveland Guardians | 162 | 6054 | 682.0 | 649 | -33.0 |
9 | New York Yankees | 162 | 6080 | 685.5 | 685 | -0.5 |
10 | Boston Red Sox | 162 | 6150 | 685.8 | 676 | -9.8 |
11 | San Francisco Giants | 162 | 6095 | 687.2 | 684 | -3.2 |
12 | Detroit Tigers | 162 | 6034 | 687.2 | 691 | 3.8 |
13 | New York Mets | 162 | 6153 | 692.5 | 715 | 22.5 |
14 | Los Angeles Dodgers | 162 | 6077 | 693.8 | 683 | -10.8 |
15 | Cincinnati Reds | 162 | 6035 | 697.5 | 681 | -16.5 |
16 | Tampa Bay Rays | 162 | 5960 | 698.5 | 683 | -15.5 |
17 | Seattle Mariners | 162 | 6134 | 701.2 | 694 | -7.2 |
18 | Houston Astros | 162 | 6041 | 705.2 | 665 | -40.2 |
19 | St. Louis Cardinals | 162 | 6120 | 721.2 | 754 | 32.8 |
20 | Toronto Blue Jays | 162 | 6089 | 721.5 | 721 | -0.5 |
21 | Minnesota Twins | 162 | 6116 | 729.5 | 773 | 43.5 |
22 | Atlanta Braves | 162 | 6116 | 736.0 | 734 | -2.0 |
23 | Arizona Diamondbacks | 162 | 6183 | 751.5 | 785 | 33.5 |
24 | Chicago White Sox | 162 | 6124 | 755.2 | 742 | -13.2 |
25 | Baltimore Orioles | 162 | 6166 | 757.5 | 788 | 30.5 |
26 | Miami Marlins | 162 | 6185 | 761.0 | 798 | 37.0 |
27 | Athletics | 162 | 6232 | 783.0 | 817 | 34.0 |
28 | Los Angeles Angels | 162 | 6255 | 790.0 | 837 | 47.0 |
29 | Washington Nationals | 162 | 6287 | 796.0 | 899 | 103.0 |
30 | Colorado Rockies | 162 | 6367 | 885.8 | 1021 | 135.2 |