Topic

The comparison of The Walt Disney Company’s financials before and after the releasing of Avengers: Endgame (2019)

Project Description

Purposes and Objectives:

  • To evaluate the financial impact of “Avengers: Endgame” on The Walt Disney Company by examining key financial metrics—Revenue, Gross Profit, Net Income, Enterprise Value, Dividend Per Share, and Dividend Yield—before and after the film’s release.
  • To determine whether there has been a financial downturn post-release, which might suggest a logical stopping point for the Marvel Cinematic Universe (MCU).

Motivations:

As an enthusiast of the Marvel Cinematic Universe (MCU), I am particularly interested in exploring the financial impact of my favorite film on its parent company, The Walt Disney Company. Examining financial metrics can provide quantifiable evidence of the film’s success. Additionally, I am keen to understand the current performance of Disney following the release of “Avengers: Endgame,” which was widely regarded as the culmination of the Marvel saga. This film was the last Marvel franchise movie I viewed, as subsequent releases have, in my opinion, not achieved the same level of prominence or acclaim.

Data in use

library(readr)
library(xts)
Warning: package 'xts' was built under R version 4.3.3
Loading required package: zoo

Attaching package: 'zoo'
The following objects are masked from 'package:base':

    as.Date, as.Date.numeric

######################### Warning from 'xts' package ##########################
#                                                                             #
# The dplyr lag() function breaks how base R's lag() function is supposed to  #
# work, which breaks lag(my_xts). Calls to lag(my_xts) that you type or       #
# source() into this session won't work correctly.                            #
#                                                                             #
# Use stats::lag() to make sure you're not using dplyr::lag(), or you can add #
# conflictRules('dplyr', exclude = 'lag') to your .Rprofile to stop           #
# dplyr from breaking base R's lag() function.                                #
#                                                                             #
# Code in packages is not affected. It's protected by R's namespace mechanism #
# Set `options(xts.warn_dplyr_breaks_lag = FALSE)` to suppress this warning.  #
#                                                                             #
###############################################################################

Attaching package: 'xts'
The following objects are masked from 'package:dplyr':

    first, last

read_csv("Disney.csv")
Rows: 10 Columns: 7
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
dbl (3): Year, DividendPerShare, DividendYield
num (4): Revenue, GrossProfit, NetIncome, EnterpriseValue

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Analysis

library(broom)
Warning: package 'broom' was built under R version 4.3.3

Disney = read_csv("Disney.csv")
Rows: 10 Columns: 7
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
dbl (3): Year, DividendPerShare, DividendYield
num (4): Revenue, GrossProfit, NetIncome, EnterpriseValue

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

After2019 = Disney |> group_by(Year) |> mutate(After2019 = case_when(Year < 2019 ~ "Before 2019",TRUE ~ "After 2019"))

Disney’s Revenue

After2019 |> 
  group_by(Year) |> summarise(Revenue, After2019) |> pivot_longer(Revenue) |> 
 ggplot(aes(Year, value, fill = After2019)) + geom_bar(stat = "identity", position = "dodge") +
  geom_line(aes(Year, value, fill = After2019), size = 1) +
  geom_point(aes(Year, value, fill =  After2019), size = 3) + theme_minimal() +
  labs(title = "Disney's Revenue", y = "Revenue in Million(s)")
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
This warning is displayed once every 8 hours.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
generated.
Warning in geom_line(aes(Year, value, fill = After2019), size = 1): Ignoring
unknown aesthetics: fill

Before 2019:

  • Trend: Steady increase from 48,813 in 2014 to 59,434 in 2018.

  • Growth Rate: Approximately 21.7% growth over the 5 years.

After 2019:

  • Trend: Continued increase from 69,607 in 2019 to 88,898 in 2023.

  • Growth Rate: Approximately 27.7% growth over the 4 years. Comparison: Revenue growth rate accelerated after 2019, despite global economic challenges, indicating strong operational performance and market demand.

Explanation: The steady growth up to 2018 could indicate successful market expansion, new product launches, or increased market share.

The significant jump in 2019 might be due to a major strategic shift, such as a large acquisition, successful new products, or market expansion.

Continued growth post-2019, despite economic challenges such as the COVID-19 pandemic, suggests robust demand and effective management.

Disney’s Gross Profit

