{
  "format": "dataset-manifest/1",
  "slug": "parcel-delivery",
  "version": 1,
  "seed": "parcel-delivery:1",
  "spec": {
    "format": "dataset/1",
    "slug": "parcel-delivery",
    "name": "Parcel Delivery",
    "tagline": "Modeling logistics from parcel pickup to delivery.",
    "description": "A parcel carrier manages the complex journey of packages from senders to their final destinations. This organization coordinates various elements including senders, parcels, drivers, vehicles, and routes to ensure timely and efficient delivery. As parcels are picked up, transported, and delivered, they go through several stages which are tracked through scan events that log each significant action in the delivery process. Some parcels may even be rerouted along the way due to changing circumstances or customer requests, showcasing the dynamic nature of logistics operations.\n\nIn this dataset, the 'senders' table contains information about individuals or businesses that send parcels. Each sender can be linked to multiple parcels in the 'parcels' table, representing each unique package ready for delivery. The 'parcels' table holds details such as weight, dimensions, and destination. Each parcel is associated with a specific route from the 'routes' table, which outlines the planned path taken to deliver the package. The 'vehicles' table provides data on the transport methods available, while the 'drivers' table includes information on the individuals responsible for operating those vehicles. Finally, the 'scan_events' table tracks the movement of parcels through various checkpoints, allowing the entire delivery process to be monitored in real-time.\n\nThis dataset answers various logistical questions, such as how long deliveries typically take, how often parcels get rerouted, and the performance of different drivers and vehicles. Developers can practice data analysis and visualization techniques to better understand operational efficiencies, identify trends in delivery times, and optimize routes. The data is synthetic, crafted to facilitate learning and experimentation in a realistic logistics context.",
    "domain": "logistics",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "parcel delivery",
      "logistics",
      "shipping",
      "transportation",
      "tracking",
      "drivers",
      "vehicles"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "senders": {
        "description": "This table records information about the senders of parcels, linking to the parcels they send.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each sender."
          },
          "name": {
            "kind": "fullName",
            "description": "Full name of the sender."
          },
          "email": {
            "kind": "email",
            "from": "name",
            "description": "Email address of the sender."
          },
          "address": {
            "kind": "sentence",
            "description": "Physical address of the sender."
          }
        }
      },
      "parcels": {
        "description": "This table tracks parcels, including their current status and the sender who initiated the shipment.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each parcel."
          },
          "sender_id": {
            "kind": "fk",
            "ref": "senders.id",
            "description": "ID of the sender associated with this parcel."
          },
          "status": {
            "kind": "enum",
            "values": [
              "pending",
              "in_transit",
              "delivered",
              "returned"
            ],
            "description": "Current status of the parcel."
          },
          "weight": {
            "kind": "decimal",
            "min": 0.1,
            "max": 50,
            "scale": 2,
            "description": "Weight of the parcel in kilograms."
          }
        }
      },
      "routes": {
        "description": "This table contains information about delivery routes taken for parcels.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each route."
          },
          "parcel_id": {
            "kind": "fk",
            "ref": "parcels.id",
            "description": "ID of the parcel associated with this route."
          },
          "route_details": {
            "kind": "sentence",
            "description": "Description of the route taken."
          },
          "estimated_arrival": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "Estimated arrival date and time for the parcel.",
            "dayProfile": "waking"
          }
        }
      },
      "vehicles": {
        "description": "This table contains details about the vehicles used for parcel delivery.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each vehicle."
          },
          "license_plate": {
            "kind": "pattern",
            "pattern": "ABC-####",
            "description": "License plate number of the vehicle."
          },
          "type": {
            "kind": "enum",
            "values": [
              "van",
              "truck",
              "motorcycle"
            ],
            "description": "Type of vehicle used for delivery."
          }
        }
      },
      "drivers": {
        "description": "This table holds information about the drivers responsible for delivering parcels.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each driver."
          },
          "name": {
            "kind": "fullName",
            "description": "Full name of the driver."
          },
          "vehicle_id": {
            "kind": "fk",
            "ref": "vehicles.id",
            "nullable": true,
            "description": "ID of the vehicle assigned to this driver."
          }
        }
      },
      "scan_events": {
        "description": "This table captures scan events for parcels, detailing significant milestones in their delivery journey.",
        "rows": 500,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each scan event."
          },
          "parcel_id": {
            "kind": "fk",
            "ref": "parcels.id",
            "description": "ID of the parcel associated with this scan event."
          },
          "event_type": {
            "kind": "enum",
            "values": [
              "pickup",
              "delivery",
              "reroute"
            ],
            "description": "Type of scan event recorded."
          },
          "event_time": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "Timestamp when the scan event occurred.",
            "dayProfile": "business"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "timestamped",
      "categorical",
      "nullable",
      "high-cardinality"
    ],
    "analysisQuestions": [
      "What are the most common statuses of parcels at any given time?",
      "How does the weight of parcels affect delivery times?",
      "Which routes are the most efficient based on delivery events?",
      "What percentage of parcels are rerouted during their journey?",
      "What is the average delivery time for parcels by vehicle type?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Parcels with Senders",
        "sql": "SELECT parcels.id, senders.name FROM parcels JOIN senders ON parcels.sender_id = senders.id;",
        "dialect": "postgres"
      },
      {
        "title": "Count Parcels by Status",
        "sql": "SELECT status, COUNT(*) FROM parcels GROUP BY status;",
        "dialect": "postgres"
      },
      {
        "title": "Average Weight of Delivered Parcels",
        "sql": "SELECT AVG(weight) FROM parcels WHERE status = 'delivered';",
        "dialect": "postgres"
      },
      {
        "title": "Parcel Delivery Events by Date",
        "sql": "SELECT DATE(event_time) AS delivery_date, COUNT(*) FROM scan_events WHERE event_type = 'delivery' GROUP BY delivery_date;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Logistics Optimization",
        "body": "Logistics managers can use this dataset to analyze delivery routes and identify inefficiencies. By examining the average delivery times and rerouting occurrences, managers can make data-driven decisions to optimize their operations and reduce costs."
      },
      {
        "title": "Driver Performance Analysis",
        "body": "Human resources teams can analyze driver performance using the data in this dataset by looking at delivery times, scan events, and vehicle assignments. This can help identify top-performing drivers and provide training opportunities for those who may be struggling."
      },
      {
        "title": "Customer Experience Improvement",
        "body": "Customer support teams can leverage this dataset to track parcel statuses and delivery timelines, ensuring they provide accurate information to customers. By understanding the common reasons for delays, support can proactively address customer concerns."
      },
      {
        "title": "Regulatory Compliance Tracking",
        "body": "Compliance officers can utilize the dataset to ensure that all vehicles and drivers are properly documented and meet regulatory requirements. By monitoring vehicle types and driver assignments, they can maintain compliance with transportation laws."
      }
    ]
  },
  "counts": {
    "senders": 200,
    "parcels": 300,
    "routes": 100,
    "scan_events": 500,
    "vehicles": 50,
    "drivers": 100
  },
  "stats": {
    "senders": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "name": {
          "nulls": 0,
          "distinct": 196,
          "min": "Alice Sousa",
          "max": "Zoe Zhang"
        },
        "email": {
          "nulls": 0,
          "distinct": 198
        },
        "address": {
          "nulls": 0,
          "distinct": 199
        }
      }
    },
    "parcels": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "sender_id": {
          "nulls": 0,
          "distinct": 158,
          "min": 1,
          "max": 200
        },
        "status": {
          "nulls": 0,
          "distinct": 4,
          "min": "delivered",
          "max": "returned"
        },
        "weight": {
          "nulls": 0,
          "distinct": 288,
          "min": 0.24,
          "max": 49.99
        }
      }
    },
    "routes": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "parcel_id": {
          "nulls": 0,
          "distinct": 86,
          "min": 3,
          "max": 297
        },
        "route_details": {
          "nulls": 0,
          "distinct": 99
        },
        "estimated_arrival": {
          "nulls": 0,
          "distinct": 100,
          "min": "2023-01-03 18:18:27",
          "max": "2023-12-31 08:00:33"
        }
      }
    },
    "vehicles": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "license_plate": {
          "nulls": 0,
          "distinct": 50
        },
        "type": {
          "nulls": 0,
          "distinct": 3,
          "min": "motorcycle",
          "max": "van"
        }
      }
    },
    "drivers": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "name": {
          "nulls": 0,
          "distinct": 100,
          "min": "Alice Martin",
          "max": "Zoe Wagner"
        },
        "vehicle_id": {
          "nulls": 6,
          "distinct": 45,
          "min": 1,
          "max": 50
        }
      }
    },
    "scan_events": {
      "rows": 500,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 500,
          "min": 1,
          "max": 500
        },
        "parcel_id": {
          "nulls": 0,
          "distinct": 244,
          "min": 1,
          "max": 300
        },
        "event_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "delivery",
          "max": "reroute"
        },
        "event_time": {
          "nulls": 0,
          "distinct": 500,
          "min": "2023-01-01 15:13:58",
          "max": "2023-12-30 16:48:57"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/senders.csv",
      "format": "csv",
      "table": "senders",
      "key": "datasets/parcel-delivery/v1/csv/senders.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/csv/senders.csv",
      "bytes": 19540,
      "sha256": "44854014696fbc83a228a5585e2366fe933684996694eecacbb3a8dcfaed82d7",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/parcels.csv",
      "format": "csv",
      "table": "parcels",
      "key": "datasets/parcel-delivery/v1/csv/parcels.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/csv/parcels.csv",
      "bytes": 7035,
      "sha256": "9b8e4d3eef6db1f2acf38895d84d4ef7b319fa0091a75b637e542b006d763e85",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/routes.csv",
      "format": "csv",
      "table": "routes",
      "key": "datasets/parcel-delivery/v1/csv/routes.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/csv/routes.csv",
      "bytes": 8343,
      "sha256": "ab61b4a0fe0e6f1eae4cf15760f03f2ef184ae747aef4ec92057211f75d99a9b",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/scan_events.csv",
      "format": "csv",
      "table": "scan_events",
      "key": "datasets/parcel-delivery/v1/csv/scan_events.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/csv/scan_events.csv",
      "bytes": 18246,
      "sha256": "f40578dbed38a42ffcb2361ab098c7bd3403d3f72f24b63a7042d04ff77fe607",
      "rows": 500,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/vehicles.csv",
      "format": "csv",
      "table": "vehicles",
      "key": "datasets/parcel-delivery/v1/csv/vehicles.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/csv/vehicles.csv",
      "bytes": 1015,
      "sha256": "1d5df895f26d1f9413e326fb88738f0b7b51e5e9cc094d7270c5df0940fed0c2",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/drivers.csv",
      "format": "csv",
      "table": "drivers",
      "key": "datasets/parcel-delivery/v1/csv/drivers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/csv/drivers.csv",
      "bytes": 1867,
      "sha256": "d88937040d7e99b48ad4f4399c9be06f08d6b3e08fb26b7900b4393565140c71",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "parcel-delivery.json",
      "format": "json",
      "table": null,
      "key": "datasets/parcel-delivery/v1/parcel-delivery.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/parcel-delivery.json",
      "bytes": 160204,
      "sha256": "5ff87e16b07f23d7eb855383acd8161fe0ccd3eb07faba881d1754f886a22161",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/parcel-delivery/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/sql/postgres.sql",
      "bytes": 74539,
      "sha256": "d7782762f01fb7aeb6b09361a5c4e530a289de421566d3c64c385f3078115671",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/parcel-delivery/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/sql/mysql.sql",
      "bytes": 73886,
      "sha256": "9945418f70abf1dc00634dd0bc788c3c459fe9c8826d2563f3232dec98e120a6",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/parcel-delivery/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/sql/mssql.sql",
      "bytes": 76575,
      "sha256": "7fba9c3b7bc3ccf1769f5a32c11fc1653b85f1e5dc50a4e51e246ed6bab252ba",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/parcel-delivery/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/sql/sqlite.sql",
      "bytes": 73685,
      "sha256": "7229fd4060a359be22b212a78ece104d7c6a22fc53aad94f32c613531838f739",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/parcel-delivery/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/prisma/seed.ts",
      "bytes": 134607,
      "sha256": "c163a3ee115a8c42223a9cbc6459cf26ae4e1fbf8238295e1b46d2b3cd8f1e3f",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/parcel-delivery/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/parcel-delivery/v1/django/fixtures.json",
      "bytes": 213521,
      "sha256": "215b54bb881b7f99f9fcdee69884a4acfca2f4eb2a2dbf8139847ca8db21fb57",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768095116,
  "updatedAt": 1788768095116
}
