Where can the next data center connect? An AC-aware alternative to DC hosting-capacity heatmaps, built on GENCO

#9
by Bassant-Elsisi - opened

Team: Bassant Elsisi, PhD student, Electrical Engineering, University of Houston
Contact: baelsisi@cougarnet.uh.edu
Links: Siting explorer (Space) · Code, results and report (dataset repo)


In brief

Grid planners answer one question hundreds of times a year: how many megawatts can a new data center draw at this bus before something breaks? The quick answer usually comes from a DC heatmap: linear distribution factors, N-1, thermal ratings. That is the same machinery behind the interconnection heatmaps that FERC Order 2023 requires. DC heatmaps are fast, but they cannot see voltage.

We built the AC-aware version of that heatmap with GENCO, for every load bus of the Texas 2000-bus synthetic grid, and compared it with a DC heatmap built the standard way.

  • GENCO proposes, AC confirms the boundary. For each of 1,522 candidate buses, GENCO solves a 25–1,000 MW load ladder under about 9 outages per site picked by DC and GENCO screens. A Newton–Raphson check then walks from GENCO's answer to the first failing size. The whole system took 3.2 GPU-hours on a free T4 (7.6 s per site).
  • The DC heatmap over-promises at 35% of buses (528 of 1,522), even with all 2,770 single outages. At 346 of them the real limit involves voltage, which a DC screen cannot represent. At the 115/161 kV buses where load connects today, it over-promises at 38%.
  • GENCO alone matches the AC-confirmed headroom at 83% of buses and at 90% of 115/161 kV buses with existing load. With the AC check it matched a full AC ladder at 30 of 30 validation cases, using 14 AC solves per site instead of 100.
  • An interactive siting explorer puts the result in a planner's hands. It has a map, a project-size slider that rings every bus where DC says "fits" but AC disagrees, and a card per bus showing the limiting outage and element.

Workflow


1. The problem: large-load siting, and how screening maps are made today

ERCOT's large-load interconnection requests reached about 438 GW by late May 2026 (New Project Media), up from about 63 GW at the end of 2024, and most of it is data centers (Latitude Media). Every request needs a first answer on where it can connect and how big it can be.

The industry's quick answer is a heatmap. Under FERC Order 2023, transmission providers publish interconnection heatmaps computed under N-1 from distribution factors: per point of interconnection, the MW impact and the percentage loading of each affected facility before and after the project (NYISO summary; SPP tool FAQ). Those maps are built for generation injecting power. A large load is the same calculation with the sign flipped. The method is linear and thermal: it says nothing about voltage magnitude or reactive power. A large load on a long or weak part of the network often runs into a voltage limit first.

Our goal was to keep the heatmap's form and conventions and replace the physics with AC, at a cost low enough to run for every bus. GENCO is what makes that affordable.

2. What we built

We kept the DC heatmap's conventions so that the only thing that changes is the physics:

DC heatmap (baseline) Our AC-aware heatmap
Contingencies All 2,770 non-islanding single outages Intact grid plus ~9 outages per site picked by screens (below)
Limits Line loading vs rate A Line loading vs rate A and voltage (0.95 p.u. intact, 0.90 p.u. after an outage), plus "no AC solution"
Attribution Distribution factor ≥ 5% Same 5% rule for lines; voltage counts only if the new load lowers it
Pre-existing problems Count only if worsened Same (by 2% of rating, or 0.005 p.u.)
Solver PTDF/LODF GENCO on the ladder, then a Newton–Raphson check at the boundary

Per site (1,522 candidates: every PQ bus at 115 kV and above):

  1. Pick outages. Up to 4 thermal outages per test size (DC screen at 100 and 300 MW, ranked by how much each outage adds to loading over the intact grid, on lines carrying at least 5% of the new load). Up to 4 voltage outages from a GENCO screen of all 2,770 outages, run once per operating point in about 2 minutes on a GPU, which picks the outages that lower voltage most at the site and its neighbours. Up to 2 adjacent lines.
  2. GENCO on the ladder. 25, 50, 100, 150, 200, 300, 400, 500, 700 and 1,000 MW at 0.98 power factor, supplied pro rata by the other generators (capped at Pmax). About 100 cases per site go in one GPU batch. Our wrapper edits the normalised graph directly, so there is no pandas round-trip per case.
  3. AC check. Starting at GENCO's headroom, run AC on the same outages, stepping up if the size holds and down if it fails, until the first failing size.

