{
  "format": "dataset-manifest/1",
  "slug": "home-renovation-cost-estimator",
  "version": 3,
  "seed": "home-renovation-cost-estimator:1",
  "engine": 1,
  "engineVersion": "1.0.0",
  "spec": {
    "format": "dataset/1",
    "slug": "home-renovation-cost-estimator",
    "name": "Home Renovation Insights",
    "tagline": "Contractors, renovation projects, material costs, and quotes related to home renovation initiatives.",
    "description": "Contractors provide essential services in home renovation projects, transforming spaces to meet their clients' desires and needs. They draft detailed quotes that outline the costs associated with various renovations, including labor and materials. Each contractor may specialize in different aspects of renovation—ranging from kitchen remodels to bathroom upgrades—bringing unique skills and expertise to the table. The process is intricate, often requiring careful planning and budgeting to ensure that projects are completed within specified parameters. \n\nThe tables in this dataset illustrate the connections between different facets of the renovation process. Each row in the contractors table represents an individual contractor, detailing their specialties and expertise. The specialties table provides insight into the specific areas of renovation work, linking back to contractors. Renovation projects are tracked in their own table, capturing vital information about each project's scope and requirements. Material costs are documented, showing the financial implications of various materials used in renovations. The quotes table connects contractors with specific projects, outlining expected costs, while change orders capture any adjustments that may arise during the renovation, ensuring that budgets remain aligned with the evolving nature of home improvements. \n\nThis dataset answers crucial questions regarding cost estimation, contractor performance, and material budgeting within home renovation contexts. Practicing with this data allows developers to explore relationships between contractors and their specialties, analyze material costs relative to project budgets, and assess how change orders impact overall expenses. As a synthetic dataset, it provides a realistic yet hypothetical glimpse into the complexities of home renovation, offering a rich ground for data analysis and learning.",
    "domain": "government",
    "shape": "hierarchical",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "home renovation",
      "contractor quotes",
      "budgeting",
      "materials",
      "change orders",
      "projects"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "contractors": {
        "description": "This table contains information about contractors involved in home renovation projects, linking to their specialties and providing their contact details.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each contractor."
          },
          "name": {
            "kind": "fullName",
            "description": "The full name of the contractor."
          },
          "email": {
            "kind": "email",
            "from": "name",
            "description": "Contact email for the contractor."
          },
          "phone": {
            "kind": "phone",
            "description": "Contact phone number for the contractor."
          },
          "specialty_id": {
            "kind": "fk",
            "ref": "specialties.id",
            "nullable": true,
            "description": "Reference to the specialty of the contractor."
          }
        }
      },
      "specialties": {
        "description": "This table categorizes different specialties within the renovation industry, which contractors can specialize in.",
        "rows": 15,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each specialty."
          },
          "name": {
            "kind": "words",
            "description": "Name of the specialty, e.g., plumbing, electrical.",
            "pool": [
              "plumbing",
              "electrical",
              "carpentry",
              "masonry",
              "roofing",
              "painting",
              "landscaping",
              "tiling",
              "insulation",
              "drywall",
              "HVAC",
              "remodeling",
              "design",
              "foundation",
              "framing",
              "fencing",
              "siding",
              "flooring",
              "window",
              "door"
            ],
            "min": 1,
            "max": 3
          },
          "description": {
            "kind": "words",
            "pool": [
              "plumbing",
              "electrical",
              "carpentry",
              "landscaping",
              "painting",
              "roofing",
              "tiling",
              "drywall",
              "HVAC",
              "remodeling",
              "design",
              "interior",
              "exterior",
              "flooring",
              "concrete"
            ],
            "min": 5,
            "max": 15,
            "description": "A brief description of the specialty."
          },
          "average_cost": {
            "kind": "decimal",
            "min": 1000,
            "max": 20000,
            "scale": 2,
            "distribution": "long-tail",
            "description": "The average cost associated with this specialty."
          }
        }
      },
      "renovation_projects": {
        "description": "This table holds details of renovation projects, linking them to contractors and tracking their overall budget.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each renovation project."
          },
          "contractor_id": {
            "kind": "fk",
            "ref": "contractors.id",
            "description": "Reference to the contractor managing the project."
          },
          "project_type": {
            "kind": "enum",
            "values": [
              "kitchen",
              "bathroom",
              "living room",
              "bedroom"
            ],
            "description": "Type of renovation project.",
            "weights": [
              5,
              3,
              2,
              1
            ]
          },
          "budget": {
            "kind": "decimal",
            "min": 5000,
            "max": 200000,
            "scale": 2,
            "description": "Estimated budget for the renovation.",
            "distribution": "long-tail"
          },
          "status": {
            "kind": "enum",
            "values": [
              "planned",
              "in_progress",
              "completed"
            ],
            "description": "Current status of the renovation project.",
            "weights": [
              2,
              5,
              8
            ]
          }
        }
      },
      "material_costs": {
        "description": "This table provides a list of materials used in renovation projects, detailing their costs and types.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each material."
          },
          "name": {
            "kind": "words",
            "description": "Name of the material.",
            "pool": [
              "lumber",
              "concrete",
              "drywall",
              "insulation",
              "tiles",
              "paint",
              "bricks",
              "plumbing",
              "electrical",
              "fixtures",
              "hardware",
              "roofing",
              "siding",
              "flooring",
              "glass",
              "stone",
              "cement",
              "sealant",
              "adhesive",
              "grout",
              "sand"
            ],
            "min": 1,
            "max": 3
          },
          "cost": {
            "kind": "decimal",
            "min": 1,
            "max": 5000,
            "scale": 2,
            "description": "Cost of the material per unit.",
            "distribution": "long-tail"
          },
          "material_type": {
            "kind": "enum",
            "values": [
              "tile",
              "paint",
              "wood",
              "fixture"
            ],
            "description": "Type of material used.",
            "weights": [
              4,
              3,
              2,
              1
            ]
          }
        }
      },
      "quotes": {
        "description": "This table captures quotes provided by contractors for specific renovation projects, including itemized costs.",
        "rows": 500,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each quote."
          },
          "project_id": {
            "kind": "fk",
            "ref": "renovation_projects.id",
            "description": "Reference to the renovation project."
          },
          "material_cost_id": {
            "kind": "fk",
            "ref": "material_costs.id",
            "description": "Reference to the material costs associated with the quote."
          },
          "quote_amount": {
            "kind": "decimal",
            "min": 1000,
            "max": 100000,
            "scale": 2,
            "description": "Total amount quoted for the project.",
            "distribution": "heavy-tail"
          },
          "quote_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date when the quote was provided."
          }
        }
      },
      "change_orders": {
        "description": "This table records changes to the original renovation plans, detailing adjustments in budgets and scopes.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each change order."
          },
          "project_id": {
            "kind": "fk",
            "ref": "renovation_projects.id",
            "description": "Reference to the renovation project."
          },
          "change_description": {
            "kind": "sentence",
            "description": "Description of the change made to the project."
          },
          "additional_cost": {
            "kind": "decimal",
            "min": 0,
            "max": 50000,
            "scale": 2,
            "description": "Additional cost incurred due to the change.",
            "distribution": "long-tail"
          },
          "date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "Date when the change order was made.",
            "trend": "growing"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "monetary",
      "nullable",
      "timestamped"
    ],
    "analysisQuestions": [
      "What types of renovation projects tend to exceed their initial budgets?",
      "How do material costs vary across different project types?",
      "Which contractor specialties are linked to the highest average quotes?",
      "What is the impact of change orders on overall project costs?",
      "How do project completion statuses correlate with budget overruns?"
    ],
    "suggestedQueries": [
      {
        "title": "Join contractors with their specialties",
        "sql": "SELECT c.name, s.name FROM contractors c LEFT JOIN specialties s ON c.specialty_id = s.id;",
        "dialect": "postgres"
      },
      {
        "title": "Aggregate budget by project type",
        "sql": "SELECT project_type, SUM(budget) FROM renovation_projects GROUP BY project_type;",
        "dialect": "postgres"
      },
      {
        "title": "Find average quote amount by contractor",
        "sql": "SELECT c.name, AVG(q.quote_amount) FROM quotes q JOIN contractors c ON q.project_id = c.id GROUP BY c.name;",
        "dialect": "postgres"
      },
      {
        "title": "List change orders affecting a project",
        "sql": "SELECT co.change_description, co.additional_cost FROM change_orders co WHERE co.project_id = 1;",
        "dialect": "postgres"
      },
      {
        "title": "Analyze budget overruns by project status",
        "sql": "SELECT status, COUNT(*) FROM renovation_projects WHERE budget < (SELECT SUM(quote_amount) FROM quotes WHERE project_id = renovation_projects.id) GROUP BY status;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Data Analysis for Renovation Planners",
        "body": "Renovation planners can utilize this dataset to analyze the costs associated with various home improvement projects. By running SQL queries, they can assess common trends, such as which project types have the highest costs and where budget overruns typically occur. This analysis aids in making informed decisions for future renovations."
      },
      {
        "title": "Teaching SQL Concepts",
        "body": "Educators can leverage this dataset in teaching environments to illustrate SQL concepts and practices. By working with the hierarchical structure and conducting queries that explore relationships between tables, students can gain practical experience in database management and data analysis relevant to the construction industry."
      },
      {
        "title": "Contractor Performance Evaluation",
        "body": "Contractors can use the insights drawn from this dataset to evaluate their performance in comparison to industry averages. By examining the quotes provided and the specialties they offer, contractors can identify areas for improvement and adjust their pricing strategies to remain competitive."
      },
      {
        "title": "Material Cost Benchmarking",
        "body": "Material suppliers can benefit from analyzing the material costs associated with different renovation projects. By understanding which materials are most frequently used and their corresponding prices, suppliers can tweak their offerings to better meet market demands and improve their pricing models."
      }
    ]
  },
  "counts": {
    "material_costs": 300,
    "specialties": 15,
    "contractors": 100,
    "renovation_projects": 200,
    "change_orders": 200,
    "quotes": 500
  },
  "stats": {
    "contractors": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "name": {
          "nulls": 0,
          "distinct": 100,
          "min": "Alice Ruiz",
          "max": "Zoe Rossi"
        },
        "email": {
          "nulls": 0,
          "distinct": 100
        },
        "phone": {
          "nulls": 0,
          "distinct": 98
        },
        "specialty_id": {
          "nulls": 14,
          "distinct": 15,
          "min": 1,
          "max": 15
        }
      }
    },
    "specialties": {
      "rows": 15,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 15,
          "min": 1,
          "max": 15
        },
        "name": {
          "nulls": 0,
          "distinct": 14
        },
        "description": {
          "nulls": 0,
          "distinct": 15
        },
        "average_cost": {
          "nulls": 0,
          "distinct": 15,
          "min": 1001.88,
          "max": 17613.19
        }
      }
    },
    "renovation_projects": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "contractor_id": {
          "nulls": 0,
          "distinct": 86,
          "min": 2,
          "max": 100
        },
        "project_type": {
          "nulls": 0,
          "distinct": 4,
          "min": "bathroom",
          "max": "living room"
        },
        "budget": {
          "nulls": 0,
          "distinct": 200,
          "min": 5000.39,
          "max": 197558.15
        },
        "status": {
          "nulls": 0,
          "distinct": 3,
          "min": "completed",
          "max": "planned"
        }
      }
    },
    "material_costs": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "name": {
          "nulls": 0,
          "distinct": 208
        },
        "cost": {
          "nulls": 0,
          "distinct": 300,
          "min": 1.1,
          "max": 4908.3
        },
        "material_type": {
          "nulls": 0,
          "distinct": 4,
          "min": "fixture",
          "max": "wood"
        }
      }
    },
    "quotes": {
      "rows": 500,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 500,
          "min": 1,
          "max": 500
        },
        "project_id": {
          "nulls": 0,
          "distinct": 189,
          "min": 1,
          "max": 200
        },
        "material_cost_id": {
          "nulls": 0,
          "distinct": 244,
          "min": 1,
          "max": 300
        },
        "quote_amount": {
          "nulls": 0,
          "distinct": 499,
          "min": 1000,
          "max": 99895.59
        },
        "quote_date": {
          "nulls": 0,
          "distinct": 415,
          "min": "2020-01-01",
          "max": "2023-12-31"
        }
      }
    },
    "change_orders": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "project_id": {
          "nulls": 0,
          "distinct": 125,
          "min": 3,
          "max": 200
        },
        "change_description": {
          "nulls": 0,
          "distinct": 199
        },
        "additional_cost": {
          "nulls": 0,
          "distinct": 200,
          "min": 0,
          "max": 49946.46
        },
        "date": {
          "nulls": 0,
          "distinct": 190,
          "min": "2020-02-21",
          "max": "2023-12-24"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/material_costs.csv",
      "format": "csv",
      "table": "material_costs",
      "key": "datasets/home-renovation-cost-estimator/v3/csv/material_costs.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/csv/material_costs.csv",
      "bytes": 9897,
      "sha256": "2a69efaa13c4f08ab340209dc3756d16e685e70d5c4798830dc815a9639f2e08",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/specialties.csv",
      "format": "csv",
      "table": "specialties",
      "key": "datasets/home-renovation-cost-estimator/v3/csv/specialties.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/csv/specialties.csv",
      "bytes": 1857,
      "sha256": "77935d141ae55807e034f9d9c4190a24a13cbd18ebe4d85b22db1a84132f7e59",
      "rows": 15,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/contractors.csv",
      "format": "csv",
      "table": "contractors",
      "key": "datasets/home-renovation-cost-estimator/v3/csv/contractors.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/csv/contractors.csv",
      "bytes": 5860,
      "sha256": "56e4167ee6c8317cdda0f8375b57212c56872e1836634a3221ea7d2d44ed6358",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/renovation_projects.csv",
      "format": "csv",
      "table": "renovation_projects",
      "key": "datasets/home-renovation-cost-estimator/v3/csv/renovation_projects.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/csv/renovation_projects.csv",
      "bytes": 7273,
      "sha256": "6b5e3dda056e0bcd769a7b0a80161011b7e5c0b0db940d7a5022fefc723c95fd",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/change_orders.csv",
      "format": "csv",
      "table": "change_orders",
      "key": "datasets/home-renovation-cost-estimator/v3/csv/change_orders.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/csv/change_orders.csv",
      "bytes": 16706,
      "sha256": "ba0286e6233021d144b548c2e782131442ea60d6a4b680006fd662aa445a774e",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/quotes.csv",
      "format": "csv",
      "table": "quotes",
      "key": "datasets/home-renovation-cost-estimator/v3/csv/quotes.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/csv/quotes.csv",
      "bytes": 15798,
      "sha256": "1d5f9b479c989c2405ecc41a63bd635f00fdf9922585c8c0b3497353ca99959b",
      "rows": 500,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "home-renovation-cost-estimator.json",
      "format": "json",
      "table": null,
      "key": "datasets/home-renovation-cost-estimator/v3/home-renovation-cost-estimator.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/home-renovation-cost-estimator.json",
      "bytes": 197637,
      "sha256": "35536a9fb0283c2d22e27d273300c5abf15a4f3f3db0cd18d62c37518ea8653b",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/home-renovation-cost-estimator/v3/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/sql/postgres.sql",
      "bytes": 78234,
      "sha256": "8fcd2f718d7e9941037e6ac48d8de55231dc1a885ba6295fec7bcae92b252120",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/home-renovation-cost-estimator/v3/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/sql/mysql.sql",
      "bytes": 77523,
      "sha256": "93012c76802a0a92004c261ffdb86ce750be2c87285e16f29a297b692b5dddfd",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/home-renovation-cost-estimator/v3/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/sql/mssql.sql",
      "bytes": 80189,
      "sha256": "1b218a26d966d7c46ba95999f5e9fe7f378b3932162247e9e6e8c0660b9b580f",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/home-renovation-cost-estimator/v3/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/sql/sqlite.sql",
      "bytes": 77244,
      "sha256": "1f55168555b370ee1f1c831ec91ccf4f120be98debbaa5881f3201dd9b82f4c5",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/home-renovation-cost-estimator/v3/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/prisma/seed.ts",
      "bytes": 156395,
      "sha256": "d194736feba8940c9a54fbf9fa3e7f8139871cdb2b0c9bf4663c50085e2d2450",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/home-renovation-cost-estimator/v3/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/home-renovation-cost-estimator/v3/django/fixtures.json",
      "bytes": 257060,
      "sha256": "bbd49b27674636f49aab2d125b1cb55e84b40f3656e918fc3017e4b4fed73a38",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768113252,
  "updatedAt": 1789095852622
}
