{
  "format": "dataset-manifest/1",
  "slug": "travel-insurance-comparison-tool",
  "version": 1,
  "seed": "travel-insurance-comparison-tool:1",
  "spec": {
    "format": "dataset/1",
    "slug": "travel-insurance-comparison-tool",
    "name": "Insurance Quote Insights",
    "tagline": "User quotes, insurance plans, and add-ons for travelers seeking trip coverage, focusing on popular destinations.",
    "description": "Travelers compare insurance coverage options for their trips, seeking the best policies and add-ons to suit their unique needs. By analyzing user quotes alongside various insurance plans, insights into the diverse conditions travelers face, such as pre-existing medical issues and specific destinations, emerge. This snapshot of the insurance market reveals trends in how frequently travelers select additional coverage, with certain add-ons being popular choices while others, like specific medical exclusions, are less frequently chosen. The dataset illustrates how quotes often cluster around popular tourist destinations, reflecting high-traffic travel areas and their respective insurance needs.\n\nThe dataset consists of several tables that interlink to provide a holistic view of the insurance quoting process. The 'users' table represents individual travelers who seek insurance for their trips, detailing their specific needs and profiles. The 'destinations' table lists various travel locations, which can be linked to the users’ chosen trips. The 'insurance_plans' table includes different policies available for travelers, detailing coverage types and terms. The 'quotes' table captures the actual quotes generated based on user profiles, their selected destinations, and the insurance plans they are interested in. Additionally, the 'add_ons' table contains optional coverage features that users may choose to include in their plans, while the 'quote_add_ons' table directly links specific add-ons to individual quotes, showcasing which features are most popular among travelers.\n\nBy exploring this synthetic dataset, developers can practice answering questions such as: What trends can be identified in traveler choices regarding insurance plans and add-ons? How do destination choices influence insurance needs? What demographic factors correlate with specific coverage options? This dataset presents a rich opportunity for data analysis, enabling users to develop their skills in interpreting complex relationships within structured data.",
    "domain": "insurance",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "travel insurance",
      "insurance quotes",
      "policy comparison",
      "travel destinations",
      "add-on coverage",
      "user profiles",
      "pre-existing conditions"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "Each row in this table represents a traveler seeking insurance coverage, linking to their quotes and specific conditions.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each user."
          },
          "full_name": {
            "kind": "fullName",
            "description": "Full name of the traveler."
          },
          "age": {
            "kind": "int",
            "min": 18,
            "max": 70,
            "description": "Age of the traveler, must be between 18 and 70.",
            "nullable": true
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address of the traveler, derived from their full name.",
            "nullable": true
          },
          "pre_existing_conditions": {
            "kind": "bool",
            "trueRate": 0.4,
            "description": "Indicates if the traveler has pre-existing medical conditions.",
            "nullable": true
          }
        }
      },
      "destinations": {
        "description": "This table contains information about popular travel destinations, linking users to their chosen locations for insurance quotes.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each destination."
          },
          "city": {
            "kind": "city",
            "description": "City name of the travel destination."
          },
          "country": {
            "kind": "country",
            "from": "city",
            "description": "Country of the travel destination, derived from the city."
          },
          "region": {
            "kind": "words",
            "min": 5,
            "max": 20,
            "description": "Region within the country where the destination is located.",
            "nullable": true
          }
        }
      },
      "insurance_plans": {
        "description": "Each row represents an insurance plan available for travelers, linked to quotes and users who compare them.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each insurance plan."
          },
          "plan_name": {
            "kind": "productName",
            "description": "Name of the insurance plan."
          },
          "base_price": {
            "kind": "decimal",
            "min": 50,
            "max": 500,
            "scale": 2,
            "description": "Base price of the insurance plan.",
            "nullable": true
          },
          "coverage_details": {
            "kind": "json",
            "template": {
              "coverage_type": {
                "kind": "words",
                "min": 5,
                "max": 50,
                "description": "Details of the coverage provided."
              },
              "exclusions": {
                "kind": "words",
                "min": 5,
                "max": 50,
                "description": "List of exclusions in the insurance plan."
              }
            },
            "description": "Coverage details and exclusions for the insurance plan.",
            "nullable": true
          }
        }
      },
      "quotes": {
        "description": "This table links users to their requested insurance quotes for specific plans and destinations.",
        "rows": 500,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each quote."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "References the user requesting the quote."
          },
          "insurance_plan_id": {
            "kind": "fk",
            "ref": "insurance_plans.id",
            "description": "References the insurance plan selected for the quote."
          },
          "destination_id": {
            "kind": "fk",
            "ref": "destinations.id",
            "description": "References the travel destination for the quote."
          },
          "quote_price": {
            "kind": "decimal",
            "min": 50,
            "max": 700,
            "scale": 2,
            "description": "Final quoted price for the insurance plan.",
            "nullable": true
          },
          "quote_date": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "Date when the quote was generated.",
            "nullable": true,
            "dayProfile": "waking"
          }
        }
      },
      "add_ons": {
        "description": "This table lists additional coverage options that users can select with their insurance plans.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each add-on."
          },
          "add_on_name": {
            "kind": "productName",
            "description": "Name of the additional coverage option."
          },
          "additional_cost": {
            "kind": "decimal",
            "min": 10,
            "max": 200,
            "scale": 2,
            "description": "Additional cost for the add-on.",
            "nullable": true
          },
          "description": {
            "kind": "words",
            "min": 5,
            "max": 50,
            "description": "Description of what the add-on covers.",
            "nullable": true
          }
        }
      },
      "quote_add_ons": {
        "description": "This table links specific quotes to the additional coverage options selected by users.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each quote add-on entry."
          },
          "quote_id": {
            "kind": "fk",
            "ref": "quotes.id",
            "description": "References the quote that includes the add-on."
          },
          "add_on_id": {
            "kind": "fk",
            "ref": "add_ons.id",
            "description": "References the selected additional coverage option."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "nullable",
      "monetary",
      "timestamped"
    ],
    "analysisQuestions": [
      "What are the most popular insurance plans chosen by travelers?",
      "How often do travelers opt for additional coverage options?",
      "Which destinations are associated with higher insurance quote prices?",
      "Is there a correlation between pre-existing conditions and the types of insurance plans selected?",
      "What trends can be identified in insurance quotes over different months?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Users and Quotes",
        "sql": "SELECT u.full_name, q.quote_price FROM users u JOIN quotes q ON u.id = q.user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Aggregate Quotes by Destination",
        "sql": "SELECT d.city, COUNT(q.id) AS total_quotes FROM quotes q JOIN destinations d ON q.destination_id = d.id GROUP BY d.city;",
        "dialect": "postgres"
      },
      {
        "title": "Average Quote Price per Insurance Plan",
        "sql": "SELECT ip.plan_name, AVG(q.quote_price) AS average_price FROM quotes q JOIN insurance_plans ip ON q.insurance_plan_id = ip.id GROUP BY ip.plan_name;",
        "dialect": "postgres"
      },
      {
        "title": "Count Add-Ons Selected per Quote",
        "sql": "SELECT q.id AS quote_id, COUNT(qa.add_on_id) AS total_add_ons FROM quote_add_ons qa JOIN quotes q ON qa.quote_id = q.id GROUP BY q.id;",
        "dialect": "postgres"
      },
      {
        "title": "Trends in Quotes Over Time",
        "sql": "SELECT DATE(q.quote_date) AS quote_day, COUNT(q.id) AS daily_quotes FROM quotes q GROUP BY quote_day ORDER BY quote_day;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Insurance Comparison Tool Development",
        "body": "Developers can use this dataset to create a travel insurance comparison tool that allows users to input their travel plans and receive tailored insurance quotes based on their needs and preferences. This tool can integrate various insurance plans and add-ons, making it easy for users to find the best coverage for their trips."
      },
      {
        "title": "Data Analysis for Insurance Providers",
        "body": "Insurance companies can leverage this dataset to analyze market trends and customer behavior in the travel insurance sector. By understanding which plans and add-ons are most popular among users, they can adjust their offerings and marketing strategies to better meet customer needs."
      },
      {
        "title": "Educational Purposes in Data Science",
        "body": "This dataset serves as an excellent resource for educators and students in data science courses, allowing them to practice SQL queries and data analysis techniques. They can explore relationships between different tables, analyze trends, and develop insights into the travel insurance market."
      },
      {
        "title": "Marketing Strategy Development",
        "body": "Marketing teams can utilize this dataset to identify potential customer segments and tailor their marketing strategies accordingly. By analyzing the types of quotes and insurance plans that appeal to different demographics, they can create targeted marketing campaigns to reach specific audiences."
      }
    ]
  },
  "counts": {
    "add_ons": 100,
    "destinations": 150,
    "insurance_plans": 200,
    "users": 300,
    "quotes": 500,
    "quote_add_ons": 300
  },
  "stats": {
    "users": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "full_name": {
          "nulls": 0,
          "distinct": 294,
          "min": "Alice Brown",
          "max": "Zoe Tanaka"
        },
        "age": {
          "nulls": 43,
          "distinct": 53,
          "min": 18,
          "max": 70
        },
        "email": {
          "nulls": 34,
          "distinct": 264
        },
        "pre_existing_conditions": {
          "nulls": 24,
          "distinct": 2,
          "min": "false",
          "max": "true"
        }
      }
    },
    "destinations": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "city": {
          "nulls": 0,
          "distinct": 60,
          "min": "Amsterdam",
          "max": "Zurich"
        },
        "country": {
          "nulls": 0,
          "distinct": 42,
          "min": "Argentina",
          "max": "United States"
        },
        "region": {
          "nulls": 20,
          "distinct": 130
        }
      }
    },
    "insurance_plans": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "plan_name": {
          "nulls": 0,
          "distinct": 162,
          "min": "Classic Backpack",
          "max": "Wireless Toolkit"
        },
        "base_price": {
          "nulls": 16,
          "distinct": 182,
          "min": 50.08,
          "max": 495.66
        },
        "coverage_details": {
          "nulls": 22,
          "distinct": 178
        }
      }
    },
    "quotes": {
      "rows": 500,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 500,
          "min": 1,
          "max": 500
        },
        "user_id": {
          "nulls": 0,
          "distinct": 249,
          "min": 1,
          "max": 300
        },
        "insurance_plan_id": {
          "nulls": 0,
          "distinct": 191,
          "min": 1,
          "max": 200
        },
        "destination_id": {
          "nulls": 0,
          "distinct": 144,
          "min": 1,
          "max": 150
        },
        "quote_price": {
          "nulls": 52,
          "distinct": 447,
          "min": 50.28,
          "max": 697.57
        },
        "quote_date": {
          "nulls": 51,
          "distinct": 449,
          "min": "2023-01-03 00:19:30",
          "max": "2023-12-30 18:22:38"
        }
      }
    },
    "add_ons": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "add_on_name": {
          "nulls": 0,
          "distinct": 89,
          "min": "Classic Charger",
          "max": "Wireless Speaker"
        },
        "additional_cost": {
          "nulls": 9,
          "distinct": 91,
          "min": 14.06,
          "max": 199.63
        },
        "description": {
          "nulls": 15,
          "distinct": 85
        }
      }
    },
    "quote_add_ons": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "quote_id": {
          "nulls": 0,
          "distinct": 233,
          "min": 1,
          "max": 499
        },
        "add_on_id": {
          "nulls": 0,
          "distinct": 97,
          "min": 1,
          "max": 100
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/add_ons.csv",
      "format": "csv",
      "table": "add_ons",
      "key": "datasets/travel-insurance-comparison-tool/v1/csv/add_ons.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/csv/add_ons.csv",
      "bytes": 17836,
      "sha256": "be730dbe78b14e7e963475bc93973478497ae27796f7d87c08152ea355b7824f",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/destinations.csv",
      "format": "csv",
      "table": "destinations",
      "key": "datasets/travel-insurance-comparison-tool/v1/csv/destinations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/csv/destinations.csv",
      "bytes": 13675,
      "sha256": "6f118f7966ead161eebb874c8572e1d34622a2250395b6cd10d4ebf06c0f6152",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/insurance_plans.csv",
      "format": "csv",
      "table": "insurance_plans",
      "key": "datasets/travel-insurance-comparison-tool/v1/csv/insurance_plans.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/csv/insurance_plans.csv",
      "bytes": 79269,
      "sha256": "b909156e55a3954d946228b9c6c36ec386cdcb77f896797c31e17d120c456a63",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/travel-insurance-comparison-tool/v1/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/csv/users.csv",
      "bytes": 13948,
      "sha256": "beb4cfc9db23ef48ed6deaffc5efdae7ed7ab57e93ae3a070918e2be1fff0eaa",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/quotes.csv",
      "format": "csv",
      "table": "quotes",
      "key": "datasets/travel-insurance-comparison-tool/v1/csv/quotes.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/csv/quotes.csv",
      "bytes": 19842,
      "sha256": "bfd3c7aa94710e6e3bcf4a951cb139e5affdd92923f0c9d0f82fb34e064a1283",
      "rows": 500,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/quote_add_ons.csv",
      "format": "csv",
      "table": "quote_add_ons",
      "key": "datasets/travel-insurance-comparison-tool/v1/csv/quote_add_ons.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/csv/quote_add_ons.csv",
      "bytes": 3424,
      "sha256": "ae2023fcf790233160fcc695da7eb6e57394c274242e227d00f0c127f38cf01f",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "travel-insurance-comparison-tool.json",
      "format": "json",
      "table": null,
      "key": "datasets/travel-insurance-comparison-tool/v1/travel-insurance-comparison-tool.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/travel-insurance-comparison-tool.json",
      "bytes": 314825,
      "sha256": "9cbfcb76db7280dec031f1eabc2198655540d832dbee7d81eda344f0da0a71f0",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/travel-insurance-comparison-tool/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/sql/postgres.sql",
      "bytes": 169739,
      "sha256": "363e46e952e08f43c4a48f2853b92714863f66c63dfbfb4da0951bdaa4bef6c2",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/travel-insurance-comparison-tool/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/sql/mysql.sql",
      "bytes": 168064,
      "sha256": "86feb948700c07e3dc4bb537c98c1e48ca385ee8edffe92d5c65aad509786611",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/travel-insurance-comparison-tool/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/sql/mssql.sql",
      "bytes": 170469,
      "sha256": "d3c65e532ab2aeb4d35e12fddb7e89ba96db726b43c31d6a2fa3347272989798",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/travel-insurance-comparison-tool/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/sql/sqlite.sql",
      "bytes": 167815,
      "sha256": "449d475baf95bc93b7b35597e6a74450dfd3f6ec229d8f43263daa3feb7a3f6b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/travel-insurance-comparison-tool/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/prisma/seed.ts",
      "bytes": 266081,
      "sha256": "f21b500f2ae154b51240fd0d8202cc451b4bdc02511ddf0d8ca2a95019778356",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/travel-insurance-comparison-tool/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/travel-insurance-comparison-tool/v1/django/fixtures.json",
      "bytes": 379173,
      "sha256": "63b7fbb87804c9e2fb10fff9c02c8fed20c98853af67f14976e6f259721e6171",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788734053330,
  "updatedAt": 1788734053330
}
