{
  "format": "dataset-manifest/1",
  "slug": "personalized-fashion-subscription-box",
  "version": 4,
  "seed": "personalized-fashion-subscription-box:1",
  "engine": 1,
  "engineVersion": "1.0.0",
  "spec": {
    "format": "dataset/1",
    "slug": "personalized-fashion-subscription-box",
    "name": "Fashion Subscription Insights",
    "tagline": "Customer profiles, subscriptions, products, payments, and shipments for a personalized fashion service.",
    "description": "Customers receive personalized fashion subscription boxes that perfectly match their preferences. This business revolves around curating unique clothing and accessory selections for individuals, ensuring that each box reflects their personal style. The subscription model relies on a streamlined process that includes managing customer profiles, selecting suitable products, processing payments, and coordinating shipments in a timely manner. Each box is crafted based on individual sizes, preferred materials, and brand choices, allowing for a customized shopping experience that caters to the diverse tastes of the clientele. \n\nThe tables within this dataset are interconnected to provide a comprehensive view of the subscription service's operations. The 'customers' table contains details about each subscriber, including their style preferences and subscription status. The 'subscriptions' table tracks the individual plans customers have signed up for, linking directly to the 'customers' table through a customer ID. The 'products' table lists all available items, detailing specifications like material and brand, while the 'stylist_notes' table contains insightful remarks from stylists about customer preferences and avoided materials. 'Payments' captures transaction details, linking to both the subscriptions and customers, and 'shipments' monitors the delivery process, detailing when and where boxes are sent. \n\nThis dataset answers critical questions about customer behavior, product preferences, and the effectiveness of stylist selections. Developers can practice querying relationships between customer demographics, stylist notes, and product selections to analyze trends. Understanding payment and shipment logistics further enhances insight into operational efficiencies. Since this data is synthetic, it allows for safe experimentation without real-world implications.",
    "domain": "logistics",
    "shape": "hierarchical",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "fashion",
      "subscription",
      "logistics",
      "customer profiles",
      "products",
      "payments"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "customers": {
        "description": "This table stores customer profiles, including their preferences, sizes, and contact information. Each row corresponds to a unique customer.",
        "rows": 200,
        "columns": {
          "customer_id": {
            "kind": "pk",
            "description": "Unique identifier for each customer."
          },
          "full_name": {
            "kind": "fullName",
            "description": "Full name of the customer."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address of the customer."
          },
          "size": {
            "kind": "enum",
            "values": [
              "S",
              "M",
              "L",
              "XL"
            ],
            "description": "Size preference of the customer.",
            "weights": [
              5,
              3,
              2,
              1
            ]
          },
          "style_preferences": {
            "kind": "words",
            "description": "Keywords describing the customer's style preferences.",
            "nullable": true,
            "when": {
              "column": "size",
              "in": [
                "S",
                "M",
                "L",
                "XL"
              ]
            },
            "pool": [
              "casual",
              "elegant",
              "sporty",
              "bohemian",
              "classic",
              "edgy",
              "vintage",
              "chic",
              "minimalist",
              "trendy",
              "sophisticated",
              "playful",
              "romantic",
              "urban",
              "artsy",
              "feminine",
              "masculine",
              "comfortable",
              "bold",
              "timeless"
            ],
            "min": 1,
            "max": 3
          }
        }
      },
      "subscriptions": {
        "description": "This table details the subscription information for each customer, including the start date and type of subscription. Each row is linked to a customer.",
        "rows": 200,
        "columns": {
          "subscription_id": {
            "kind": "pk",
            "description": "Unique identifier for each subscription."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.customer_id",
            "description": "The customer associated with this subscription."
          },
          "start_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "The date when the subscription started.",
            "nullable": true,
            "when": {
              "column": "subscription_type",
              "in": [
                "monthly",
                "quarterly"
              ]
            }
          },
          "subscription_type": {
            "kind": "enum",
            "values": [
              "monthly",
              "quarterly"
            ],
            "description": "Type of subscription chosen by the customer.",
            "weights": [
              7,
              3
            ]
          },
          "discount_percentage": {
            "kind": "decimal",
            "min": 0,
            "max": 50,
            "scale": 2,
            "distribution": "normal",
            "description": "Percentage discount applied to the subscription."
          },
          "renewal_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date when the subscription will automatically renew."
          }
        }
      },
      "products": {
        "description": "This table contains information about the products available in the subscription boxes, including their categories and brands. Each product can be linked to multiple boxes.",
        "rows": 150,
        "columns": {
          "product_id": {
            "kind": "pk",
            "description": "Unique identifier for each product."
          },
          "product_name": {
            "kind": "productName",
            "description": "Name of the product."
          },
          "category": {
            "kind": "enum",
            "values": [
              "clothing",
              "accessory"
            ],
            "description": "The category this product belongs to."
          },
          "brand": {
            "kind": "enum",
            "values": [
              "Nike",
              "Adidas",
              "Zara",
              "H&M",
              "Gucci",
              "Chanel",
              "Prada",
              "Levi's",
              "Puma",
              "Reebok",
              "Uniqlo",
              "Forever21",
              "Tommy",
              "Calvin",
              "Lululemon",
              "Fendi",
              "Burberry",
              "Versace",
              "Dolce",
              "Valentino"
            ],
            "weights": [
              12,
              6,
              4,
              3,
              2,
              2,
              2,
              2,
              1,
              1,
              1,
              1,
              1,
              1,
              1,
              1,
              1,
              1,
              1,
              1
            ],
            "description": "Brand name of the product.",
            "nullable": true
          },
          "material": {
            "kind": "words",
            "description": "Main materials used in the product.",
            "nullable": true,
            "pool": [
              "cotton",
              "polyester",
              "leather",
              "wool",
              "silk",
              "denim",
              "linen",
              "rayon",
              "nylon",
              "spandex",
              "cashmere",
              "viscose",
              "jersey",
              "satin",
              "tweed",
              "canvas",
              "suede",
              "acrylic",
              "bamboo",
              "modal"
            ],
            "min": 1,
            "max": 3
          }
        }
      },
      "stylist_notes": {
        "description": "This table holds notes from stylists about the items selected for each customer, allowing for personalized adjustments. Each note corresponds to a specific subscription.",
        "rows": 150,
        "columns": {
          "note_id": {
            "kind": "pk",
            "description": "Unique identifier for each stylist note."
          },
          "subscription_id": {
            "kind": "fk",
            "ref": "subscriptions.subscription_id",
            "description": "The subscription associated with this stylist note."
          },
          "note": {
            "kind": "sentence",
            "description": "Comments and suggestions from the stylist."
          },
          "avoided_materials": {
            "kind": "words",
            "description": "Materials that the customer prefers to avoid.",
            "nullable": true
          },
          "feedback_rating": {
            "kind": "int",
            "min": 1,
            "max": 5,
            "distribution": "high",
            "nullable": true,
            "description": "Rating of the stylist's note by the customer, 1-5; null if not rated."
          }
        }
      },
      "payments": {
        "description": "This table tracks payment transactions for each subscription, allowing for analysis of billing cycles and payment statuses.",
        "rows": 200,
        "columns": {
          "payment_id": {
            "kind": "pk",
            "description": "Unique identifier for each payment transaction."
          },
          "subscription_id": {
            "kind": "fk",
            "ref": "subscriptions.subscription_id",
            "description": "The subscription associated with this payment."
          },
          "amount": {
            "kind": "decimal",
            "min": 10,
            "max": 100,
            "scale": 2,
            "description": "Amount charged for the subscription.",
            "distribution": "long-tail"
          },
          "payment_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "The date when the payment was processed.",
            "nullable": true,
            "when": {
              "column": "status",
              "in": [
                "failed",
                "pending"
              ]
            }
          },
          "status": {
            "kind": "enum",
            "values": [
              "completed",
              "failed",
              "pending"
            ],
            "description": "Current status of the payment.",
            "weights": [
              6,
              2,
              1
            ]
          }
        }
      },
      "shipments": {
        "description": "This table documents shipment details for each subscription box, including tracking information and delivery dates.",
        "rows": 200,
        "columns": {
          "shipment_id": {
            "kind": "pk",
            "description": "Unique identifier for each shipment."
          },
          "subscription_id": {
            "kind": "fk",
            "ref": "subscriptions.subscription_id",
            "description": "The subscription associated with this shipment."
          },
          "shipment_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "The date when the shipment was dispatched.",
            "trend": "growing"
          },
          "delivery_date": {
            "kind": "date",
            "after": "shipment_date",
            "withinDays": 10,
            "description": "The expected delivery date of the shipment."
          },
          "tracking_number": {
            "kind": "uuid",
            "description": "Unique tracking number for the shipment."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "high-cardinality",
      "nullable",
      "timestamped",
      "categorical"
    ],
    "analysisQuestions": [
      "What are the most popular subscription types among customers?",
      "How do stylist notes influence customer satisfaction?",
      "What is the average time between shipment and delivery?",
      "Which materials are most frequently avoided by customers?",
      "How do payment statuses vary across different subscription types?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Customers and Subscriptions",
        "sql": "SELECT c.full_name, s.start_date, s.subscription_type FROM customers c JOIN subscriptions s ON c.customer_id = s.customer_id;",
        "dialect": "postgres"
      },
      {
        "title": "Count Subscriptions by Type",
        "sql": "SELECT subscription_type, COUNT(*) FROM subscriptions GROUP BY subscription_type;",
        "dialect": "postgres"
      },
      {
        "title": "Average Payment Amount by Subscription Type",
        "sql": "SELECT s.subscription_type, AVG(p.amount) FROM payments p JOIN subscriptions s ON p.subscription_id = s.subscription_id GROUP BY s.subscription_type;",
        "dialect": "postgres"
      },
      {
        "title": "Delivery Times Analysis",
        "sql": "SELECT AVG(datediff(delivery_date, shipment_date)) AS average_delivery_time FROM shipments;",
        "dialect": "postgres"
      },
      {
        "title": "Stylist Notes and Customer Preferences",
        "sql": "SELECT sn.note, c.style_preferences FROM stylist_notes sn JOIN subscriptions s ON sn.subscription_id = s.subscription_id JOIN customers c ON s.customer_id = c.customer_id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "SQL Training for Developers",
        "body": "Developers can use this dataset to practice SQL skills, focusing on joining multiple tables and aggregating data. By analyzing customer preferences and subscription details, they can create complex queries and improve their understanding of relational databases."
      },
      {
        "title": "Teaching Data Management",
        "body": "Educators can leverage this dataset to teach students about data management within logistics and subscription services. The distinct tables allow for hands-on exercises in data structuring, query writing, and understanding the lifecycle of customer interactions."
      },
      {
        "title": "Business Analytics Exploration",
        "body": "Data analysts can explore patterns in customer subscriptions and payments to derive insights that can inform business decisions. By examining stylist notes and avoided materials, they can identify trends and customer satisfaction levels."
      },
      {
        "title": "System Integration Testing",
        "body": "Developers working on integrating various systems in a fashion subscription service can utilize this dataset to mock real-world scenarios. They can test the interactions between customer profiles, payments, and shipments to ensure smooth operational workflows."
      }
    ]
  },
  "counts": {
    "customers": 200,
    "products": 150,
    "subscriptions": 200,
    "payments": 200,
    "shipments": 200,
    "stylist_notes": 150
  },
  "stats": {
    "customers": {
      "rows": 200,
      "columns": {
        "customer_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 197,
          "min": "Alice Chen",
          "max": "Zoe Smith"
        },
        "email": {
          "nulls": 0,
          "distinct": 198
        },
        "size": {
          "nulls": 0,
          "distinct": 4,
          "min": "L",
          "max": "XL"
        },
        "style_preferences": {
          "nulls": 0,
          "distinct": 140
        }
      }
    },
    "subscriptions": {
      "rows": 200,
      "columns": {
        "subscription_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 114,
          "min": 1,
          "max": 199
        },
        "start_date": {
          "nulls": 0,
          "distinct": 176,
          "min": "2022-01-06",
          "max": "2023-12-29"
        },
        "subscription_type": {
          "nulls": 0,
          "distinct": 2,
          "min": "monthly",
          "max": "quarterly"
        },
        "discount_percentage": {
          "nulls": 0,
          "distinct": 190,
          "min": 8.51,
          "max": 42.94
        },
        "renewal_date": {
          "nulls": 0,
          "distinct": 171,
          "min": "2022-01-01",
          "max": "2023-12-30"
        }
      }
    },
    "products": {
      "rows": 150,
      "columns": {
        "product_id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "product_name": {
          "nulls": 0,
          "distinct": 138,
          "min": "Classic Camera",
          "max": "Wireless Planter"
        },
        "category": {
          "nulls": 0,
          "distinct": 2,
          "min": "accessory",
          "max": "clothing"
        },
        "brand": {
          "nulls": 20,
          "distinct": 19,
          "min": "Adidas",
          "max": "Zara"
        },
        "material": {
          "nulls": 19,
          "distinct": 95
        }
      }
    },
    "stylist_notes": {
      "rows": 150,
      "columns": {
        "note_id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "subscription_id": {
          "nulls": 0,
          "distinct": 103,
          "min": 1,
          "max": 200
        },
        "note": {
          "nulls": 0,
          "distinct": 150
        },
        "avoided_materials": {
          "nulls": 20,
          "distinct": 130
        },
        "feedback_rating": {
          "nulls": 12,
          "distinct": 5,
          "min": 1,
          "max": 5
        }
      }
    },
    "payments": {
      "rows": 200,
      "columns": {
        "payment_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "subscription_id": {
          "nulls": 0,
          "distinct": 123,
          "min": 2,
          "max": 200
        },
        "amount": {
          "nulls": 0,
          "distinct": 195,
          "min": 10,
          "max": 99.8
        },
        "payment_date": {
          "nulls": 125,
          "distinct": 73,
          "min": "2022-01-03",
          "max": "2023-12-26"
        },
        "status": {
          "nulls": 0,
          "distinct": 3,
          "min": "completed",
          "max": "pending"
        }
      }
    },
    "shipments": {
      "rows": 200,
      "columns": {
        "shipment_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "subscription_id": {
          "nulls": 0,
          "distinct": 122,
          "min": 1,
          "max": 200
        },
        "shipment_date": {
          "nulls": 0,
          "distinct": 166,
          "min": "2022-01-04",
          "max": "2023-12-31"
        },
        "delivery_date": {
          "nulls": 0,
          "distinct": 174,
          "min": "2022-01-10",
          "max": "2024-01-06"
        },
        "tracking_number": {
          "nulls": 0,
          "distinct": 200
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/customers.csv",
      "format": "csv",
      "table": "customers",
      "key": "datasets/personalized-fashion-subscription-box/v4/csv/customers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/csv/customers.csv",
      "bytes": 11816,
      "sha256": "fd42e840f6a0fa5101b316748803e0f4fcba55715323d24292027575009c483b",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/products.csv",
      "format": "csv",
      "table": "products",
      "key": "datasets/personalized-fashion-subscription-box/v4/csv/products.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/csv/products.csv",
      "bytes": 6947,
      "sha256": "abb11f4d473303a07e4d3472d1928e475edcd2efe9dad90ff48bc73d313dfa8b",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/subscriptions.csv",
      "format": "csv",
      "table": "subscriptions",
      "key": "datasets/personalized-fashion-subscription-box/v4/csv/subscriptions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/csv/subscriptions.csv",
      "bytes": 8983,
      "sha256": "0004a0308cf0677179613f09926c3fa07e6f23701168b8322bcd28dd4fc4f383",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/payments.csv",
      "format": "csv",
      "table": "payments",
      "key": "datasets/personalized-fashion-subscription-box/v4/csv/payments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/csv/payments.csv",
      "bytes": 5607,
      "sha256": "7e570e9a23795d77f4cf1079c3deb9c4dba78d9763c1cb1b357f7a6ffd61cd22",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/shipments.csv",
      "format": "csv",
      "table": "shipments",
      "key": "datasets/personalized-fashion-subscription-box/v4/csv/shipments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/csv/shipments.csv",
      "bytes": 13463,
      "sha256": "f167ab161a9e4b162ff794d670380c23f5111766039e5fb00d0bb52255a1478c",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/stylist_notes.csv",
      "format": "csv",
      "table": "stylist_notes",
      "key": "datasets/personalized-fashion-subscription-box/v4/csv/stylist_notes.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/csv/stylist_notes.csv",
      "bytes": 13420,
      "sha256": "42413671cec0943a2a1de5f050992c831046bdf850dd48c9204becb3751da67f",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "personalized-fashion-subscription-box.json",
      "format": "json",
      "table": null,
      "key": "datasets/personalized-fashion-subscription-box/v4/personalized-fashion-subscription-box.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/personalized-fashion-subscription-box.json",
      "bytes": 206037,
      "sha256": "7966478dbe1cf8e462fb223cb6c182dad9ee9db94f2e23ea2cf13480676b01a0",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/personalized-fashion-subscription-box/v4/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/sql/postgres.sql",
      "bytes": 81813,
      "sha256": "e52ac69d671318fac17f7f2b9097f433ba763054490156507dade5ae97225ce3",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/personalized-fashion-subscription-box/v4/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/sql/mysql.sql",
      "bytes": 81030,
      "sha256": "16c2fa9aaba960bd1cf26117199a36ae094c560e83bba0227e256305dbf69e64",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/personalized-fashion-subscription-box/v4/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/sql/mssql.sql",
      "bytes": 84564,
      "sha256": "0f0ef2edacb0a2485f56e2e44170009debf15ae7e494e7eefea3341606dccf72",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/personalized-fashion-subscription-box/v4/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/sql/sqlite.sql",
      "bytes": 80770,
      "sha256": "f64d5257dbafa527cd6bc6b2edacd1cc426f97d53a2127a4eaaca097479175fb",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/personalized-fashion-subscription-box/v4/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/prisma/seed.ts",
      "bytes": 166705,
      "sha256": "7f9eaaa4e70c0a19ad5a2400011449cfd9c4aa0f30f8950145ef3a6f8358d204",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/personalized-fashion-subscription-box/v4/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/personalized-fashion-subscription-box/v4/django/fixtures.json",
      "bytes": 245167,
      "sha256": "180b42c3a2472e65020cdd48bcbeab429d7e06b92638574be6f135429cff8097",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767099035,
  "updatedAt": 1789095974428
}