DC and AC reference solvers were written from the same tables GENCO reads. The AC solver reproduces the dataset's stored solutions to about 10⁻¹² p.u., and the DC model reproduces the dataset's DC solution exactly.

3. Can GENCO be trusted with a 1,000 MW step at one bus?

GENCO was trained on modest load variation and N-2 topologies, not on a data center appearing at one bus. Before building anything, we tested it on 252 cases (3 operating points, 12 buses, 0–1,000 MW) against AC.

  • Up to 200 MW, the median voltage error at the load bus stays at 0.0002–0.0004 p.u., as accurate as on GENCO's own test data.
  • From 400 to 1,000 MW the error grows, but only after the true voltage is already far below limits, beyond where headroom is decided.
  • In 27 cases no AC solution exists (voltage collapse), and GENCO still returns a state. It cannot say "no solution", so the boundary must be confirmed with AC. This is why the AC check is part of the method, not an add-on.
  • At 230/500 kV buses that never carry load in training, GENCO raises false alarms. The full screen confirms it: GENCO alone is below the AC-confirmed value at 35% of these buses.

Go/no-go

4. Validation against full AC

30 cases (15 sites on each of 2 operating points, covering all three bus groups) were solved with AC at every size and every selected outage. Each method below uses its own outage list. One DC row uses all 2,770 outages, so its errors cannot be blamed on our outage selection.

Method Exact Over-promise Under-promise Worst over
GENCO alone 25 3 2 +50 MW
GENCO + AC check 30 0 0 0
DC, same outages 14 14 2 +200 MW
DC, all 2,770 outages 14 13 3 +150 MW

At the 18 cases on 115/161 kV buses with load, DC over-promised at 12 while GENCO alone was exact at 16. The AC check needed 13 AC solves per site on average, against 100 for the full ladder.

Does the answer hold under full N-1? At 10 validation sites we reran AC on all 2,770 outages at the reported headroom. It held at 9. An earlier version of our thermal screen, which ranked outages by absolute loading, missed outages at three weak sites. Ranking by the loading an outage adds over the intact grid fixed all three. The remaining miss is a voltage problem that appears only once the new load is in place (see Limitations).

5. The map: 1,522 buses

Group Buses GENCO exact GENCO over DC exact DC over
All candidate buses 1,522 83% 7% 58% 35%
115/161 kV, existing load 1,114 90% 7% 54% 38%
115/161 kV, no load 153 73% 10% 57% 31%
230/500 kV 255 59% 6% 75% 21%

Reference: AC-confirmed headroom (GENCO + AC check). DC uses all 2,770 single outages.

Maps

The over-promises are not scattered at random. The voltage-limited over-promises (orange, 346 buses) line the long radial corridors at the edge of the network. The thermal ones (blue, 182) sit inside dense load centres, where DC finds the right element but the AC flows differ. A DC heatmap is least reliable exactly where a planner might hope to find cheap, uncongested land.

How many buses could take a project of a given size?

Project size DC heatmap GENCO alone GENCO + AC check
≥ 100 MW 983 784 834
≥ 300 MW 364 269 342
≥ 500 MW 231 139 207

Sites by size

6. The siting explorer

Open the explorer. It is a single static page with every number above:

  • a map that switches between the DC heatmap, GENCO and GENCO + AC check, coloured by headroom, by binding limit, or by whether a chosen project size fits;
  • a project-size slider that rings each bus where the DC heatmap says the project fits but the AC check finds a violation;
  • a card per bus showing headroom by method, the first violating size, the limiting outage and overloaded element (or low-voltage bus), the DC limit for comparison, and the lowest voltage across the screened cases as load grows (GENCO curve with AC-checked points);
  • a sortable table that copies to CSV.

