Spatial SQL · PostGIS · Energy

Waiting for the Grid: ERCOT's 434 GW Queue

Before a power plant is built, it waits in line. ERCOT's interconnection queue holds 433.8 GW of proposed generation — 2.4 times everything operating in Texas — and history says less than a third will survive. This project measures that line entirely in PostgreSQL/PostGIS: fuzzy-matching projects to the grid by name, mapping county-level queue pressure, tracing cohort survival, and answering the interconnection-cost question with data.

PostgreSQL 16 · PostGISpg_trgm fuzzy matchingKNN · materialized views EXPLAIN (ANALYZE, BUFFERS)ERCOT · LBNL · EIA-860 · OSM
County choropleth of ERCOT queue pressure: queued MW as a multiple of operating capacity
Queue pressure by county: queued MW (Jun 2026) as a multiple of operating capacity. Hatched counties have queued gigawatts and zero operating utility-scale plants.
01The question

The solar siting project found that grid access, not sunshine, decides where Texas solar gets built. This is the sequel: it measures the fight for grid access itself — the interconnection queue where every proposed plant waits for permission to connect.

Four questions, all answered in SQL: where does the next wave of generation want to connect? Which counties face the most queue pressure? What fraction of applicants historically survive? And what role does interconnection cost — the sharpest critique of the first project — actually play?

A queued project is an application, not a plant. The queue doesn't forecast the grid — it reveals where developers want to build, before economics thins the crowd.

Queued fuelGWShare
Battery storage162.437.4%
Solar151.735.0%
Gas69.716.1%
Wind47.110.9%
Other3.00.7%

1,714 large-generation projects, 433.8 GW total (ERCOT GIS Report, June 2026, after cleaning). For scale: all operating Texas generators in EIA-860 total 179.6 GW.

02The flagship: geolocating projects from names alone

ERCOT publishes no coordinates — each project gets a county and a named point of interconnection like "59903 Bearkat 345kV" or "Tap 345kV 76003 Big Hill - 60708 Orsted". Turning 1,714 of those strings into geometry is itself the analysis: a normalizer strips bus numbers, voltage tokens, and generic words, then pg_trgm trigram similarity matches each POI to OpenStreetMap substations within the project's county plus a 15 km buffer.

The match rate is 47.6% — 816 projects, 316 of them exact name matches after normalization — and it is published, not hidden. The rest fall back to county centroids and carry a loc_method flag that excludes them from every location-sensitive claim. A hand-review of 30 random matches found all 30 plausible.

sql/04_geolocate_poi.sql — the matcher running on three real queue rows
queue_projects
poi_norm()
substations · same county + 15 km
| = similarity threshold 0.45 — best match above it wins
queue_located

A trap, documented instead of hidden: matched projects sit 6–8 m from a transmission line by construction — their assigned point is the POI substation, and substations sit on lines. So "distance to grid" is never used analytically for queued projects here; that circularity check is kept in the repo as a diagnostic.

03Queue pressure: where the next wave wants to land
20.4 GWqueued in Pecos County alone — 6.6× its operating fleet
500×Wilson County: 3.5 GW queued vs 7 MW operating
10"new frontier" counties with queued GW and zero operating plants

Aggregating queued MW against the operating fleet county by county shows the queue is not where the fleet is. The extreme pressure ratios cluster in counties with almost nothing operating today — led by Anderson (4.8 GW queued, zero operating) and Caldwell (4.7 GW, zero) — a map of where developers believe the grid's next frontier lies.

04Most of the queue never gets built
Cohort attrition: share of ERCOT queue entrants built, withdrawn, and still pending, and completion rates by fuel
ERCOT queue outcomes by entry cohort (LBNL Queued Up, thru-2025). The dashed line makes the censoring visible: pending projects can still build.

Across the 2010–2020 entry cohorts — 1,199 ERCOT projects — only 28.8% reached commercial operation; 46.5% formally withdrew, and 24.8% are still pending. Completion splits hard by fuel: gas 37.5%, wind 35.3%, solar 21.9%, standalone batteries 14.9%.

