Methodology
Everything on this site is a deterministic transform of a public file. This page states the sources,
the node definition, every window and exclusion, every metric, and the list of things the public files cannot answer.
An auditor should be able to reproduce any figure from this page and DATA.md without reading code.
Source as-of dates
Age is measured against each source's own publication cadence, not against today. An annual report eleven months old is current, not stale; a monthly file two months old is stale. Thresholds are recorded per source in data/source_freshness.csv, and a source whose figures are withheld shows blank cells rather than zero.
| Source | Cadence | Published | Age | Status | |
|---|---|---|---|---|---|
| CAISO Public Queue Report | weekly | 2026-10-12 | 0 d | FRESH | figures shown |
| CAISO Cluster 15 Interconnection Requests report | ad-hoc | 2026-07-16 | 88 d | FRESH | figures shown |
| CAISO 2025 TPD allocation cycle results | annual | 2026-05-04 | 161 d | FRESH | figures shown |
| CAISO 2024 TPD allocation cycle results | archival | 2025-05-06 | 524 d | FRESH | figures shown |
| PG&E Wholesale Distribution Access Tariff queue | monthly | 2026-08-19 | 54 d | FRESH | figures shown |
| EIA-860 annual generator census | annual | 2026-09-10 | 32 d | FRESH | figures shown |
| CAISO Final 2027 Local Capacity Technical Report | annual | 2026-04-29 | 166 d | FRESH | figures shown |
| CAISO and PTO Cluster 16 POI availability notices | ad-hoc | 2026-01-15 | 270 d | FRESH | figures shown |
| OpenStreetMap substations via Overpass | on-demand | 2026-09-08 | 34 d | FRESH | figures shown |
| CAISO OASIS day-ahead LMP | on-demand | not established | MISSING | figures withheld |
Sources
CAISO Public Queue Report (three sheets: active, completed, withdrawn; report run date 2026-10-12).
CAISO Cluster 15 Interconnection Requests report (active + withdrawn sheets; posted 2026-07-16). CAISO 2024 and
2025 Transmission Plan Deliverability allocation cycle results. CAISO 2025 TPD Allocation Report (group definitions,
2026-04-13). CAISO Final 2027 Local Capacity Technical Report (area boundary substations, 2026-04-29). CAISO and PTO
notices on Cluster 16 POI availability, encoded only where a notice names the POI. PG&E Wholesale Distribution
(WDAT) public queue. OpenStreetMap substations (ODbL) for positions. Kings and Kern county GIS and CEC open data for
land screens. Licences and attribution: DATA_LICENSES.md.
What a node is
A node is CAISO's free-text point of interconnection normalised: upper-cased, voltage tokens, "SUBSTATION" / "SWITCHING STATION" and circuit suffixes (#1, #2) removed, line POIs split at the hyphen. Two consequences to keep in mind: a station's 230 kV and 500 kV yards are one node here even though they are different constraints, and a same-name station in two utilities can collide (utility is used to separate them where a source names it).
Windows, censoring, exclusions
"Recent" means withdrawn in the last 5 calendar years including the current one, i.e. from
2022. Storage MW per project is the sum of its storage components capped at its net-to-grid figure.
Survival curves: event = withdrawal at withdrawn_date; active projects censored at the public report run
date; completed projects censored at their on-line date (completion is success, not an event); Cluster 15 censored at
its posting date 2026-07-16, or at the latest withdrawal the file records if CAISO has re-posted it since; a cohort's S(t) is reported only while at least 5 projects remain at risk; rows with a
withdrawal before their queue date, or no queue date, are excluded and counted.
Attrition compares regimes, not only nodes. C10–C13 entered under the standard cluster process; C14 entered in April 2021 at 2.4x the prior year's volume under special procedures that made Phase I cost estimates advisory and refunded deposits in full on early withdrawal when Phase II costs came in 25 % or more above Phase I; C15 is the first cohort scored and capped by zone under the 2023 IPE, and its queue date (2025-02-12) is the post-scoring date, so the 541 → 170 intake cut happened before its month 0. A flatter C14 or C15 curve is partly the rule change, not only the projects or the nodes.
Ratios and small numbers
Every ratio on a node page carries the count of projects behind it. A ratio built on fewer than 3 projects or on a denominator under 500 MW is shown dimmed: it is arithmetically correct and statistically empty (a node with one withdrawal and one survivor has a churn of 1.00 or 3.33 or 0.10 depending on their sizes, and none of those numbers describes the node).
Metric definitions
| metric | definition |
|---|---|
legacy_active_mw | active MW in the public report (C14 and earlier) |
c15_active_mw | active MW in the Cluster 15 report |
operating_mw | completed MW in the public report |
pipeline_storage_mw | storage MW inside legacy_active_mw + c15_active_mw |
operating_storage_mw | storage MW inside operating_mw (completed, public report) |
wd_recent_mw | withdrawn in the last 5 years (both reports) |
wd_recent_storage_mw | storage MW of those rows — each project's storage components capped at its net-to-grid figure; a handful of filings report net-to-grid as 0 and keep the component MW, so this can exceed the row above at 3 nodes. |
wd_post_phase2_mw | withdrew AFTER Phase II / Facilities Study results (public report only) |
p2_reached_mw | MW of projects that received Phase II / Facilities Study results here (public report, any sheet) |
p2_withdrawn_mw | of those, MW that then withdrew (== wd_post_phase2_mw) |
p2_attrition | p2_withdrawn_mw / p2_reached_mw — share of studied MW that left with results in hand |
committed_mw | ACTIVE MW holding an executed interconnection agreement (public report) |
churn_n | projects behind storage_churn (withdrawn recent + queued + operating) |
c15_n | projects behind c15_survival |
p2_n | projects behind p2_attrition |
eia_plants | operable EIA-860 plants within 5 km of the node's mapped position (positioned nodes only) |
eia_nameplate_mw | their nameplate MW, all technologies (EIA-860 Generator file, Operable sheet) |
eia_storage_mwh | battery energy capacity among them (EIA-860 Energy Storage file), as reported |
eia_storage_1h_mw | storage MW at units whose reported MWh is no more than their MW (one hour or less); shown with 'duration not established' because the value may reflect how the form was filled |
eia_proposed_mw | nameplate MW in EIA-860's Proposed sheet within the same radius (planned / under construction) |
wd_alltime_mw | every withdrawn MW since 2006 (includes dead wind/solar-era projects) |
storage_churn | wd_recent_storage_mw / (active + operating storage MW) — the one to quote |
churn_alltime | wd_alltime_mw / (pipeline + operating MW) — historical color only |
c15_survival | c15_active / (c15_active + c15_withdrawn) |
c15_fcds_req_mw | C15 active MW that requested Full Capacity Deliverability Status (requested, not allocated) |
tpd25_projects | projects at the node that sought TPD in CAISO's 2025 allocation cycle |
tpd25_req_mw | MW at the node that sought TPD in CAISO's 2025 allocation cycle |
tpd25_alloc_mw | MW allocated in that cycle (requested × allocation %) |
tpd25_denied_mw | MW requested by rows that received 0 % |
tpd25_unalloc_mw | requested minus allocated: MW refused outright PLUS the remainder left by partial allocations — quote this for 'what the developer did not get' |
tpd25_unknown_mw | MW requested by rows with no allocation percentage in the file; 0 today |
tpd25_req_A_mw | of tpd25_req_mw, requested in allocation group A: executed PPA (or LSE own load) |
tpd25_req_B_mw | of tpd25_req_mw, requested in allocation group B: shortlisted / negotiating a PPA |
tpd25_req_C_mw | of tpd25_req_mw, requested in allocation group C: already in commercial operation |
tpd25_req_D_mw | of tpd25_req_mw, requested in allocation group D: no PPA, Section 8.9.2.3 path |
tpd25_denied_A_mw | of tpd25_denied_mw, refused at 0 % in group A |
tpd25_denied_B_mw | of tpd25_denied_mw, refused at 0 % in group B |
tpd25_denied_C_mw | of tpd25_denied_mw, refused at 0 % in group C |
tpd25_denied_D_mw | of tpd25_denied_mw, refused at 0 % in group D |
tpd25_denied_ppa_mw | refused MW in groups A + B: contracted or shortlisted projects that did not get deliverability; the refusal that matters |
tpd24_fcdsa_projects | projects at the node allocated Full Capacity in the 2024 cycle |
lcr_status | CAISO Local Capacity Area (Resource Adequacy geography): 'in <area>' or 'outside <area>' as the LCT report's boundary lists state it; blank = not encoded, never 'outside every area' |
lcr_sub_area | sub-area / load pocket within that area, when the LCT report delineates it |
wdat_active_projects | active WDAT requests at the same substation (WDAT = distribution-level queue at the same substation, PG&E file today; not CAISO deliverability) |
wdat_active_mw | MW of active WDAT (distribution-level) requests at the same substation (PG&E file today) |
wdat_active_storage_mw | storage MW attributed from wdat_active_mw — an assumption: the PG&E file publishes one MW figure per request, so storage-only requests count in full and solar+storage requests count at half (160 of 1,011 active requests carry storage; 362 of their 479 MW is attributed as storage). |
wdat_inservice_mw | WDAT MW already in service at that substation |
wdat_withdrawn_mw | WDAT MW withdrawn at that substation (all-time in the file) |
wdat_ft_over_cap_n | active Fast Track requests above the 5 MW Fast Track ceiling — held out of wdat_active_* |
wdat_ft_over_cap_mw | MW of those held-out rows, as posted; cause not established |
What the public files cannot answer
These are stated on every node page as Not public. They are the questions a developer must pay for, ask for, or accept as unknown — knowing which is which is most of the diligence.
| question | where the answer lives |
|---|---|
| Network upgrade cost per project | Phase I / Phase II cluster study reports, served through CAISO's RIMS login. |
| Per-constraint transmission headroom | the same study reports; CAISO's zonal transmission-capability table is the public proxy used for cluster scoring. |
| Interconnection customer identity | not in the Public Queue Report or the Cluster 15 report; project names only. |
| Interconnection financial security posted | computed per project from non-public study costs; no public $/MW rate reconstructs it. |
| Why a project withdrew | the files carry no reason beyond the withdrawal date. |
| Begin-construction status (tax credit eligibility) | not a CAISO data element. |
| Landowner willingness | assessor parcels give ownership class; owner names are withheld on purpose. |
| Load-side interconnection | data-center and other load requests are a utility process with no public queue. |
What this site never does
No composite score. No cause attributed to a withdrawal. No dollar figure that is not in a source. No per-project prediction. No names of private individuals: parcel owners are never read, and an EIA-860 owner or operator that reads as a person is counted, not named. No figure generated by a language model: the pipeline is deterministic Python, the code is public, and every output row carries the source file, the source run date and the pipeline commit.
Update cadence
A GitHub Actions job runs every Monday: it downloads CAISO's current files, rebuilds everything, and commits a dated snapshot, opens a row-level diff issue only when CAISO's report run date is new; the site itself is redeployed on every run.
No figure on this site states a cause. CAISO files carry no withdrawal reason beyond "IC Request".
Screening tool, not engineering advice. Built from public filings by an engineer who is not a licensed PE. Verify every figure against the source filing named in its row before you rely on it for any decision. No warranty of any kind. Not affiliated with CAISO, EIA, or any utility. No engineering services are offered.