To connect a power plant or a big datacenter to the grid, you file a request with your region’s grid operator and wait in line. That line is the queue.
A gigawatt (GW) is 1,000 megawatts (MW), the size AI datacenter projects ask for. Texas has 466 GW in line, the Midwest 699 GW. Forecasters quote those totals as if everything in line were on its way.
I counted 9,643 requests, 8,006 of them already finished — built, or given up on. About one in five got built. At 1,000 MW and above, one in nineteen.
The four operators run the Midwest, New York, California and New England — MISO, NYISO, CAISO and ISO-NE. Texas is not among them, so the 466 GW above is not in these figures: it blocks automated downloads. Nor is the mid-Atlantic (PJM), which needs a free key, nor the central plains (SPP), which never answered.
Above 100 MW, each step up in size cuts the chance of being built: 23.9%, then 12.6%, then 5.3%. Under 100 MW the pattern breaks. The 20–100 MW band does worse than both of its neighbours.
| size | requests | built | range |
|---|---|---|---|
| under 20 MW | 1,024 | 28.8% | 26.1–31.7% |
| 20–100 MW | 1,639 | 19.0% | 17.2–21.0% |
| 100–300 MW | 1,654 | 23.9% | 21.9–26.0% |
| 300–1,000 MW | 680 | 12.6% | 10.4–15.4% |
| 1,000 MW and above | 169 | 5.3% | 2.8–9.8% |
The last column is the range the true rate is likely to sit in. It is drawn so that, on twenty sets of data like this, about nineteen of the ranges — 95% of them — would contain the true rate. Bands with fewer requests get wider ranges. These are Wilson intervals, named so you can recompute them: the ordinary textbook formula misbehaves for rates this close to zero, which is exactly where the big projects sit.
Built rates by what the plant runs on. Spellings were merged first — the second bug below says why.
| runs on | built |
|---|---|
| gas | 33.1% |
| solar | 23.2% |
| wind | 19.5% |
| storage | 9.5% |
The headline is about 1 in 5. Here is the working. Two ways of counting, and only one of them is honest.
16.6% counts the built ones across every request that has ended. That is too low. A request filed in 2024 has not had time to be built. Counting it now marks a project still waiting as a failure.
21.4% groups requests by the year they joined the line and counts each year on its own, using a year only once at least 90% of its requests have finished. That leaves 5,433 requests, and it is the figure above.
Only 4 finished requests carry no filing date, so almost nothing drops out of the year groups. Put all four back in and the answer moves to 21.5%. That is the whole uncertainty from missing dates.
This page used to say 17–21%. The lower end was wrong, and the third bug below is why.
Mixed date formats silently destroyed 7,400 of 9,640 dates. Operators write filing dates four ways: 2003-11-18 08:00:00, 1/14/2025, 2025-10-08T00:37:52+00:00, 2008-01-30. The date tool (pandas.to_datetime) read the first, assumed the rest matched, and blanked the others. 84% vanished. A blanked date looks exactly like one nobody filled in. It surfaced only because the script checks whether requests with no date got built at a different rate.
Sloppy technology labels invented a finding. My first table read Solar 32.1% beside Photovoltaic 13.0%, and Wind 19.1% beside Wnd 26.9%. Each operator spells a technology its own way. The difference was not solar against photovoltaic. It only showed which operator had filed the row. Anyone who published that split would have published a mistake. So “Solar” and “Photovoltaic” became one label, and so did “Wind” and “Wnd”.
1,350 blank spreadsheet rows were being counted as failed projects. One operator publishes its withdrawn projects on a spreadsheet tab holding 2,515 rows, but only 1,452 of them are projects. The rest are padding: no reference number, no name, no date, no location, capacity 0.0, and a status column filled down to “Withdrawn”. The reader ingested every one as a withdrawn project. They never reached the headline, because every rate here counts only requests with a filing date and these have none — but they inflated the total from 9,643 to 10,996, and they dragged the all-in figure from 16.6% down to 14.2%. Worse, they were the entire reason this page used to quote a range: the low end assumed 1,351 dateless failures that were never projects. Found by pointing my own data-checking tool at my own dataset, weeks after publishing it.
The technology split is not a fair fight. Regions build different things. Part of the difference between gas and solar is really about where the project is, not what it burns.
Coverage has holes. California’s report stops at March 2023. The Midwest queue begins in 2015. “Built” is generous. It means the paperwork with the operator finished, not that the plant switched on. No forecast. This counts what already happened. No model is fitted.
The two markets you most want are missing. Texas publishes requests from very large electricity users only as a lump total, and blocks software from downloading the detail. The mid-Atlantic operator makes you sign up for a free key. A third operator, in the central plains, timed out when I asked.
The Midwest operator serves its whole queue — 3,828 requests with status, county, capacity and dates — from one open address. No sign-up:
https://www.misoenergy.org/api/giqueue/getprojects
Count the ones given up on. It takes about a minute. You do not have to take my word for any of the above. Your totals will not match mine: the operators overwrite this file, and nobody keeps the old value.
The last time I measured my own work, it failed, and I said so. I built a tool on public financial data and tested whether it predicted anything. I tested fifty-one ideas. Test that many and some will look good on luck alone. So I raised the bar (the Benjamini–Hochberg correction, named so you can repeat it) a result had to clear before I would call it real. Zero of the fifty-one cleared it.
I withdrew the product. I published the empty result, with my workings on the strength of the test. The ranking I had been about to sell turned out to be 90% driven by a date stored as a plain number.