knitr::opts_chunk$set(echo = TRUE, warning = FALSE)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.2
## ✔ ggplot2   4.0.0     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Introduction

This report analyzes passenger traffic at Hartsfield-Jackson Atlanta International Airport (ATL) between 2019 and 2024. We use annual passenger data (in millions) to compute summary statistics, growth rates, and visualize trends over time.

##Data Input

We first create a small dataset in R with the total passenger numbers (in millions) for each year, based on published statistics.

# Example data: year vs total passengers (in millions)
atl_data <- tibble(
  year = c(2019, 2020, 2021, 2022, 2023, 2024),
  passengers = c(110.53, 42.92, 75.70, 93.70, 104.65, 108.07) # values from web sources
)

atl_data
## # A tibble: 6 × 2
##    year passengers
##   <dbl>      <dbl>
## 1  2019      111. 
## 2  2020       42.9
## 3  2021       75.7
## 4  2022       93.7
## 5  2023      105. 
## 6  2024      108.

Summary Statistics

Here we calculate the mean, median, variance, and standard deviation of annual passenger totals. This helps us understand the central tendency and variability in ATL’s passenger traffic over time.

summary(atl_data$passengers)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   42.92   80.20   99.17   89.26  107.22  110.53
mean_passengers <- mean(atl_data$passengers)
median_passengers <- median(atl_data$passengers)
var_passengers <- var(atl_data$passengers)
sd_passengers <- sd(atl_data$passengers)

cat("Mean passengers (millions):", round(mean_passengers,2), "\n")
## Mean passengers (millions): 89.26
cat("Median passengers (millions):", median_passengers, "\n")
## Median passengers (millions): 99.175
cat("Variance:", round(var_passengers,2), "\n")
## Variance: 678.81
cat("Standard Deviation:", round(sd_passengers,2))
## Standard Deviation: 26.05

Summary Statistics

Here we calculate the mean, median, variance, and standard deviation of annual passenger totals. This helps us understand the central tendency and variability in ATL’s passenger traffic over time.

summary(atl_data$passengers)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   42.92   80.20   99.17   89.26  107.22  110.53
mean_passengers <- mean(atl_data$passengers)
sd_passengers <- sd(atl_data$passengers)
growth_rates <- atl_data %>%
  arrange(year) %>%
  mutate(lag_pass = lag(passengers),
         growth = (passengers - lag_pass)/lag_pass * 100) %>%
  filter(!is.na(growth))
growth_rates
## # A tibble: 5 × 4
##    year passengers lag_pass growth
##   <dbl>      <dbl>    <dbl>  <dbl>
## 1  2020       42.9    111.  -61.2 
## 2  2021       75.7     42.9  76.4 
## 3  2022       93.7     75.7  23.8 
## 4  2023      105.      93.7  11.7 
## 5  2024      108.     105.    3.27

Visualization

We now plot the annual passenger traffic as a line graph. This visualization makes it easy to spot the sharp drop in 2020, the steady recovery afterward, and how ATL quickly regained its title as the world’s busiest airport.

ggplot(atl_data, aes(x = year, y = passengers)) +
  geom_line() + geom_point() +
  labs(title = "Annual Passenger Traffic at ATL",
       x = "Year",
       y = "Millions of Passengers") +
  theme_minimal()

Conclusion

Passenger traffic dropped drastically in 2020 (COVID-19).

A strong rebound occurred in 2021–2022.

By 2023–2024, ATL surpassed 100 million passengers again, reaffirming its status as the busiest airport in the world.