Explorer

7. Runtime

  • Full screen: 7.6 s per site on a free T4 (GENCO 4.4 s for about 100 cases, AC check 0.8 s for 14 solves, DC with all outages 1.4 s). That is 3.2 GPU-hours for 1,522 buses on free Colab and Kaggle GPUs.
  • For comparison: our full-N-1 check took 155 s per site for one load size (2,770 AC solves on a 2-core CPU workspace). A brute-force AC heatmap over the same 10-step ladder would take on the order of 27 CPU-days for this grid. That is an estimate from measured times, not a run we made.
  • GENCO's own share includes CPU-side graph preparation, which we have not optimised.

8. Limitations

  • Synthetic grid, one operating point. The full screen uses one intact-topology operating point of the Texas 2000-bus synthetic grid, and validation uses two. The numbers demonstrate the method, not real ERCOT headroom, and headroom changes with dispatch and season.
  • Selected outages, not full N-1. GENCO and the AC check use about 9 outages per site. Full-N-1 AC held at 9 of 10 validation sites. The miss is a voltage problem that appears only with the new load in place, which our outage screen cannot see because it runs at no added load.
  • The reference for the full screen is AC-confirmed, not full AC. Full AC on every selected outage and size was run for the 30 validation cases only. Across all 1,522 buses, "exact" means "equal to the AC check", which starts from GENCO's answer.
  • Coarse ladder. Headroom is a ladder step (25–300 MW resolution), not a continuous value.
  • Planning criteria are typical, not ERCOT's. 0.95/0.90 p.u., 100% of rate A, 5% attribution. Steady state only: no stability, short-circuit or protection studies, and no reactive-limit (PV→PQ) switching in the AC reference.
  • GENCO alone is conservative at 230/500 kV, where buses never carry load in its training data (under-estimates at 35% of them). The AC check corrects these, but it costs more AC solves there.
  • The AC check assumes violations grow with load. It confirms GENCO's size and the next one (walking further up or down as needed) but does not re-check smaller sizes. A violation that appears at a small size and disappears at a larger one would be missed. None appeared in validation (30/30), but this is not ruled out.
  • No real geography. The maps use a force-directed network layout, so neighbours on the map are electrically close but positions are not geographic.

9. Relation to other entries

Entries #7 (Trust, but verify) and #8 (predict the change, not the state) also pair GENCO with an AC solver, for contingency screening. Our use is different in three ways:

  1. The question is siting: how many MW at each bus, under a load ladder.
  2. The baseline is the industry's DC heatmap, not another AC screen.
  3. GENCO serves both as the power-flow engine and as the voltage contingency screen that picks which outages to check.

Entry #7 reports that GENCO under-reacts to system-wide load growth. Our go/no-go test finds a related effect for a single large load: accuracy is excellent up to about 200 MW and degrades beyond 400 MW, once the true voltage is already far out of limits.

10. Next steps

  • Load-aware voltage screen: rerun GENCO's system-wide voltage screen with a test load at each site, to catch the one class of outage we missed.
  • Fine-tune GENCO for large single-bus loads, including at 230/500 kV, to remove the false alarms there.
  • Many operating points: headroom over a year of dispatch, giving how many hours a controllable data center would be curtailed at each bus.
  • Batch studies: combinations of 2–3 large loads connecting together, as ERCOT now studies them. Combinations multiply the number of cases, which is where GENCO's batching pays off most.

Open science and reproducibility

  • Code, results, figures and report: datasets/Bassant-Elsisi/genco-large-load-headroom (MIT). It includes the GENCO wrapper, AC and DC reference solvers, the headroom engine, Colab and Kaggle notebooks that run the full screen, every per-case result, and the validation tables.
  • Every number in this post is recomputed from the result tables by python code/headline_numbers.py --check (pandas only).
  • Explorer: spaces/Bassant-Elsisi/genco-siting-explorer.
  • Built on the released checkpoint gridfm/genco-pf-contingency (Texas 2000-bus), gridfm-graphkit and the gridfm-datakit data format.

Sign up or log in to comment