Energy Generation and Consumption (ASIA)
Overview
A decade of the Asian power sector at plant-month grain. Eight markets, 40 generated companies, 502 generated plants across coal, gas, hydro, solar, wind, nuclear and geothermal, with monthly generation, capacity factors and availability for every plant from its commissioning month, and 340,798 outage events beneath them. The decade carries the industry's real arc, stated generically: coal's generation share falls year after year, solar grows explosively from a tiny 2016 base as its plants commission through the period, demand dips in 2020 and then compounds, and a fuel price shock beginning in 2021 peaks in 2022 and passes through to wholesale prices in every market, which is asserted rather than decorated. Fuel price indices, wholesale prices, sector demand splits and an annual installed-capacity table make the transition queryable from every side. Country monthly generation equals the exact sum of its plant rows and the build re-verifies it; capacity factors respect technology bounds and generation is always zero before commissioning. Built for energy analytics, transition modelling, price pass-through studies, outage and availability logic, ETL pipelines and BI. The licence and disclosure sections state the provenance of the data.
Analytics
Select a country on the map to see the figures the dataset records for it.
Select a country on the map to see the figures the dataset records for it.
Row Counts by Table
Counted from the files that ship, not estimated.
| Table | Rows |
|---|---|
| enr_generation_monthly | 55,356 |
| enr_outages | 340,798 |
| enr_plants | 502 |
| enr_wholesale_prices | 1,008 |
| enr_fuel_prices | 378 |
| enr_demand_monthly | 4,032 |
| enr_capacity_annual | 616 |
| enr_companies | 40 |
| enr_countries | 8 |
| enr_technologies | 7 |
Table Relationships
One parent record and seven child tables, each joined back on the same key.
Schema
Every table ships with typed columns, referential integrity, and documentation.
| Column | Type | Description |
|---|---|---|
| generation_id | varchar(16) | Generation row key. Primary key. |
| plant_id | varchar(8) | The plant this row measures. |
| year_month | varchar(16) | Month of generation, 2016-01 to 2026-06. Import as text: spreadsheets convert values like 2022-08 to dates. |
| generation_gwh | numeric(10,2) | Generation in gigawatt hours. Three documented rows report megawatt hours instead, three orders of magnitude off their plant trend; finding them is the exercise. |
| capacity_factor_pct | numeric(5,1) | Generation over nameplate for the month, in percent. Respects technology bounds. |
| availability_pct | numeric(5,1) | Share of the month the plant was available, in percent. |
| Column | Type | Description |
|---|---|---|
| outage_id | varchar(16) | Outage event key. Primary key. |
| plant_id | varchar(8) | The plant that went out. |
| year_month | varchar(16) | Month of the event. Import as text. |
| start_date | date | Start date of the event. |
| duration_hours | integer | Duration in hours. |
| cause_code | varchar(16) | Coded cause: PLANNED, FORCED_MECH, FORCED_ELEC, FUEL, GRID or WEATHER. |
| cause_description | varchar(32) | The cause in words. |
+2 more columns in enr_outages. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| plant_id | varchar(8) | Plant key. Primary key. |
| country_code | varchar(8) | The market the plant sits in. |
| company_id | varchar(8) | The owning company. |
| plant_name | varchar(56) | Generated plant name. One name is deliberately shared across two countries, unlinked. |
| technology_code | varchar(16) | The generation technology of the plant. |
| capacity_mw | integer | Installed capacity in megawatts. |
| commissioned_year | integer | Year the plant entered service. Renewable plants commission late in the decade; generation is always zero before this year. |
+2 more columns in enr_plants. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| wholesale_id | varchar(8) | Wholesale price row key. Primary key. |
| country_code | varchar(8) | The market the price clears in. |
| year_month | varchar(16) | Month of the price. Import as text. |
| price_value | numeric(7,2) | Generated wholesale power price. Tracks the fuel index through the shock; the pass-through is asserted. |
| price_unit | varchar(16) | Unit of the price: USD_MWH. |
| Column | Type | Description |
|---|---|---|
| fuel_price_id | varchar(8) | Fuel price row key. Primary key. |
| fuel_code | varchar(24) | COAL_THERMAL, GAS_LNG or OIL_BRENTLIKE. |
| year_month | varchar(16) | Month of the index. Import as text. |
| price_index | numeric(7,2) | Generated price index, base 100 in 2016, with the 2021 to 2022 shock and partial normalisation. |
| Column | Type | Description |
|---|---|---|
| demand_id | varchar(16) | Demand row key. Primary key. |
| country_code | varchar(8) | The market. |
| year_month | varchar(16) | Month of demand. Import as text. |
| sector | varchar(24) | residential, commercial, industrial or transport_other. |
| demand_gwh | numeric(10,2) | Demand in gigawatt hours for the sector that month, consistent with generation. |
| Column | Type | Description |
|---|---|---|
| capacity_id | varchar(8) | Capacity row key. Primary key. |
| country_code | varchar(8) | The market. |
| technology_code | varchar(16) | The technology. |
| year | integer | Calendar year. |
| installed_mw | integer | Installed megawatts at year end, exactly consistent with plant commissioning years. The transition table. |
| Column | Type | Description |
|---|---|---|
| company_id | varchar(8) | Company key. Primary key. |
| company_name | varchar(40) | Generated utility or producer name. Collisions with real utilities are a build failure. |
| home_country_code | varchar(8) | The market the company is based in. |
| company_type | varchar(32) | state_utility, independent_producer or industrial_captive. |
| Column | Type | Description |
|---|---|---|
| country_code | varchar(8) | Market key, ISO 3166-1 alpha-2. Primary key. The eight markets are the only real geography. |
| country_name | varchar(24) | Country name in English. |
| country_description | varchar(104) | What is generated below this market. |
| Column | Type | Description |
|---|---|---|
| technology_code | varchar(16) | Technology key. Primary key: COAL, GAS, HYDRO, SOLAR, WIND, NUCLEAR or GEO. |
| technology_name | varchar(24) | The technology in words. |
| capacity_factor_low | numeric(5,2) | Lower bound of the plausible capacity factor band for the technology. |
| capacity_factor_high | numeric(5,2) | Upper bound of the plausible capacity factor band. Generation respects these bounds. |
Sample Data
A snapshot of real rows from the dataset (values are fully synthetic).
| generation_id | plant_id | year_month | generation_gwh | capacity_factor_pct | availability_pct |
|---|---|---|---|---|---|
| GN00001 | PL001 | 2016-01 | 918.52 | 72.5 | 89.8 |
| GN00002 | PL001 | 2016-02 | 876.06 | 69.2 | 83.2 |
| GN00003 | PL001 | 2016-03 | 708.99 | 56 | 61.6 |
Version History
| v1.0.0 | 2026-08-11 | First release. Eight markets, 502 plants, seven technologies, monthly generation and prices, sector demand, annual capacity and 340,798 outage events, 2016-01 to 2026-06. |
Related Datasets
Offshore Platform Pump SCADA and Predictive Maintenance Set (ASIA)
EnergyA complete Asia analytical warehouse covering operator, offshore platform, pump, sensor, SCADA, run, alarm, inspection, work order, part, failure, downtime, reliability, energy and prediction data.
Offshore Platform Pump SCADA and Predictive Maintenance Set (US)
EnergyA complete United States analytical warehouse covering operator, offshore platform, pump, sensor, SCADA, run, alarm, inspection, work order, part, failure, downtime, reliability, energy and prediction data.
Oil and Gas Supply Chain (ME)
EnergyThe commercial liquids export chain of six Middle Eastern producer countries: 40 invented fields, 12 refineries, 10 export terminals, 53,626 cargoes cut into 80,260 priced parcels bound for ten named markets, with an invented benchmark price, tanker rates and exact chain reconciliation, monthly from 2016 to mid 2026.