After2019 |> 
  group_by(Year) |> summarise(GrossProfit, After2019) |> pivot_longer(GrossProfit)|> 
  ggplot(aes(Year, value, fill = After2019)) + geom_bar(stat = "identity", position = "dodge") +
  geom_line(aes(Year, value, fill = After2019), size = 1) +
  geom_point(aes(Year, value, fill =  After2019), size = 3) + theme_minimal() +
  labs(title = "Disney's Gross Profit", y = "Gross Profit in Million(s)")
Warning in geom_line(aes(Year, value, fill = After2019), size = 1): Ignoring
unknown aesthetics: fill

Before 2019:

  • Trend: Increase from 22,393 in 2014 to 26,708 in 2018.

  • Growth Rate: Approximately 19.3% growth over the 5 years.

After 2019:

  • Trend: Fluctuated, with a dip to 21,508 in 2020 and recovery to 29,697 in 2023.

  • Growth Rate: Approximately 7.8% growth over the 4 years.

Explanation:

The initial growth trend aligns with the revenue growth, suggesting efficient cost management and scaling.

The dip in 2020 could be due to increased costs or decreased sales volumes from the pandemic.

Recovery indicates that the company managed to control costs or regain sales volumes post-pandemic.

Disney’s Net Income

After2019 |> 
  group_by(Year) |> summarise(NetIncome, After2019) |> pivot_longer(NetIncome)|> 
  ggplot(aes(Year, value, fill = After2019)) + geom_bar(stat = "identity", position = "dodge") +
  geom_line(aes(Year, value, fill = After2019), size = 1) +
  geom_point(aes(Year, value, fill =  After2019), size = 3) + theme_minimal() +
  labs(title = "Disney's Net Income", y = "Net Income in Million(s)")
Warning in geom_line(aes(Year, value, fill = After2019), size = 1): Ignoring
unknown aesthetics: fill

Before 2019:

  • Trend: Increase from 7,501 in 2014 to 12,598 in 2018.

  • Growth Rate: Approximately 67.9% growth over the 5 years.

After 2019:

  • Trend: Decrease to 11,054 in 2019, significant loss of -2,864 in 2020, and recovery to 2,354 in 2023.

  • Growth Rate: Overall decline with a temporary recovery.

Explanation:

The initial growth indicates profitability improvements and successful operations.

The decline in 2019 might be due to increased expenses, investments, or lower margins.

The loss in 2020 is likely a result of pandemic-related disruptions, such as reduced sales or higher operational costs.

Post-2020 recovery indicates effective cost management and strategic adjustments to regain profitability.

Disney’s Enterprise Value

After2019 |> 
  group_by(Year) |> summarise(EnterpriseValue, After2019) |> pivot_longer(EnterpriseValue)|> 
  ggplot(aes(Year, value, fill = After2019)) + geom_bar(stat = "identity", position = "dodge") +
  geom_line(aes(Year, value, fill = After2019), size = 1) +
  geom_point(aes(Year, value, fill =  After2019), size = 3) + theme_minimal() +
  labs(title = "Disney's Enterprise Value", y = "Enterprise Value in Million(s)")
Warning in geom_line(aes(Year, value, fill = After2019), size = 1): Ignoring
unknown aesthetics: fill

Before 2019:

  • Trend: Increase from 163,700 in 2014 to 275,675 in 2019.

  • Growth Rate: Approximately 68.4% growth over the 5 years.

After 2019:

  • Trend: Peaked at 358,279 in 2021 and then declined to 180,553 in 2023.

  • Growth Rate: Volatile growth with a peak followed by a decline.

Explanation:

Initial growth reflects increased market capitalization and investor confidence.

The peak in 2021 could be driven by high investor expectations, perhaps due to strategic initiatives or market conditions.

Subsequent decline might indicate market corrections, reduced investor confidence, or financial challenges.

Disney’s Dividend Per Share

After2019 |> 
  group_by(Year) |> summarise(DividendPerShare, After2019) |> pivot_longer(DividendPerShare)|> 
  ggplot(aes(Year, value, fill = After2019)) + geom_bar(stat = "identity", position = "dodge") +
  geom_line(aes(Year, value, fill = After2019), size = 1) +
  geom_point(aes(Year, value, fill =  After2019), size = 3) + theme_minimal() +
  labs(title = "Disney's Dividend Per Share", y = "Dividend Per Share in Million(s)")
