Time-Series Forecasting with Prophet
This project demonstrates end-to-end airport passenger forecasting using historic monthly traffic data for Los Angeles International Airport (LAX). The goal is to showcase data cleaning, metric engineering, time-series modelling, backtesting, visualization, and forecasting skills suitable for recruiters and portfolio reviewers.
Project_D_LAX_Airport_Growth_Prediction/
│
├── data/
│ └── raw/
│ └── all_airlines-LAX.csv
│
├── images/
│ ├── lax_prophet_backtest_24m.png
│ ├── lax_prophet_components.png
│ ├── lax_prophet_forecast_5y.png
│ └── lax_total_passengers.png
│
├── notebooks/
│ ├── 01_data_preparation.ipynb
│ └── 02_forecasting_lax.ipynb
│
├── output/
│ └── clean/
│ └── all_airlines_lax_clean.csv
│
├── README.md
└── requirements.txt
Source: Monthly LAX passenger statistics (all airlines combined)
Period Covered: 2002-10 to 2017-03
Columns Included:
- Domestic / International Passengers
- Domestic / International Flights
- ASM / RPM metrics
- Total passengers (created during cleaning)
This dataset predates COVID-19; forecasts here reflect historical patterns only up to 2017.
All work in 01_data_preparation.ipynb
-
Load raw CSV (
data/raw/all_airlines-LAX.csv) -
Parse dates into monthly periods (
MS) -
Standardise column names to snake_case
-
Create total metrics:
pax_totalflights_totalasm_totalrpm_total
-
Ensure continuous month-to-month index
-
Remove missing rows when needed
-
Save cleaned dataset to:
output/clean/all_airlines_lax_clean.csv
A quick visualization was used to confirm dataset continuity and expected seasonality.
All work in 02_forecasting_lax.ipynb
Prophet (Meta)
- Yearly seasonality enabled
- Daily/weekly seasonality disabled (not relevant for monthly data)
A 24-month holdout period was used for backtesting:
- Train: 2002-10 → 2015-03
- Test: 2015-04 → 2017-03
| Metric | Value |
|---|---|
| MAE | 175,934 passengers |
| RMSE | 209,874 passengers |
| MAPE | 5.31% |
Performance is strong given airport-level macro data and no exogenous variables.
Shows actual vs forecast during the 24-month unseen window:
The model projects a steady upward trend based entirely on 2002–2017 historical patterns.
Prophet’s decomposition reveals:
- Strong annual seasonality (peak: Jul–Aug)
- Clear long-term upward trend
- No weekly/daily components (disabled)
LAX experienced steady growth driven by both domestic and international demand.
Summer months show strong peaks; February is consistently the lowest traffic month.
MAPE of 5.31% indicates robust predictive ability for airport-level forecasting.
Since the dataset ends in early 2017:
- The model does not capture 2017–2019 rapid growth
- Nor the 2020 COVID collapse and 2021–2024 rebound
- Real LAX traffic reached 76.6M passengers by 2024, far above the ~40M predicted by historic-only data
This is intentional — the goal is demonstrating modelling, not replicating real-world 2024 numbers.
- Python 3.x
- Prophet (Meta)
- pandas, numpy
- matplotlib
- scikit-learn
- Jupyter Notebooks
Install dependencies:
pip install -r requirements.txtMinimal requirements.txt:
pandas
numpy
matplotlib
prophet
scikit-learn
- Open
01_data_preparation.ipynb - Run all cells → generates cleaned dataset
- Open
02_forecasting_lax.ipynb - Fit Prophet model, evaluate, generate visuals
- View plots in
/imagesfolder - Forecast & insights ready for your portfolio
This project showcases an end-to-end workflow for airport passenger forecasting using a controlled dataset. It demonstrates:
- Data wrangling
- Time-series modelling
- Backtesting
- Seasonality analysis
- Forecast visualization
- GitHub-ready project structure


