# Map of Grid — which Markets companies own and operate which US power plants The map and the Markets desk read `plant-index.json`. `npm run build` regenerates that file from `operator-plants.json` via `scripts/build-ownership-index.mjs`, which also applies `overrides.json`. The rest of this folder is the research pack (citations, gaps, and the full company lists). Built Nov 4, 2026 (America/Chicago). Overrides in this file were applied the same day. ## Files - `plant-index.json`: slim plant→owners index plus a short top-plant list per company. Generated. Do not edit by hand. Includes the dated corrections in `overrides.json`. - `overrides.json`: post-vintage ownership corrections (source URL, date, and the decision). Applied only when the index is built. `operator-plants.json` is left as the extract. - `operator-plants.json`: one entry for each of the 204 Markets companies. Each entry has a classification, plant count, owned and operated MW, proposed-pipeline MW (where the company is operator), and a plant list. Each plant record carries: name, EIA plant ID, state, lat/lon, balancing authority, ISO, fuels, plant nameplate MW, operated MW, owned MW (ownership-percent weighted), role (owner/operator/both), EIA operator name, confidence (high/med), `in_mog_layer`, `pending_deal`, and a source citation. Corrections dated Nov 4, 2026 are not copied into this file. - `operator-plants.csv`: the same plant links in flat form, 4,310 rows. - `company-summary.csv`: one row per company. - `gaps.md`: untraced companies, large unmatched EIA owners, and parent-company (holdco vs opco) decisions. - Dollar figures (market cap, revenue, deal values) are not published in this folder. A research note that was not checked against filings lives outside the public site. Look up the company 10-Q or 10-K on [SEC EDGAR](https://www.sec.gov/edgar/search/). - `src/rules.py`, `src/build.py`, `src/emit.py`: the matching rules and pipeline, reproducible from the pickles in `raw/`. `load.py` builds those pickles from the EIA zip. ## Data - **EIA-860 2025 final release** (published Sep 10, 2026; zip `eia8602025.zip`). Schedules used: 1 Utility, 2 Plant, 3_1 Generator (operable sheet, 27,919 generators, 1,376,742 MW nameplate; plus the proposed sheet for pipeline MW), and 4 Owner. - **Markets list:** `https://mapofgrid.com/data/markets.json`, fetched Nov 4, 2026, 204 entries: 162 public rows (including 14 ETFs), 35 private companies and 7 ISOs/RTOs. - **MoG plants layer:** `plants.geojson` (EIA-860M September 2026 preliminary). The ownership join below was built against an older map extract, so `in_mog_layer` can be stale. - **Ownership changes after the EIA data:** press releases and 8-Ks for Calpine→CEG, LS Power→NRG, Lotus and Cogentrix→VST, Freedom/Guernsey/Cornerstone→TLN, Brazos Valley→LS Power, Intersect→Google/IPX, and Algonquin renewables and bp wind→LS Power. A second layer, `overrides.json` (applied 2026-11-04), corrects Colstrip (NorthWestern 55% from Jan 1, 2026; Puget and Avista removed), Gregory (Constellation removed; Cheniere 100%), Bath County (Vistra's Energy Harbor 40% removed), Rumford (Vistra, sale pending), and West Deptford (NRG's 100% name-rule credit removed). Sandy Creek is documented there and left unmapped. ## Method 1. **Assigning EIA entities to Markets companies.** Every EIA operator (Utility ID) and owner (Ownership ID) is put through an ordered rule table (`src/rules.py`): - Explicit exclusions run first, to stop known name collisions. - Then name regexes. A name match gives **high** confidence. - Then headquarters street-address keys, for companies whose project LLCs carry project names (for example Invenergy at 1 S Wacker, Pattern at 1088 Sansome, Clearway at 902 Carnegie Center). An address match gives **medium** confidence. - No fuzzy string matching is used. A deterministic ID join is used everywhere it is possible. 2. **Ownership at the generator level.** Where Ownership = S, the operator owns 100%. Where it is J or W (jointly owned or partly owned), the MW is split by Schedule 4 `Percent Owned`. - Owned MW = nameplate × ownership share. - Operated MW = full nameplate of the generators the company operates. 3. **Overrides for later deals.** Plant-name or operator-ID overrides apply ownership changes that closed after the EIA reporting date. Deals still pending are flagged, not moved. From Nov 4, 2026, further corrections are rows in `overrides.json` (action, effective date, source URLs) and are applied in `scripts/build-ownership-index.mjs`. The build checks the Colstrip, Gregory, Bath County, Rumford, and West Deptford results before it writes the index. 4. **Plant attributes.** Fuel comes from Energy Source 1, grouped. ISO comes from the balancing-authority code (ERCO, PJM, MISO, CISO, NYIS, ISNE, SWPP; anything else is non-ISO). `in_mog_layer` is set by plant-ID join. ## Results - **Company coverage:** 87 of 204 Markets entries are linked to at least one plant in the index (86 in the EIA extract, plus Cheniere via the Gregory override). Putting aside the 7 ISOs, 14 ETFs and 78 companies classified as non-generation in the extract (equipment, upstream, midstream, coal, LDCs, data centers), there are 105 generation-relevant companies. **89 of 105 (85%) are mapped**: 86 directly, plus 3 parent rollups (IBDRY, BEPC, Clearway Group). Cheniere was in the non-generation count and is the 87th linked name. 16 of the generation-relevant set are untraced, with the reasons listed in gaps.md. - **Plant links:** 4,307 company–plant links across **4,220 unique EIA plants**. Confidence: 3,417 high and 890 medium. The Nov 4 overrides drop four high-confidence links (Puget and Avista at Colstrip, Vistra at Bath County, NRG at West Deptford), add Rumford at high confidence, and move Gregory from a medium Constellation link to a medium Cheniere link. - **Capacity coverage:** Markets companies own **~53% (~729 GW)** and operate **~55%** of US operable nameplate. Most of the rest is federal, public-power, co-op, Berkshire Hathaway Energy and foreign IPPs. The Nov 4 overrides lower owned nameplate by about 1.6 GW (Bath County and West Deptford out; Colstrip redistributed among companies already in the file; Gregory moved from Constellation to Cheniere; Rumford added). - **Top 10 owners by ownership-weighted nameplate (GW):** | # | Company | Owned GW | |---|---|---| | 1 | NextEra (NEE) | 88.4 | | 2 | Constellation (CEG, including Calpine, excluding Gregory) | 63.1 | | 3 | Duke (DUK) | 58.1 | | 4 | Southern (SO) | 48.6 | | 5 | Vistra (VST, including Lotus and Cogentrix; Rumford pending; Bath County excluded) | 45.6 | | 6 | Dominion (D) | 29.5 | | 7 | Entergy (ETR) | 28.7 | | 8 | NRG (including the LS Power portfolio, excluding West Deptford) | 26.1 | | 9 | AEP | 26.0 | | 10 | Xcel (XEL) | 23.1 | Next come Talen 14.6, AES 14.2, DTE 13.3, RWE 13.0, Evergy 13.0 and Invenergy 11.3. - **Owned MW by ISO:** non-ISO 235 GW, PJM 140, MISO 136, ERCOT 85, SPP 58, CAISO 52, NYISO 17, ISO-NE 12. - **Biggest proposed pipelines (operator level, EIA proposed sheet):** Entergy ~17.9 GW, NextEra ~14.3 GW, Dominion ~5.4 GW, Xcel ~4.2 GW. ## Caveats - All figures are nameplate MW, not net summer capacity. - NEE totals include assets owned economically by XPLR (XIFR). - The NRG/LS Power plant list was partly reconstructed (16 of ~18 plants). - Medium-confidence address matches can catch an occasional third-party project managed from the same office. - The NextEra–Dominion merger (not expected to close until 2H 2027) is pending and is **not** combined here. - Market prices are not published here. The earlier Yahoo pull was not checked against filings.