{
  "format": "dataset-manifest/1",
  "slug": "air-travel-insights",
  "version": 2,
  "seed": "air-travel-insights:1",
  "spec": {
    "format": "dataset/1",
    "slug": "air-travel-insights",
    "name": "Air Travel Insights",
    "tagline": "Flight bookings, passenger details, baggage handling, and frequent flyer programs in air travel.",
    "description": "Passengers navigate through the bustling airport terminals, checking in for their flights and ensuring their baggage is properly tagged. Airlines operate numerous flights daily, each with its scheduled departures and arrivals, catering to the diverse travel needs of customers. This dataset captures the dynamic nature of air travel, detailing the interactions between passengers, flights, airlines, and the services they rely on, such as baggage handling and frequent flyer programs. Through this intricate web, the dataset sheds light on essential elements of the air travel experience, focusing primarily on booking transactions, which form the backbone of airline operations.\n\nThe primary tables within this dataset include flights, airlines, bookings, passengers, baggage, and frequent_flyer_programs. Each booking record correlates directly with a specific flight and is linked to a passenger. The flights table details flight schedules, including routes and capacities, while airlines provide information about the various companies operating those flights. The baggage table tracks the handling of passenger luggage, ensuring that each piece is accounted for throughout its journey. Meanwhile, the frequent_flyer_programs table illustrates loyalty programs that incentivize repeat travelers.\n\nThis dataset allows developers to practice a range of analytical queries, such as identifying booking trends, analyzing frequent flyer participation rates, or evaluating baggage handling efficiency. It answers questions like how different airlines compare in terms of passenger volume and booking patterns or how baggage delays correlate with specific flights. The synthetic nature of this data ensures a safe environment for developers to hone their skills without compromising real-world information.",
    "domain": "travel",
    "shape": "event-log",
    "useCases": [
      "analytics-demo",
      "etl-pipelines"
    ],
    "keywords": [
      "air travel",
      "flight bookings",
      "baggage handling",
      "frequent flyer",
      "airlines",
      "passenger data"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "flights": {
        "description": "This table records details about individual flights, capturing information such as flight number, departure and arrival airports, and aircraft model. Each flight is linked to its airline, facilitating queries about airline performance and flight availability.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each flight."
          },
          "flight_number": {
            "kind": "enum",
            "values": [
              "AA100",
              "DL200",
              "UA300",
              "SW400",
              "BA500"
            ],
            "description": "The flight number assigned by the airline."
          },
          "departure_airport": {
            "kind": "enum",
            "values": [
              "JFK",
              "LAX",
              "ORD",
              "DFW",
              "ATL"
            ],
            "description": "The IATA code of the airport from which the flight departs."
          },
          "arrival_airport": {
            "kind": "enum",
            "values": [
              "JFK",
              "LAX",
              "ORD",
              "DFW",
              "ATL"
            ],
            "description": "The IATA code of the airport where the flight arrives."
          },
          "aircraft_model": {
            "kind": "enum",
            "values": [
              "Boeing 737",
              "Airbus A320",
              "Boeing 777",
              "Airbus A380",
              "Boeing 787"
            ],
            "description": "The model of the aircraft used for the flight."
          },
          "airline_id": {
            "kind": "fk",
            "ref": "airlines.id",
            "description": "Foreign key linking to the airline table."
          }
        }
      },
      "airlines": {
        "description": "This table contains information about airlines, including their names, IATA codes, and operating countries. It links to the flights table to provide insights into airline-specific operations.",
        "rows": 20,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each airline."
          },
          "name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The full name of the airline.",
            "pool": [
              "Delta",
              "United",
              "American",
              "Southwest",
              "JetBlue",
              "Alaska",
              "Spirit",
              "Frontier",
              "Allegiant",
              "Hawaiian",
              "British",
              "Lufthansa",
              "AirFrance",
              "Qatar",
              "Emirates",
              "Singapore",
              "Cathay",
              "KLM",
              "Iberia",
              "Turkish"
            ]
          },
          "iata_code": {
            "kind": "enum",
            "values": [
              "AA",
              "DL",
              "UA",
              "SW",
              "BA"
            ],
            "description": "The IATA code for the airline."
          },
          "country": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The country where the airline is headquartered.",
            "pool": [
              "USA",
              "Canada",
              "UK",
              "Germany",
              "France",
              "Australia",
              "Japan",
              "China",
              "India",
              "Brazil",
              "Mexico",
              "Italy",
              "Spain",
              "Netherlands",
              "Sweden",
              "Norway",
              "Finland",
              "Switzerland",
              "Belgium",
              "Austria"
            ]
          }
        }
      },
      "bookings": {
        "description": "This table logs flight bookings made by passengers. It includes details about payment methods, seat assignments, and links to the flights and passengers involved in each booking.",
        "rows": 500,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each booking."
          },
          "flight_id": {
            "kind": "fk",
            "ref": "flights.id",
            "description": "Foreign key linking to the flights table."
          },
          "passenger_id": {
            "kind": "fk",
            "ref": "passengers.id",
            "description": "Foreign key linking to the passengers table."
          },
          "payment_method": {
            "kind": "enum",
            "values": [
              "credit_card",
              "debit_card",
              "paypal",
              "bank_transfer"
            ],
            "description": "The method used for payment."
          },
          "seat_number": {
            "kind": "enum",
            "values": [
              "1A",
              "1B",
              "2A",
              "2B",
              "3A"
            ],
            "description": "The assigned seat number for the booking."
          }
        }
      },
      "passengers": {
        "description": "This table contains information about passengers who book flights. It includes their names, contact details, and links to any frequent flyer programs they may belong to.",
        "rows": 400,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each passenger."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the passenger."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The email address of the passenger."
          },
          "frequent_flyer_program_id": {
            "kind": "fk",
            "ref": "frequent_flyer_programs.id",
            "nullable": true,
            "description": "Foreign key linking to the frequent flyer programs table."
          }
        }
      },
      "baggage": {
        "description": "This table records baggage details associated with each booking, including tracking numbers and weights. It links to the bookings table to track baggage for specific passengers.",
        "rows": 600,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each baggage record."
          },
          "booking_id": {
            "kind": "fk",
            "ref": "bookings.id",
            "description": "Foreign key linking to the bookings table."
          },
          "tracking_number": {
            "kind": "pattern",
            "pattern": "BG-#####",
            "description": "The tracking number for the baggage."
          },
          "weight": {
            "kind": "decimal",
            "min": 1,
            "max": 32,
            "scale": 2,
            "description": "The weight of the baggage in kilograms."
          }
        }
      },
      "frequent_flyer_programs": {
        "description": "This table lists various frequent flyer programs available from different airlines, linking passengers to the programs they are members of.",
        "rows": 15,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each frequent flyer program."
          },
          "program_name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The name of the frequent flyer program.",
            "pool": [
              "SkyMiles",
              "AAdvantage",
              "MileagePlus",
              "TrueBlue",
              "AlaskaMiles",
              "RapidRewards",
              "FlyingBlue",
              "WorldPerks",
              "Horizon",
              "ClubMiles",
              "JetBlue",
              "QatarPrivilege",
              "EmiratesSkywards",
              "LufthansaMiles",
              "Miles&More",
              "AirCanada",
              "IberiaPlus",
              "TurkishMiles",
              "SingaporeKrisFlyer",
              "BritishAvios"
            ]
          },
          "airline_id": {
            "kind": "fk",
            "ref": "airlines.id",
            "description": "Foreign key linking to the airlines table."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "nullable",
      "timestamped"
    ],
    "analysisQuestions": [
      "What are the most popular flight routes based on booking data?",
      "How do payment methods vary across different airlines?",
      "What is the average baggage weight per passenger?",
      "Which frequent flyer programs are most commonly associated with bookings?",
      "How does seat assignment affect booking patterns?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Flights and Bookings",
        "sql": "SELECT flights.flight_number, bookings.seat_number FROM flights JOIN bookings ON flights.id = bookings.flight_id;",
        "dialect": "postgres"
      },
      {
        "title": "Count Bookings by Airline",
        "sql": "SELECT airlines.name, COUNT(bookings.id) AS booking_count FROM bookings JOIN flights ON bookings.flight_id = flights.id JOIN airlines ON flights.airline_id = airlines.id GROUP BY airlines.name;",
        "dialect": "postgres"
      },
      {
        "title": "Average Baggage Weight by Airline",
        "sql": "SELECT airlines.name, AVG(baggage.weight) AS average_weight FROM baggage JOIN bookings ON baggage.booking_id = bookings.id JOIN flights ON bookings.flight_id = flights.id JOIN airlines ON flights.airline_id = airlines.id GROUP BY airlines.name;",
        "dialect": "postgres"
      },
      {
        "title": "Frequent Flyer Program Participation",
        "sql": "SELECT frequent_flyer_programs.program_name, COUNT(passengers.id) AS member_count FROM passengers LEFT JOIN frequent_flyer_programs ON passengers.frequent_flyer_program_id = frequent_flyer_programs.id GROUP BY frequent_flyer_programs.program_name;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Airline Performance Analysis",
        "body": "Airline analysts can use this dataset to evaluate flight performance across various routes. By examining booking patterns, they can identify which routes are most profitable and adjust their offerings accordingly."
      },
      {
        "title": "Baggage Handling Optimization",
        "body": "Logistics teams at airlines can leverage baggage data to optimize handling processes. By analyzing baggage weights and tracking numbers, they can improve efficiency and reduce lost baggage incidents."
      },
      {
        "title": "Frequent Flyer Program Insights",
        "body": "Marketing teams can use this dataset to gain insights into frequent flyer program participation. Understanding which programs are most popular can help airlines tailor their marketing strategies to attract more loyalty from passengers."
      }
    ]
  },
  "counts": {
    "airlines": 20,
    "flights": 300,
    "frequent_flyer_programs": 15,
    "passengers": 400,
    "bookings": 500,
    "baggage": 600
  },
  "stats": {
    "flights": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "flight_number": {
          "nulls": 0,
          "distinct": 5,
          "min": "AA100",
          "max": "UA300"
        },
        "departure_airport": {
          "nulls": 0,
          "distinct": 5,
          "min": "ATL",
          "max": "ORD"
        },
        "arrival_airport": {
          "nulls": 0,
          "distinct": 5,
          "min": "ATL",
          "max": "ORD"
        },
        "aircraft_model": {
          "nulls": 0,
          "distinct": 5,
          "min": "Airbus A320",
          "max": "Boeing 787"
        },
        "airline_id": {
          "nulls": 0,
          "distinct": 20,
          "min": 1,
          "max": 20
        }
      }
    },
    "airlines": {
      "rows": 20,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 20,
          "min": 1,
          "max": 20
        },
        "name": {
          "nulls": 0,
          "distinct": 19
        },
        "iata_code": {
          "nulls": 0,
          "distinct": 5,
          "min": "AA",
          "max": "UA"
        },
        "country": {
          "nulls": 0,
          "distinct": 20
        }
      }
    },
    "bookings": {
      "rows": 500,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 500,
          "min": 1,
          "max": 500
        },
        "flight_id": {
          "nulls": 0,
          "distinct": 242,
          "min": 1,
          "max": 300
        },
        "passenger_id": {
          "nulls": 0,
          "distinct": 288,
          "min": 2,
          "max": 400
        },
        "payment_method": {
          "nulls": 0,
          "distinct": 4,
          "min": "bank_transfer",
          "max": "paypal"
        },
        "seat_number": {
          "nulls": 0,
          "distinct": 5,
          "min": "1A",
          "max": "3A"
        }
      }
    },
    "passengers": {
      "rows": 400,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 400,
          "min": 1,
          "max": 400
        },
        "full_name": {
          "nulls": 0,
          "distinct": 388,
          "min": "Alice Castro",
          "max": "Zoe Shah"
        },
        "email": {
          "nulls": 0,
          "distinct": 395
        },
        "frequent_flyer_program_id": {
          "nulls": 36,
          "distinct": 15,
          "min": 1,
          "max": 15
        }
      }
    },
    "baggage": {
      "rows": 600,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 600,
          "min": 1,
          "max": 600
        },
        "booking_id": {
          "nulls": 0,
          "distinct": 350,
          "min": 1,
          "max": 500
        },
        "tracking_number": {
          "nulls": 0,
          "distinct": 598
        },
        "weight": {
          "nulls": 0,
          "distinct": 547,
          "min": 1.02,
          "max": 32
        }
      }
    },
    "frequent_flyer_programs": {
      "rows": 15,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 15,
          "min": 1,
          "max": 15
        },
        "program_name": {
          "nulls": 0,
          "distinct": 15
        },
        "airline_id": {
          "nulls": 0,
          "distinct": 9,
          "min": 1,
          "max": 18
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/airlines.csv",
      "format": "csv",
      "table": "airlines",
      "key": "datasets/air-travel-insights/v2/csv/airlines.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/csv/airlines.csv",
      "bytes": 777,
      "sha256": "ee1e6e6bb7155eb1ff051665d4d1cc548facb2d8f586e8c79c8eaa5ceeba7cd0",
      "rows": 20,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/flights.csv",
      "format": "csv",
      "table": "flights",
      "key": "datasets/air-travel-insights/v2/csv/flights.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/csv/flights.csv",
      "bytes": 9874,
      "sha256": "aca129405b7f4d025b304e137a21b6f8c40682c034619571ebfd82998629b223",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/frequent_flyer_programs.csv",
      "format": "csv",
      "table": "frequent_flyer_programs",
      "key": "datasets/air-travel-insights/v2/csv/frequent_flyer_programs.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/csv/frequent_flyer_programs.csv",
      "bytes": 523,
      "sha256": "5f4ca6ff4cf7286ca843ec977d2f49b2428ec83797fb92479746664f010331eb",
      "rows": 15,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/passengers.csv",
      "format": "csv",
      "table": "passengers",
      "key": "datasets/air-travel-insights/v2/csv/passengers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/csv/passengers.csv",
      "bytes": 17271,
      "sha256": "37bed1624de0fa8bed1fa29ae970c31c8785771266536edfa753cb6848400837",
      "rows": 400,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/bookings.csv",
      "format": "csv",
      "table": "bookings",
      "key": "datasets/air-travel-insights/v2/csv/bookings.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/csv/bookings.csv",
      "bytes": 13228,
      "sha256": "068914bb6e92bc2950f21ba3c0bc0b5c3c98b6f4358ffd46b1252c0b54bd59af",
      "rows": 500,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/baggage.csv",
      "format": "csv",
      "table": "baggage",
      "key": "datasets/air-travel-insights/v2/csv/baggage.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/csv/baggage.csv",
      "bytes": 14035,
      "sha256": "51f6d5b5bee761fcaa9e334c7cff779dedfaa17a77a67e57823326dc91c7204f",
      "rows": 600,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "air-travel-insights.json",
      "format": "json",
      "table": null,
      "key": "datasets/air-travel-insights/v2/air-travel-insights.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/air-travel-insights.json",
      "bytes": 258152,
      "sha256": "ba8de78185e2acf010bd16a392cba90ba1622d831a7074b02aabccef93e4f2ce",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/air-travel-insights/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/sql/postgres.sql",
      "bytes": 84670,
      "sha256": "85af932122cc47f08215fc2382081f3051f974ac4dcd320c9d272ebd42ceb21b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/air-travel-insights/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/sql/mysql.sql",
      "bytes": 83977,
      "sha256": "8f4c9736735fa5295054103e6c46f4eed40476c754f99e41862df909158fed8d",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/air-travel-insights/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/sql/mssql.sql",
      "bytes": 88061,
      "sha256": "92b423e6491b9f30857fd86798f493de6756c02669a8b3572b0aa74bebffa513",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/air-travel-insights/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/sql/sqlite.sql",
      "bytes": 83646,
      "sha256": "366af549e285f2a71f2e67cba11cc1e1fe1c917af75b989a858c4930d79b23b9",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/air-travel-insights/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/prisma/seed.ts",
      "bytes": 200419,
      "sha256": "dfd09316170dc34aca9ce8a6d4d161130b4dcbe08e106465da885c8784c3ba9b",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/air-travel-insights/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/air-travel-insights/v2/django/fixtures.json",
      "bytes": 333784,
      "sha256": "d963e16a9dd20b2fe2c44549ccc275c1111eca55c7833950e1fa21e9df8c452f",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768741585,
  "updatedAt": 1788777458228
}
