{
  "anchors": [
    {
      "about": "2-letter state/jurisdiction code (PD-003).",
      "format": "usps_state",
      "kind": "geography",
      "name": "state",
      "scope": "universal"
    },
    {
      "about": "5-digit Census county FIPS, zero-padded string.",
      "format": "fips5",
      "kind": "geography",
      "name": "county_fips",
      "scope": "universal"
    }
  ],
  "capability": "power.interconnection_queue_ercot",
  "codebooks": {
    "application_status": {
      "codes": {
        "ACTIVE": {
          "label": "Active \u2014 a live request still in the queue (Large/Small Gen sheets; requested, not built)"
        },
        "CANCELLED": {
          "label": "Cancelled \u2014 recently cancelled (Cancellation Update sheet)"
        },
        "INACTIVE": {
          "label": "Inactive \u2014 recently went inactive (Inactive Projects sheet)"
        }
      },
      "coverage": "the lifecycle states served from the ERCOT snapshot",
      "note": "ALWAYS scope by `application_status`. `ACTIVE` = the live request pipeline (the Large/Small Gen sheets); `INACTIVE` / `CANCELLED` = projects that recently left the queue (the Inactive Projects / Cancellation Update sheets \u2014 these list RECENT departures, NOT the full historical withdrawn set). A queue-MW total is REQUESTED capacity, never built \u2014 for built/operating capacity use query_power_capacity_v1. Build progress is SEPARATE (gim_study_phase + dates).",
      "semantics": "as_reported_lifecycle_status",
      "source": "DERIVED from the GIS Report sheet the project is filed on (ERCOT prints no status column)."
    },
    "cdr_reporting_zone": {
      "codes": {
        "COASTAL": {
          "label": "Coastal"
        },
        "EAST-SPP": {
          "label": "as-reported legacy value (rare, 2018-2019)"
        },
        "HOUSTON": {
          "label": "Houston"
        },
        "NORTH": {
          "label": "North"
        },
        "PANHANDLE": {
          "label": "Panhandle"
        },
        "SOUTH": {
          "label": "South"
        },
        "WEST": {
          "label": "West"
        }
      },
      "coverage": "the distinct zones served from the ERCOT snapshot",
      "note": "ERCOT's CDR (Capacity, Demand and Reserves) reporting zone. Filter by ERCOT's EXACT value.",
      "semantics": "as_reported_ercot_zone",
      "source": "ERCOT GIS Report `CDR Reporting Zone` column \u2014 ERCOT's capacity/demand reporting zones."
    },
    "fuel": {
      "codes": {
        "BIO": {
          "label": "Biomass"
        },
        "COA": {
          "label": "Coal"
        },
        "GAS": {
          "label": "Gas"
        },
        "GEO": {
          "label": "Geothermal"
        },
        "HYD": {
          "label": "Hydrogen (NOT hydro \u2014 hydro is WAT)"
        },
        "MWH": {
          "label": "as-reported (post-2025-09; absent from ERCOT's published legend \u2014 likely battery-by-energy)"
        },
        "NUC": {
          "label": "Nuclear"
        },
        "OIL": {
          "label": "Fuel Oil"
        },
        "OTH": {
          "label": "Other (battery / storage projects carry OTH + technology BA)"
        },
        "PET": {
          "label": "Petcoke"
        },
        "SOL": {
          "label": "Solar"
        },
        "WAT": {
          "label": "Water (hydro)"
        },
        "WIN": {
          "label": "Wind"
        }
      },
      "coverage": "the distinct fuel codes served from the ERCOT snapshot",
      "note": "ERCOT's own fuel codes on the active sheets. NOTE: a battery / storage project carries `OTH` (fuel) + `BA` (technology) \u2014 there is no `BAT` fuel code in the standard legend (a one-month 2025-07 `BAT` anomaly aside). `HYD` is HYDROGEN, not hydro \u2014 hydro is `WAT`. On the Inactive / Cancellation sheets `Fuel` is FREE TEXT (e.g. 'Wind', 'Solar', 'Battery Storage'), not a code \u2014 served verbatim. Filter by ERCOT's EXACT value.",
      "semantics": "as_reported_ercot_fuel_code",
      "source": "ERCOT GIS Report `Fuel` column \u2014 ERCOT's own fuel codes (the report's `Acronyms` sheet legend)."
    },
    "gim_study_phase": {
      "codes": {},
      "coverage": "the distinct GIM Study Phase strings served from the ERCOT snapshot",
      "note": "ERCOT's build-progress signal \u2014 a COMMA-JOINED string of study-milestone tokens, e.g. 'SS Completed, FIS Completed, IA' (Screening Study completed, Full Interconnection Study completed, Interconnection Agreement) or 'SS Completed, FIS Started, No IA'. Served VERBATIM (never collapsed into a maturity score); the individual milestone DATE columns carry the same progression structurally. SS = Security Screening Study, FIS = Full Interconnection Study, IA = Interconnection Agreement. Filter by ERCOT's EXACT string.",
      "semantics": "as_reported_study_phase_string",
      "source": "ERCOT GIS Report `GIM Study Phase` column (Large Gen sheet) \u2014 a composite study-progress string."
    },
    "size_category": {
      "codes": {
        "Large": {
          "label": "Large generator"
        },
        "Small": {
          "label": "Small generator"
        }
      },
      "coverage": "the size classes served from the ERCOT snapshot",
      "note": "ERCOT splits the active queue into Large Gen and Small Gen sheets; the withdrawal sheets carry ERCOT's own `Size Category` value.",
      "semantics": "as_reported_size_class",
      "source": "ERCOT's Large/Small generator split (the sheet on the active tabs; the `Size Category` column on the withdrawal tabs)."
    },
    "technology": {
      "codes": {
        "BA": {
          "label": "Battery Energy Storage"
        },
        "CC": {
          "label": "Combined-Cycle"
        },
        "CE": {
          "label": "Compressed-Air Energy Storage"
        },
        "CP": {
          "label": "Concentrated Solar Power"
        },
        "EN": {
          "label": "Energy Storage"
        },
        "FC": {
          "label": "Fuel Cell"
        },
        "GT": {
          "label": "Combustion (gas) Turbine, not part of a Combined-Cycle"
        },
        "HY": {
          "label": "Hydroelectric Turbine"
        },
        "IC": {
          "label": "Internal Combustion Engine (e.g. reciprocating)"
        },
        "OT": {
          "label": "Other"
        },
        "PV": {
          "label": "Photovoltaic Solar"
        },
        "SO": {
          "label": "as-reported (post-2025-09; absent from ERCOT's published legend)"
        },
        "ST": {
          "label": "Steam Turbine, other than Combined-Cycle"
        },
        "WT": {
          "label": "Wind Turbine"
        }
      },
      "coverage": "the distinct technology codes served from the ERCOT snapshot",
      "note": "ERCOT's own technology codes on the active sheets (the (Fuel, Technology) pair defines the resource \u2014 e.g. SOL/PV solar, OTH/BA battery, GAS/CC combined-cycle, WIN/WT wind). Filter by ERCOT's EXACT code.",
      "semantics": "as_reported_ercot_technology_code",
      "source": "ERCOT GIS Report `Technology` column \u2014 ERCOT's own technology codes (the report's `Acronyms` sheet legend)."
    }
  },
  "data_point": {
    "does_not_answer": [
      "built/operating/nameplate capacity as a queue total (capacity_mw is REQUESTED interconnection, not built; for operating capacity use power.capacity / EIA-860M; build progress is in gim_study_phase + the milestone dates)",
      "a sum of capacity_mw treated as planned or operating capacity (most queued MW withdraws \u2014 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 \u2014 never summed or deduped across ISOs; for MISO use query_power_interconnection_queue_v1, for PJM query_power_interconnection_queue_pjm_v1 (or query_power_interconnection_queue_pjm_cycle_v1), for CAISO query_power_interconnection_queue_caiso_v1, for NYISO query_power_interconnection_queue_nyiso_v1, for ISO-NE query_power_interconnection_queue_isone_v1)",
      "the ERCOT large-load / data-center interconnection queue (a SEPARATE, unstructured ERCOT source published only as TAC-meeting PDF slides \u2014 not the GIS Report; the GIS Report is generation-only and no load/data-center type is inferred)",
      "which projects are \"data-center driven\" (ERCOT's GIS Report reports no load/data-center type; that inference is the analyst's, never tagged here)",
      "the probability that a queued project will actually be built or reach commercial operation",
      "generation MWh, demand, prices, retail sales, or transmission flows",
      "lat/lon or plant-level attribution (ERCOT supplies no coordinate and no State column; only county, derived county_fips, CDR reporting zone, and the constant state TX)",
      "queues for other ISOs/RTOs (MISO, PJM, CAISO, NYISO, ISO-NE, SPP) \u2014 each is a separate block under the same gate"
    ],
    "grain": "project_snapshot",
    "id": "power.interconnection_queue_ercot",
    "note": "This is ERCOT's interconnection queue \u2014 ERCOT's public GIS Report (EMIL PG7-200-ER). `capacity_mw` is REQUESTED interconnection capacity (a waiting line), NOT built / installed / operating capacity (ERCOT publishes one capacity figure, no summer/winter split). ERCOT prints no status column, so always scope by `application_status` (ACTIVE / INACTIVE / CANCELLED) \u2014 derived from the sheet ERCOT files the project on (the Inactive/Cancellation sheets list RECENT departures, not the full historical withdrawn set). The build-progress reading lives SEPARATELY in `gim_study_phase` + the milestone dates and is never collapsed into application_status. For operating capacity use query_power_capacity_v1. The GIS Report is generation-only \u2014 ERCOT's large-load / data-center queue is a SEPARATE, unstructured source (TAC-meeting PDF slides) and is not served here; no load/data-center type is inferred. ERCOT only \u2014 never summed or compared across ISOs; for MISO use query_power_interconnection_queue_v1, for PJM query_power_interconnection_queue_pjm_v1 (or query_power_interconnection_queue_pjm_cycle_v1), for CAISO query_power_interconnection_queue_caiso_v1, for NYISO query_power_interconnection_queue_nyiso_v1, for ISO-NE query_power_interconnection_queue_isone_v1.",
    "product_spec": "blocks/power_interconnection_queue_ercot/card.md",
    "represented_fact": "The ERCOT generator interconnection queue \u2014 ERCOT's public GIS Report (EMIL PG7-200-ER, reportTypeId 15933), the waiting line of every generation project that has REQUESTED to connect to the ERCOT (Texas) grid, served as-reported, project by project across the four lifecycle sheets ERCOT publishes (Large Gen + Small Gen = active; Inactive Projects; Cancellation Update). ERCOT's full published structure is carried faithfully, in ERCOT's own words: the requested interconnection `capacity_mw` (ERCOT publishes one capacity figure, no summer/winter split), the `fuel` and `technology` codes, the `cdr_reporting_zone`, the `interconnecting_entity`, the `poi_location`, the composite `gim_study_phase` token string, and the milestone dates (screening study, FIS, IA signed, air/GHG permit, water availability, meets-planning, construction start/end, approved for energization/synchronization, projected COD). This is a REQUEST, not built capacity: historically the large majority of queued MW withdraws before it is built. ERCOT publishes NO single status column, so `application_status` (ACTIVE / INACTIVE / CANCELLED) is derived from the sheet ERCOT files the project on \u2014 and `sheet_name` is served verbatim alongside, so the derivation is transparent and reversible (this reads ERCOT's own filing structure; it invents no maturity score). The build-progress reading is carried SEPARATELY in `gim_study_phase` + the milestone dates, never collapsed into application_status. (The Inactive/Cancellation sheets list RECENT departures, not the full historical withdrawn set.) This is a forward-looking slice (capacity/generation/demand are backward-looking actuals). ERCOT carries no county_fips, no lat/lon, and no State column (its footprint is within Texas, so `state` = TX); county_fips is derived by name where it resolves and left null otherwise. ERCOT files a hybrid project's legs (e.g. solar + co-located storage) as SEPARATE INR rows linked only by a shared `poi_location` \u2014 no in-row hybrid flag exists, so none is invented; that co-location join is the analyst's. It is NOT a data-center product \u2014 the GIS Report is generation-only (ERCOT's large-load / data-center queue is a separate, unstructured source we do not serve) and no load/data-center type is inferred.",
    "source_basis": [
      "energy.ercot.queue"
    ],
    "source_decisions": [
      "docs/sources/energy/ercot/gis_queue/build-plan.md"
    ]
  },
  "input": {
    "controls": [
      "include_records",
      "include_evidence",
      "limit",
      "order_by",
      "top_n",
      "order",
      "rollup_other"
    ],
    "date_range_params": [
      "projected_cod_from",
      "projected_cod_to"
    ],
    "date_ranges": [
      "projected_cod"
    ],
    "field_metadata": {},
    "filters": [
      "as_of",
      "state",
      "county_fips",
      "application_status",
      "size_category",
      "fuel",
      "technology",
      "cdr_reporting_zone",
      "gim_study_phase",
      "interconnecting_entity",
      "projected_cod"
    ],
    "group_by": [
      "state",
      "county_fips",
      "application_status",
      "size_category",
      "fuel",
      "technology",
      "cdr_reporting_zone",
      "gim_study_phase",
      "interconnecting_entity"
    ],
    "ranking": {
      "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": [
          "capacity_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": {
    "aggregate_citation_fields": [
      "source_id",
      "publisher",
      "source_url",
      "source_file",
      "raw_file_sha256",
      "as_of",
      "source_rows_count",
      "source_rows_sample",
      "verify",
      "lineage_filter"
    ],
    "citation_fields": [
      "source_id",
      "source_url",
      "source_file",
      "sheet",
      "source_row",
      "raw_file_sha256",
      "as_of"
    ],
    "detail_fields": [
      "source_id",
      "sheet_name",
      "iso",
      "inr",
      "source_record_key",
      "application_status",
      "size_category",
      "project_name",
      "interconnecting_entity",
      "state",
      "county",
      "county_fips",
      "county_fips_source",
      "county_fips_unresolved",
      "cdr_reporting_zone",
      "fuel",
      "technology",
      "poi_location",
      "capacity_mw",
      "gim_study_phase",
      "economic_study_required",
      "air_permit",
      "ghg_permit",
      "water_availability",
      "change_indicators",
      "financial_security",
      "comment",
      "screening_study_started",
      "screening_study_complete",
      "fis_requested",
      "fis_approved",
      "ia_signed",
      "meets_planning",
      "meets_all_planning",
      "construction_start",
      "construction_end",
      "approved_for_energization",
      "approved_for_synchronization",
      "projected_cod",
      "model_ready_date",
      "inactive_date",
      "cancel_date",
      "report_period",
      "source_row_number",
      "as_of",
      "raw_file_sha256",
      "citation"
    ],
    "metric_groups": {
      "records": [
        "source_record_count"
      ],
      "requested_mw": [
        "capacity_mw"
      ]
    },
    "metric_metadata": {
      "capacity_mw": {
        "additive_across_groups": true,
        "aggregation": "sum",
        "authoritative_total_path": "summary.totals.capacity_mw",
        "category": "requested_mw",
        "definition": "The project's requested interconnection capacity in MW, as ERCOT reports it (`Capacity (MW)` on the active sheets, `MW **` on the withdrawal sheets).",
        "description": "This is REQUESTED interconnection capacity (a project in the queue), NOT built, installed, or operating capacity: historically the large majority of queued MW withdraws before it is built. It is additive across distinct rows (each is its own request) but must be read as REQUESTED \u2014 scope it with `application_status` (ACTIVE / INACTIVE / CANCELLED, derived from the sheet ERCOT files the project on). ERCOT publishes one capacity figure (no summer/winter split). The build-progress reading lives SEPARATELY in `gim_study_phase` + the milestone dates, never in this number. For operating capacity use query_power_capacity_v1.",
        "display_name": "Capacity (MW, requested)",
        "display_precision": "MW values are rounded to 6 decimal places in JSON to remove binary floating-point noise.",
        "grain": "queue project row",
        "null_handling": "capacity_mw=0 is a REAL value (a not-yet-sized or net-zero-change repowering request), not missing. A row with no reported value contributes null (ignored by the sum). An empty-query summary returns zero.",
        "rollup_behavior": "additive_partition_metric",
        "row_metric_path": "rows[].metrics.capacity_mw",
        "source_fields": [
          "Capacity (MW)",
          "MW **"
        ],
        "unit": "MW"
      },
      "source_record_count": {
        "additive_across_groups": true,
        "aggregation": "count source records",
        "authoritative_total_path": "summary.totals.source_record_count",
        "category": "records",
        "definition": "Count of ERCOT GIS queue rows in the current result scope (one atom = one INR row of an in-scope sheet).",
        "description": "Number of queued rows contributing to the value \u2014 scope with application_status to separate active from inactive from cancelled.",
        "display_name": "Queued row count",
        "display_precision": "Integer.",
        "grain": "queue project row",
        "null_handling": "Always an integer count.",
        "rollup_behavior": "additive_partition_metric",
        "row_metric_path": "rows[].metrics.source_record_count",
        "source_fields": [
          "source_record_key"
        ],
        "unit": "count"
      }
    },
    "metrics": [
      "capacity_mw",
      "source_record_count"
    ],
    "summary_fields": [
      "group_count",
      "totals"
    ]
  },
  "primitive": "query_power_interconnection_queue_ercot_v1",
  "status": "available"
}