Warning in geom_line(aes(Year, value, fill = After2019), size = 1): Ignoring
unknown aesthetics: fill
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_bar()`).
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_line()`).
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_point()`).

Before 2019:

  • Trend: Increase from 0.86 in 2014 to 1.68 in 2018.

  • Growth Rate: Nearly 95.3% growth over the 5 years.

After 2019:

  • Trend: Decrease to 0.88 in 2020, and then not available (NA) from 2021 onwards.

  • Growth Rate: Decline and eventual elimination.

Explanation:

Initial growth indicates a commitment to returning value to shareholders through dividends.

The reduction and eventual elimination of dividends post-2019 suggest a strategic shift to conserve cash, possibly for reinvestment or to manage financial challenges during the pandemic.

Disney’s Dividend Yield

After2019 |> 
  group_by(Year) |> summarise(DividendYield, After2019) |> pivot_longer(DividendYield)|> 
  ggplot(aes(Year, value, fill = After2019)) + geom_bar(stat = "identity", position = "dodge") +
  geom_line(aes(Year, value, fill = After2019), size = 1) +
  geom_point(aes(Year, value, fill =  After2019), size = 3) + theme_minimal() +
  labs(title = "Disney's Dividend Yield", y = "Dividend Yield in Million(s)")
Warning in geom_line(aes(Year, value, fill = After2019), size = 1): Ignoring
unknown aesthetics: fill

Before 2019:

  • Trend: Stable around 0.01 to 0.02.

After 2019:

  • Trend: Dropped to 0.01 in 2019 and 2020, then to 0.00 from 2021 onwards.

Explanation:

The stable yield aligns with the growing dividends and stock price.

The decline post-2019 mirrors the reduction and elimination of dividends, impacting the yield as dividends ceased.

Overall

Pre-Release (Before 2019)

PreReleaseStats = Disney |>
  filter(Year < 2019) |> summary()
knitr::kable(PreReleaseStats)
Year Revenue GrossProfit NetIncome EnterpriseValue DividendPerShare DividendYield
Min. :2014 Min. :48813 Min. :22393 Min. : 7501 Min. :163700 Min. :0.860 Min. :0.010
1st Qu.:2015 1st Qu.:52465 1st Qu.:24101 1st Qu.: 8382 1st Qu.:164795 1st Qu.:1.420 1st Qu.:0.010
Median :2016 Median :55137 Median :24831 Median : 8980 Median :173415 Median :1.560 Median :0.020
Mean :2016 Mean :54296 Mean :24734 Mean : 9370 Mean :175894 Mean :1.466 Mean :0.016
3rd Qu.:2017 3rd Qu.:55632 3rd Qu.:25639 3rd Qu.: 9391 3rd Qu.:186916 3rd Qu.:1.680 3rd Qu.:0.020
Max. :2018 Max. :59434 Max. :26708 Max. :12598 Max. :190642 Max. :1.810 Max. :0.020

Post-Release (After 2019)

PostReleaaseStats = Disney |>
  filter(Year >= 2019) |> summary()
knitr::kable(PostReleaaseStats)
Year Revenue GrossProfit NetIncome EnterpriseValue DividendPerShare DividendYield
Min. :2019 Min. :65388 Min. :21508 Min. :-2864 Min. :180553 Min. :0.88 Min. :0.000
1st Qu.:2020 1st Qu.:67418 1st Qu.:22287 1st Qu.: 1995 1st Qu.:208723 1st Qu.:1.10 1st Qu.:0.000
Median :2021 Median :69607 Median :27546 Median : 2354 Median :262170 Median :1.32 Median :0.000
Mean :2021 Mean :74807 Mean :25872 Mean : 3137 Mean :257080 Mean :1.32 Mean :0.004
3rd Qu.:2022 3rd Qu.:82722 3rd Qu.:28321 3rd Qu.: 3145 3rd Qu.:275675 3rd Qu.:1.54 3rd Qu.:0.010
Max. :2023 Max. :88898 Max. :29697 Max. :11054 Max. :358279 Max. :1.76 Max. :0.010
NA NA NA NA NA NA’s :3 NA

Overall illustration

library(tsbox)
Warning: package 'tsbox' was built under R version 4.3.3
library(ggfortify)
Warning: package 'ggfortify' was built under R version 4.3.3

After2019 |> ts_long() |> fortify(melt = T) |>  
  ggplot() +
  geom_line(aes(Year,value, col = id)) + 
  labs(title = "All Disney's Financial Matrices from 2014 to 2023", y = "Values in Million(s)", col = "Matrices") +
  facet_wrap(.~id, scales = "free_y")
Warning in anytime_cpp(x, tz = tz, asUTC = asUTC, asDate = FALSE, useR = useR,
: Input conversion of 'Before 2019' resulted in 'NA' results.
Warning in anytime_cpp(x, tz = tz, asUTC = asUTC, asDate = FALSE, useR = useR,
: Input conversion of '0.01' resulted in 'NA' results.
Warning in anytime_cpp(x, tz = tz, asUTC = asUTC, asDate = FALSE, useR = useR,
: Input conversion of '0.86' resulted in 'NA' results.
Warning in anytime_cpp(x, tz = tz, asUTC = asUTC, asDate = FALSE, useR = useR,
: Input conversion resulted in 'NA' results.
Warning in anytime_cpp(x, tz = tz, asUTC = asUTC, asDate = FALSE, useR = useR,
: Input conversion resulted in 'NA' results.
Warning in anytime_cpp(x, tz = tz, asUTC = asUTC, asDate = FALSE, useR = useR,
: Input conversion resulted in 'NA' results.
Warning in anytime_cpp(x, tz = tz, asUTC = asUTC, asDate = FALSE, useR = useR,
: Input conversion of '163700' resulted in 'NA' results.
Warning in anytime_cpp(x, tz = tz, asUTC = asUTC, asDate = FALSE, useR = useR,
: Input conversion of '7501' resulted in 'NA' results.
Warning in anytime_cpp(x, tz = tz, asUTC = asUTC, asDate = FALSE, useR = useR,
: Input conversion of '22393' resulted in 'NA' results.
Warning in anytime_cpp(x, tz = tz, asUTC = asUTC, asDate = FALSE, useR = useR,
: Input conversion of '48813' resulted in 'NA' results.
found columns right to the [time] column that will be treated as [id] columns (character or factor): 'After2019'.
Additional [id] column(s): 'After2019'
[time]: 'Year' 
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_line()`).

