{
  "format": "dataset-manifest/1",
  "slug": "smart-meter-readings",
  "version": 2,
  "seed": "smart-meter-readings:1",
  "spec": {
    "format": "dataset/1",
    "slug": "smart-meter-readings",
    "name": "Smart Meter Readings",
    "tagline": "Half-hourly electricity readings from smart meters over three months.",
    "description": "Smart meters capture electricity data from households, recording half-hourly readings that reflect consumption patterns throughout the day and week. Customers rely on this technology to manage their energy usage effectively, often noticing significant spikes during evening hours and different usage behaviors on weekends. This business provides the infrastructure to monitor, analyze, and understand these trends, helping residential users save on costs and use energy more efficiently.\n\nThe data is structured across several related tables: 'customers' holds information about each household, such as their unique ID, name, and address. The 'meters' table details the smart meters assigned to these customers, linking each meter to its respective household using a foreign key. 'tariffs' outlines the different pricing plans that customers can choose from, explaining how each plan is designed to incentivize energy savings during off-peak hours. Finally, the 'readings' table is where the actual half-hourly data lives, with each entry containing a timestamp, the amount of energy consumed, and links to the corresponding customer and meter.\n\nBy exploring this dataset, developers can answer numerous questions about energy consumption patterns, such as identifying peak usage times, assessing the impact of different tariffs on customer behavior, and detecting anomalies in consumption that could indicate issues with the meters or customer usage. This dataset is particularly valuable for practicing data analysis, visualization, and predictive modeling techniques, allowing users to gain insights from structured data. It's important to note that all the data provided here is synthetic, designed to closely mimic real-world scenarios while ensuring privacy and compliance.",
    "domain": "energy",
    "shape": "time-series",
    "useCases": [
      "analytics-demo",
      "etl-pipelines"
    ],
    "keywords": [
      "smart meter",
      "electricity",
      "readings",
      "energy",
      "tariffs",
      "households",
      "analytics",
      "ETL"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "meters": {
        "description": "This table contains information about each smart meter installed in households, including the unique identification and geographical details.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each meter."
          },
          "location": {
            "kind": "city",
            "description": "City where the meter is installed.",
            "nullable": true
          },
          "installation_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2023-01-01",
            "description": "Date the meter was installed."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Reference to the customer who owns the meter."
          }
        }
      },
      "customers": {
        "description": "This table holds customer information, linking individual customers to their respective smart meters.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each customer."
          },
          "full_name": {
            "kind": "fullName",
            "description": "Full name of the customer.",
            "nullable": true
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address of the customer.",
            "nullable": true
          },
          "registration_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2023-01-01",
            "description": "Date when the customer registered."
          }
        }
      },
      "tariffs": {
        "description": "This table provides details about the different electricity tariffs available to customers, linked to their usage.",
        "rows": 5,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each tariff."
          },
          "tariff_name": {
            "kind": "words",
            "description": "Name of the tariff.",
            "nullable": true,
            "pool": [
              "standard",
              "variable",
              "fixed",
              "green",
              "peak",
              "offpeak",
              "timeofuse",
              "economy",
              "smart",
              "renewable",
              "discount",
              "bundle",
              "premium",
              "basic",
              "flexible",
              "seasonal",
              "loyalty",
              "dynamic",
              "flat",
              "introductory",
              "special",
              "electricity",
              "gas",
              "combined",
              "home",
              "business",
              "commercial",
              "residential",
              "low",
              "high",
              "mid",
              "limited",
              "unlimited",
              "monthly",
              "annual",
              "shortterm",
              "longterm",
              "rate",
              "plan",
              "offer",
              "contract",
              "usage",
              "billing",
              "cost",
              "charge",
              "price",
              "savings",
              "benefit",
              "incentive",
              "reward",
              "credit",
              "rebate",
              "promotion",
              "subscription",
              "tiered",
              "fixedrate",
              "variable_rate"
            ],
            "min": 1,
            "max": 3
          },
          "rate_per_kwh": {
            "kind": "decimal",
            "min": 0.05,
            "max": 0.3,
            "scale": 2,
            "description": "Cost per kilowatt-hour for the tariff.",
            "nullable": true,
            "distribution": "long-tail"
          }
        }
      },
      "readings": {
        "description": "This table captures the half-hourly electricity readings from smart meters, linked to specific meters.",
        "rows": {
          "per": "meters",
          "via": "meter_id",
          "min": 3,
          "max": 12,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each reading."
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-03-31",
            "dayProfile": "waking",
            "description": "Timestamp of the reading."
          },
          "meter_id": {
            "kind": "fk",
            "ref": "meters.id",
            "description": "Reference to the meter that recorded the reading."
          },
          "consumption_kwh": {
            "kind": "decimal",
            "min": 0.1,
            "max": 10,
            "scale": 2,
            "description": "Electricity consumption in kilowatt-hours for the half-hour period.",
            "nullable": true,
            "distribution": "normal"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "timestamped",
      "monetary",
      "categorical"
    ],
    "analysisQuestions": [
      "What are the peak consumption hours during weekdays and weekends?",
      "How does the electricity usage vary across different tariffs?",
      "Which customers have the highest energy consumption?",
      "What trends can be observed in energy usage over the three-month period?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Customers and Meters",
        "sql": "SELECT c.full_name, m.location FROM customers AS c JOIN meters AS m ON c.id = m.customer_id;",
        "dialect": "postgres"
      },
      {
        "title": "Average Consumption by Tariff",
        "sql": "SELECT t.tariff_name, AVG(r.consumption_kwh) FROM readings AS r JOIN meters AS m ON r.meter_id = m.id JOIN tariffs AS t ON m.customer_id = t.id GROUP BY t.tariff_name;",
        "dialect": "postgres"
      },
      {
        "title": "Daily Consumption Trends",
        "sql": "SELECT DATE(r.timestamp) AS date, SUM(r.consumption_kwh) FROM readings AS r GROUP BY date ORDER BY date;",
        "dialect": "postgres"
      },
      {
        "title": "Peak Hours Analysis",
        "sql": "SELECT EXTRACT(HOUR FROM r.timestamp) AS hour, SUM(r.consumption_kwh) FROM readings AS r GROUP BY hour ORDER BY hour;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Energy Analyst",
        "body": "An energy analyst uses this dataset to identify peak electricity consumption times and assess customer usage patterns. By analyzing the readings, they can provide insights to the utility company on demand management strategies."
      },
      {
        "title": "Data Engineer",
        "body": "A data engineer processes this dataset in an ETL pipeline to load it into a data warehouse. They transform the raw readings into a format suitable for reporting and analytics, ensuring the data is ready for business intelligence tools."
      },
      {
        "title": "Tariff Planner",
        "body": "A tariff planner reviews the dataset to evaluate the effectiveness of different electricity tariffs. By analyzing the consumption data, they can adjust rates and structure tariffs that better match customer energy usage behavior."
      }
    ]
  },
  "counts": {
    "customers": 150,
    "meters": 200,
    "readings": 1226,
    "tariffs": 5
  },
  "stats": {
    "meters": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "location": {
          "nulls": 29,
          "distinct": 57,
          "min": "Amsterdam",
          "max": "Zurich"
        },
        "installation_date": {
          "nulls": 0,
          "distinct": 179,
          "min": "2021-01-05",
          "max": "2022-12-29"
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 118,
          "min": 1,
          "max": 149
        }
      }
    },
    "customers": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "full_name": {
          "nulls": 10,
          "distinct": 139,
          "min": "Alice Hassan",
          "max": "Zoe Shah"
        },
        "email": {
          "nulls": 24,
          "distinct": 126
        },
        "registration_date": {
          "nulls": 0,
          "distinct": 132,
          "min": "2021-01-04",
          "max": "2022-12-26"
        }
      }
    },
    "tariffs": {
      "rows": 5,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 5,
          "min": 1,
          "max": 5
        },
        "tariff_name": {
          "nulls": 2,
          "distinct": 3
        },
        "rate_per_kwh": {
          "nulls": 0,
          "distinct": 5,
          "min": 0.05,
          "max": 0.1
        }
      }
    },
    "readings": {
      "rows": 1226,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 1226,
          "min": 1,
          "max": 1226
        },
        "timestamp": {
          "nulls": 0,
          "distinct": 1226,
          "min": "2023-01-01 10:15:18",
          "max": "2023-03-31 23:26:20"
        },
        "meter_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "consumption_kwh": {
          "nulls": 131,
          "distinct": 473,
          "min": 0.8,
          "max": 9.38
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/customers.csv",
      "format": "csv",
      "table": "customers",
      "key": "datasets/smart-meter-readings/v2/csv/customers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/csv/customers.csv",
      "bytes": 7072,
      "sha256": "6b6d3f7f0ff3c29a9491fca3f926661674f3e5fd7f8d448caa317e8f5f5e0c37",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/meters.csv",
      "format": "csv",
      "table": "meters",
      "key": "datasets/smart-meter-readings/v2/csv/meters.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/csv/meters.csv",
      "bytes": 5136,
      "sha256": "f69ea4763c42841db95f3bb5cac214376866cd95685d2dd441b68e8f2fa6c31c",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/readings.csv",
      "format": "csv",
      "table": "readings",
      "key": "datasets/smart-meter-readings/v2/csv/readings.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/csv/readings.csv",
      "bytes": 40671,
      "sha256": "d6760ae69145bd0190d3889832bbb715a35838f64074ae45eb654c950c24caac",
      "rows": 1226,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/tariffs.csv",
      "format": "csv",
      "table": "tariffs",
      "key": "datasets/smart-meter-readings/v2/csv/tariffs.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/csv/tariffs.csv",
      "bytes": 120,
      "sha256": "be019bd59d298c69a38c66564640e0eb196dcc6b8bce86c37a399a999cbef3c8",
      "rows": 5,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "smart-meter-readings.json",
      "format": "json",
      "table": null,
      "key": "datasets/smart-meter-readings/v2/smart-meter-readings.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/smart-meter-readings.json",
      "bytes": 198888,
      "sha256": "f777c2f7a05de2df44f645cc2b47e85fafcef0ddb7a15bf62af2f7f92a66e5a9",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/smart-meter-readings/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/sql/postgres.sql",
      "bytes": 74320,
      "sha256": "2f3916bc5ff7f3f17cfdcd0e48e7a3bbf83b50a3ca65df9cfd1ba823e65e9fe9",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/smart-meter-readings/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/sql/mysql.sql",
      "bytes": 73892,
      "sha256": "10079e132c21124a5ab5b3c9383ba5f224de8af1e64c942f58165eb11e19ae57",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/smart-meter-readings/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/sql/mssql.sql",
      "bytes": 76153,
      "sha256": "ec4c113b2778f945677b82ad255fe85a9e744aec850ad1908ca644a6ad770846",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/smart-meter-readings/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/sql/sqlite.sql",
      "bytes": 73777,
      "sha256": "f64876ffd8fd7f478177944c9410c9d4b4e752ace51f9f6d9c652b3a943cf094",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/smart-meter-readings/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/prisma/seed.ts",
      "bytes": 171484,
      "sha256": "d2adda0599ed431436e08a8ba873a0dd066914da12b6028243830c084771aae4",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/smart-meter-readings/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/smart-meter-readings/v2/django/fixtures.json",
      "bytes": 267385,
      "sha256": "6b71915dcd9f8f7abc0a1cc3d03091c6021e1d589b16f77fd9e74d361038d111",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768276331,
  "updatedAt": 1788785982786
}
