I: Abstract

Disney markets their amusement parks, Disneyland and Disney World, as “the happiest place on Earth.” If I am being honest with myself, I think that Disneyland is one of my favorite places to go on vacation regardless of the fact that tickets are very expensive. I have never been to Disney World due to the fact that I live on the west coast and Disneyland is a lot closer to me in terms of distance. I am under the impression that Disney World is similar to Disneyland, but with more theme parks. Staying on the topic of price, it is clear that over the course of my lifetime, I have seen Disneyland tickets become increasingly more and more expensive. This is interesting to think about as the parks have been ideally the same over the past 10 years. They might have added a few new rides here and there over the years, but the parks haven’t drastically changed. So the question I pose is why the ticket prices continue to rise at a constant rate and why people still overwhelmingly choose to go to Disneyland or Disney World when traveling to Anaheim or Orlando.


II: Introduction

As stated above, I am curious as to why attendance at Disney World has continually increased even as ticket prices have increased as well over the past decade. According to economic theory and common thought, raising the price of a normal good theoretically decreases the demand. However, this is not always true as it depends on the elasticity of demand for the good. According to Wikipedia, price elasticity of demand is defined as “a measure used to show the responsiveness, or elasticity, of the quantity demanded of a good or service to a change in its price.” An elastic good responds more proportionally to changes in other variables while an inelastic good changes less than proportionally to other variables. In other words, for an inelastic good, a price increase of 1% results in a quantity increase by less than 1%. Examples of elastic goods include certain goods and beverages while an example of an inelastic good is prescription drugs. Prescriptions are considered inelastic as the demand remains relatively static even as price changes. Elasticity can be calculated by dividing the percentage change in quantity demanded by the percentage change in price. After taking the absolute value of that, if the result is higher than 1, the good is considered relatively elastic, whereas if the result is lower than 1 it is relatively inelastic. Since I have found data on both attendance and prices for Disney World tickets from 2008-2018 I can easily calculate own-price elasticity and average it over that 11 year period to get an idea of why people increasingly attend Disney theme parks even as prices continue to rise.


III: Data

The data for this project is taken from two separate sources and will be combined in order to calculate the own price elasticity of demand for Disney World single day tickets. The first dataset is the attendance data for the different Disney World theme parks from the year 2008 to 2018. The data for 2019 has not been published and the data from 2020 will obviously be skewed due to the COVID-19 pandemic. This dataset was taken from Disney World’s Wikipedia page under the “attendance” section. I copied and pasted it into an Excel document and downloaded it as a csv file so it could be used. It contains 11 observations for the 11 years that it covers from 2008 to 2018 and contains 6 variables:

  • Year
  • Magic Kingdom
  • Epcot
  • Disney’s Hollywood Studios
  • Disney’s Animal Kingdom
  • Overall Attendance

The second dataset for this project contains the prices for Disney World tickets since the year 1971. This data was taken from an article found on CNBC and was last updated on July 9, 2020. While ticket prices can vary throughout the year, the data is based on the average single day pass taking into account both peak and off-peak prices. In the article, it states that most of the analysis was done by GoBankingRates which is a personal finance website that used data from AllEars.net in order to determine how Disney World admission fees have changed since 1971. In addition, they also made it clear that all the data was pertaining to Magic Kingdom as opposed to all the different theme parks so I will have to keep that in mind when calculating elasticity. According to a Disney spokesperson, the data and analysis was deemed as “generally accurate.” The dataset contains 49 observations which accounts for all 49 years from 1971 to 2019. In addition, there are two variables:

  • Year
  • Price

Using these two datasets I will be able to calculate the own-price elasticity of demand for single day passes for Disney World’s Magic Kingdom by finding the change in price as well as the change in attendance.


IV: Exploratory Data Analysis

IV.I: Attendance Data

Before getting into the actual process of calculating the own price elasticity of demand for Disney World ticket prices, I wanted to do a bit of introductory data analysis. This entails simple code that rearranges the data in a way where I can possibly make some assumptions about the data so that the results will not come as a surprise later.

