Electricity Markets 101¶
This page provides foundational context on US wholesale electricity markets for developers working with ProgridPy.
Independent System Operators (ISOs)¶
An ISO (or RTO -- Regional Transmission Organization) is a federally regulated entity that operates the high-voltage transmission grid and administers competitive wholesale electricity markets within its footprint. The major US ISOs are:
| ISO | Region | Timezone Convention |
|---|---|---|
| MISO | Upper Midwest and South | Fixed EST market time |
| SPP | Central US (Great Plains) | UTC canonical, local derived |
| ERCOT | Texas (isolated grid) | Local time + DSTFlag |
| PJM | Mid-Atlantic and Ohio Valley | Eastern Prevailing Time |
| NYISO | New York | Eastern Prevailing Time |
| ISO-NE | New England | Eastern Prevailing Time |
| CAISO | California | Pacific Prevailing Time |
Each ISO publishes market prices, load data, and resource forecasts through public APIs and file-browser portals.
Day-Ahead vs. Real-Time Markets¶
Day-Ahead (DA) Market¶
The DA market clears financially binding hourly schedules for the next operating day. Market participants submit offers (supply) and bids (demand) before the market closes (typically mid-morning on OD-1). The ISO runs a security-constrained unit commitment and economic dispatch to determine clearing prices and schedules.
- Clearing price: The LMP at each node for each hour, determined by the optimization.
- Commitment: Accepted offers/bids are financially binding -- participants pay or receive the clearing price regardless of physical delivery.
Real-Time (RT) Market¶
The RT market settles deviations from DA schedules. Prices are computed at shorter intervals:
- 5-minute intervals: MISO, SPP
- 15-minute intervals: ERCOT
RT prices reflect actual grid conditions and can be significantly more volatile than DA prices.
DA vs. RT Price Distinction
Some ISOs publish multiple DA price variants. MISO, for example, publishes both exAnte (clearing) and exPost (settlement) DA LMPs. The exAnte price determines whether an offer/bid clears; the exPost price is used for profit calculations.
Locational Marginal Pricing (LMP)¶
LMP is the cost of serving the next megawatt of demand at a specific location on the grid. It comprises three components:
Energy Component¶
The marginal cost of generating the next MWh of electricity, reflecting the system-wide marginal fuel cost.
Congestion Component¶
The cost imposed by transmission constraints. When a line is congested, generators on the constrained side must be dispatched more expensively, causing the congestion component to diverge across nodes.
Loss Component (Marginal Loss)¶
The cost of electrical losses in transmitting power from the reference bus to the pricing node. Losses increase with distance and loading.
Column Naming
In ProgridPy, these components appear as LMP, MCC (Marginal Congestion Component), and MLC (Marginal Loss Component) in MISO data; and LMP, MCC, MLC in SPP data. ERCOT uses the term "Settlement Point Price" (SPP) rather than LMP.
Virtual Trading¶
Virtual trading allows financial participants (with no physical generation or load) to trade in the day-ahead market and settle against real-time prices.
Offers (Virtual Supply)¶
A virtual offer is a commitment to sell power at a node in the DA market. If cleared:
- The trader receives the DA clearing price.
- The trader pays the RT price at settlement.
- Gain = DA price - RT price (per MWh).
Bids (Virtual Demand)¶
A virtual bid is a commitment to buy power at a node in the DA market. If cleared:
- The trader pays the DA clearing price.
- The trader receives the RT price at settlement.
- Gain = RT price - DA price (per MWh).
Net Volume Rule
If both an offer and a bid exist on the same node-hour with equal volume, the net volume is zero and neither clears. This is an important edge case for strategies that trade both sides.
Price Limits¶
Price limits vary by ISO:
| ISO | Offer Floor | Offer Cap | Bid Floor | Bid Cap |
|---|---|---|---|---|
| SPP | -$500 | $2,000 | -$9,999 | $2,000 |
| MISO | Varies | Varies | Varies | Varies |
| ERCOT | Varies | $5,000 | Varies | Varies |
Settlement Process¶
Settlement occurs after the operating day:
- Clearing: The ISO determines which offers/bids cleared based on DA prices and volume rules.
- RT price publication: RT prices are published -- initially as preliminary values, later as final values.
- P&L calculation: Gain/loss is computed per node-hour using the appropriate DA and RT prices.
- Dead node adjustment (MISO-specific): Node-hours flagged as dead have their P&L voided.
- Financial settlement: Net payments are made through the ISO's settlement system, typically with a multi-day lag.
Settlement Timelines
MISO publishes RT final prices with approximately a 7-day lag. For days OD-6 through OD-2, only preliminary RT prices are available. SPP does not publish explicit preliminary RT files; instead, ProgridPy assembles them from 5-minute interval files.