← NM AI Research · research portfolio

Contingent vs Robust AI Power Demand

How much announced generation capacity actually gets built — a realized-completion anchor from the PJM interconnection queue. Announced is not deliverable.

Interactive front-end over the published v0.1 aggregates · data as of 2026-06 · canonical record: DOI 10.5281/zenodo.20559430 · NM AI Research, ORCID 0009-0003-4213-7769 · CC BY 4.0

GW
De-duplication (r1)removes literal duplicate filings
Viability survival (r2)entered → signed interconnection agreement
Build rate (r3)signed agreement → in service

The completion funnel — 2010–2017 cohort, 204 GW entered

Each milestone is conditional on surviving the previous one, so the rates multiply. The steepest drop is at the System Impact Study, where a project learns its share of network-upgrade costs.

Stage% of enteredwhat it is

Where the MW die: 61% of announced MW exit before a signed agreement; another 13% exit after one (a signed IA converted to service only ~58% of the time). The gap is viability and build, not paperwork.

Realized completion by submitted cohort

Recent cohorts read low only because they have not had time to resolve, so the headline uses the mature, near-fully-resolved windows (bold). Those converge on ~16–25% built — about one announced MW in five.

Cohort% built% withdrawnmaturity

What this is. A realized announced-to-in-service completion rate from PJM's own resolved serial queue (8,253 generation projects, ~837 GW announced). The calculator lets you deflate any announced headline through the three measured attrition stages and watch the deliverable move. Defaults are the PJM mature-cohort base rate; the sliders are for sensitivity, not invention.

The load-bearing assumption. The mature 2010–2017 cohort is generic historical generation (wind/solar/gas) used as a completion base rate — not capacity announced to serve AI. Transferring that rate to the AI-era cohort is the named assumption (cohort comparability); FERC Order 2023 could raise completion, speculation could lower it.

Supply, not demand. This deflates the generation side, not the ~950 TWh demand headline. De-duplication barely moves the result (r1 ≈ 0.81–0.92): the gap is overwhelmingly viability and build. "Built" counts only In Service (conservative, biases the rate down). The output is a band with the announced-vs-deliverable gap as the softest input — treat any headline as a scenario, not a baseline.

Guardrails — read before citing

No raw PJM data is bundled here (it carries a redistribution restriction); only the published derived aggregates. The full method reads a locally-obtained PJM export — see the Zenodo record. r2 × r3 = built/entered is an algebraic identity, not an independent check. Anchors (LBNL ~14–20% national; Exelon ~22% of company pipeline) are loosely comparable, not like-for-like.

Disclosure. No third party reviewed, funded, or directed this work. Independent analysis, not investment advice.

Reproducibility. This page embeds the published aggregates (funnel.csv, cohorts.csv) verbatim, regenerated by build.py; the full reproduce.py and write-up live in the Zenodo record.