Before 2019:

  • The company experienced steady growth in revenue, gross profit, and net income.
  • Dividend policies were consistent, indicating strong financial health and shareholder returns.
  • Enterprise value was growing, reflecting increasing investor confidence and market value.

After 2019:

  • Revenue continued to grow, showing resilience despite the pandemic.
  • Net income showed volatility, including a significant loss in 2020, highlighting challenges.
  • Gross profit fluctuations indicate cost pressures but eventual recovery.
  • Dividend policies changed drastically, focusing on reinvestment or financial stability.
  • Enterprise value became volatile, suggesting fluctuating investor sentiment and market conditions.

Implications:

  • Operational Resilience: The company demonstrated strong revenue growth even in challenging post-2019 conditions, indicating operational resilience.

  • Profitability Issues: Post-2019 profitability challenges, including a significant loss in 2020, suggest the need for improved cost management and operational efficiency.

  • Strategic Shifts: Reduction and elimination of dividends indicate a shift in strategy to conserve cash, likely for reinvestment or to navigate financial uncertainties.

  • Investor Confidence: Volatile enterprise value after 2019 reflects changing investor sentiment, possibly due to market conditions and the company’s fluctuating financial performance.

This detailed comparison highlights the company’s strengths in revenue growth and market demand while also pointing out areas for improvement in profitability and financial stability post-2019.

Mean Values comparison

library(ggplot2)

MeanValues = data.frame(
  Period = c("Before 2019", "After 2019"),
  MeanRevenue = c(54296, 74807),  
  MeanGrossProfit = c(24734, 25872),
  MeanNetIncome = c(9370, 3137),  
  MeanEnterpriseValue = c(175894, 257080),
  MeanDividendPerShare = c(1.466, 1.32), 
  MeanDividendYield = c(0.016, 0.004))

