This project focuses on cleaning, analyzing, and visualizing airline data
using MySQL for data preparation and Tableau for visualization.
The goal is to uncover insights into flight operations, passenger demographics,
and revenue performance.
The project simulates real-world airline data, split into three main tables:
- Flights → flight schedules, airline, origin, destination, status
- Passengers → passenger demographics (age, gender, nationality)
- Bookings → ticket purchases, prices, seat classes, booking date
After cleaning, the tables were joined into a master dataset for analysis.
Steps taken:
- Removed duplicates across all tables
- Standardized airline names (e.g., “DELTA”, “Delta Airlines” → “Delta”)
- Fixed null values:
- Filled missing ages with average values
- Set missing arrival times based on departure + 2 hrs
- Checked and removed orphaned references in bookings
- Ensured valid ranges:
- Age between 5 and 100
- Ticket price > 0
- Converted booking_date from text → proper DATETIME
Key performance indicators calculated:
- 💰 Total Revenue =
SUM(price) - 👥 Total Passengers =
COUNT(DISTINCT passenger_id) ✈️ Total Flights =COUNT(DISTINCT flight_id)- ⏱ On-time Performance =
% flights with status = 'On Time' - 🎟 Average Ticket Price =
AVG(price)
- Revenue by Airline → Bar chart with airline filter
- Passenger Age Distribution → Histogram with gender comparison
- Flight Punctuality → Donut chart (On-time, Delayed, Cancelled)
- Revenue by Route → Bar chart of top 10 origin-destination pairs
- Monthly Revenue Trend → Line chart with airline filter
📌 Interactivity: Filters for airline, route, and seat class
data/→ Clean datasets (CSV)sql/→ SQL cleaning scriptstableau/→ Tableau dashboardimages/→ Dashboard screenshotsREADME.md→ Documentation
- MySQL → Data cleaning & preparation
- Tableau → Dashboard & visualizations
- GitHub → Documentation & portfolio