The first thing that I wanted to do was see which theme park in Disney World received the highest total attendance from the year 2008 to 2018. This was easy to do as I just summed up the attendance for each park for each year and created a separate dataframe to be graphed as a histogram seen below.

From the graph above, we can see that Magic Kingdom had the highest total attendance from 2008 to 2018 as over 200 million people entered the park over that 11 year period. This is good to keep in mind as the pricing data I am using for this project is specific to Magic Kingdom. While this is not as helpful in terms of finding the elasticity of the tickets, it is still interesting to see the popularity of each theme park.


Now that I have the understanding of which park is the most popular, the next action I wanted to take was to visualize how attendance changed over the course of the 11 period that we have attendance data for.

As seen above, all the parks have an upward trend in terms of attendance. The only years I can see that have a decrease in attendance for most of the theme parks are 2009-2010 and 2015-2016. Other than that, all of them have seen a significant increase in attendance over the past 11 years.

Since I will be focusing on finding the elasticity of tickets for Magic Kingdom specifically, I thought it would be a good idea to view the trend in attendance for just this theme park. I extracted the data for Magic Kingdom and graphed it by itself below.


IV.II: Pricing Data

Moving on to the pricing dataset, the only thing that I could think of doing in terms of introductory data analysis was to graph the trend of prices from 2008 to 2018. Because the data contains prices for Magic Kingdom from 1971 to 2019, I had to cut down the time frame to match that of the attendance data: 2008-2018. After that it was pretty easy to graph.

Once again, we can see an upward trend in terms of pricing for Magic Kingdom tickets over the 11 year period. However, this does not tell us much about the elasticity as we do not know the proportion of the percentage changes of attendance and price. Since they are both constantly increasing, I will need to calculate just how much they are changing from year to year in order to get an idea of how elastic Disney World tickets are.


V: Analysis and Discussion

Moving on to the actual calculations of this project, the first step is to mutate both the attendance and prices datasets in order to find the percentage change of each from year to year. Once this is done, we can easily calculate elasticity of demand by dividing the percentage change in attendance by the percentage change in price for each individual year.

Percentage Change in Magic Kingdom Attendance
Year Attendance Percentage Change
2,008 17,063,000 NA
2,009 17,233,000 0.9963078
2,010 16,972,000 -1.5145361
2,011 17,142,000 1.0016498
2,012 17,536,000 2.2984483
2,013 18,588,000 5.9990876
2,014 19,332,000 4.0025823
2,015 20,492,000 6.0004138
2,016 20,395,000 -0.4733555
2,017 20,450,000 0.2696739
2,018 20,859,000 2.0000000

The chart above displays the percentage change in attendance at Disney World’s Magic Kingdom per year. Since we do not have data from 2007, 2008’s percentage change would be nonexistent, hence why there is an “NA” at that position. Looking more closely at the data, the percentage changes remain relatively small from year to year with the highest being from 2012 to 2013 as there was almost a 6% increase in attendance. From the numbers, I can see that there are only two years in which attendance actually decreased. Attendance dropped by 1.5% from 2009 to 2010 and by 0.47% from 2015 to 2016.

Percentage Change in Magic Kingdom Ticket Prices
Year Price Percentage Change
2008 75 NA
2009 79 5.333333
2010 82 3.797468
2011 85 3.658537
2012 89 4.705882
2013 95 6.741573
2014 99 4.210526
2015 105 6.060606
2016 110 4.761905
2017 115 4.545454
2018 119 3.478261

As for the percentage change in price for single day passes for Magic Kingdom, they seem to be a little higher than that of the percentage changes for attendance. The lowest percentage change is 3.4% while the highest is 6.7%. There were zero years from 2008 to 2018 during which the ticket prices decreased. In addition, since we see that the percentage changes in price are higher than the percentage changes in attendance, we can expect the tickets to be relatively inelastic.

To reiterate, the way in which I will calculate elasticity is by dividing the percentage change of demand (attendance) by the percentage change in price for each individual year. Once doing that, I can take the absolute value in order to get the results for elasticity.