knitr::kable(MeanValues)
Period MeanRevenue MeanGrossProfit MeanNetIncome MeanEnterpriseValue MeanDividendPerShare MeanDividendYield
Before 2019 54296 24734 9370 175894 1.466 0.016
After 2019 74807 25872 3137 257080 1.320 0.004
tidyr::pivot_longer(MeanValues, cols = starts_with("Mean"), names_to = "Variable",
                    values_to = "MeanValue") |> 
  ggplot(aes(x = Period, y = MeanValue, fill = Period)) +
  geom_bar(stat = "identity", position = "dodge") + coord_flip() + 
  facet_wrap(~Variable, scales = "free_x") +
  labs(title = "Mean Financial Metrics Before and After 2019",
    x = "Period", y = "Values in Million(s)", fill = "Variable")

Revenue: The mean revenue increased from approximately 54,296 before 2019 to 74,807 after 2019.

Gross Profit: The mean gross profit shows a slight decrease from 24,734 to 25,872.

Net Income: The mean net income increased from 9,370 to 3,137.

Enterprise Value: The mean enterprise value remained relatively stable, around 175,894 before 2019 and 257,080 after 2019.

Dividend Per Share: There is variation in the dividend per share metrics with different ranges and means before and after 2019.

Dividend Yield: The dividend yield shows slight changes with the mean increasing from 0.016 to 0.004 after 2019.

Conclusion:

The financial analysis of the Marvel Cinematic Universe (MCU) before and after the release of “Avengers: Endgame” in 2019 reveals significant trends and shifts:

Revenue and Gross Profit

Prior to 2019, the MCU experienced robust financial performance with an average revenue of $54,296 million and gross profit of $24,734 million. Post-2019, the mean revenue surged to $74,807 million, demonstrating the franchise’s continued strong appeal. Similarly, gross profit saw a modest increase to an average of $25,872 million, indicating effective cost management despite rising operational challenges.

The increase in revenue post-2019 underscores the MCU’s ability to draw significant audiences and generate substantial sales even amid external disruptions. However, the high variability in revenue figures post-2019 highlights the impact of the pandemic and the shift to digital and streaming platforms.

Net Income

Net income presents a contrasting picture. Before 2019, the MCU enjoyed a healthy average net income of $9,370 million. However, post-2019, this figure plummeted to $3,137 million, with net income ranging from a loss of $2,864 million to a profit of $11,054 million. This decline points to increased expenses, reduced box office income, and potential losses from other ventures, heavily influenced by the pandemic’s economic disruptions.

Enterprise Value

The MCU’s enterprise value saw a significant rise post-2019, with an average value of $257,080 million compared to $175,894 million before 2019. This increase reflects strong market confidence in the MCU’s long-term potential, suggesting that investors remain optimistic about future revenue streams despite short-term challenges.

Dividend Metrics

Dividend metrics reveal a cautious approach in financial management. Before 2019, the average dividend per share was $1.466 with a yield of 0.016. Post-2019, these figures dropped to $0.88 and 0.004, respectively, with notable inconsistencies. This reduction indicates financial prudence in conserving cash amid uncertainty, reflecting operational challenges and a need to preserve liquidity.

Impact of COVID-19

The COVID-19 pandemic has had a profound impact on the MCU’s financial performance. Theatrical release constraints, production delays, and changes in consumer behavior due to the pandemic disrupted traditional revenue models. The shift to streaming platforms like Disney+ mitigated some revenue loss but required new cost structures and marketing strategies.

Despite these challenges, the MCU’s ability to maintain strong revenue and gross profit figures underscores its resilience and adaptability. The significant increase in enterprise value post-2019 further reflects robust investor confidence, driven by the MCU’s strategic pivot towards digital content and effective cost management.

In conclusion, the financial data indicates no clear financial downturn post-release of “Avengers: Endgame” that would suggest a logical stopping point for the MCU. Besides, while the MCU has navigated significant financial challenges post-2019, particularly due to the COVID-19 pandemic, it remains a strong and adaptable franchise. Strategic investments in new content and digital distribution channels will be vital in sustaining growth and profitability in the evolving entertainment landscape. The MCU’s ability to leverage its strong brand and investor confidence will be crucial for its continued success.

Resources

Stock Analysis. n.d. “Disney (DIS) Financials - Income Statement.” Stock Analysis.

https://stockanalysis.com/stocks/dis/financials/.

The Walt Disney Company. n.d. “Investor Relations - Stock Information, Events, Reports, Financial Information, Shareholder Information.” The Walt Disney Company.

https://thewaltdisneycompany.com/investor-relations/#reports.