{
  "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_pjm_cycle",
  "codebooks": {
    "cycle": {
      "codes": {
        "C01": {
          "label": "Cycle 1 \u2014 the first reopened steady-state cluster cycle"
        },
        "TC1": {
          "label": "Transition Cycle 1 (legacy backlog over the network-upgrade threshold)"
        },
        "TC2": {
          "label": "Transition Cycle 2 (remaining legacy backlog)"
        }
      },
      "coverage": "the distinct cycle values observed in the served snapshot",
      "note": "`TC1`/`TC2` are the transition cycles re-processing the pre-Order-2023 serial backlog; `C01`+ are the reopened STEADY-STATE cycles (the new intake). Filter `cycle`=`C01` for the newest reopened-queue projects. Each cycle is studied as a cluster, not first-come serial.",
      "semantics": "as_reported_cluster_cycle",
      "source": "PJM ProjectTransition `Cycle` \u2014 the cluster cycle."
    },
    "fuel": {
      "codes": {
        "Natural Gas": {
          "label": "Natural gas"
        },
        "Offshore Wind": {
          "label": "Offshore wind"
        },
        "Solar": {
          "label": "Solar"
        },
        "Solar,Storage,Hybrid": {
          "label": "Solar + storage hybrid (is_hybrid = true)"
        },
        "Storage": {
          "label": "Storage"
        },
        "Wind": {
          "label": "Wind"
        }
      },
      "coverage": "the distinct fuel values observed in the served snapshot",
      "note": "Filter `fuel` by PJM's EXACT value (e.g. `Natural Gas`, `Solar`, `Storage`). Multi-tech projects are COMMA-joined with PJM's own `Hybrid` tag, e.g. `Solar,Storage,Hybrid` (flagged `is_hybrid`) \u2014 note this differs from the New Services queue feed's ';'-join.",
      "semantics": "as_reported_fuel_taxonomy",
      "source": "PJM ProjectTransition `Fuel` \u2014 the as-reported fuel taxonomy."
    },
    "status": {
      "codes": {
        "Active": {
          "label": "Active \u2014 a live request still in the cluster"
        },
        "EP": {
          "label": "Engineering & Procurement"
        },
        "UC": {
          "label": "Under Construction"
        },
        "UC-ISP": {
          "label": "Under Construction \u2014 In-Service Pending"
        },
        "Withdrawn": {
          "label": "Withdrawn \u2014 left the queue (the grid is withdrawn-dominated)"
        }
      },
      "coverage": "the distinct status values observed in the served snapshot",
      "note": "ALWAYS scope by `status` \u2014 the grid is withdrawn-dominated. `Active` is the live pipeline; `EP` = engineering & procurement; `UC`/`UC-ISP` = under construction; `Withdrawn` left the queue. Requested MW is never built \u2014 for built MW use the in_service_mw field or query_power_capacity_v1.",
      "semantics": "as_reported_queue_status",
      "source": "PJM ProjectTransition `Status` \u2014 the as-reported status."
    }
  },
  "data_point": {
    "does_not_answer": [
      "built/operating/nameplate capacity as a cycle total (requested_* MW is REQUESTED; for operating capacity use power.capacity / EIA-860M; in_service_mw is the only built figure here, per-project)",
      "a sum of requested MW treated as planned or operating capacity (most queued MW withdraws \u2014 requested totals are labeled, never read as built)",
      "a combined total across PJM's two queue publications (this cluster grid and the New Services queue power.interconnection_queue_pjm share rows; never summed or deduped across them)",
      "a cross-ISO or national queue total (methodologies differ per ISO \u2014 for the MISO queue use query_power_interconnection_queue_v1, for the CAISO queue use query_power_interconnection_queue_caiso_v1)",
      "which projects are data-center- or load-driven (PJM reports no load/data-center type; that inference is the analyst's)",
      "generation MWh, demand, prices, retail sales, or transmission flows",
      "lat/lon or plant-level attribution (only state, as-reported county, and derived county_fips)",
      "queues for other ISOs/RTOs \u2014 each is a separate block under the same gate"
    ],
    "grain": "project_snapshot",
    "id": "power.interconnection_queue_pjm_cycle",
    "note": "This is PJM's cluster/cycle service-request grid (the ProjectTransition export) \u2014 REQUESTED capacity in PJM's cluster cycles (TC1/TC2 transition + the reopened steady-state cycles, C01+), NOT built / operating capacity. Most queued MW withdraws before it is built. Filter `cycle` to scope to a cluster cycle and `status` (Active / Withdrawn / In Service) to scope the pipeline; every atom carries its as-reported status. PJM also reports in_service_mw (built) + ltf_mw (long-term firm transmission). For operating capacity use query_power_capacity_v1. This is a DIFFERENT publication from PJM's full New Services queue (query_power_interconnection_queue_pjm_v1) \u2014 the two share rows; never summed or compared across them, or across ISOs (the MISO queue is query_power_interconnection_queue_v1; the CAISO queue is query_power_interconnection_queue_caiso_v1).",
    "product_spec": "blocks/power_interconnection_queue_pjm_cycle/card.md",
    "represented_fact": "PJM's cluster/cycle service-request grid (the ProjectTransition export) \u2014 the cluster view of PJM's interconnection process: the TC1/TC2 transition cycles that re-process the pre-Order-2023 backlog, plus the reopened steady-state cycles (C01+). Served as-reported, project by project, with PJM's full 44-column structure: the cluster `cycle` and `stage` (phase / decision point), the developer, the requested megawatts (requested_max_output_mw = MFO, requested_summer_mw = MW Capacity / summer, requested_winter_mw = MW Energy / winter), the phased System-Impact-Study report URLs and statuses, and lifecycle dates. This is a REQUEST, not built capacity \u2014 historically most queued MW withdraws \u2014 so every requested_* MW is named as a request and never summed as operating capacity. PJM ALSO reports in_service_mw (realized built MW) and ltf_mw (long-term firm transmission MW), carried under their own names. This is a DIFFERENT publication from PJM's full New Services queue (power.interconnection_queue_pjm, the legacy serial + transition waiting line) \u2014 the two share rows but are never merged or summed. PJM carries no county_fips/lat-lon (derived by name, null otherwise) and no load/data-center type (never inferred).",
    "source_basis": [
      "energy.pjm.cycle"
    ],
    "source_decisions": [
      "docs/verticals/power/interconnection-queues.md"
    ]
  },
  "input": {
    "controls": [
      "include_records",
      "include_evidence",
      "limit",
      "order_by",
      "top_n",
      "order",
      "rollup_other"
    ],
    "date_range_params": [
      "submitted_date_from",
      "submitted_date_to"
    ],
    "date_ranges": [
      "submitted_date"
    ],
    "field_metadata": {},
    "filters": [
      "as_of",
      "cycle",
      "stage",
      "status",
      "state",
      "county_fips",
      "project_type",
      "capacity_or_energy",
      "fuel",
      "developer",
      "transmission_owner",
      "submitted_date"
    ],
    "group_by": [
      "cycle",
      "stage",
      "status",
      "state",
      "county_fips",
      "project_type",
      "capacity_or_energy",
      "fuel",
      "developer",
      "transmission_owner",
      "is_hybrid"
    ],
    "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": [
          "requested_max_output_mw",
          "requested_summer_mw",
          "requested_winter_mw",
          "in_service_mw",
          "ltf_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",
      "project_id",
      "project_id_raw",
      "cycle",
      "stage",
      "state",
      "state_raw",
      "county",
      "county_fips",
      "county_fips_source",
      "county_fips_unresolved",
      "fuel",
      "is_hybrid",
      "name",
      "commercial_name",
      "developer",
      "status",
      "project_type",
      "transmission_owner",
      "capacity_or_energy",
      "rights_mw",
      "withdrawn_remarks",
      "phase1_sis_report",
      "phase1_sis_report_status",
      "phase2_sis_report",
      "phase2_sis_report_status",
      "phase3_sis_report",
      "phase3_sis_report_status",
      "final_sis_report",
      "final_sis_report_status",
      "epa_gia_wmpa_report",
      "epa_gia_wmpa_report_status",
      "csa_usca_report",
      "csa_usca_report_status",
      "transmission_type",
      "tsr_id",
      "requested_max_output_mw",
      "requested_summer_mw",
      "requested_winter_mw",
      "in_service_mw",
      "ltf_mw",
      "submitted_date",
      "requested_in_service_date",
      "actual_in_service_date",
      "commercial_operation_milestone",
      "backfeed_date",
      "test_energy_date",
      "last_updated",
      "withdrawn_date",
      "tsr_start_date",
      "tsr_end_date",
      "report_period",
      "source_record_key",
      "source_row_number",
      "as_of",
      "raw_file_sha256",
      "citation"
    ],
    "metric_groups": {
      "built_mw": [
        "in_service_mw"
      ],
      "records": [
        "source_record_count"
      ],
      "requested_mw": [
        "requested_max_output_mw",
        "requested_summer_mw",
        "requested_winter_mw"
      ],
      "transmission_mw": [
        "ltf_mw"
      ]
    },
    "metric_metadata": {
      "in_service_mw": {
        "additive_across_groups": true,
        "aggregation": "sum",
        "authoritative_total_path": "summary.totals.in_service_mw",
        "category": "built_mw",
        "definition": "The realized BUILT MW once the project is in service (not a request).",
        "description": "Realized built MW for in-service projects \u2014 distinct from the requested_* family; never conflate.",
        "display_name": "In-service capacity (built)",
        "display_precision": "MW values are rounded to 6 decimal places in JSON.",
        "grain": "cycle project",
        "null_handling": "A project 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.in_service_mw",
        "source_fields": [
          "MW In Service"
        ],
        "unit": "MW"
      },
      "ltf_mw": {
        "additive_across_groups": true,
        "aggregation": "sum",
        "authoritative_total_path": "summary.totals.ltf_mw",
        "category": "transmission_mw",
        "definition": "The long-term firm transmission MW for transmission requests in the cycle grid.",
        "description": "Long-term firm transmission MW (transmission requests), as PJM reports it; not generation capacity.",
        "display_name": "Long-term firm transmission (MW)",
        "display_precision": "MW values are rounded to 6 decimal places in JSON.",
        "grain": "cycle project",
        "null_handling": "A project 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.ltf_mw",
        "source_fields": [
          "LTF MW"
        ],
        "unit": "MW"
      },
      "requested_max_output_mw": {
        "additive_across_groups": true,
        "aggregation": "sum",
        "authoritative_total_path": "summary.totals.requested_max_output_mw",
        "category": "requested_mw",
        "definition": "The project's Maximum Facility Output (MFO) \u2014 the headline requested size.",
        "description": "REQUESTED interconnection capacity (MW) in PJM's cluster/cycle process \u2014 a waiting line, NOT built/installed/operating capacity (most queued MW withdraws). Additive across distinct projects but a REQUESTED total only; for built MW see in_service_mw; for operating capacity use query_power_capacity_v1.",
        "display_name": "Requested capacity (max facility output)",
        "display_precision": "MW values are rounded to 6 decimal places in JSON.",
        "grain": "cycle project",
        "null_handling": "A project 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.requested_max_output_mw",
        "source_fields": [
          "MFO"
        ],
        "unit": "MW"
      },
      "requested_summer_mw": {
        "additive_across_groups": true,
        "aggregation": "sum",
        "authoritative_total_path": "summary.totals.requested_summer_mw",
        "category": "requested_mw",
        "definition": "The project's requested Capacity interconnection (summer net) MW.",
        "description": "REQUESTED interconnection capacity (MW) in PJM's cluster/cycle process \u2014 a waiting line, NOT built/installed/operating capacity (most queued MW withdraws). Additive across distinct projects but a REQUESTED total only; for built MW see in_service_mw; for operating capacity use query_power_capacity_v1.",
        "display_name": "Requested capacity (net summer)",
        "display_precision": "MW values are rounded to 6 decimal places in JSON.",
        "grain": "cycle project",
        "null_handling": "A project 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.requested_summer_mw",
        "source_fields": [
          "MW Capacity"
        ],
        "unit": "MW"
      },
      "requested_winter_mw": {
        "additive_across_groups": true,
        "aggregation": "sum",
        "authoritative_total_path": "summary.totals.requested_winter_mw",
        "category": "requested_mw",
        "definition": "The project's requested net winter MW (a winter MW figure, not MWh).",
        "description": "REQUESTED interconnection capacity (MW) in PJM's cluster/cycle process \u2014 a waiting line, NOT built/installed/operating capacity (most queued MW withdraws). Additive across distinct projects but a REQUESTED total only; for built MW see in_service_mw; for operating capacity use query_power_capacity_v1.",
        "display_name": "Requested capacity (net winter)",
        "display_precision": "MW values are rounded to 6 decimal places in JSON.",
        "grain": "cycle project",
        "null_handling": "A project 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.requested_winter_mw",
        "source_fields": [
          "MW Energy"
        ],
        "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 cluster-cycle projects in the current result scope (one atom = one PJM project).",
        "description": "Number of cluster-cycle projects contributing to the value \u2014 scope with cycle/status.",
        "display_name": "Cycle-grid project count",
        "display_precision": "Integer.",
        "grain": "cycle project",
        "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": [
      "requested_max_output_mw",
      "requested_summer_mw",
      "requested_winter_mw",
      "in_service_mw",
      "ltf_mw",
      "source_record_count"
    ],
    "summary_fields": [
      "group_count",
      "totals"
    ]
  },
  "primitive": "query_power_interconnection_queue_pjm_cycle_v1",
  "status": "available"
}