Own Price Elasticity of Demand for Magic Kingdom Tickets
Year Elasticity
2008 NA
2009 0.1868077
2010 0.3988278
2011 0.2737843
2012 0.4884203
2013 0.8898647
2014 0.9506133
2015 0.9900683
2016 0.0994046
2017 0.0593283
2018 0.5750000

Once these calculations were finalized, I was able to get the own-price elasticity of demand for Magic Kingdom single day passes as shown in the chart above. As seen above, every single year saw an elasticity of demand under 0, thus proving my theory that Magic Kingdom tickets are relatively inelastic. With that being said, there are a few years that come extremely close to being unit elastic which means that the percentage change in demand was almost equal to the percentage change in price. From 2012 to 2013, elasticity was 0.88, from 2013 to 2014 elasticity was 0.95, and finally from 2014 to 2015 elasticity was 0.99 which is pretty much unit elastic. It would be interesting to do research relating to that time period to see why tickets were not as inelastic. However, from 2015 to 2016 tickets became extremely inelastic as it got as low as 0.09.

The next thing that I wanted to do was to average out the elasticities for this 11 year period in order to make a general assumption about the elasticity of demand for tickets.

Average Elasticity of Demand
Average
0.4912119

As seen, the average own-price elasticity of demand for Disney World’s Magic Kingdom single day passes is 0.49, making this a relatively inelastic good.


VI: Conclusion

As a result of this project, I was able to come to the conclusion that the average elasticity of demand for Magic Kingdom single day passes from 2008 to 2018 is around 0.49. Because it is under 1, it is relatively inelastic, meaning that a change in price has a relatively small effect on the quantity of the good demanded. This would explain a lot in terms of people’s purchasing habits of theme park tickets. As stated in the introduction, people, including myself, continue to purchase Disney’s theme park tickets regardless of how expensive it is. Every single time I am in Los Angeles or near Anaheim, I feel the want to go to Disneyland and I can assume it would be the same if I was in Orlando, near Disney World. For all these reasons, Disney’s pricing model/strategy relating to its theme parks makes a lot of sense. Due to the fact that their tickets remain relatively inelastic, it makes complete sense that they are able to continuously increase their prices year by year and still see the same, if not an increase in attendance at all their parks. I would relate this to the fact that many people get a sense of nostalgia when visiting these theme parks as it brings them back to a time in their childhood where they felt a sense of wonder and amazement. This could be one reason why people want to continue to visit places such as Disneyland and Disney World. Continuing this trend though, I can only see Disney’s prices increasing as time goes on. Especially because of the COVID-19 pandemic where they lost a lot of revenue, we can expect prices to rise in the near future once again. In terms of generalizing this pricing model to all theme parks across the world, I am not sure if other theme parks will see the same success that Disney has had. Disney oftentimes holds a special place in people’s hearts and memories which is why I believe that their tickets are more inelastic than those of other amusement parks. Once again, I believe that Disney did a really good job marketing their theme parks as the “happiest places on earth.” Before finishing, I would like to say that the numbers in this project are all rough estimates as the ticket prices fluctuate during the course of the year. However, through these estimates, it became possible to complete my task of calculating the price elasticity of demand for Magic Kingdom’s single day passes from 2008 to 2018.


VIII: Appendix

library(tidyverse)
library(sf)
library(readr)
library(USAboundaries)
library(USAboundariesData)
library(rnaturalearth)
library(rnaturalearthdata)
library(scales)
attendance = read_csv("~/github/disneyworld_ticket_elasticity/data/DisneyWorldAttendance - Sheet1.csv")

prices = read_csv("~/github/disneyworld_ticket_elasticity/data/disneyworldticketprices - Sheet1.csv")

MK = sum(attendance$`Magic Kingdom`)
E = sum(attendance$Epcot)
HS = sum(attendance$`Disney's Hollywood Studios`)
AK = sum(attendance$`Disney's Animal Kingdom`)

TotalAttendance = data.frame("Park" = c("Magic Kingdom", "Epcot", "Hollywood Studios", "Animal Kingdom"), "Attendance" = c(MK, E, HS, AK))

