{
  "format": "dataset-manifest/1",
  "slug": "travel-reservation-insights",
  "version": 1,
  "seed": "travel-reservation-insights:1",
  "spec": {
    "format": "dataset/1",
    "slug": "travel-reservation-insights",
    "name": "Travel Reservation Insights",
    "tagline": "Customer data on flights, hotels, car rentals, and reviews from the travel and hospitality sector.",
    "description": "Customers navigate the journey of travel by booking flights, securing hotel rooms, and renting cars to create the perfect getaway. Each interaction in this ecosystem shapes their overall experience and influences future decisions. Hotels offer a range of amenities, and customer reviews provide insight into guest satisfaction, revealing what aspects of their stays resonate most. Meanwhile, flight data showcases the timing and popularity of travel, highlighting trends in demand based on seasonality and destination.\n\nThe relationships between the tables illuminate how different elements of travel interconnect. Each row in the customers table represents an individual traveler, capturing their preferences and behaviors. The flights table records the specifics of each flight booked, from the departure to arrival times, while the hotels table details the various properties available, including their ratings and features. Hotel bookings link customers to their chosen accommodations, bridging personal choices with available inventory. Car rentals complement the travel experience, allowing customers to explore their destination freely, and customer reviews provide qualitative feedback on their overall satisfaction across these services.\n\nThis dataset answers pivotal questions about travel patterns and preferences. For instance, which hotels receive the best reviews, and how do those correlate with booking rates? What trends emerge in flight bookings during holiday seasons? How do customer experiences with car rentals influence their overall trip satisfaction? With this synthetic data, developers can practice analyzing relationships, visualizing trends, and deriving insights that can enhance customer experiences in the hospitality industry.",
    "domain": "hospitality",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "travel",
      "hospitality",
      "booking",
      "flights",
      "hotels",
      "car rentals",
      "customer reviews",
      "amenities",
      "customer satisfaction"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "customers": {
        "description": "This table captures customer information, including their unique identifiers and contact details.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each customer."
          },
          "full_name": {
            "kind": "fullName",
            "description": "Customer's full name."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Customer's email address."
          },
          "phone": {
            "kind": "phone",
            "description": "Customer's phone number.",
            "nullable": true
          },
          "country": {
            "kind": "country",
            "description": "Country of residence.",
            "nullable": true
          }
        }
      },
      "flights": {
        "description": "This table details flight bookings made by customers, linking to customer IDs and includes flight specifics.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each flight booking."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Link to the customer who made the booking."
          },
          "departure_city": {
            "kind": "city",
            "description": "City of departure for the flight."
          },
          "arrival_city": {
            "kind": "city",
            "description": "City of arrival for the flight."
          },
          "departure_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date of flight departure.",
            "trend": "seasonal"
          },
          "return_date": {
            "kind": "date",
            "after": "departure_date",
            "withinDays": 30,
            "description": "Date of flight return.",
            "nullable": true
          }
        }
      },
      "hotels": {
        "description": "This table contains information about hotels, including names, locations, and amenities offered.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each hotel."
          },
          "name": {
            "kind": "company",
            "description": "Name of the hotel."
          },
          "city": {
            "kind": "city",
            "description": "City where the hotel is located."
          },
          "rating": {
            "kind": "decimal",
            "min": 1,
            "max": 5,
            "scale": 1,
            "description": "Hotel's average rating.",
            "nullable": true
          },
          "amenities": {
            "kind": "words",
            "description": "List of amenities offered by the hotel.",
            "nullable": true
          }
        }
      },
      "hotel_bookings": {
        "description": "This table links customers to their hotel bookings, detailing the duration and hotel stay details.",
        "rows": 250,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each hotel booking."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Link to the customer making the booking."
          },
          "hotel_id": {
            "kind": "fk",
            "ref": "hotels.id",
            "description": "Link to the booked hotel."
          },
          "check_in_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Check-in date for the hotel stay."
          },
          "check_out_date": {
            "kind": "date",
            "after": "check_in_date",
            "withinDays": 30,
            "description": "Check-out date for the hotel stay.",
            "nullable": true
          }
        }
      },
      "car_rentals": {
        "description": "This table includes details on car rentals associated with customer bookings, linking to customers and hotel bookings.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each car rental."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Link to the customer renting the car."
          },
          "hotel_booking_id": {
            "kind": "fk",
            "ref": "hotel_bookings.id",
            "description": "Link to the hotel booking associated with the rental."
          },
          "pickup_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Pickup date for car rental."
          },
          "return_date": {
            "kind": "date",
            "after": "pickup_date",
            "withinDays": 30,
            "description": "Return date for car rental.",
            "nullable": true
          }
        }
      },
      "customer_reviews": {
        "description": "This table stores customer reviews for hotels, linking reviews to both customers and hotels.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each review."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Link to the customer who wrote the review."
          },
          "hotel_id": {
            "kind": "fk",
            "ref": "hotels.id",
            "description": "Link to the hotel being reviewed."
          },
          "review_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date the review was written.",
            "trend": "seasonal"
          },
          "rating": {
            "kind": "decimal",
            "min": 1,
            "max": 5,
            "scale": 1,
            "description": "Rating given by the customer."
          },
          "comment": {
            "kind": "sentence",
            "description": "Text of the review comment.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "nullable"
    ],
    "analysisQuestions": [
      "What are the peak travel seasons based on flight bookings?",
      "How do hotel amenities correlate with customer satisfaction ratings?",
      "What percentage of customers rent cars alongside their hotel bookings?",
      "How do customer reviews vary by hotel location?",
      "Is there a trend in customer feedback over time?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Flights and Customers",
        "sql": "SELECT f.*, c.full_name FROM flights f JOIN customers c ON f.customer_id = c.id;",
        "dialect": "postgres"
      },
      {
        "title": "Average Hotel Ratings by City",
        "sql": "SELECT h.city, AVG(h.rating) FROM hotels h GROUP BY h.city;",
        "dialect": "postgres"
      },
      {
        "title": "Customer Satisfaction Analysis",
        "sql": "SELECT c.full_name, AVG(cr.rating) FROM customers c JOIN customer_reviews cr ON c.id = cr.customer_id GROUP BY c.full_name;",
        "dialect": "postgres"
      },
      {
        "title": "Bookings Over Time",
        "sql": "SELECT DATE_TRUNC('month', f.departure_date) AS month, COUNT(*) FROM flights f GROUP BY month ORDER BY month;",
        "dialect": "postgres"
      },
      {
        "title": "Car Rentals Linked to Hotel Bookings",
        "sql": "SELECT cr.* FROM car_rentals cr JOIN hotel_bookings hb ON cr.hotel_booking_id = hb.id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Travel Agency Insights",
        "body": "Travel agencies can utilize this dataset to analyze customer booking trends and preferences. By understanding peak travel seasons and customer feedback, they can tailor their marketing strategies and improve customer satisfaction."
      },
      {
        "title": "Hotel Management Analysis",
        "body": "Hotel managers can leverage the data to assess the amenities that attract positive reviews. Insights from customer reviews can guide improvements and help maintain competitive standards in hospitality."
      },
      {
        "title": "Car Rental Services Evaluation",
        "body": "Car rental companies can analyze the dataset to determine the correlation between hotel bookings and car rentals. This information can assist in strategic partnerships with hotels and enhance package offerings."
      },
      {
        "title": "Academic Research",
        "body": "Researchers studying travel and hospitality can use this dataset for various analyses, from behavioral studies on customer preferences to economic impacts of tourism during peak seasons."
      }
    ]
  },
  "counts": {
    "customers": 200,
    "flights": 300,
    "hotels": 150,
    "customer_reviews": 200,
    "hotel_bookings": 250,
    "car_rentals": 100
  },
  "stats": {
    "customers": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 198,
          "min": "Alice Andersen",
          "max": "Zoe Gomez"
        },
        "email": {
          "nulls": 0,
          "distinct": 200
        },
        "phone": {
          "nulls": 17,
          "distinct": 175
        },
        "country": {
          "nulls": 20,
          "distinct": 42,
          "min": "Argentina",
          "max": "United States"
        }
      }
    },
    "flights": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 157,
          "min": 1,
          "max": 200
        },
        "departure_city": {
          "nulls": 0,
          "distinct": 62,
          "min": "Amsterdam",
          "max": "Zurich"
        },
        "arrival_city": {
          "nulls": 0,
          "distinct": 62,
          "min": "Amsterdam",
          "max": "Warsaw"
        },
        "departure_date": {
          "nulls": 0,
          "distinct": 237,
          "min": "2022-01-03",
          "max": "2023-12-31"
        },
        "return_date": {
          "nulls": 27,
          "distinct": 226,
          "min": "2022-01-04",
          "max": "2024-01-21"
        }
      }
    },
    "hotels": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "name": {
          "nulls": 0,
          "distinct": 138,
          "min": "Acme Industries",
          "max": "Willow Studio"
        },
        "city": {
          "nulls": 0,
          "distinct": 58,
          "min": "Amsterdam",
          "max": "Zurich"
        },
        "rating": {
          "nulls": 19,
          "distinct": 39,
          "min": 1,
          "max": 5
        },
        "amenities": {
          "nulls": 11,
          "distinct": 139
        }
      }
    },
    "hotel_bookings": {
      "rows": 250,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 250,
          "min": 1,
          "max": 250
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 141,
          "min": 1,
          "max": 200
        },
        "hotel_id": {
          "nulls": 0,
          "distinct": 118,
          "min": 1,
          "max": 149
        },
        "check_in_date": {
          "nulls": 0,
          "distinct": 208,
          "min": "2022-01-04",
          "max": "2023-12-31"
        },
        "check_out_date": {
          "nulls": 25,
          "distinct": 198,
          "min": "2022-01-09",
          "max": "2024-01-12"
        }
      }
    },
    "car_rentals": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 74,
          "min": 1,
          "max": 196
        },
        "hotel_booking_id": {
          "nulls": 0,
          "distinct": 86,
          "min": 1,
          "max": 250
        },
        "pickup_date": {
          "nulls": 0,
          "distinct": 95,
          "min": "2022-01-06",
          "max": "2023-12-24"
        },
        "return_date": {
          "nulls": 8,
          "distinct": 89,
          "min": "2022-01-20",
          "max": "2024-01-14"
        }
      }
    },
    "customer_reviews": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 123,
          "min": 4,
          "max": 199
        },
        "hotel_id": {
          "nulls": 0,
          "distinct": 113,
          "min": 1,
          "max": 150
        },
        "review_date": {
          "nulls": 0,
          "distinct": 175,
          "min": "2022-01-03",
          "max": "2023-12-29"
        },
        "rating": {
          "nulls": 0,
          "distinct": 41,
          "min": 1,
          "max": 5
        },
        "comment": {
          "nulls": 18,
          "distinct": 182
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/customers.csv",
      "format": "csv",
      "table": "customers",
      "key": "datasets/travel-reservation-insights/v1/csv/customers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/csv/customers.csv",
      "bytes": 12737,
      "sha256": "09a69265155ede3148c802007b571f5af3f2b8cb033709548e62a51103bc1b1d",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/flights.csv",
      "format": "csv",
      "table": "flights",
      "key": "datasets/travel-reservation-insights/v1/csv/flights.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/csv/flights.csv",
      "bytes": 13552,
      "sha256": "da12b1230628dfa701f158e0c3d97ac1314dafa7294d47faae64b6d21d4aaf74",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/hotels.csv",
      "format": "csv",
      "table": "hotels",
      "key": "datasets/travel-reservation-insights/v1/csv/hotels.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/csv/hotels.csv",
      "bytes": 8114,
      "sha256": "d2b096f94f8e7611f3e8108aae47c174003bdd2c2cf84bd51f7fb9d9dff9ae48",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/customer_reviews.csv",
      "format": "csv",
      "table": "customer_reviews",
      "key": "datasets/travel-reservation-insights/v1/csv/customer_reviews.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/csv/customer_reviews.csv",
      "bytes": 15564,
      "sha256": "2c0e26336ba10f07d13376cbf96472d9a940ed429c0e1812b04cfefc01c008e1",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/hotel_bookings.csv",
      "format": "csv",
      "table": "hotel_bookings",
      "key": "datasets/travel-reservation-insights/v1/csv/hotel_bookings.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/csv/hotel_bookings.csv",
      "bytes": 8124,
      "sha256": "df2812ea93bd24e998487084b7dfc13ba9ee7621b786d113a511de702c72fec0",
      "rows": 250,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/car_rentals.csv",
      "format": "csv",
      "table": "car_rentals",
      "key": "datasets/travel-reservation-insights/v1/csv/car_rentals.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/csv/car_rentals.csv",
      "bytes": 3261,
      "sha256": "4ac7495f58f6b370066d8e88a46c6f9cd62c04e89cecb1627ffa397dd65d0f04",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "travel-reservation-insights.json",
      "format": "json",
      "table": null,
      "key": "datasets/travel-reservation-insights/v1/travel-reservation-insights.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/travel-reservation-insights.json",
      "bytes": 207817,
      "sha256": "6859a149d4d9a3fbfd7464dfbeff66da66954ded41543104cf62fee46deea534",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/travel-reservation-insights/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/sql/postgres.sql",
      "bytes": 84971,
      "sha256": "d04b141914788b4985e6c2507e29bd82223d486e8b9e8b162b085b1ab0b0eca0",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/travel-reservation-insights/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/sql/mysql.sql",
      "bytes": 84274,
      "sha256": "fc05a561b5a0ce4cce0d2ac2f3e5443e1391f24da0d3b61f3b8c04bf4a58a04c",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/travel-reservation-insights/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/sql/mssql.sql",
      "bytes": 88112,
      "sha256": "1116f107809f1a4d198c5f144ac142560c97a9748bb97b86cd6a19b05263cb96",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/travel-reservation-insights/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/sql/sqlite.sql",
      "bytes": 83914,
      "sha256": "2b0db08e2b539e2c78faaf9fe19f0890202762fc6d5f02e2d2b01a2176ee347a",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/travel-reservation-insights/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/prisma/seed.ts",
      "bytes": 162347,
      "sha256": "50517c0308b7df04084a16e54eeffdd546d597fc09302671fb256528f2290a1f",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/travel-reservation-insights/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-reservation-insights/v1/django/fixtures.json",
      "bytes": 259468,
      "sha256": "a1dc8e79a9b4d141a588ab0ab002256c8ffb6fc26d787c9aed5d901cc0b45641",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788766218627,
  "updatedAt": 1788766218627
}
