The comparison of The Walt Disney Company’s financials before and after the releasing of Avengers: Endgame (2019)
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.
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.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"))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: fillBefore 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.
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: fillBefore 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.
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: fillBefore 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.
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: fillBefore 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.
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: fillBefore 2019:
After 2019:
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.
| 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 |
| 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 |
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:
After 2019:
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.
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.
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.
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.