World Nuclear Power Reactors (IAEA PRIS)

Every nuclear power reactor in the world, from the IAEA's Power Reactor Information System (PRIS). Four members: the reactor unit dimension across all five statuses (operational, under construction, suspended, permanently shut down, decommissioning completed); each unit's lifetime-to-date operating performance; the organizations PRIS names as operator, owner, reactor supplier and turbine supplier; and the reactor-to-organization bridge carrying the role and, where PRIS states one, the ownership share. Power reactors only — research, naval and military reactors are not in PRIS, nor are projects cancelled before construction started, since PRIS admits a unit at construction start. Source: IAEA PRIS, reproduced with acknowledgement of the IAEA as the source; the IAEA does not endorse MyCorr or this republication.

Last released

Tables 4

636 rows 6 columns 2 links
Description

Lifetime-to-date operating performance per nuclear power reactor, from the IAEA's Power Reactor Information System: one row per unit for which the IAEA publishes lifetime figures, cumulative through report_year. Total generation in TW·h plus the three lifetime factors — load, availability and operating — which differ in what they count and are most useful read together. Every reactor_id here resolves against the reactors table, but not every reactor appears here, and the gap is wider than 'units still building'. Absent are the 78 units under construction, which have never generated — and also about 25 units that did generate but for which the IAEA never computed lifetime factors: the early prototypes and demonstration plants of the 1950s and 60s, units whose life ended abruptly, and units connected too recently to have a closed reporting year. So an absent row means 'no published lifetime record', not 'zero generation', and treating this table as the fleet would understate it. Cumulative and therefore restating: these are not annual figures, and a unit's row changes every time the IAEA closes a reporting year. Unavailability is not shipped — the source's value is exactly 100 minus availability_factor_pct, checked on every build. Source: the IAEA Power Reactor Information System (PRIS). Data © International Atomic Energy Agency, reproduced with acknowledgement of the IAEA as the source under the IAEA's terms of use; the IAEA does not endorse MyCorr or this republication, and no such endorsement is stated or implied. Changed by MyCorr: columns dropped and renamed, dates and numbers retyped from JSON, derived and constant columns removed, and multi-line text fields whitespace-collapsed. The IAEA makes no warranty as to the accuracy or completeness of the data and is not liable for any use of it. Source: https://pris-stats.iaea.org/ — terms: https://nucleus.iaea.org/Pages/Others/Disclaimer.aspx

Columns
reactor_id key Int64 PRIS's unit id. Foreign key -> reactors.reactor_id, and the primary key here: PRIS publishes one lifetime-to-date record per unit, not a per-year series.
report_year Int64 The year through which these lifetime figures are computed — the vintage of the record, uniform across the table. It is what makes the row datable: every figure beside it means 'cumulative through the end of this year', so the whole table restates when the IAEA closes a new reporting year.
lifetime_generation_twh Float64 Total electricity the unit has generated over its life, TW·h, cumulative through report_year. The output measure that capacity alone cannot give — a 1000 MW unit that ran for 40 years and one commissioned last year look identical on capacity. Null for one unit whose factors the source publishes without a generation total, so sum this column knowing it omits that unit rather than reading the null as zero.
load_factor_pct Float64 Lifetime load factor, per cent: energy actually generated as a share of what the unit could have generated at reference power for the whole period. The standard measure of how hard a reactor has been worked, and it penalises both outages and running below full power.
availability_factor_pct Float64 Lifetime availability factor, per cent: the share of the period the unit was available to generate, whether or not it was asked to. Higher than load_factor_pct wherever a unit was available but idle or throttled.
operating_factor_pct Float64 Lifetime operating factor, per cent: the share of the period the unit was actually connected to the grid. Ignores how much power it was producing while connected, which is what separates it from load_factor_pct.

739 rows 29 columns 3 links
Description

Every nuclear power reactor in the world, from the IAEA's Power Reactor Information System: one row per unit, keyed on PRIS's own unit id, covering all five statuses — operational, under construction, suspended, permanently shut down and decommissioning completed. Carries the unit's site, type, model, thermal and electrical capacity, and its full lifecycle of dates from construction start to decommissioning. Who operates, owns and supplied it is not here: those are normalized into the organizations table and reached through reactor_organizations, which also lets a jointly-owned reactor have the several owners it actually has. Two things it is deliberately not: it is not all reactors, because PRIS registers power reactors only and research, test, naval and military reactors are elsewhere; and it is not all projects, because PRIS admits a unit at construction start, so a reactor announced and cancelled without concrete being poured never appears. Status is current state rather than history — PRIS publishes no status timeline, so it changes in place. Source: the IAEA Power Reactor Information System (PRIS). Data © International Atomic Energy Agency, reproduced with acknowledgement of the IAEA as the source under the IAEA's terms of use; the IAEA does not endorse MyCorr or this republication, and no such endorsement is stated or implied. Changed by MyCorr: columns dropped and renamed, dates and numbers retyped from JSON, derived and constant columns removed, and multi-line text fields whitespace-collapsed. The IAEA makes no warranty as to the accuracy or completeness of the data and is not liable for any use of it. Source: https://pris-stats.iaea.org/ — terms: https://nucleus.iaea.org/Pages/Others/Disclaimer.aspx

