{
  "dataset_generator": {
    "brief": {
      "business_context": "A regional bike shop chain that sells bicycles and services them. Customers buy bikes, bring them back for repairs, and technicians log the services performed and the parts consumed.",
      "dialect": "mariadb",
      "dirty_modes": [],
      "field_complexity": "moderate",
      "include_dirty_data": false,
      "naming_style": "camelCase",
      "row_scale": "medium",
      "schema_name": "bikeShop",
      "seed": 42,
      "table_count": [
        6,
        10
      ]
    },
    "business_context": "Pedal Works runs a small chain of neighbourhood bicycle shops. Each store sells new and refurbished bikes and runs a service counter where customers drop bikes off for repair. Technicians log the services they perform and the parts they consume on every job.",
    "defects": [],
    "design": {
      "business_context": "Pedal Works runs a small chain of neighbourhood bicycle shops. Each store sells new and refurbished bikes and runs a service counter where customers drop bikes off for repair. Technicians log the services they perform and the parts they consume on every job.",
      "design_notes": "Repairs are modelled as an order header plus line items so a single visit can cover several services, and parts are attached to the line item rather than the order so the cost of a job breaks down cleanly.",
      "dialect": "mariadb",
      "display_name": "Pedal Works Bicycle Shops",
      "naming_style": "camelCase",
      "schema": "bikeShop",
      "tables": [
        {
          "columns": [
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "storeId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "pk",
              "unique": true,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "storeName",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(120)",
              "start": "",
              "type": "company",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "city",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(60)",
              "start": "",
              "type": "city",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "state",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(2)",
              "start": "",
              "type": "state",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "2022-12-31",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "openedDate",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DATE",
              "start": "2008-01-01",
              "type": "date",
              "unique": false,
              "weights": []
            }
          ],
          "description": "One row per physical shop location.",
          "is_junction": false,
          "name": "stores",
          "row_count": 12,
          "singular_label": "Store",
          "size_class": "lookup",
          "unique_together": []
        },
        {
          "columns": [
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "customerId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "pk",
              "unique": true,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "firstName",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(50)",
              "start": "",
              "type": "first_name",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "lastName",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(50)",
              "start": "",
              "type": "last_name",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "email",
              "null_rate": 0.06,
              "nullable": true,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(120)",
              "start": "",
              "type": "email",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "phone",
              "null_rate": 0.11,
              "nullable": true,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(20)",
              "start": "",
              "type": "phone",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "city",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(60)",
              "start": "",
              "type": "city",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "recent",
              "end": "2025-11-30",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "joinDate",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DATE",
              "start": "2019-01-01",
              "type": "date",
              "unique": false,
              "weights": []
            }
          ],
          "description": "Everyone who has bought or serviced a bike here.",
          "is_junction": false,
          "name": "customers",
          "row_count": 260,
          "singular_label": "Customer",
          "size_class": "dimension",
          "unique_together": []
        },
        {
          "columns": [
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "employeeId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "pk",
              "unique": true,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "firstName",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(50)",
              "start": "",
              "type": "first_name",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "lastName",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(50)",
              "start": "",
              "type": "last_name",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "storeId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "stores",
              "references_column": "storeId",
              "sql_type": "INT",
              "start": "",
              "type": "fk",
              "unique": false,
              "weights": []
            },
            {
              "categories": [
                "Technician",
                "Sales Associate",
                "Service Manager",
                "Store Manager"
              ],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "role",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(60)",
              "start": "",
              "type": "category",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "2025-06-30",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "hireDate",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DATE",
              "start": "2015-01-01",
              "type": "date",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "normal",
              "end": "",
              "expression": "",
              "maximum": 42.0,
              "minimum": 17.0,
              "name": "hourlyRate",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DECIMAL(12,2)",
              "start": "",
              "type": "money",
              "unique": false,
              "weights": []
            }
          ],
          "description": "Sales staff and service technicians.",
          "is_junction": false,
          "name": "employees",
          "row_count": 260,
          "singular_label": "Employee",
          "size_class": "dimension",
          "unique_together": []
        },
        {
          "columns": [
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "bikeId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "pk",
              "unique": true,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "zipf",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "customerId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "customers",
              "references_column": "customerId",
              "sql_type": "INT",
              "start": "",
              "type": "fk",
              "unique": false,
              "weights": []
            },
            {
              "categories": [
                "Trek",
                "Specialized",
                "Giant",
                "Cannondale",
                "Salsa",
                "Surly",
                "Kona",
                "Bianchi"
              ],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "brand",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(60)",
              "start": "",
              "type": "category",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "model",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "@@-####",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(30)",
              "start": "",
              "type": "code",
              "unique": false,
              "weights": []
            },
            {
              "categories": [
                "Road",
                "Mountain",
                "Hybrid",
                "Gravel",
                "Commuter",
                "Kids"
              ],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "bikeType",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(60)",
              "start": "",
              "type": "category",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "recent",
              "end": "",
              "expression": "",
              "maximum": 2025.0,
              "minimum": 2012.0,
              "name": "purchaseYear",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "int",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "pareto",
              "end": "",
              "expression": "",
              "maximum": 6800.0,
              "minimum": 320.0,
              "name": "purchasePrice",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DECIMAL(12,2)",
              "start": "",
              "type": "money",
              "unique": false,
              "weights": []
            }
          ],
          "description": "Individual bicycles, each owned by one customer.",
          "is_junction": false,
          "name": "bikes",
          "row_count": 260,
          "singular_label": "Bike",
          "size_class": "dimension",
          "unique_together": []
        },
        {
          "columns": [
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "serviceId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "pk",
              "unique": true,
              "weights": []
            },
            {
              "categories": [
                "Wheel True",
                "Wheel Rebuild",
                "Brake Bleed",
                "Brake Pad Replacement",
                "Drivetrain Clean",
                "Chain Replacement",
                "Full Tune Up",
                "Basic Tune Up",
                "Fork Service",
                "Shock Service",
                "Bottom Bracket Service",
                "Tubeless Setup",
                "Frame Alignment",
                "Cable Replacement"
              ],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "serviceName",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(60)",
              "start": "",
              "type": "category",
              "unique": true,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": 6.0,
              "minimum": 0.25,
              "name": "standardHours",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DECIMAL(12,2)",
              "start": "",
              "type": "decimal",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": 380.0,
              "minimum": 15.0,
              "name": "flatRate",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DECIMAL(12,2)",
              "start": "",
              "type": "money",
              "unique": false,
              "weights": []
            }
          ],
          "description": "The catalogue of services the shop offers.",
          "is_junction": false,
          "name": "services",
          "row_count": 12,
          "singular_label": "Service",
          "size_class": "lookup",
          "unique_together": []
        },
        {
          "columns": [
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "partId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "pk",
              "unique": true,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "partName",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(120)",
              "start": "",
              "type": "text",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "partNumber",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "@@@-#####",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(30)",
              "start": "",
              "type": "code",
              "unique": true,
              "weights": []
            },
            {
              "categories": [
                "Drivetrain",
                "Braking",
                "Wheels",
                "Tyres",
                "Cockpit",
                "Suspension",
                "Frame",
                "Accessories"
              ],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "category",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(60)",
              "start": "",
              "type": "category",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "pareto",
              "end": "",
              "expression": "",
              "maximum": 480.0,
              "minimum": 2.5,
              "name": "unitCost",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DECIMAL(12,2)",
              "start": "",
              "type": "money",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "pareto",
              "end": "",
              "expression": "",
              "maximum": 240.0,
              "minimum": 0.0,
              "name": "onHandQuantity",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "int",
              "unique": false,
              "weights": []
            }
          ],
          "description": "Inventory of parts consumed during repairs.",
          "is_junction": false,
          "name": "parts",
          "row_count": 260,
          "singular_label": "Part",
          "size_class": "dimension",
          "unique_together": []
        },
        {
          "columns": [
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "repairOrderId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "pk",
              "unique": true,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "zipf",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "bikeId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "bikes",
              "references_column": "bikeId",
              "sql_type": "INT",
              "start": "",
              "type": "fk",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "zipf",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "employeeId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "employees",
              "references_column": "employeeId",
              "sql_type": "INT",
              "start": "",
              "type": "fk",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "storeId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "stores",
              "references_column": "storeId",
              "sql_type": "INT",
              "start": "",
              "type": "fk",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "seasonal",
              "end": "2025-12-15",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "dropOffDate",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DATE",
              "start": "2024-01-01",
              "type": "date",
              "unique": false,
              "weights": []
            },
            {
              "categories": [
                "Completed",
                "In Progress",
                "Waiting On Parts",
                "Ready For Pickup",
                "Cancelled"
              ],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "status",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "VARCHAR(60)",
              "start": "",
              "type": "category",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "pareto",
              "end": "",
              "expression": "",
              "maximum": 11.0,
              "minimum": 0.25,
              "name": "laborHours",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DECIMAL(12,2)",
              "start": "",
              "type": "decimal",
              "unique": false,
              "weights": []
            }
          ],
          "description": "One row per bike brought in for service.",
          "is_junction": false,
          "name": "repairOrders",
          "row_count": 1200,
          "singular_label": "Repair Order",
          "size_class": "fact",
          "unique_together": []
        },
        {
          "columns": [
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "repairItemId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "pk",
              "unique": true,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "repairOrderId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "repairOrders",
              "references_column": "repairOrderId",
              "sql_type": "INT",
              "start": "",
              "type": "fk",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "zipf",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "serviceId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "services",
              "references_column": "serviceId",
              "sql_type": "INT",
              "start": "",
              "type": "fk",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "pareto",
              "end": "",
              "expression": "",
              "maximum": 4.0,
              "minimum": 1.0,
              "name": "quantity",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "int",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "pareto",
              "end": "",
              "expression": "",
              "maximum": 420.0,
              "minimum": 12.0,
              "name": "itemCost",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DECIMAL(12,2)",
              "start": "",
              "type": "money",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "quantity * itemCost",
              "maximum": null,
              "minimum": null,
              "name": "lineTotal",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "DECIMAL(12,2)",
              "start": "",
              "type": "computed",
              "unique": false,
              "weights": []
            }
          ],
          "description": "The individual services performed on a repair order.",
          "is_junction": false,
          "name": "repairItems",
          "row_count": 1200,
          "singular_label": "Repair Item",
          "size_class": "fact",
          "unique_together": []
        },
        {
          "columns": [
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "partUsageId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "pk",
              "unique": true,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "uniform",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "repairItemId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "repairItems",
              "references_column": "repairItemId",
              "sql_type": "INT",
              "start": "",
              "type": "fk",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "zipf",
              "end": "",
              "expression": "",
              "maximum": null,
              "minimum": null,
              "name": "partId",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "parts",
              "references_column": "partId",
              "sql_type": "INT",
              "start": "",
              "type": "fk",
              "unique": false,
              "weights": []
            },
            {
              "categories": [],
              "decimals": 2,
              "description": "",
              "distribution": "pareto",
              "end": "",
              "expression": "",
              "maximum": 6.0,
              "minimum": 1.0,
              "name": "quantityUsed",
              "null_rate": 0.0,
              "nullable": false,
              "pattern": "",
              "references": "",
              "references_column": "",
              "sql_type": "INT",
              "start": "",
              "type": "int",
              "unique": false,
              "weights": []
            }
          ],
          "description": "Which parts were consumed on which repair item.",
          "is_junction": true,
          "name": "partUsages",
          "row_count": 1200,
          "singular_label": "Part Usage",
          "size_class": "fact",
          "unique_together": [
            [
              "repairItemId",
              "partId"
            ]
          ]
        }
      ]
    },
    "dialect": "mariadb",
    "display_name": "Pedal Works Bicycle Shops",
    "naming_style": "camelCase",
    "narrative": {
      "column_meanings": {},
      "company_story": "Pedal Works runs a small chain of neighbourhood bicycle shops. Each store sells new and refurbished bikes and runs a service counter where customers drop bikes off for repair. Technicians log the services they perform and the parts they consume on every job. Repairs are modelled as an order header plus line items so a single visit can cover several services, and parts are attached to the line item rather than the order so the cost of a job breaks down cleanly.",
      "operations": "",
      "relationships_prose": "The core entities are customers, employees, bikes, and parts. Day-to-day activity is recorded in repairOrders, repairItems, and partUsages. Stores and services hold the reference values the rest of the schema draws on.",
      "source": "deterministic",
      "table_meanings": {
        "bikes": "Individual bicycles, each owned by one customer.",
        "customers": "Everyone who has bought or serviced a bike here.",
        "employees": "Sales staff and service technicians.",
        "partUsages": "Which parts were consumed on which repair item.",
        "parts": "Inventory of parts consumed during repairs.",
        "repairItems": "The individual services performed on a repair order.",
        "repairOrders": "One row per bike brought in for service.",
        "services": "The catalogue of services the shop offers.",
        "stores": "One row per physical shop location."
      }
    },
    "relationships": [
      {
        "cardinality": "1:N",
        "from_column": "storeId",
        "from_table": "employees",
        "optional": false,
        "to_column": "storeId",
        "to_table": "stores"
      },
      {
        "cardinality": "1:N",
        "from_column": "customerId",
        "from_table": "bikes",
        "optional": false,
        "to_column": "customerId",
        "to_table": "customers"
      },
      {
        "cardinality": "1:N",
        "from_column": "bikeId",
        "from_table": "repairOrders",
        "optional": false,
        "to_column": "bikeId",
        "to_table": "bikes"
      },
      {
        "cardinality": "1:N",
        "from_column": "employeeId",
        "from_table": "repairOrders",
        "optional": false,
        "to_column": "employeeId",
        "to_table": "employees"
      },
      {
        "cardinality": "1:N",
        "from_column": "storeId",
        "from_table": "repairOrders",
        "optional": false,
        "to_column": "storeId",
        "to_table": "stores"
      },
      {
        "cardinality": "1:N",
        "from_column": "repairOrderId",
        "from_table": "repairItems",
        "optional": false,
        "to_column": "repairOrderId",
        "to_table": "repairOrders"
      },
      {
        "cardinality": "1:N",
        "from_column": "serviceId",
        "from_table": "repairItems",
        "optional": false,
        "to_column": "serviceId",
        "to_table": "services"
      },
      {
        "cardinality": "N:M",
        "from_column": "repairItemId",
        "from_table": "partUsages",
        "optional": false,
        "to_column": "repairItemId",
        "to_table": "repairItems"
      },
      {
        "cardinality": "N:M",
        "from_column": "partId",
        "from_table": "partUsages",
        "optional": false,
        "to_column": "partId",
        "to_table": "parts"
      }
    ],
    "version": "1.0.0"
  },
  "name": "bikeShop",
  "schema": "bikeShop",
  "source": "Agoge dataset generator 1.0.0 (seed 42) \u2014 fully synthetic",
  "tables": [
    {
      "approx_rows": 12,
      "columns": [
        {
          "key": "PRI",
          "name": "storeId",
          "type": "int"
        },
        {
          "key": "",
          "name": "storeName",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "city",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "state",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "openedDate",
          "type": "date"
        }
      ],
      "name": "stores"
    },
    {
      "approx_rows": 260,
      "columns": [
        {
          "key": "PRI",
          "name": "customerId",
          "type": "int"
        },
        {
          "key": "",
          "name": "firstName",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "lastName",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "email",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "phone",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "city",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "joinDate",
          "type": "date"
        }
      ],
      "name": "customers"
    },
    {
      "approx_rows": 260,
      "columns": [
        {
          "key": "PRI",
          "name": "employeeId",
          "type": "int"
        },
        {
          "key": "",
          "name": "firstName",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "lastName",
          "type": "varchar"
        },
        {
          "key": "MUL",
          "name": "storeId",
          "type": "int"
        },
        {
          "key": "",
          "name": "role",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "hireDate",
          "type": "date"
        },
        {
          "key": "",
          "name": "hourlyRate",
          "type": "decimal"
        }
      ],
      "name": "employees"
    },
    {
      "approx_rows": 260,
      "columns": [
        {
          "key": "PRI",
          "name": "bikeId",
          "type": "int"
        },
        {
          "key": "MUL",
          "name": "customerId",
          "type": "int"
        },
        {
          "key": "",
          "name": "brand",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "model",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "bikeType",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "purchaseYear",
          "type": "int"
        },
        {
          "key": "",
          "name": "purchasePrice",
          "type": "decimal"
        }
      ],
      "name": "bikes"
    },
    {
      "approx_rows": 12,
      "columns": [
        {
          "key": "PRI",
          "name": "serviceId",
          "type": "int"
        },
        {
          "key": "UNI",
          "name": "serviceName",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "standardHours",
          "type": "decimal"
        },
        {
          "key": "",
          "name": "flatRate",
          "type": "decimal"
        }
      ],
      "name": "services"
    },
    {
      "approx_rows": 260,
      "columns": [
        {
          "key": "PRI",
          "name": "partId",
          "type": "int"
        },
        {
          "key": "",
          "name": "partName",
          "type": "varchar"
        },
        {
          "key": "UNI",
          "name": "partNumber",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "category",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "unitCost",
          "type": "decimal"
        },
        {
          "key": "",
          "name": "onHandQuantity",
          "type": "int"
        }
      ],
      "name": "parts"
    },
    {
      "approx_rows": 1200,
      "columns": [
        {
          "key": "PRI",
          "name": "repairOrderId",
          "type": "int"
        },
        {
          "key": "MUL",
          "name": "bikeId",
          "type": "int"
        },
        {
          "key": "MUL",
          "name": "employeeId",
          "type": "int"
        },
        {
          "key": "MUL",
          "name": "storeId",
          "type": "int"
        },
        {
          "key": "",
          "name": "dropOffDate",
          "type": "date"
        },
        {
          "key": "",
          "name": "status",
          "type": "varchar"
        },
        {
          "key": "",
          "name": "laborHours",
          "type": "decimal"
        }
      ],
      "name": "repairOrders"
    },
    {
      "approx_rows": 1200,
      "columns": [
        {
          "key": "PRI",
          "name": "repairItemId",
          "type": "int"
        },
        {
          "key": "MUL",
          "name": "repairOrderId",
          "type": "int"
        },
        {
          "key": "MUL",
          "name": "serviceId",
          "type": "int"
        },
        {
          "key": "",
          "name": "quantity",
          "type": "int"
        },
        {
          "key": "",
          "name": "itemCost",
          "type": "decimal"
        },
        {
          "key": "",
          "name": "lineTotal",
          "type": "decimal"
        }
      ],
      "name": "repairItems"
    },
    {
      "approx_rows": 1200,
      "columns": [
        {
          "key": "PRI",
          "name": "partUsageId",
          "type": "int"
        },
        {
          "key": "MUL",
          "name": "repairItemId",
          "type": "int"
        },
        {
          "key": "MUL",
          "name": "partId",
          "type": "int"
        },
        {
          "key": "",
          "name": "quantityUsed",
          "type": "int"
        }
      ],
      "name": "partUsages"
    }
  ]
}