Airline Operations (synthetic)
Two years of scheduled flights for an invented hub-and-spoke airline: delays, cancellations, load factors, revenue and fuel.
Business scenario
HA is an invented airline that runs a hub-and-spoke network from Dubai (DXB) to 28 destinations across the Middle East, Europe, Asia and Africa, plus a few point-to-point routes. The operations team wants to understand punctuality, how full the aircraft are and what each route earns.
Airports and distances use real public locations. Every flight, delay, passenger count and fare is generated by a script with a fixed seed, so the data is realistic in shape but does not describe any real airline.
Questions to answer with a dashboard
- What is our on-time performance (arrival within 15 minutes) by route, month and aircraft type?
- Which delay causes cost the most minutes, and how do they change by season?
- Which routes have the highest and lowest load factor, and does that match revenue per flight?
- How does fuel burned per passenger compare between aircraft types on long-haul routes?
- Are cancellations concentrated on particular routes or months?
Tables, columns and data dictionary
dim_date
One row per calendar day. Mark it as the date table in Power BI and relate every fact table to date_key.
date_key(integer): Day as a number, yyyymmdd (for example 20240229)date(date): Calendar dateyear(integer): Calendar yearquarter(integer): Calendar quarter, 1 to 4month(integer): Month number, 1 to 12month_name(text): Month name in Englishday(integer): Day of the monthday_name(text): Weekday name in Englishis_weekend(boolean): True for Saturday and Sunday
dim_airport
Airports served. Codes, names and coordinates are real public facts.
airport_code(text): IATA airport codeairport_name(text): Airport namecity(text): City servedcountry(text): Countrylatitude(decimal): Latitude in degreeslongitude(decimal): Longitude in degrees
dim_aircraft
The airline fleet: one row per aircraft.
aircraft_id(integer): Unique aircraft keyregistration(text): Invented registration code (not a real tail number)aircraft_type(text): Aircraft modelseats(integer): Seats in the cabin configurationdelivery_year(integer): Year the aircraft joined the fleet
dim_route
One row per direction of a route (DXB to LHR and LHR to DXB are two routes).
route_id(integer): Unique route keyorigin_code(text): Departure airportdestination_code(text): Arrival airportdistance_km(integer): Great-circle distancescheduled_block_min(integer): Scheduled gate-to-gate time in minuteshaul(text): Short (under 1,500 km), Medium (to 4,500 km) or Long haul
fact_flight
One row per scheduled flight. Cancelled flights have no passengers, revenue or delay figures.
flight_id(integer): Unique flight keyflight_number(text): Invented flight number such as HA512date_key(integer): Scheduled departure dateroute_id(integer): Route flownaircraft_id(integer): Aircraft usedscheduled_departure(text): Scheduled departure time, HH:MM localstatus(text): Completed or Cancelleddep_delay_min(integer): Minutes late leaving the gate (0 if on time); empty when cancelledarr_delay_min(integer): Minutes late arriving (0 if on time); empty when cancelleddelay_cause(text): Main cause when departure delay is 15 minutes or more; otherwise emptyseats_available(integer): Seats offered for salepassengers(integer): Passengers carriedload_factor(decimal): Passengers divided by seats available (0 to 1)revenue_usd(decimal): Ticket revenue for the flight in US dollarsfuel_kg(integer): Fuel burned in kilograms
License and usage terms
Free to use (synthetic data)
You may use this synthetic data for learning, practice, demos, training material and portfolio projects, including in published reports. You may not resell the files themselves or present them as real data. The data is invented: it does not describe any real person, customer or company.