Columns
reactor_id key Int64 PRIS's own unique id for the reactor unit. The join key for reactor_performance and the id the IAEA's API itself takes — never join on unit_name, which is a display label scoped by country rather than a global identifier.
unit_name String Unit name as published, whitespace-stripped (e.g. 'KAIGA-1', 'THREE MILE ISLAND-1'). Conventionally the site name plus a unit number. An attribute, not a key.
alternate_name String Another name the unit is known by (e.g. 'Shevchenko' for BN-350). Sparse — a deliberate annotation the IAEA records for a minority of units, so null is the normal value.
country_code key String ISO 3166-1 alpha-2 code of the country the unit is in, and this table's only country reference — the name comes from the link, not from here. All 38 values resolve against canonical_alpha2 on the countries dataset's spine, which is the intended join.
site_id Int64 PRIS's id for the station the unit sits on. 739 units across 309 sites, so this is what groups units into a power station. No site table is shipped: the API publishes nothing about a site beyond this id and its name.
site_name String Name of the station the unit sits on (e.g. 'KAIGA'), whitespace-stripped.
type_code String Reactor type, abbreviated: 'PWR', 'BWR', 'PHWR', 'GCR', 'LWGR', 'FBR', 'HTGR', 'HWGCR', 'HWLWR', 'SGR', 'OMR', 'SGHWR'. Twelve types across the 739 units.
type_name String Reactor type spelled out (e.g. 'Pressurized Light-Water-Moderated and Cooled Reactor'). One-to-one with type_code.
model String Vendor model or design designation (e.g. 'VVER-1200', 'AP-1000', 'Horizontal Pressure Tube type'). Free text as published, with no controlled vocabulary behind it — the same design can appear under more than one spelling. Null for a handful of early units.
status_code String Operational status, coded: '1O' operational, '2C' under construction, '4L' suspended operation, '4S' permanent shutdown, '5XE' decommissioning completed. Current status, not history — PRIS publishes no status timeline, so this column changes in place when a unit's status changes.
status_name String Operational status spelled out: 'Operational', 'Under Construction', 'Suspended Operation', 'Permanent Shutdown', 'Decommissioning Completed'. One-to-one with status_code.
thermal_power_mwt Int64 Reactor thermal power, MW(th) — the heat the core produces, roughly three times the electrical output. The measure of reactor size that does not depend on the turbine hall.
gross_capacity_mwe Int64 Gross electrical capacity, MW(e): generator output before the station's own consumption is subtracted.
net_capacity_mwe Int64 Net electrical capacity, MW(e): what the unit can deliver to the grid, after station load. This is the figure to sum for 'installed nuclear capacity' — the one the IAEA headlines.
design_net_capacity_mwe Int64 Net electrical capacity the unit was designed for, MW(e). Differs from net_capacity_mwe where a unit has been uprated or derated since commissioning, so the pair is the record of that change.
reference_power_basis String Whether the unit's reference unit power is stated on a 'Net' or 'Gross' basis — the IAEA's own note about which convention its performance figures for this unit were computed against. Relevant when reading reactor_performance, not when reading capacity.
construction_start_date Date Date first structural concrete was poured for the reactor building — the IAEA's construction start, and the event that admits a unit to PRIS. Present for every unit, which is why cancelled-before-construction projects are absent from this table entirely.
construction_license_date Date Date the construction licence was granted. Sparse: recorded mainly for recent units, so null does not mean unlicensed.
first_criticality_date Date Date the reactor first sustained a chain reaction. For a unit still under construction this is the IAEA's *expected* date, not history — read it together with status_code. Null where no date is published.
first_grid_date Date Date the unit was first connected to the grid — the usual 'when did it start' date and the basis for reactor age. Two cautions. For units still under construction this is a forecast (some as far out as 2033), so filtering or subtracting without checking status_code admits a planned date as a fact and can produce a negative age. And null does not mean 'not yet': it covers both units still building and units abandoned before they ever reached a grid.
commercial_operation_date Date Date the unit entered commercial operation, i.e. was handed from the constructor to the operator. Later than first_grid_date by months of commissioning tests, and likewise a forecast for units still under construction.
shutdown_date Date Date of permanent shutdown. Non-null is what makes a unit retired, and it agrees with status_code '4S'/'5XE'; null for every unit still operating, suspended or building.
decommissioning_start_date Date Date decommissioning began. Sparse even among shut down units — most sit in post-operational transition for years and the IAEA records no date until dismantling starts.
decommissioning_end_date Date Date decommissioning completed, or is scheduled to. Recorded for a handful of units, some of them future dates — this is not exclusively a historical column.
latest_operating_license_date Date Date of the most recent operating licence or licence renewal. Current state, not history: it moves in place on each renewal, so it answers 'licensed as of when' and not 'how many times renewed'.
latest_suspended_operations_date Date Date operations were most recently suspended. Populated mainly for the Japanese fleet after 2011. Latest event only.
latest_restart_operations_date Date Date operations were most recently restarted after a suspension. Latest event only, so a unit suspended and restarted twice shows only the second of each.
latest_suspended_construction_date Date Date construction was most recently suspended. Very sparse — a handful of long-stalled units.
latest_restart_construction_date Date Date construction was most recently resumed after a suspension. Very sparse, and the counterpart of the column above.

