What factors have an effect on runs scored at MLB Parks?

Question: What factors have an effect on runs scored at MLB Parks?

Why I asked the question: I was trying to find why Chase Field had such a high Park Factor over the years and the research expanded to all stadiums from that point.

Analysis: I did some research on effects on all MLB and MiLB stadiums (link to spreadsheet). After it was published, someone brought up that Chase Field had such a high Park Factor and elevation and temperature could not explain the entire difference. Being unable to tell if it was the lower humidity (as some suggested) or park size, I decided to run a multiple regression for the average park factors over the last 3 years (2006 to 2008) against elevation, average temperature, average humidity, park size (RF, RC, CF, LC, LF), average wall height, errors per game, wind direction, surface type and foul territory area.

Note:  Sorry for the pink images that are hard/impossible to read.  I seemed to hit a limit on html characters because of the number of graphs I used.  If you want to be able to read them better, the same article is on my blog.

Explanation of source of data:

Park Factors – I originally used runs scored per game because of the only Park Factors I could find did not go to the decimal point. After my original article ran, I got flooded with many different sets of data and am using Patriot's numbers from his website (htttp://

Elevation (ft)- Collected from the List of Major League Baseball stadiums on Wikepedia – Elevation is a major factor in determining the distance a ball travels and the time the defense has to react to the ball once it is in play.

Temperature (degrees F)– Collected from the retrosheet database – last 3 years, except only 1 year's worth of data for Washington. The higher the temperature the farther a ball will travel

Relative Humidity (percentage) – Average values from April to September from websites and Humidity is not supposed to have much of an effect on the distance a ball travels, but maybe that that small differences will explain some differences.

Dimensions (ft) – Taken from Wikepedia. Only 5 sets used – LF, FC, CF, RC and RF. Originally used total area from ballpark, but I found out that even though these two stadiums that had about the same area the stadium shaped like #1 below had a higher park factor:

Stadium #1 360-380-400-380-360

Stadium #2 380-380-380-380-380

Park Foul Area (ft squared) – Areas were calculated by Mitchel Lichtman. The larger the foul area, more foul balls will be caught, therefore less runs scored

Wind strength and direction (mph)- I used retrosheet data from the last 3 years (1 year for Washington). The data from Retrosheet comes in the for of 8 different directions. From these different directions, I created the following matrix:

I multiplied the X and Y values by the wind speed, added all the wind values up for each component and then divided by the number of games. Y component is a wind blowing out to CF, while the X component is a wind blowing to RF.




Question: When collecting this data, I found there was no wind blowing in form right field and I thought I had made a mistake somewhere. I searched on the games database for hat wind direction and the most recent case was in 2003. Has the wind not once over 5 years blown in from 1 game from RF? Is there some unspoken rule that the scores don't mark it this way?

Opponents Errors per game – I was looking for a way to measure how tough it is to play in a Stadium (i.e. Fly balls in Metrodome). The best metric I could come up with is to average the amount of errors the opposing team has per game.

Playing Surface – The three stadiums with Turf were given a value of 1 and the rest 0. Being that it was the new Field Turf, I wondered if runs scored might go down because the balls hit would be slower than "AstroTurf" and less weird bounces.
Average Wall Height (ft) – Averaged the values

Now it is time for a few graphs that show the data collected..

Note: Data on the Washington Nationals is only from 2008 since they just moved into a new park this last year.

The initial data is for each of the major league parks is in the following table

Table 1 Park Factors and Park Characteristics


Table 2 – Natural Factors and Errors


I ran a regression analysis on the data to get an equation that uses the preceding data.

The regression equation ended up having an R-squared of 0.714 and the Standard Deviation of the difference of the initial Park Factor and the final Park Factor was 0.0178.

There was two problems with that initial equation:

  1. The variable for wind blowing to CF was negative, therefore the more the wind was blowing out, less scoring that would be. That just defies all logic, so I threw both the Wind Components out for the next round of analysis

  2. The variable for Wall Height was positive, meaning the higher the wall, the more runs that are scored. Home runs score more runs than doubles, so I decided to remove Wall Height also.

After rerunning the regression after removing Wall Height and Wind, I got the following equation Standard Deviation of 0.0.0184 and R-squared of 0.692:

Park Factors = Away Teams Errors per game * (0.016) + % Relative Humidity * (-0.0012) + Foul Area * (-0.00000061) + Elevation * (0.000021) + Average Temperature * (0.00077) + Left Field * (-0.0010) + Left Center Field * (-0.00063) + Center Field * (-0.0010) + Right Center Field * (-0.00020) + Right Field * (0.0011) + 0.0090 (if Surface is turf) + 1.7056

Here is a simple chart of the factors for easy comparison of the factor and how much effects the park factor and run scoring environment.

Table 3. Amount each factor has on Park Factors and Runs Scored (9.54 runs per game was the average runs scored by both teams over the past 3 years).



Change in Park Factor

Change Runs Scored per game (9.54 runs per game)

10 degree F increase



Increase in RH by 10%



10,000 sq ft increase in foul area



Surface is Turf



1000 ft increase in elevation



1 Errors for Away Team



10 ft increase in LF



10 ft increase in LC



10 ft increase in CF



10 ft increase in RC



10 ft increase in RF



As it can be seen, each factor can significantly effect the runs scored. The following table is the original and final numbers for each of the ballparks. I also have added a column of combined stadium attributes (Dimensions, Foul Area and Surface Type) added to the equation's constant value to help to show which stadium designs lead to more runs.


The regression equation is able to predict some stadiums run production quite well. Here is a table where the regression was able to predict the Park Factor within 0.01.


I grouped the parks that exceeded the Standard Deviation of 0.0184 These are the stadiums that the factors I am using can't explain the runs scored at that stadium.


Using the preceding data we can do analysis on future parks. I will pick the Met's new stadium, Citi Field. Most of the natural effects will be the same and the errors aren't know yet, but we can look at the dimensions and foul area to come to some conclusion.


Shea Stadium

Change in PF

Citi Field

Change in PF

Difference (Citi -Shea)































Foul Area












The new Mets stadium looks to allow less runs per game than the previous one. If you used the 9.54 runs per game environment, it would allow 0.12 runs less per game or about 10 less runs over the entire 81 home games.

I have had a lot of help putting this study together and special thanks to Mitchel Lichtman and Patriot for providing and data and to Sky Kalkman for his many suggestions. I hope the data gives people more of an insight to various variables that go into a stadium and how much of an effect each variable has on the run scored environment.

Extra information for those that want to do their own regression analysis.

You could run your own regression using LINEST() in OpenOffice by using the data I have collected. I have the Spreadsheet for download and by inserting your own park factors into the spreadsheet, it will calculate the values for you.

Note: LINEST() puts the equation values in the opposite order they occur in the table and the 3rd value down on the left is the r-squared value.


  1. Open the spreadsheet in OpenOffice Calc. I use OpenOffice because it's free for everyone and creates the variables simply.

  2. Inset your values for the various teams into Table 1, 2, 3 and 4 under Park Factor columns. The cells for LINEST() will automatically update using the numbers.

  3. Copy all the LINEST() values and paste them into the area after Table 2. The upper left hand corner of the original data should be pasted on the cell that has a border. See following image. 3178018634_5f7a7fd342_medium

  4. All the values will be automatically updated in Table 2

  5. Do the same with Tables 3 and 4, but they don't contain Wall Height and Wind factors.

Log In Sign Up

Log In Sign Up

Forgot password?

We'll email you a reset link.

If you signed up using a 3rd party account like Facebook or Twitter, please login with it instead.

Forgot password?

Try another email?

Almost done,

By becoming a registered user, you are also agreeing to our Terms and confirming that you have read our Privacy Policy.

Join Beyond the Box Score

You must be a member of Beyond the Box Score to participate.

We have our own Community Guidelines at Beyond the Box Score. You should read them.

Join Beyond the Box Score

You must be a member of Beyond the Box Score to participate.

We have our own Community Guidelines at Beyond the Box Score. You should read them.




Choose an available username to complete sign up.

In order to provide our users with a better overall experience, we ask for more information from Facebook when using it to login so that we can learn more about our audience and provide you with the best possible experience. We do not store specific user data and the sharing of it is not required to login with Facebook.