Making Simple Edits to Projections for R, RBI, and PA
Is Justin Upton going to bat second for the Tigers? Or sixth? What would happen to Addison Russell‘s value if he moved from ninth in the order to second? Is Corey Dickerson really going to hit cleanup for the Rays? How does Yoenis Cespedes‘ signing affect Michael Conforto’s projections?
When it comes to evaluating our typical fantasy baseball hitting categories, we know that home runs, batting average, and stolen bases are dependent upon some mix of skill and playing time (let’s say “skill-dependent”). Runs and RBI are a bit more difficult to assess. They have playing time and skill elements (getting on base and hitting for power), but they are also largely team-dependent. The projection systems, like Steamer, project R and RBI for us, but what if we want to make an adjustment? Or we want to take a gamble on a player winning a particular battle?
My goal with this post is to provide a simple framework that can be used to quickly answer questions like those above. I’m also not the first to attempt this task. So when I’m done displaying my method, I’ll share the other strong approaches I’ve been able to find.
The Data
I downloaded ten years of team lineup split history from Baseball-Reference.com. For example, this link will take you to the 2007 Yankees (968 runs!). There you’ll see the production the Yankees received from players batting one through nine in the lineup. Looking just at an outlier like the Yankees isn’t really indicative of the whole, but with 10 years of data for 30 teams, we start to get somewhere.
I then stratified those 300 teams into buckets of 50 run increments (500-549 runs, 550-599, etc.) and calculated the average runs, RBI, and plate appearances for each lineup spot. The results are some (hopefully) very useful tables that can be used to quickly calculate the effect on a player’s stats due to a change in lineup position.
The Per Plate Appearance Tables
This first set of tables take a little bit of multiplication, but they’re what I’d use to walk through a quick projection for a player. Let’s use the Cubs and walk through a quick example with Jason Heyward as the team’s projected leadoff hitter.
As I write this, the Cubs are projected by Steamer to score 699 runs. Locating that in the “Runs per Plate Appearance by Team Runs Scored” table below, I see 0.130 runs per plate appearance for NL leadoff hitters.
Runs Scored | 550-599 | 600-649 | 650-699 | 700-749 | 750-799 | 800-849 | 850-899 | |||||||
League | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL |
1st | 0.114 | 0.120 | 0.116 | 0.125 | 0.128 | 0.130 | 0.131 | 0.137 | 0.140 | 0.143 | 0.142 | 0.152 | 0.153 | 0.161 |
2nd | 0.099 | 0.112 | 0.111 | 0.117 | 0.119 | 0.128 | 0.127 | 0.132 | 0.134 | 0.143 | 0.138 | 0.149 | 0.156 | 0.160 |
3rd | 0.107 | 0.109 | 0.107 | 0.120 | 0.116 | 0.130 | 0.129 | 0.137 | 0.133 | 0.150 | 0.138 | 0.159 | 0.151 | 0.156 |
4th | 0.091 | 0.100 | 0.106 | 0.111 | 0.115 | 0.121 | 0.125 | 0.132 | 0.132 | 0.137 | 0.138 | 0.152 | 0.150 | 0.143 |
5th | 0.094 | 0.108 | 0.106 | 0.103 | 0.109 | 0.113 | 0.118 | 0.121 | 0.120 | 0.126 | 0.130 | 0.135 | 0.139 | 0.136 |
6th | 0.091 | 0.087 | 0.101 | 0.096 | 0.102 | 0.099 | 0.109 | 0.111 | 0.118 | 0.114 | 0.125 | 0.115 | 0.124 | 0.131 |
7th | 0.092 | 0.083 | 0.094 | 0.090 | 0.097 | 0.096 | 0.103 | 0.098 | 0.113 | 0.105 | 0.121 | 0.102 | 0.117 | 0.116 |
8th | 0.095 | 0.080 | 0.094 | 0.085 | 0.100 | 0.089 | 0.102 | 0.096 | 0.109 | 0.097 | 0.114 | 0.106 | 0.120 | 0.109 |
9th | 0.072 | 0.059 | 0.089 | 0.065 | 0.100 | 0.067 | 0.105 | 0.074 | 0.105 | 0.079 | 0.116 | 0.079 | 0.118 | 0.080 |
In the RBI table, we find the average leadoff hitter for NL teams scoring 699 runs drive in 0.076 RBI per plate appearance.
Runs Scored | 550-599 | 600-649 | 650-699 | 700-749 | 750-799 | 800-849 | 850-899 | |||||||
League | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL |
1st | 0.075 | 0.074 | 0.075 | 0.072 | 0.079 | 0.076 | 0.086 | 0.081 | 0.085 | 0.087 | 0.091 | 0.090 | 0.093 | 0.104 |
2nd | 0.070 | 0.072 | 0.089 | 0.083 | 0.099 | 0.088 | 0.104 | 0.093 | 0.112 | 0.102 | 0.109 | 0.104 | 0.122 | 0.100 |
3rd | 0.110 | 0.114 | 0.113 | 0.124 | 0.127 | 0.127 | 0.131 | 0.134 | 0.139 | 0.149 | 0.149 | 0.159 | 0.152 | 0.158 |
4th | 0.113 | 0.126 | 0.119 | 0.135 | 0.134 | 0.136 | 0.143 | 0.150 | 0.152 | 0.154 | 0.160 | 0.169 | 0.175 | 0.174 |
5th | 0.113 | 0.106 | 0.109 | 0.114 | 0.115 | 0.128 | 0.128 | 0.134 | 0.133 | 0.140 | 0.141 | 0.158 | 0.156 | 0.151 |
6th | 0.089 | 0.097 | 0.104 | 0.103 | 0.104 | 0.113 | 0.116 | 0.121 | 0.119 | 0.123 | 0.120 | 0.132 | 0.137 | 0.141 |
7th | 0.088 | 0.095 | 0.094 | 0.098 | 0.103 | 0.109 | 0.106 | 0.115 | 0.116 | 0.119 | 0.124 | 0.124 | 0.121 | 0.130 |
8th | 0.089 | 0.079 | 0.089 | 0.082 | 0.097 | 0.093 | 0.098 | 0.099 | 0.111 | 0.100 | 0.116 | 0.104 | 0.118 | 0.107 |
9th | 0.081 | 0.057 | 0.087 | 0.061 | 0.083 | 0.061 | 0.092 | 0.070 | 0.090 | 0.076 | 0.104 | 0.068 | 0.108 | 0.081 |
And using this last table we can now multiply out an actual projection. There’s no difference between the AL and the NL in number of plate appearances, so no need for separate columns here.
Runs Scored | 550-599 | 600-649 | 650-699 | 700-749 | 750-799 | 800-849 | 850-899 |
1st | 4.549 | 4.621 | 4.632 | 4.683 | 4.724 | 4.750 | 4.802 |
2nd | 4.455 | 4.511 | 4.522 | 4.573 | 4.610 | 4.643 | 4.693 |
3rd | 4.358 | 4.407 | 4.423 | 4.463 | 4.508 | 4.529 | 4.579 |
4th | 4.257 | 4.308 | 4.324 | 4.363 | 4.403 | 4.419 | 4.487 |
5th | 4.156 | 4.207 | 4.224 | 4.261 | 4.301 | 4.312 | 4.379 |
6th | 4.038 | 4.094 | 4.113 | 4.155 | 4.195 | 4.215 | 4.274 |
7th | 3.923 | 3.986 | 3.997 | 4.040 | 4.082 | 4.101 | 4.160 |
8th | 3.813 | 3.863 | 3.874 | 3.924 | 3.965 | 3.989 | 4.044 |
9th | 3.680 | 3.738 | 3.756 | 3.805 | 3.844 | 3.870 | 3.918 |
For this example, let’s assume a 150-game season for Heyward. The table above tells us Heyward would be expected to see about 4.632 plate appearances per game. Multiplying our earlier numbers out we get:
- 4.632 PA/G * 150 G = 695 PA
- 0.130 R/PA * 695 PA = 90 R
- 0.076 RBI/PA * 695 PA = 53 RBI
Granted, this assumes Heyward would play every inning of those 150 games. To the extent you think he’d be substituted out in the middle of some games, you’d want to adjust accordingly. And selecting the Cubs for this example highlights an interesting oddity… They frequently bat a position player 9th. So perhaps Heyward’s RBI per PA should be ratcheted up some…
For reference, the Steamer projections for Heyward’s R and RBI are 91 and 71, respectively.
The Steamer projections also have Heyward for 146 G, 659 PA, 18 HR, and 18 SB. You could also adjust those counting stats about 5.5% based on our higher PA projection (695/659 = 1.055). That would bump the HR and SB both to 19 (1.055 * 18).
The Season-Long Tables
If multiplication isn’t your thing (you’re probably at the wrong website), here’s a series of full-season equivalents. They’re set to 162 games, so you’re still looking at some math to bump a player down to 155 games, or however many you think they’ll play.
For example, if we thought Heyward would play in 162 games, we would estimate 97 R, 57 RBI, and 750 plate appearances.
Runs | 550-599 | 600-649 | 650-699 | 700-749 | 750-799 | 800-849 | 850-899 | |||||||
League | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL |
1st | 84.0 | 88.9 | 87.1 | 93.9 | 96.0 | 97.4 | 99.2 | 103.9 | 106.5 | 110.0 | 109.3 | 117.8 | 118.8 | 127.0 |
2nd | 71.5 | 80.6 | 80.8 | 85.5 | 87.2 | 94.0 | 93.4 | 97.9 | 100.1 | 107.3 | 103.6 | 112.7 | 118.3 | 122.8 |
3rd | 76.0 | 76.7 | 76.1 | 86.0 | 82.9 | 93.4 | 92.7 | 99.2 | 97.0 | 109.8 | 101.5 | 117.1 | 111.3 | 117.3 |
4th | 63.0 | 68.7 | 73.7 | 77.6 | 80.3 | 84.9 | 88.2 | 93.6 | 94.1 | 97.9 | 98.7 | 109.4 | 108.4 | 105.5 |
5th | 63.5 | 72.4 | 71.8 | 69.9 | 74.4 | 77.8 | 80.9 | 83.6 | 83.6 | 87.9 | 90.5 | 94.4 | 97.9 | 97.8 |
6th | 59.5 | 57.1 | 67.1 | 63.6 | 68.0 | 66.0 | 72.8 | 75.2 | 79.9 | 77.7 | 85.6 | 78.7 | 85.7 | 92.5 |
7th | 58.5 | 53.0 | 60.5 | 58.4 | 62.4 | 61.9 | 67.2 | 64.5 | 74.4 | 69.4 | 80.5 | 68.4 | 78.2 | 80.0 |
8th | 58.0 | 49.4 | 58.8 | 53.3 | 62.6 | 55.7 | 64.5 | 60.9 | 69.7 | 62.6 | 73.8 | 68.7 | 77.9 | 73.3 |
9th | 43.0 | 35.1 | 54.1 | 39.1 | 60.4 | 41.0 | 64.5 | 45.8 | 65.3 | 49.4 | 72.3 | 50.0 | 74.3 | 52.0 |
Runs | 550-599 | 600-649 | 650-699 | 700-749 | 750-799 | 800-849 | 850-899 | |||||||
League | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL |
1st | 55.0 | 54.7 | 55.9 | 53.6 | 59.1 | 57.4 | 65.4 | 61.9 | 64.5 | 67.2 | 70.2 | 69.7 | 71.9 | 82.3 |
2nd | 50.5 | 52.3 | 64.8 | 60.4 | 72.0 | 64.5 | 76.5 | 69.2 | 83.8 | 76.4 | 82.1 | 78.3 | 92.3 | 76.8 |
3rd | 77.5 | 80.4 | 80.7 | 88.6 | 91.0 | 91.0 | 94.4 | 96.9 | 100.8 | 109.2 | 108.9 | 117.1 | 112.3 | 119.0 |
4th | 78.0 | 86.6 | 82.6 | 94.4 | 93.2 | 95.9 | 100.6 | 106.3 | 108.2 | 110.4 | 114.6 | 121.4 | 126.3 | 128.5 |
5th | 76.0 | 71.6 | 74.2 | 77.8 | 78.7 | 87.5 | 88.1 | 92.6 | 92.3 | 98.2 | 98.6 | 110.4 | 109.9 | 108.5 |
6th | 58.5 | 63.7 | 68.5 | 68.6 | 69.0 | 75.5 | 77.5 | 81.7 | 80.8 | 84.2 | 82.1 | 90.4 | 94.6 | 99.0 |
7th | 56.0 | 60.1 | 60.7 | 63.6 | 66.3 | 70.8 | 68.8 | 75.3 | 76.6 | 78.8 | 82.3 | 83.0 | 81.3 | 89.0 |
8th | 54.5 | 48.7 | 55.5 | 51.6 | 60.7 | 58.3 | 62.3 | 63.3 | 70.9 | 64.5 | 75.1 | 67.6 | 76.8 | 71.5 |
9th | 48.0 | 34.3 | 52.8 | 37.0 | 50.1 | 37.4 | 56.2 | 43.6 | 56.1 | 47.2 | 64.8 | 43.1 | 68.3 | 52.3 |
Runs Scored | 550-599 | 600-649 | 650-699 | 700-749 | 750-799 | 800-849 | 850-899 |
1st | 737 | 748 | 750 | 759 | 765 | 770 | 778 |
2nd | 722 | 730 | 732 | 741 | 747 | 753 | 760 |
3rd | 706 | 713 | 716 | 723 | 730 | 734 | 742 |
4th | 690 | 698 | 700 | 707 | 713 | 716 | 727 |
5th | 673 | 681 | 684 | 690 | 697 | 699 | 709 |
6th | 654 | 663 | 666 | 673 | 679 | 683 | 692 |
7th | 636 | 645 | 647 | 655 | 661 | 665 | 674 |
8th | 618 | 625 | 627 | 636 | 642 | 647 | 655 |
9th | 596 | 605 | 608 | 616 | 622 | 627 | 635 |
This last table is simply the sum of the 162-game R and RBI tables above. Because R and RBI are valued nearly identically in your standard rotisserie league, this can be a quick resource to gauge the effect of a change in batting lineup.
For example, if the Cubs re-signed Dexter Fowler to bat leadoff, bumping Heyward to fifth, Heyward might actually see his value rise as his combined R and RBI production goes from 155 for the season to 165.
Runs | 550-599 | 600-649 | 650-699 | 700-749 | 750-799 | 800-849 | 850-899 | |||||||
League | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL | AL | NL |
1st | 139.0 | 143.6 | 142.9 | 147.5 | 155.0 | 154.8 | 164.6 | 165.8 | 171.0 | 177.2 | 179.5 | 187.4 | 190.7 | 209.3 |
2nd | 122.0 | 132.9 | 145.6 | 145.9 | 159.2 | 158.5 | 169.9 | 167.1 | 183.9 | 183.7 | 185.6 | 191.0 | 210.6 | 199.5 |
3rd | 153.5 | 157.1 | 156.8 | 174.6 | 173.8 | 184.4 | 187.1 | 196.0 | 197.8 | 219.0 | 210.4 | 234.2 | 223.6 | 236.3 |
4th | 141.0 | 155.3 | 156.3 | 172.1 | 173.6 | 180.8 | 188.8 | 199.9 | 202.2 | 208.3 | 213.3 | 230.9 | 234.8 | 234.0 |
5th | 139.5 | 144.0 | 146.0 | 147.7 | 153.1 | 165.3 | 169.0 | 176.2 | 175.9 | 186.1 | 189.1 | 204.9 | 207.8 | 206.3 |
6th | 118.0 | 120.9 | 135.6 | 132.2 | 136.9 | 141.5 | 150.3 | 157.0 | 160.7 | 162.0 | 167.7 | 169.1 | 180.3 | 191.5 |
7th | 114.5 | 113.1 | 121.2 | 122.0 | 128.7 | 132.8 | 136.0 | 139.8 | 150.9 | 148.2 | 162.8 | 151.4 | 159.5 | 169.0 |
8th | 112.5 | 98.1 | 114.3 | 104.9 | 123.3 | 114.0 | 126.8 | 124.3 | 140.6 | 127.2 | 148.8 | 136.2 | 154.8 | 144.8 |
9th | 91.0 | 69.4 | 106.9 | 76.1 | 110.5 | 78.4 | 120.8 | 89.4 | 121.4 | 96.6 | 137.2 | 93.1 | 142.5 | 104.3 |
What’s the Benefit Here?
Again, my goal was to create an easy-to-use resource for those stats that are largely team-dependent. Surely we could use Steamer, Zips, or the Fans projections as our R or RBI estimate. But when news comes out that a player is being lifted from 8th in the lineup to 1st, who knows how quickly those projections will update. And they’re surely some weighted average calculation including probabilities of the player hitting in a variety of spots in the lineup. If we hear news and want to make an aggressive projection that they’ll stick in that spot, we need a resource to help us do that. Hopefully this can help in those situations.
Alternate Approaches
I’m far from the first to tackle this challenge. I was able to locate several other approaches you may want to consider. One significant weakness in the method described above is that it completely neglects batter skill. All else equal, those with higher OBPs will score more runs and those with better hitting skill and power will drive in more runs. Some of the approaches below attempt to incorporate both batter skill and team dependencies, so they likely lead to more accuracy but lose an element of simplicity.
Here are those alternate approaches I identified:
- Jeff Zimmerman, Hitter Evaluation (Part 2): Runs and RBIs (2011) – Jeff outlines an approach that incorporates skill, lineup, and team factors.
- Mike Podhorzer, Projecting X 2.0 (2016) – In the sequel to his first book, Mike takes on the challenge of R and RBI with his own formulas. He takes an approach very similar to what I outline above, but he’s calculated his own R and RBI ratios that also incorporate batter skill elements neglected above. Note, I’ve worked with Mike to develop an Excel file that accompanies the book which you can read about here.
- Rudy Gamble, Lineup Position Impact on Runs & RBIs (2009) – Similar in theory to what I outline above except Gamble uses indexes to adjust for each lineup spot. If you like his approach, with a little bit of time, I think you could adjust the tables above to create updated numbers (this was written in 2009).
Tanner writes for Fangraphs as well as his own site, Smart Fantasy Baseball . He's the co-auther of The Process with Jeff Zimmerman, and has written two e-books, Using SGP to Rank and Value Fantasy Baseball Players and How to Rank and Value Players for Points Leagues, and worked with Mike Podhorzer developing a spreadsheet to accompany Projecting X 2.0. Much of his writings focus on instructional "how to" topics, Excel, and strategy. Follow him on Twitter @smartfantasybb.
This could end up being very useful. Nice work, Mr. Bell.
Thanks, jd!