ggplot(data = TotalAttendance, aes(x = Park, y= Attendance), las=2) +
  geom_bar(stat="identity", color='#2e4057', fill='#66a182') +
  theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.5)) +
  labs(x = 'Disney World Theme Park',
       y = 'Attendance',
       title = 'Total Attendance for Disney World Themeparks from 2008-2018',
       caption = "Attendance Data")+
  scale_y_continuous(labels = scales::comma) 
ggplot(data = attendance, aes(x = attendance$Year)) +
  geom_line(aes(y = attendance$`Magic Kingdom`, colour = "red")) +
  geom_point(aes(y = attendance$`Magic Kingdom`)) +
  geom_line(aes(y = attendance$`Epcot`, colour = 'blue')) +
  geom_point(aes(y = attendance$`Epcot`)) +
  geom_line(aes(y = attendance$`Disney's Hollywood Studios`, colour = 'green')) +
  geom_point(aes(y = attendance$`Disney's Hollywood Studios`)) +
  geom_line(aes(y = attendance$`Disney's Animal Kingdom`, colour = 'purple')) +
  geom_point(aes(y = attendance$`Disney's Animal Kingdom`)) +
  scale_color_discrete(name="Legend", labels = c("Epcot", "Hollywood Studios", "Animal Kingdom", "Magic Kingdom")) +
  labs(x = 'Year',
       y = 'Attendance',
       title = 'Attendance for Disney World Themeparks from 2008-2018',
       caption = "Attendance Data") +
  scale_y_continuous(labels = scales::comma) 
ggplot(data = attendance, aes(x = attendance$Year)) +
  geom_line(aes(y = attendance$`Magic Kingdom`), col = "red") +
  geom_point(aes(y = attendance$`Magic Kingdom`)) +
  labs(x = 'Year',
       y = 'Attendance',
       title = 'Attendance for Magic Kingdom from 2008-2018',
       caption = "Attendance Data") +
  scale_y_continuous(labels = scales::comma) 
prices1 = prices %>% 
  filter(Year >= 2008 & Year < 2019)

ggplot(data = prices1, aes(x = prices1$Year)) +
  geom_line(aes(y = prices1$Price), col = "red") +
  geom_point(aes(y = prices1$Price)) +
  labs(x = 'Year',
       y = 'Price',
       title = 'Average Single Day Pass Price for Magic Kingdom from 2008-2018',
       caption = "Price Data") +
  scale_y_continuous(labels = scales::comma)
attendance = attendance %>% 
  mutate(pct_change_attend = ((attendance$`Magic Kingdom` - lag(attendance$`Magic Kingdom`)) / lag(attendance$`Magic Kingdom`)) * 100)

chart1 = attendance %>% 
  select(Year, 'Magic Kingdom', pct_change_attend)

knitr::kable(chart1, caption = "Percentage Change in Magic Kingdom Attendance", col.names = c("Year","Attendance","Percentage Change"), "simple", format.args = list(big.mark = ",", scientific = FALSE))
prices1 = prices1 %>% 
  mutate(pct_change_price = ((Price - lag(Price)) / lag(Price)) * 100)

prices1 = prices1 %>% 
  select(Year, Price, pct_change_price)

knitr::kable(prices1, caption = "Percentage Change in Magic Kingdom Ticket Prices", col.names = c("Year","Price","Percentage Change"), "simple", format.args = list(scientific = FALSE))
joined = merge(attendance, prices1, by = "Year")

joined = joined %>% 
  mutate(elasticity = abs(pct_change_attend / pct_change_price))

chart2 = joined %>% 
  select(Year, elasticity)

knitr::kable(chart2, caption = "Own Price Elasticity of Demand for Magic Kingdom Tickets", col.names = c("Year","Elasticity"), "simple", format.args = list(scientific = FALSE))
joined1 = joined %>% 
  filter(Year > 2008) 

average = mean(joined1$elasticity)

averagedf = data.frame("Average" = average)

knitr::kable(averagedf, caption = "Average Elasticity of Demand", col.names = c("Average"), "simple", format.args = list(scientific = FALSE))

library(icon)
fa("globe", size = 5, color="green")