Power Interconnection Queue (ISO-NE) API v1
Generated from
core.contract.describe_power_interconnection_queue_isone_v1()and checked fixture-backed examples. Do not hand-edit the example JSON files.
Capability
- Capability:
power.interconnection_queue_isone - Primitive:
query_power_interconnection_queue_isone_v1 - Status:
available - Current source:
energy.isone.queue - Source publisher: ISO New England (ISO-NE)
- Snapshot behavior:
as_of = latestresolves to an exact snapshot date in every response.
What It Can Answer
- Which projects have REQUESTED to connect to the ISO-NE grid, by state/county, fuel/technology, zone, and status.
- The net / summer-peak / winter-peak megawatts of each queued ISO-NE project, cited to its source row.
- The as-reported lifecycle status (A=Active / C=Commercial / W=Withdrawn), kept separate from build-progress project_status.
- The request type (G / ETU / TS) and per-stage study statuses, as ISO-NE reports them.
- Row-level detail records when
include_recordsis true. - Raw HTML row evidence for any returned row-level citation.
Represented Facts
ISO-NE's IRTT public-queue report lists each project's REQUESTED interconnection capacity — net, summer-peak and winter-peak MW, kept separate — for generation, elective-transmission-upgrade and transmission-service requests; a request, not built capacityISO-NE carries the requested-vs-built distinction in application_status (A=Active / C=Commercial / W=Withdrawn) and a SEPARATE build-progress project_status (Under Study / Under Construction / In Service / …), never collapsed; a Commercial project is the built readingISO-NE publishes no load/data-center request type (all rows are generation or transmission); the queue-position (QP) is a non-unique reference reused across historical projects, so the grain is the published row ordinal
Data Point Contract
- Data point:
power.interconnection_queue_isone - Product spec:
blocks/power_interconnection_queue_isone/card.md - Grain:
project_snapshot - Source basis:
energy.isone.queue - Represented fact: The ISO-NE generator interconnection queue — ISO New England's public IRTT "public queue" report, the waiting line of every project that has REQUESTED to connect to the New England grid, served as-reported, project by project. ISO-NE's full published structure is carried faithfully, in ISO-NE's own words, across all 31 columns of the rendered report: the three labeled megawatt readings (
net_mw,summer_mw,winter_mw, kept SEPARATE — ISO-NE publishes no single nameplate and we never blend them; net_mw=0 is a real Capacity-Network-Resource-only request, not a missing value), the requestrequest_type(G = Generation, ETU = Elective Transmission Upgrade, TS = Transmission Service), the space-delimited multi-valuefuel_type(EIA energy-source codes), the unit-type codeunit_type, the service codeserv, thejurisdiction(F = FERC / N = Non-FERC), the ISO-NE loadzone, the SIS / I.3.9 flags, the transmission owner, the per-stage study statuses (FS / SIS / OS / FAC / IA) with their study-document links, the location (state, county, point of interconnection), and the lifecycle dates. This is a REQUEST, not built capacity: historically the large majority of queued MW withdraws before it is built. ISO-NE carries the requested-vs-built distinction in its OWN structure —application_status(A = Active / C = Commercial / W = Withdrawn) and the SEPARATE build-progressproject_status(Under Study / Under Construction / Partially In Service / In Service / Suspended), kept distinct and never collapsed. This is a forward-looking slice (capacity/generation/demand are backward-looking actuals). The grain is the published row ordinal (QP, ISO-NE's queue position, is a non-unique reference reused across historical projects, served as-reported but never a join key). ISO-NE carries no county_fips and no structured lat/lon (a coordinate appears only inside the free-text POI string on ~3% of rows, never a column, never extracted); county_fips is derived by name (state-scoped) where it resolves and left null otherwise (offshore-wind "NA" rows, the cross-border NB row, and multi-county cells stay null). ISO-NE publishes no load/data-center request type — all rows are generation or transmission — so no load or data-center signal is inferred; that interpretation is the analyst's.
Does not answer:
built/operating/nameplate capacity as a queue total (net_mw/summer_mw/winter_mw are REQUESTED interconnection, not built; for operating capacity use power.capacity / EIA-860M; a Commercial (C) project is the per-project built reading)a single nameplate figure (ISO-NE publishes net, summer-peak and winter-peak MW separately; all three are served and never collapsed)a sum of MW treated as planned or operating capacity (most queued MW withdraws — totals are scoped by application_status, never read as built)a cross-ISO or national queue total (methodologies, inclusion, and withdrawal rates differ per ISO — never summed or deduped across ISOs; for MISO use query_power_interconnection_queue_v1, for PJM query_power_interconnection_queue_pjm_v1, for CAISO query_power_interconnection_queue_caiso_v1, for NYISO query_power_interconnection_queue_nyiso_v1)which projects are "data-center driven" or load requests (ISO-NE publishes no load/data-center request type — all rows are generation or transmission; that inference is never made here)the probability that a queued project will actually be built or reach commercial operationgeneration MWh, demand, prices, retail sales, or transmission flowslat/lon or plant-level attribution (ISO-NE supplies no structured coordinate; only state, as-reported county, ISO-NE zone, and derived county_fips)queues for other ISOs/RTOs (MISO, PJM, CAISO, NYISO, ERCOT, SPP) — each is a separate block under the same gate
REST Surface
GET /v1/healthGET /v1/capabilitiesGET /v1/power/interconnection-queue-isone/schemaPOST /v1/power/interconnection-queue-isone/queryPOST /v1/evidence/source-row
MCP Surface
list_capabilities_v1describe_power_interconnection_queue_isone_v1query_power_interconnection_queue_isone_v1get_source_evidence_v1
Local MCP Setup
Some MCP clients launch servers from the user's home directory or ignore a configured cwd. Use uv run --directory so the server always starts from the repository project.
{
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/OSINT",
"python",
"-m",
"core.mcp_server"
]
}
Leave EXASCALE_PARQUET_BASE / EXASCALE_RAW_BASE unset: the one server hosts every data point's tools, and with no override it resolves each block's promoted snapshots and raw archive from the repository layout. Setting either env var points ALL tools at one directory — a per-block path breaks every other block's tools. They exist only for single-source sandboxes and tests.
Request Schema
Filters:
as_ofstatecounty_fipsapplication_statusproject_statusrequest_typeunit_typefuel_typeservjurisdictionzoneclusterrequested_date
Group by:
statecounty_fipsapplication_statusproject_statusrequest_typeunit_typefuel_typeservjurisdictionzonecluster
Date range parameters:
requested_date_fromrequested_date_to
Controls:
include_recordsinclude_evidencelimitorder_bytop_norderrollup_other
Ranking (how order_by / top_n / order join — order_by ranks groups by a metric, never a group_by dimension; top_n needs both a group_by and an order_by):
{
"no_ranking": "Omit order_by and top_n to return all groups in group-key order.",
"order": {
"default": "desc",
"valid_values": [
"desc",
"asc"
]
},
"order_by": {
"accepts": "one of output.metrics",
"note": "Ranks the groups by a metric (a measure). Not a group_by dimension \u2014 rows already come back grouped by each group_by field.",
"requires": [
"group_by"
],
"valid_values": [
"net_mw",
"summer_mw",
"winter_mw",
"source_record_count"
]
},
"top_n": {
"note": "Keeps the top N groups by order_by; the rest fold into one (other) remainder (additive metrics sum into it, non-additive ones are nulled) so the result still reconciles to summary.totals.",
"requires": [
"group_by",
"order_by"
],
"type": "positive integer"
}
}
Output Schema
Aggregate metrics:
net_mwsummer_mwwinter_mwsource_record_count
Metric groups:
{
"records": [
"source_record_count"
],
"requested_mw": [
"net_mw",
"summer_mw",
"winter_mw"
]
}
Response summary fields:
group_counttotals
Accepted fact policy:
- Query responses contain accepted, gate-passed facts only.
- Gate, monitor, and audit quality signals are internal controls, not agent-facing answer caveats.
- If a source snapshot is not fit to serve, the source must fail closed before it reaches this API.
Metric metadata:
| Metric | Category | Unit | Aggregation | Additive Across Groups | Authoritative Total | Definition |
|---|---|---|---|---|---|---|
net_mw |
requested_mw | MW | sum | true | summary.totals.net_mw |
The project's net megawatts (0 for CNR-only requests), as ISO-NE reports it (Net MW). |
summer_mw |
requested_mw | MW | sum | true | summary.totals.summer_mw |
The project's maximum summer megawatt output, as ISO-NE reports it (Summer MW). |
winter_mw |
requested_mw | MW | sum | true | summary.totals.winter_mw |
The project's maximum winter megawatt output, as ISO-NE reports it (Winter MW). |
source_record_count |
records | count | count source records | true | summary.totals.source_record_count |
Count of ISO-NE queue table-rows in the current result scope (one atom = one row of the rendered public-queue report). |
Rollup rules:
summary.totals.<metric>is the authoritative total for the full matched query.- Grouped row metrics may be summed only when
additive_across_groupsistrue.
Detail record fields returned when include_records is true:
source_idsheet_nameisoqueue_positionsource_record_keyapplication_statusproject_statusrequest_typeproject_namestatestate_rawcountycounty_fipscounty_fips_sourcecounty_fips_unresolvedzonejurisdictionclusterunit_typefuel_typeservnet_mwsummer_mwwinter_mwsis_requiredi39to_reportdevpoifs_statussis_statusos_statusfac_statusia_statusfs_docs_urlsis_docs_urlos_docs_urlfac_docs_urlia_docs_urlrequested_dateupdated_dateop_datesync_datewithdrawn_datereport_periodsource_row_numberas_ofraw_file_sha256citation
Row-level citation fields:
source_idsource_urlsource_filesheetsource_rowraw_file_sha256as_of
Aggregate citation fields:
source_idpublishersource_urlsource_fileraw_file_sha256as_ofsource_rows_countsource_rows_sampleverifylineage_filter
Codebooks
| Field | Coverage | Codes | Examples | Note |
|---|---|---|---|---|
application_status |
the distinct application_status codes served from the ISO-NE snapshot | 3 | A = Active — a live request still in the queue (requested, not built), C = Commercial — the project is built and in service (the built reading), W = Withdrawn — the request left the queue (the queue is withdrawn-dominated) |
ALWAYS scope by application_status — the queue is dominated by Withdrawn requests. A is the live pipeline of REQUESTED (not built) capacity; C is Commercial (built and energized); W left the queue. A queue-MW total is requested capacity, never built — for built/operating capacity use query_power_capacity_v1. This is SEPARATE from project_status (build progress). |
request_type |
the distinct request types served from the ISO-NE snapshot | 3 | G = Generation interconnection request, ETU = Elective Transmission Upgrade, TS = Transmission Service |
ISO-NE's request type: most rows are generation (G); elective-transmission-upgrade (ETU) and transmission-service (TS) requests are NOT generation and may carry blank fuel/MW. Filter by ISO-NE's EXACT code. |
jurisdiction |
the distinct jurisdiction codes served from the ISO-NE snapshot | 3 | F = FERC-jurisdictional, N = Non-FERC, U = Unknown (documented by ISO-NE's dropdown; may be absent from a given snapshot) |
Whether the interconnection is under FERC jurisdiction. ISO-NE's dropdown documents three values (the third, U=Unknown, may not appear in every snapshot). Served verbatim; filter by ISO-NE's EXACT code. |
project_status |
the distinct build-progress statuses served from the ISO-NE snapshot | 5 | Under Study = Under study, Under Construction = Under construction, Partially In Service = Partially in service, In Service = In service (energized), Suspended = Suspended |
The SEPARATE build-progress reading, never collapsed into application_status. Blank where ISO-NE shows no icon (most active/withdrawn rows). Filter via detail records; values are ISO-NE's exact legend labels. |
study_phase_status |
the distinct study-phase statuses emitted across the five study columns in the served snapshot | 7 | Document Posted = Study document posted (a study-document link is served), Executed = Executed (the IA folder icon), IA Filed Unexecuted = Interconnection Agreement filed, unexecuted, ISA Not Executed = Interconnection Service Agreement not executed, In Progress = Study in progress |
Per-stage study status: FS=Feasibility Study, SIS=System Impact Study, OS=Optional Study, FAC=Facilities Study, IA=Interconnection Agreement. The values are the icon titles ISO-NE actually emits (these are the served codes — ISO-NE's printed legend lists a few labels that do not appear in the data, e.g. 'IA Executed', and omits 'IA Filed Unexecuted', so we key on the emitted titles). Blank where the stage has no icon. |
fuel_type |
the distinct fuel-type tokens observed in the served ISO-NE snapshot | 14 | SUN = Solar, BAT = Battery / energy storage, WND = Wind, NG = Natural gas, DFO = Distillate fuel oil |
ISO-NE's fuel is a SPACE-DELIMITED list of EIA energy-source codes — e.g. SUN BAT (solar + battery, a co-located hybrid) or DFO NG (a single unit that burns distillate fuel oil OR natural gas, a dual-fuel unit). We serve the value VERBATIM and derive NO hybrid flag — distinguishing a co-located hybrid from a dual-fuel unit is the analyst's call from these codes. Filter by ISO-NE's EXACT value (the whole space-delimited string). |
serv |
the distinct service codes observed in the served ISO-NE snapshot | 8 | CNR = Capacity Network Resource (deliverable capacity; Forward Capacity Auction eligible), NR = Network Resource (energy-injection capability), MIS = As-reported (ISO-NE publishes no public legend), CNI = As-reported (ISO-NE publishes no public legend), NI = As-reported (ISO-NE publishes no public legend) |
ISO-NE interconnection-service type. CNR (Capacity Network Resource — the higher Capacity Capability standard: deliverable capacity, needed to participate in the Forward Capacity Auction) and NR (Network Resource — the Network Capability standard: the ability to inject energy) are ISO-NE-defined. The remaining codes (MIS, CNI, NI, ES, NS) are ISO-NE's own service vocabulary served AS-REPORTED — ISO-NE publishes no consolidated legend for them. NOTE: both NA and N/A appear and are kept DISTINCT (served verbatim, never merged — whether ISO-NE intends them the same is the analyst's call). Filter by ISO-NE's EXACT value. |
unit_type |
the distinct unit codes observed in the served ISO-NE snapshot | 12 | PV = as-reported (EIA-prime-mover hint: photovoltaic) — not ISO-NE-confirmed, WT = as-reported (EIA-prime-mover hint: wind turbine) — not ISO-NE-confirmed, CC = as-reported (EIA-prime-mover hint: combined cycle) — not ISO-NE-confirmed, GT = as-reported (EIA-prime-mover hint: combustion/gas turbine) — not ISO-NE-confirmed, ST = as-reported (EIA-prime-mover hint: steam turbine) — not ISO-NE-confirmed |
ISO-NE publishes no public legend for the Unit column, so these are served AS-REPORTED. The codes align with the standard EIA prime-mover set (PV photovoltaic, WT wind turbine, CC combined cycle, GT combustion/gas turbine, ST steam turbine, IC internal combustion, FC fuel cell, PS pumped storage, HD hydro, OT other) — offered as a HINT, not ISO-NE-confirmed; we do not assert a mapping ISO-NE has not published. Filter by ISO-NE's EXACT code. |
dev |
the distinct Dev codes observed in the served ISO-NE snapshot | 4 | PD = as-reported (ISO-NE publishes no public legend), BL = as-reported (ISO-NE publishes no public legend), CD = as-reported (ISO-NE publishes no public legend), NA = as-reported (no Dev code) |
ISO-NE publishes no public legend for the Dev column; the codes (PD, BL, CD, NA) are served AS-REPORTED and we do not map them. Filter by ISO-NE's EXACT code. |
The complete machine-readable codebooks are included in capability-schema.json.
Checked Examples
| Agent question | Request params | Checked output |
|---|---|---|
| How much requested MW and how many rows sit in the ISO-NE queue, by lifecycle status? | {"group_by": ["application_status"]} |
isone-queue-by-status.json |
| Which New England states have the most active requested interconnection capacity? | {"application_status": "A", "group_by": ["state"], "order_by": "summer_mw", "top_n": 6} |
active-summer-mw-by-state.json |
| What fuels are the active ISO-NE generation interconnection requests? | {"application_status": "A", "group_by": ["fuel_type"], "request_type": "G"} |
active-by-fuel.json |
| Return one active ISO-NE queue project with a row-level citation. | {"application_status": "A", "include_records": true, "limit": 1} |
queue-detail-with-citation.json |
| Verify the raw workbook row behind a returned citation | citations[ref].verify (aggregate) or records[0].citation (detail) |
source-row-evidence.json |
| Dogfood the tool sequence as an agent | list -> describe -> query -> evidence |
agent-dogfood-transcript.json |
The checked schema output is capability-schema.json.
Agent Workflow
- Call
list_capabilities_v1and selectpower.interconnection_queue_isone. - Call
describe_power_interconnection_queue_isone_v1to inspect valid filters, groupings, metrics, and citation fields. - Call
query_power_interconnection_queue_isone_v1with bounded JSON params. - If the answer needs proof, pass a returned row-level
citationobject toget_source_evidence_v1. - Answer with the resolved
as_ofand relevant citations. Present returned metrics as authoritative for their declared source, snapshot, grain, and aggregation.