Last time I wrote about a $45bn number that vanished from NVIDIA's SEC filings. At the end I
mentioned I run grid and power data alongside it, and a few people asked what that was for. Here it is.
If you want to build a data centre, a solar farm, or anything that plugs into the grid, you join
an interconnection queue. The number you will read everywhere is "the queue takes about four years." That figure is a median computed on the projects that finished. It describes the survivors.
Here is the full population.
What this chart shows: every interconnection request on file, split by what happened to it. The green sliver on the left is the projects that got built. The wide grey band is the ones that were withdrawn. The gold band on the right is still waiting and has an outcome yet to come, which is
why the completion rate is measured across the decided requests alone, marked by the arrow. The last 678 sit in another queue status and are drawn in, because a bar that stops short of its own total misleads quietly.
Of the 29,010 requests that reached a decision, 16.5% were energised. So the honest headline
is two numbers: how long it takes, and how likely it is to happen at all. The second one is usually missing.
One call gets you both
curl -s "https://api.nwc-advisory.com/us-power/v1/queue/technology" \
-H "X-RapidAPI-Key: $KEY"
{
"technologies": [
{ "technology": "Solar+Battery", "median_years": 7.22,
"p90_years": 11.25, "completion_rate_resolved": 0.0431 },
{ "technology": "Solar", "median_years": 4.59,
"p90_years": 7.18, "completion_rate_resolved": 0.1174 },
{ "technology": "Nuclear", "median_years": 3.88,
"p90_years": 6.39, "completion_rate_resolved": 0.5854 }
],
"national": { "projects": 38201, "median_years": 3.58,
"completion_rate_resolved": 0.1651 }
}
Nine technologies, each with the wait and the odds. Hydro clears in 1.91 years and half of it gets built. Solar-plus-battery takes 7.22 years and 4.3% of it gets built. Those are different businesses, and a single national median hides the difference.
The spread by technology is wider than the spread by region. That matters for the obvious next question.
The measure that changes the ranking
Rank the regions by raw median and CAISO comes out slowest at 6.02 years. That result mostly reflects what California builds. Reweight each region's completed projects to the national technology mix and you get the part that belongs to process:
curl -s "https://api.nwc-advisory.com/us-power/v1/queue/regions" -H "X-RapidAPI-Key: $KEY"
{
"regions": [
{ "region": "CAISO", "observed_median_years": 6.02,
"standardised_median_years": 5.18, "mixture_effect_years": 0.82,
"capacity_weighted_median_years": 7.29 },
{ "region": "NYISO", "observed_median_years": 4.61,
"standardised_median_years": 4.50, "mixture_effect_years": 0.0,
"capacity_weighted_median_years": 6.09 }
]
}
Three medians per region, each labelled. The published figures I have found quote the first one alone.
What this chart shows: each row is an interconnection region. The grey dot is the median wait as
measured. The arrow points to where that median moves once the region's projects are reweighted to the national technology mix: green where it adjusts down, meaning the region processes faster than its raw number suggests, gold where it adjusts up. The open circle is the capacity-weighted median, which is what a gigawatt waits where the grey dot is what one application waits, and it sits to the right of the observed median in every region. NYISO shows the observed mark alone, because the endpoint reports its mixture effect as nil.
0.82 years of CAISO's slowness is its technology mix. The ranking flips at the other end: the West posts 2.05 years and standardises to 2.53, so it earns its reputation from an easy mix. PJM runs the other way and processes faster than its raw median suggests.
The third column is the one that matters if you are siting real load. It answers what a gigawatt waits, where the headline answers what one application waits, and it runs higher than the observed median in every region. CAISO 7.29 against 6.02.
Every figure can refuse
19 states hold enough completed projects to support a median. For the other 32 the API returns the
price it can support and withholds the figure it cannot, naming the rule:
{
"state": "AK",
"price_latest_cents_kwh": 20.03,
"queue_median_years": null,
"withheld": "connection time withheld: below the completion floor for this state"
}
Once a carried-forward value reaches a spreadsheet it looks exactly like a measured one. Every endpoint here returns the gap with its reason attached, and publishes the floor that triggered it meta.guards, so any number can be checked back to its source.
Why this is an API
The sources are free. LBNL publishes the queues under CC BY 4.0 and EIA publishes electricity prices in the public domain with no key. You can download both this afternoon.
The assembly is the work:
- Durations need queue-entry and commercial-operation dates reconciled across operators that record them differently.
-
Completion rates need a defensible denominator. Active requests are excluded because they
have no outcome yet, and that choice is published in
definitionsfor you to check. - Young cohorts are censored. Recent queue years are dropped where under 80% has resolved, because their completed projects are the fast ones and including them biases the median down.
- Standardisation needs a per-region technology mix and a weighted median.
- Floors decide which cells survive at all: 50 completions per state, durations bounded to a 0 to 25 year window.
That is the part that takes weeks, and it is the part that goes stale every time LBNL publishes.
Start on the free tier
The API is on RapidAPI. The free plan runs 50 requests a month, which covers a full sweep of every region and technology with room to spare, and the interactive docs are open with no key at all:
api.nwc-advisory.com/us-power/docs
GET /v1/queue/technology wait, quartiles, p90 and completion rate for 9 technologies
GET /v1/queue/regions observed, mix-standardised and capacity-weighted, per region
GET /v1/siting/{state} industrial power price joined to connection time
GET /v1/capex-vs-queue filed hyperscaler capex against generation entering the queue
GET /v1/sources every source, its licence, and the rules each panel enforces
Every endpoint also runs over MCP, so an agent can call it directly.
That fourth endpoint is where the filings work and the grid work meet. Between 2018 and 2025 hyperscaler capital expenditure as filed with the SEC rose 457.7%, and firm generation entering the queues rose 431.0%. Two records, built by unrelated parties for unrelated reasons, moving together. Variable generation rose 6.1% over the same window, which is the more interesting half of the result.
The caveats, which are real
A queue entry records a request. Commitment comes later, if at all. Withdrawal often reflects a speculative filing, and some developers file several positions and keep one. The completion rate describes queue behaviour at large and leaves your own project an open question. Durations are computed on completed projects, which is the survivor problem I opened with; it persists, and the response labels it.
If you have run a project through a queue, I would like to know which of the three medians matches what you saw.


Top comments (0)