363 rows 2 columns 1 link
Description

Organizations named by the IAEA's Power Reactor Information System as the operator, owner, reactor supplier or turbine supplier of a nuclear power reactor: one row per organization, joined to reactors through reactor_organizations. PRIS records these as free text on each reactor, so the same firm is sometimes spelled several ways; those duplicates are folded here using a hand-curated map committed alongside the build, which also records the deliberate non-merges. Nothing is merged by fuzzy matching — that cannot be verified and quietly conflates unrelated companies, one PRIS value being a manufacturer and another a similarly-named utility. The consequence to plan for is that this under-merges rather than over-merges: the row count is an upper bound on the number of real companies, because only duplicates someone has actually reviewed are folded, and a firm PRIS spells two ways that nobody has noticed yet is still two rows. Some rows name several companies at once, where PRIS writes joint supply as a single string with no marker that can be split on safely. Current state, not history: PRIS publishes no ownership timeline, so a change of operator overwrites rather than appending. Source: the IAEA Power Reactor Information System (PRIS). Data © International Atomic Energy Agency, reproduced with acknowledgement of the IAEA as the source under the IAEA's terms of use; the IAEA does not endorse MyCorr or this republication, and no such endorsement is stated or implied. Changed by MyCorr: columns dropped and renamed, dates and numbers retyped from JSON, derived and constant columns removed, and multi-line text fields whitespace-collapsed. The IAEA makes no warranty as to the accuracy or completeness of the data and is not liable for any use of it. Source: https://pris-stats.iaea.org/ — terms: https://nucleus.iaea.org/Pages/Others/Disclaimer.aspx

Columns
organization_slug key String Stable, readable key for this organization spelling, minted from the name (e.g. 'general-electric-co'). Held steady across builds by a seed that reads back the slugs already published, so an IAEA spelling edit cannot silently retire an organization and rewrite every bridge row pointing at it.
name String The organization's name as PRIS publishes it, whitespace-collapsed, with any appended postal address or URL kept rather than guessed at. Where PRIS spells one organization several ways, this is the spelling chosen by the build's curated alias map and the others do not appear — so one row is one organization, not one string. The map is hand-authored and committed (build/organization_aliases.csv), which is where to look to see exactly which spellings were folded together and why.

2,942 rows 4 columns 3 links
Description

Which organizations operate, own and supplied each nuclear power reactor, from the IAEA's Power Reactor Information System: one row per reactor, role and organization, so a reactor's four relationships become four rows and a jointly-owned reactor becomes one row per owner with its share. This is the join between reactors and organizations, and it exists because PRIS records these as free text on the reactor: normalizing them turns four repeated text columns into pointers, and lets a consortium be represented as the several owners it actually is instead of one unparseable string. Shares are only present where the source enumerates them; a value that names several companies without shares is kept as a single organization rather than split on a guess, so a small number of rows point at an organization row that is itself a joint designation. Current state, not history — PRIS publishes no ownership timeline, so these rows change in place when an operator or owner changes. Source: the IAEA Power Reactor Information System (PRIS). Data © International Atomic Energy Agency, reproduced with acknowledgement of the IAEA as the source under the IAEA's terms of use; the IAEA does not endorse MyCorr or this republication, and no such endorsement is stated or implied. Changed by MyCorr: columns dropped and renamed, dates and numbers retyped from JSON, derived and constant columns removed, and multi-line text fields whitespace-collapsed. The IAEA makes no warranty as to the accuracy or completeness of the data and is not liable for any use of it. Source: https://pris-stats.iaea.org/ — terms: https://nucleus.iaea.org/Pages/Others/Disclaimer.aspx

Columns
reactor_id key Int64 PRIS's unit id. Foreign key -> reactors.reactor_id.
role String What this organization does for this reactor: 'operator', 'owner', 'reactor_supplier' or 'turbine_supplier'. A closed vocabulary and part of the primary key, so one reactor can have several owners but only one row per (owner, role).
organization_slug key String Foreign key -> organizations.organization_slug. Where PRIS spelled the organization differently on different reactors, the build has already folded those spellings, so this points at one organization rather than at one string.
share_pct Float64 This organization's percentage share in the role, where PRIS states one — it does so only for the handful of reactors whose owner or operator is an enumerated consortium ('1. (50%) … 2. (50%) …'). Null for the large majority, which means 'no share published', not 100%: a sole owner is recorded without a percentage. Shares for one reactor and role sum to 100 except where PRIS itself names an unquantified residual.

Linked datasets

Datasets that join to World Nuclear Power Reactors (IAEA PRIS) in the Mycorr graph.