{
  "format": "dataset-manifest/1",
  "slug": "property-dynamics",
  "version": 2,
  "seed": "property-dynamics:1",
  "spec": {
    "format": "dataset/1",
    "slug": "property-dynamics",
    "name": "Property Dynamics",
    "tagline": "Property listings, transaction histories, tenant profiles, and maintenance records from a dynamic real estate market.",
    "description": "Real estate management involves the dynamic processes of buying, selling, and renting properties, reflecting the ever-changing market trends and buyer behaviors. This dataset captures the intricate details of property listings, transaction histories, tenant profiles, and maintenance records, showcasing the vibrant activities within the housing market. Each table corresponds to a critical aspect of real estate management. The 'properties' table identifies the various listings, while the 'transactions' table outlines the sale or rental history for each property. The 'tenants' table provides profiles of individuals renting or leasing properties, and the 'maintenance_requests' table logs requests made by tenants for property upkeep. Additionally, the 'agents' table includes real estate agents involved in the transactions, and the 'neighborhoods' table highlights the areas where properties are located, emphasizing trends in high-end listings clustering in affluent neighborhoods. This synthetic dataset is ideal for SQL practice and ORM seeding, as it allows users to explore queries related to property management, transaction analysis, and tenant interactions.",
    "domain": "real-estate",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "real estate",
      "properties",
      "transactions",
      "tenants",
      "maintenance",
      "agents",
      "neighborhoods"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "properties": {
        "description": "This table holds a list of all properties available for sale or rent, detailing their specifications and location.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each property."
          },
          "address": {
            "kind": "sentence",
            "description": "Full address of the property, including street, city, and postcode."
          },
          "price": {
            "kind": "decimal",
            "min": 100000,
            "max": 5000000,
            "scale": 2,
            "description": "Listing price of the property.",
            "distribution": "long-tail"
          },
          "property_type": {
            "kind": "enum",
            "values": [
              "house",
              "apartment",
              "condo"
            ],
            "description": "Type of the property.",
            "weights": [
              6,
              2,
              1
            ]
          },
          "bedrooms": {
            "kind": "int",
            "min": 1,
            "max": 10,
            "description": "Number of bedrooms in the property."
          },
          "bathrooms": {
            "kind": "int",
            "min": 1,
            "max": 5,
            "description": "Number of bathrooms in the property."
          },
          "neighborhood_id": {
            "kind": "fk",
            "ref": "neighborhoods.id",
            "description": "Reference to the neighborhood where the property is located."
          }
        }
      },
      "transactions": {
        "description": "This table records all transactions related to properties, including sales and rentals.",
        "rows": 500,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each transaction."
          },
          "property_id": {
            "kind": "fk",
            "ref": "properties.id",
            "description": "Reference to the property involved in the transaction."
          },
          "transaction_type": {
            "kind": "enum",
            "values": [
              "sale",
              "rental"
            ],
            "description": "Type of transaction.",
            "weights": [
              7,
              3
            ]
          },
          "transaction_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "Date when the transaction occurred.",
            "trend": "growing"
          },
          "amount": {
            "kind": "decimal",
            "min": 1000,
            "max": 5000000,
            "scale": 2,
            "description": "Amount involved in the transaction.",
            "distribution": "heavy-tail"
          },
          "tenant_id": {
            "kind": "fk",
            "ref": "tenants.id",
            "nullable": true,
            "description": "Reference to the tenant involved in the rental, if applicable."
          }
        }
      },
      "tenants": {
        "description": "This table contains profiles of tenants renting properties, including their contact information.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each tenant."
          },
          "full_name": {
            "kind": "fullName",
            "description": "Full name of the tenant."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address of the tenant."
          },
          "phone": {
            "kind": "phone",
            "description": "Phone number of the tenant."
          },
          "lease_start": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "Start date of the lease."
          },
          "lease_end": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "End date of the lease."
          }
        }
      },
      "maintenance_requests": {
        "description": "This table logs maintenance requests made by tenants for property upkeep.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each maintenance request."
          },
          "property_id": {
            "kind": "fk",
            "ref": "properties.id",
            "description": "Reference to the property requiring maintenance."
          },
          "tenant_id": {
            "kind": "fk",
            "ref": "tenants.id",
            "description": "Reference to the tenant who made the request."
          },
          "request_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "Date when the maintenance request was made."
          },
          "status": {
            "kind": "enum",
            "values": [
              "pending",
              "completed",
              "in_progress"
            ],
            "description": "Current status of the maintenance request.",
            "weights": [
              5,
              4,
              1
            ]
          }
        }
      },
      "agents": {
        "description": "This table includes real estate agents involved in transactions, providing their contact details.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each agent."
          },
          "full_name": {
            "kind": "fullName",
            "description": "Full name of the agent."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address of the agent."
          },
          "phone": {
            "kind": "phone",
            "description": "Phone number of the agent."
          }
        }
      },
      "neighborhoods": {
        "description": "This table highlights neighborhoods where properties are located, detailing neighborhood characteristics.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each neighborhood."
          },
          "name": {
            "kind": "words",
            "description": "Name of the neighborhood.",
            "pool": [
              "Cedar",
              "Maple",
              "Oak",
              "Pine",
              "River",
              "Lake",
              "Hill",
              "Valley",
              "Cove",
              "Grove",
              "Park",
              "View",
              "Meadow",
              "Forest",
              "Spring",
              "Stone",
              "Bay",
              "Field",
              "Creek",
              "Brook",
              "Garden",
              "Canyon",
              "Haven",
              "Harbor",
              "Ridge",
              "Woods",
              "Point",
              "Cliff",
              "Edge",
              "Vista",
              "Crest",
              "Plaza",
              "Square",
              "District",
              "Terrace",
              "Village",
              "Township",
              "Commons",
              "Crossing",
              "Landing",
              "Rise",
              "Heights",
              "Estates",
              "Acres",
              "Bend",
              "Shore",
              "Run",
              "Trail",
              "Way",
              "Circle",
              "Road",
              "Street",
              "Avenue",
              "Drive"
            ],
            "min": 1,
            "max": 3
          },
          "average_price": {
            "kind": "decimal",
            "min": 100000,
            "max": 5000000,
            "scale": 2,
            "description": "Average property price in the neighborhood.",
            "distribution": "long-tail"
          },
          "affluence_level": {
            "kind": "enum",
            "values": [
              "low",
              "medium",
              "high"
            ],
            "description": "Affluence level of the neighborhood."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "nullable",
      "timestamped"
    ],
    "analysisQuestions": [
      "What are the average transaction amounts for sales compared to rentals?",
      "How many maintenance requests are pending in each property?",
      "Which neighborhoods have the highest average property prices?",
      "What is the average duration of tenant leases?",
      "How often do properties in high-affluence neighborhoods turn over?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Properties and Transactions",
        "sql": "SELECT p.address, t.transaction_date, t.amount FROM properties p JOIN transactions t ON p.id = t.property_id;",
        "dialect": "postgres"
      },
      {
        "title": "Average Sale Price by Neighborhood",
        "sql": "SELECT n.name, AVG(t.amount) AS average_sale_price FROM transactions t JOIN properties p ON t.property_id = p.id JOIN neighborhoods n ON p.neighborhood_id = n.id WHERE t.transaction_type = 'sale' GROUP BY n.name;",
        "dialect": "postgres"
      },
      {
        "title": "Count of Maintenance Requests by Status",
        "sql": "SELECT m.status, COUNT(*) FROM maintenance_requests m GROUP BY m.status;",
        "dialect": "postgres"
      },
      {
        "title": "Tenant Lease Duration",
        "sql": "SELECT tenant_id, lease_start, lease_end, (lease_end - lease_start) AS lease_duration FROM tenants;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Real Estate Analysts",
        "body": "Real estate analysts can utilize this dataset to study market trends over time, analyzing transaction types and amounts across various neighborhoods. They can generate reports to identify emerging markets and property investment opportunities."
      },
      {
        "title": "Property Management Companies",
        "body": "Property management companies can leverage the tenant and maintenance data to enhance their service quality. By analyzing tenant requests and property upkeep, they can improve response times and tenant satisfaction, ultimately leading to better retention rates."
      },
      {
        "title": "Real Estate Agents",
        "body": "Real estate agents can use this dataset to track their transactions and assess their performance across different property types. By examining the success rates of various neighborhoods, they can tailor their marketing strategies to target potential buyers more effectively."
      },
      {
        "title": "Data Scientists in Real Estate",
        "body": "Data scientists can employ this dataset to build predictive models that forecast property prices based on historical transactions and neighborhood characteristics. This analysis can provide insights into future market movements and investment strategies."
      }
    ]
  },
  "counts": {
    "agents": 100,
    "neighborhoods": 50,
    "properties": 200,
    "tenants": 300,
    "maintenance_requests": 150,
    "transactions": 500
  },
  "stats": {
    "properties": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "address": {
          "nulls": 0,
          "distinct": 197
        },
        "price": {
          "nulls": 0,
          "distinct": 200,
          "min": 101290.55,
          "max": 4994931.85
        },
        "property_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "apartment",
          "max": "house"
        },
        "bedrooms": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        },
        "bathrooms": {
          "nulls": 0,
          "distinct": 5,
          "min": 1,
          "max": 5
        },
        "neighborhood_id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        }
      }
    },
    "transactions": {
      "rows": 500,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 500,
          "min": 1,
          "max": 500
        },
        "property_id": {
          "nulls": 0,
          "distinct": 179,
          "min": 1,
          "max": 200
        },
        "transaction_type": {
          "nulls": 0,
          "distinct": 2,
          "min": "rental",
          "max": "sale"
        },
        "transaction_date": {
          "nulls": 0,
          "distinct": 439,
          "min": "2020-01-02",
          "max": "2023-12-30"
        },
        "amount": {
          "nulls": 0,
          "distinct": 500,
          "min": 1000.32,
          "max": 4944784.96
        },
        "tenant_id": {
          "nulls": 61,
          "distinct": 233,
          "min": 2,
          "max": 300
        }
      }
    },
    "tenants": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "full_name": {
          "nulls": 0,
          "distinct": 287,
          "min": "Alice Diaz",
          "max": "Zoe Moreau"
        },
        "email": {
          "nulls": 0,
          "distinct": 296
        },
        "phone": {
          "nulls": 0,
          "distinct": 284
        },
        "lease_start": {
          "nulls": 0,
          "distinct": 270,
          "min": "2020-01-10",
          "max": "2023-12-30"
        },
        "lease_end": {
          "nulls": 0,
          "distinct": 273,
          "min": "2020-01-13",
          "max": "2023-12-31"
        }
      }
    },
    "maintenance_requests": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "property_id": {
          "nulls": 0,
          "distinct": 105,
          "min": 3,
          "max": 198
        },
        "tenant_id": {
          "nulls": 0,
          "distinct": 115,
          "min": 1,
          "max": 299
        },
        "request_date": {
          "nulls": 0,
          "distinct": 143,
          "min": "2020-01-03",
          "max": "2023-12-29"
        },
        "status": {
          "nulls": 0,
          "distinct": 3,
          "min": "completed",
          "max": "pending"
        }
      }
    },
    "agents": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "full_name": {
          "nulls": 0,
          "distinct": 100,
          "min": "Ana Dubois",
          "max": "Zoe Zhang"
        },
        "email": {
          "nulls": 0,
          "distinct": 100
        },
        "phone": {
          "nulls": 0,
          "distinct": 96
        }
      }
    },
    "neighborhoods": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "name": {
          "nulls": 0,
          "distinct": 49
        },
        "average_price": {
          "nulls": 0,
          "distinct": 50,
          "min": 103308.15,
          "max": 4991178.12
        },
        "affluence_level": {
          "nulls": 0,
          "distinct": 3,
          "min": "high",
          "max": "medium"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/agents.csv",
      "format": "csv",
      "table": "agents",
      "key": "datasets/property-dynamics/v2/csv/agents.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/csv/agents.csv",
      "bytes": 5616,
      "sha256": "80a34156b2b18331c8039ad845b44bac517ac0021d379acadc09220a3d8982d9",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/neighborhoods.csv",
      "format": "csv",
      "table": "neighborhoods",
      "key": "datasets/property-dynamics/v2/csv/neighborhoods.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/csv/neighborhoods.csv",
      "bytes": 1672,
      "sha256": "f590a11556fe9ad57cb9a45867c8870e04cb4755a60d776f4121e91e74237687",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/properties.csv",
      "format": "csv",
      "table": "properties",
      "key": "datasets/property-dynamics/v2/csv/properties.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/csv/properties.csv",
      "bytes": 17086,
      "sha256": "a82cf85ed9816d4d5c3da8842990399b371fb1143a21dbec1ca969addb88c5b8",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/tenants.csv",
      "format": "csv",
      "table": "tenants",
      "key": "datasets/property-dynamics/v2/csv/tenants.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/csv/tenants.csv",
      "bytes": 23636,
      "sha256": "23068f21f13bd0beef84629fb5f3548c3dcabd6d520926f656d8f4f9cd886a73",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/maintenance_requests.csv",
      "format": "csv",
      "table": "maintenance_requests",
      "key": "datasets/property-dynamics/v2/csv/maintenance_requests.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/csv/maintenance_requests.csv",
      "bytes": 4789,
      "sha256": "9cd48d5737aeeb230e59d000918b7bdcdbbe4a4297d271d51f7b662e47d04105",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/transactions.csv",
      "format": "csv",
      "table": "transactions",
      "key": "datasets/property-dynamics/v2/csv/transactions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/csv/transactions.csv",
      "bytes": 19191,
      "sha256": "a4bcfe09e7667b8f8da7a6e1355a554896f44b05c26787c497543cad183fcc18",
      "rows": 500,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "property-dynamics.json",
      "format": "json",
      "table": null,
      "key": "datasets/property-dynamics/v2/property-dynamics.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/property-dynamics.json",
      "bytes": 240347,
      "sha256": "95bebc7f47c59687cce9b51d0debbcc04b68b3fa6e6c4637b292aec02a13937d",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/property-dynamics/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/sql/postgres.sql",
      "bytes": 97101,
      "sha256": "5e6f2344a983c3c396ac032947a5917169100ca93f4d7621a34cbcc55d90d4b9",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/property-dynamics/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/sql/mysql.sql",
      "bytes": 96394,
      "sha256": "314171461f559b3c37db1a3c242fa76b63d4473f34d864736f7faeeec3f380f4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/property-dynamics/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/sql/mssql.sql",
      "bytes": 100420,
      "sha256": "1d986f32aff5fc9f48b7c11add6cea3811b3ee202ee867f56cc06578cf75fd26",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/property-dynamics/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/sql/sqlite.sql",
      "bytes": 96078,
      "sha256": "b22ce18842a8892056a20148d3bfeb3d5d1362f4335413ea857d482d8d08f4d6",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/property-dynamics/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/prisma/seed.ts",
      "bytes": 187713,
      "sha256": "fed6b6069790e48fb3c759371e3a71798aa9483a51d179ae78a10fd35f8ee136",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/property-dynamics/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/property-dynamics/v2/django/fixtures.json",
      "bytes": 298102,
      "sha256": "30dd9dbc1b4d76ebdedeab116c79c7c553fbc35d5e59142e8f28c169cb4ef763",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788734253157,
  "updatedAt": 1788785573395
}
