{
  "anchors": [],
  "capability": "power.capacity_market_miso",
  "codebooks": {
    "atom_type": {
      "codes": {
        "acp": {
          "label": "acp"
        },
        "acp_erz_verbatim": {
          "label": "acp erz verbatim"
        },
        "cone_annual": {
          "label": "cone annual"
        },
        "cone_seasonal": {
          "label": "cone seasonal"
        },
        "imm_threshold": {
          "label": "imm threshold"
        }
      },
      "coverage": "v1 published price and parameter atoms",
      "source": "MISO PRA posting"
    }
  },
  "data_point": {
    "does_not_answer": [
      "energy-market LMPs, day-ahead or real-time prices, or plant revenue",
      "PRMR, LCR, CIL/CEL, cleared-MW, or offer-curve quantities (published in the posting but out of v1 scope)",
      "pre-2024 planning years (the postings' historical comparison tables are out of v1 scope)",
      "a demand-curve position, scarcity interpretation, or effective capacity price",
      "ZRC-to-UCAP conversions, resource-specific accreditation, or FRAP volumes"
    ],
    "grain": "auction_planning_year_season_zone_or_parameter",
    "id": "power.capacity_market_miso",
    "note": "ERZ ranges remain verbatim. The 2024 posting states annual zonal CONE and IMM thresholds but no seasonal subregional CONE; none is inferred from zonal data.",
    "product_spec": "blocks/power_capacity_market_miso/card.md",
    "represented_fact": "MISO Planning Resource Auction results as published in the annual PRA results posting: seasonal zonal Auction Clearing Prices in USD per MW-day of Seasonal Accredited Capacity for Zones 1-10, External Resource Zone clearing quoted verbatim where the document states a range, seasonal subregional and annual zonal Cost of New Entry values, and the Independent Market Monitor conduct thresholds the posting publishes beside them. CONE is recorded as the document's stated administrative parameter \u2014 the price-cap analog \u2014 on the basis its stating document uses, never interpreted, annualized, or converted by this block. A corrections posting is a distinct document identity: its atoms cite the corrections file, and earlier postings are never silently replaced.",
    "source_basis": [
      "energy.miso.pra"
    ],
    "source_decisions": []
  },
  "input": {
    "controls": [
      "include_records",
      "include_evidence",
      "limit",
      "order_by",
      "top_n",
      "order",
      "rollup_other"
    ],
    "date_range_params": [],
    "date_ranges": [],
    "field_metadata": {},
    "filters": [
      "as_of",
      "auction_label",
      "planning_year",
      "season",
      "zone",
      "scope",
      "atom_type"
    ],
    "group_by": [
      "auction_label",
      "planning_year",
      "season",
      "zone",
      "scope",
      "atom_type"
    ],
    "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": [
          "avg_acp_usd_mw_day",
          "min_acp_usd_mw_day",
          "max_acp_usd_mw_day",
          "cone_usd_mw_day",
          "imm_conduct_threshold_usd_mw_day",
          "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",
      "auction_label",
      "planning_year",
      "season",
      "zone",
      "scope",
      "atom_type",
      "acp_usd_mw_day",
      "acp_erz_verbatim",
      "cone_usd_mw_day",
      "imm_conduct_threshold_usd_mw_day",
      "report_period",
      "source_record_key",
      "source_row_number",
      "as_of",
      "raw_file_sha256",
      "citation"
    ],
    "metric_groups": {
      "price": [
        "avg_acp_usd_mw_day",
        "min_acp_usd_mw_day",
        "max_acp_usd_mw_day",
        "cone_usd_mw_day",
        "imm_conduct_threshold_usd_mw_day"
      ],
      "records": [
        "source_record_count"
      ]
    },
    "metric_metadata": {
      "avg_acp_usd_mw_day": {
        "additive_across_groups": false,
        "aggregation": "average",
        "authoritative_total_path": "summary.totals.avg_acp_usd_mw_day",
        "category": "price",
        "definition": "Average auction clearing price over the current result scope.",
        "description": "Average auction clearing price; document and delivery-year identity remain explicit.",
        "display_name": "Average auction clearing price",
        "display_precision": "Numeric source precision is preserved; JSON removes binary floating-point noise.",
        "grain": "auction x planning year x season x zone or parameter",
        "null_handling": "Null when no applicable published value exists; source-record counts are always integers.",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.avg_acp_usd_mw_day",
        "source_fields": [
          "acp_usd_mw_day"
        ],
        "unit": "USD/MW-day"
      },
      "cone_usd_mw_day": {
        "additive_across_groups": false,
        "aggregation": "maximum",
        "authoritative_total_path": "summary.totals.cone_usd_mw_day",
        "category": "price",
        "definition": "Published Cost of New Entry over the current result scope.",
        "description": "Published Cost of New Entry; document and delivery-year identity remain explicit.",
        "display_name": "Published Cost of New Entry",
        "display_precision": "Numeric source precision is preserved; JSON removes binary floating-point noise.",
        "grain": "auction x planning year x season x zone or parameter",
        "null_handling": "Null when no applicable published value exists; source-record counts are always integers.",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.cone_usd_mw_day",
        "source_fields": [
          "cone_usd_mw_day"
        ],
        "unit": "USD/MW-day"
      },
      "imm_conduct_threshold_usd_mw_day": {
        "additive_across_groups": false,
        "aggregation": "maximum",
        "authoritative_total_path": "summary.totals.imm_conduct_threshold_usd_mw_day",
        "category": "price",
        "definition": "Published IMM conduct threshold over the current result scope.",
        "description": "Published IMM conduct threshold; document and delivery-year identity remain explicit.",
        "display_name": "Published IMM conduct threshold",
        "display_precision": "Numeric source precision is preserved; JSON removes binary floating-point noise.",
        "grain": "auction x planning year x season x zone or parameter",
        "null_handling": "Null when no applicable published value exists; source-record counts are always integers.",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.imm_conduct_threshold_usd_mw_day",
        "source_fields": [
          "imm_conduct_threshold_usd_mw_day"
        ],
        "unit": "USD/MW-day"
      },
      "max_acp_usd_mw_day": {
        "additive_across_groups": false,
        "aggregation": "maximum",
        "authoritative_total_path": "summary.totals.max_acp_usd_mw_day",
        "category": "price",
        "definition": "Maximum auction clearing price over the current result scope.",
        "description": "Maximum auction clearing price; document and delivery-year identity remain explicit.",
        "display_name": "Maximum auction clearing price",
        "display_precision": "Numeric source precision is preserved; JSON removes binary floating-point noise.",
        "grain": "auction x planning year x season x zone or parameter",
        "null_handling": "Null when no applicable published value exists; source-record counts are always integers.",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.max_acp_usd_mw_day",
        "source_fields": [
          "acp_usd_mw_day"
        ],
        "unit": "USD/MW-day"
      },
      "min_acp_usd_mw_day": {
        "additive_across_groups": false,
        "aggregation": "minimum",
        "authoritative_total_path": "summary.totals.min_acp_usd_mw_day",
        "category": "price",
        "definition": "Minimum auction clearing price over the current result scope.",
        "description": "Minimum auction clearing price; document and delivery-year identity remain explicit.",
        "display_name": "Minimum auction clearing price",
        "display_precision": "Numeric source precision is preserved; JSON removes binary floating-point noise.",
        "grain": "auction x planning year x season x zone or parameter",
        "null_handling": "Null when no applicable published value exists; source-record counts are always integers.",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.min_acp_usd_mw_day",
        "source_fields": [
          "acp_usd_mw_day"
        ],
        "unit": "USD/MW-day"
      },
      "source_record_count": {
        "additive_across_groups": true,
        "aggregation": "count source records",
        "authoritative_total_path": "summary.totals.source_record_count",
        "category": "records",
        "definition": "PRA result atom count over the current result scope.",
        "description": "PRA result atom count; document and delivery-year identity remain explicit.",
        "display_name": "PRA result atom count",
        "display_precision": "Numeric source precision is preserved; JSON removes binary floating-point noise.",
        "grain": "auction x planning year x season x zone or parameter",
        "null_handling": "Null when no applicable published value exists; source-record counts are always integers.",
        "rollup_behavior": "additive_partition_metric",
        "row_metric_path": "rows[].metrics.source_record_count",
        "source_fields": [
          "source_record_key"
        ],
        "unit": "count"
      }
    },
    "metrics": [
      "avg_acp_usd_mw_day",
      "min_acp_usd_mw_day",
      "max_acp_usd_mw_day",
      "cone_usd_mw_day",
      "imm_conduct_threshold_usd_mw_day",
      "source_record_count"
    ],
    "summary_fields": [
      "group_count",
      "totals"
    ]
  },
  "primitive": "query_power_capacity_market_miso_v1",
  "status": "available"
}
