Skip to content

MISO Download Information

LMP Rolling Data (Real-Time 5-Min Ex-Post)

URL

https://public-api.misoenergy.org/api/MarketPricing/GetRealTimeFiveMinExPost/Rolling

API Response Format

The API returns a JSON object with the following structure:

{
  "headers": ["INTERVAL", "CPNODE", "LMP", "MLC", "MCC"],
  "data": [
    ["2025-12-03T00:00:00", "GRE.AEPEMLREV", "250.66", "6.13", "209.47"],
    ["2025-12-03T00:00:00", "GRE.ALTW", "-1.64", "-2.16", "-34.54"],
    ...
  ]
}

Date Logic

No date parameter is required. The API returns rolling real-time data for the latest available intervals (typically covering the current day's 5-minute intervals up to the most recent).

Aggregation Logic

The raw data contains 5-minute interval prices. The data is aggregated to hourly intervals using the following logic:

  1. Floor to Hour: Each 5-minute interval timestamp is floored to its hour start (e.g., 00:05:0000:00:00)
  2. Group By: Data is grouped by (hour, CPNODE)
  3. Aggregation: LMP, MLC, and MCC values are averaged (mean) across all 5-minute intervals within each hour
  4. Interval Count: The number of 5-minute intervals used in the average is recorded (typically 12 for a complete hour)

Hour Ending Convention

The output uses hour-ending format: - HE 1: 00:00-00:55 (midnight hour) - HE 24: 23:00-23:55

Columns Retained

Column Description
Date Date of the interval (YYYY-MM-DD)
Node Commercial Pricing Node identifier (CPNODE)
HE Hour ending (1-24, where HE 1 = 00:00-00:55)
LMP Mean Locational Marginal Price for the hour
MLC Mean Marginal Loss Component for the hour
MCC Mean Marginal Congestion Component for the hour
interval_count Number of 5-minute intervals averaged (typically 12)

Output File Naming

Files are saved as: {YYYYMMDD}_rt_lmp_rolling.csv

Example: 20251203_rt_lmp_rolling.csv

Usage

from progridpy.iso import MISO

miso = MISO()
miso.download_lmp_rolling(
    output_dir="/path/to/save",
    overwrite=False,
)