Post-2020 cohorts are excluded entirely: 63–93% of their outcomes are still undecided (right-censoring), so their completion rates would be artifacts of not waiting. Even within the window, 46% of the 2020 cohort is unresolved — recent-cohort rates are floors, not final values, and the page says so.

05The cost factor: answering the strongest critique

Readers of the siting project argued its grid-hugging result is really a cost result. They're right about the mechanism — and in ERCOT the two explanations are one. Under ERCOT's "connect and manage" regime, the developer pays for its gen-tie to the point of interconnection while deeper network upgrades are largely socialized, so distance to the existing grid approximates the developer's dominant location-dependent interconnection cost. No public project-level cost data exists for ERCOT (Berkeley Lab's cost studies cover other regions), so distance is also the only honest proxy.

Two results, and they cut in different directions:

  • Cost shapes siting before queue entry. Nearly half of queued projects name an existing substation as their interconnection point — requests are placed on the network that exists. The corridor-hugging in the siting model is the footprint of gen-tie cost minimization at site selection.
  • But grid sparsity does not predict who survives. If long gen-ties killed projects after filing, withdrawal should fall as county transmission density rises. It doesn't: 47.8%, 63.0%, 52.9%, 49.3% across density quartiles, sparsest to densest — no gradient, and the same holds for solar and wind alone.

The consistent reading: developers internalize gen-tie cost when they pick sites, so projects that cost would cripple mostly never file — and attrition after filing is driven by other things. Cost decides where you queue, not whether you survive the queue.

06A null finding, published on purpose
Distance to nearest transmission line for the operating fleet by fuel, and operating solar by vintage
Operating fleet distance-to-transmission (EIA-860 coordinates vs HIFLD lines) and solar by vintage: the saturation story is not in this data.

An obvious sequel hypothesis — grid-adjacent land is filling up, so newer solar must sit farther from the wires — fails the test. Solar that came online 2021–2024 sits a median 778 m from transmission versus 952 m for the 2016–2020 vintage, and the 90th percentile fell from 8,024 m to 3,730 m. Wind drifted the other way (1,867 m → 3,841 m). Missing post-2023 lines in the HIFLD data could only overstate distances for the newest plants, so the null survives that bias too. Null results that would have made a better story build more trust than another 9×.

07The query-plan story
QueryBefore → AfterSpeedup
KNN nearest line, 2,221 plants12,834 → 88 ms146×
Trigram POI candidate join35,211 → 1,747 ms20×

The schema deliberately ships with no indexes; a tuning script captures EXPLAIN (ANALYZE, BUFFERS) before and after creating GiST geometry indexes and a GIN trigram index, with full plans preserved in the repo. The plan shape flips from per-row sequential scans to index probes.

One wrinkle, disclosed before anyone asks: the GIN trigram index is idle in the join plan — similarity(a,b) >= 0.45 is an expression the planner can't index; only the % operator is accelerated. The 20× win comes from the GiST ST_DWithin probes, and a %-operator demo in the repo shows the GIN index working (~1 ms) when addressed correctly.

08Method & limitations

Six public datasets — the ERCOT GIS Report (Jun 2026), LBNL Queued Up (thru-2025), HIFLD transmission lines, OpenStreetMap substations, EIA-860 (2024), and Census TIGERweb counties — loaded into PostGIS (EPSG:6580, metres) by a thin Python loader; every analysis is a numbered SQL script runnable top to bottom, and every number on this page traces to a preserved query output.

  • POI match rate is 47.6%; centroid-fallback projects are excluded from location-sensitive claims. Line-tap POIs match one endpoint substation, with location error up to the segment length.
  • Substations come from OpenStreetMap (the public HIFLD layer was retired), under ODbL — unnamed OSM substations depress the match rate, so 47.6% is partly a coverage number.
  • HIFLD lines are transmission-class only, last edited 2023; absolute distances aren't comparable to studies that include distribution circuits.
  • The cost test is a county-level (ecological) proxy on 552 settled projects, not per-project gen-tie length.
  • Nothing here forecasts ERCOT capacity adequacy: the queue measures intent, not supply.

Open the SQL & the evidence

Ten SQL scripts, preserved query plans, every summary table as CSV, and a README where the caveats are the point.