SPP Market Rules¶
Reference for SPP-specific market rules, pricing conventions, data assembly, and virtual trading mechanics.
Settlement Locations vs. PNODEs¶
Trading Granularity
As virtual traders, offers and bids are placed on Settlement Locations, not PNODEs. Settlement Locations are the pricing points used for financial settlement in SPP's Day-Ahead market.
Volume and Price Limits¶
| Parameter | Value |
|---|---|
| Minimum trade volume | 0.001 MWh |
| Offer price floor | -$500.00 |
| Offer price cap | $2,000.00 |
| Bid price floor | -$9,999.00 |
| Bid price cap | $2,000.00 |
Real-Time Price Data Assembly¶
SPP publishes RT LMP data in several forms depending on the recency of the data:
Final RT Files¶
For dates older than approximately OD-6, SPP provides consolidated daily RT LMP files. These are the authoritative settlement prices.
RT Preliminary Files (Assembled)¶
SPP Does Not Publish Explicit Preliminary RT Files
Unlike MISO, SPP does not provide a separate "preliminary" RT data product. For OD-6 through OD-2, only individual 5-minute interval files are available. ProgridPy combines these interval files to create RT preliminary files.
Key considerations:
- Since final RT data from SPP for days before OD-6 is simply the concatenation of interval files, there should be no difference between assembled and final files.
- However, on some days, individual interval files may be missing from SPP's portal. On those days, the assembled preliminary files will differ from the eventual final files.
- Assembled RT preliminary files have been created and stored for 2024-01-01 onward.
RT Rolling LMP¶
SPP also provides rolling real-time interval data for the most recent periods, accessible via its API.
Timestamp Handling¶
SPP uses UTC as the canonical time axis:
- Raw files contain GMT timestamps.
interval_start_utcis computed directly from the source timestamp.interval_start_localis derived from the UTC instant using SPP's timezone (US/Central).
DST Handling
During DST transitions, interval_start_local may have repeated hours (fall-back) or skipped hours (spring-forward). These are unambiguous because each row has a distinct interval_start_utc key.
Day-Ahead Market Data¶
DA LMP prices are available as:
- Daily files from 2024 onward, with hourly DA LMP for every Settlement Location.
- Annual ZIP archives for 2023 and earlier.
Both formats are handled by the ProgridPy SPP client.
Load and Resource Data¶
SPP publishes load and resource (wind/solar) forecasts and actuals through its file-browser portal:
- Load Forecast (MTLF): Published at 07:00 on OD-1; uses hour-ending intervals.
- Load Actual: Published at 23:00 on OD (after all hours are populated).
- Resource Forecast (by Reserve Zone): Published at 07:00 on OD-1; wind and solar MW by reserve zone.
- Resource Actual (by Reserve Zone): Published at 07:00 on OD+1 to ensure full-day coverage.
LMP Forecast Data¶
SPP publishes LMP forecasts (MDF -- Market Data Forecast) with a one-day offset:
- To get the LMP forecast for date X, download the file from date X-1.
- The file uses hour-ending format; filter for
HE01throughHE24of the target date.
Forecast File Offset
The filename date is the publication date, not the forecast target date. For example, MDFC-LMP-SL-20251125.csv contains the forecast for 2025-11-26.
Profit Calculation¶
Profits for virtual trades follow the standard formula:
- Offers:
DA LMP - RT LMP(per MWh) - Bids:
RT LMP - DA LMP(per MWh)
SPP does not have a dead-node mechanism. All cleared node-hours are settled.