Settlement Point Prices#
import gridstatus
import pandas as pd
iso = gridstatus.Ercot()
The get_spp Method#
The main method is get_spp, which takes the following arguments:
Date#
Date can be "today", "latest", or a pandas.Timestamp.
Day-ahead Market (DAM) data is released daily, so date="latest" is not supported for DAM.
Market#
ERCOT has 2 available markets:
iso.markets
[<Markets.REAL_TIME_15_MIN: 'REAL_TIME_15_MIN'>,
<Markets.DAY_AHEAD_HOURLY: 'DAY_AHEAD_HOURLY'>]
Location Type#
ERCOT has 3 available location types. By default all locations are returned
iso.location_types
['Trading Hub', 'Load Zone', 'Resource Node']
Example: Fetch latest real-time market (RTM) by zone#
df = iso.get_spp(date="latest", market="REAL_TIME_15_MIN", location_type="Load Zone")
df
| Time | Interval Start | Interval End | Location | Location Type | Market | SPP | |
|---|---|---|---|---|---|---|---|
| 0 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:45:00-05:00 | LZ_AEN | Load Zone | REAL_TIME_15_MIN | 26.25 |
| 1 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:45:00-05:00 | LZ_CPS | Load Zone | REAL_TIME_15_MIN | 26.25 |
| 2 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:45:00-05:00 | LZ_HOUSTON | Load Zone | REAL_TIME_15_MIN | 26.25 |
| 3 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:45:00-05:00 | LZ_LCRA | Load Zone | REAL_TIME_15_MIN | 26.25 |
| 4 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:45:00-05:00 | LZ_NORTH | Load Zone | REAL_TIME_15_MIN | 26.25 |
| 5 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:45:00-05:00 | LZ_RAYBN | Load Zone | REAL_TIME_15_MIN | 26.25 |
| 6 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:45:00-05:00 | LZ_SOUTH | Load Zone | REAL_TIME_15_MIN | 26.25 |
| 7 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:30:00-05:00 | 2023-05-22 21:45:00-05:00 | LZ_WEST | Load Zone | REAL_TIME_15_MIN | 26.35 |
Example: Fetch day-ahead market (DAM) for today by hub#
df = iso.get_spp(date="today", market="DAY_AHEAD_HOURLY", location_type="Trading Hub")
df
| Time | Interval Start | Interval End | Location | Location Type | Market | SPP | |
|---|---|---|---|---|---|---|---|
| 0 | 2023-05-22 00:00:00-05:00 | 2023-05-22 00:00:00-05:00 | 2023-05-22 01:00:00-05:00 | HB_BUSAVG | Trading Hub | DAY_AHEAD_HOURLY | 19.90 |
| 1 | 2023-05-22 00:00:00-05:00 | 2023-05-22 00:00:00-05:00 | 2023-05-22 01:00:00-05:00 | HB_HOUSTON | Trading Hub | DAY_AHEAD_HOURLY | 19.86 |
| 2 | 2023-05-22 00:00:00-05:00 | 2023-05-22 00:00:00-05:00 | 2023-05-22 01:00:00-05:00 | HB_HUBAVG | Trading Hub | DAY_AHEAD_HOURLY | 20.00 |
| 3 | 2023-05-22 00:00:00-05:00 | 2023-05-22 00:00:00-05:00 | 2023-05-22 01:00:00-05:00 | HB_NORTH | Trading Hub | DAY_AHEAD_HOURLY | 19.76 |
| 4 | 2023-05-22 00:00:00-05:00 | 2023-05-22 00:00:00-05:00 | 2023-05-22 01:00:00-05:00 | HB_PAN | Trading Hub | DAY_AHEAD_HOURLY | 19.65 |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 163 | 2023-05-22 23:00:00-05:00 | 2023-05-22 23:00:00-05:00 | 2023-05-23 00:00:00-05:00 | HB_HOUSTON | Trading Hub | DAY_AHEAD_HOURLY | 20.89 |
| 164 | 2023-05-22 23:00:00-05:00 | 2023-05-22 23:00:00-05:00 | 2023-05-23 00:00:00-05:00 | HB_HUBAVG | Trading Hub | DAY_AHEAD_HOURLY | 21.02 |
| 165 | 2023-05-22 23:00:00-05:00 | 2023-05-22 23:00:00-05:00 | 2023-05-23 00:00:00-05:00 | HB_NORTH | Trading Hub | DAY_AHEAD_HOURLY | 20.79 |
| 166 | 2023-05-22 23:00:00-05:00 | 2023-05-22 23:00:00-05:00 | 2023-05-23 00:00:00-05:00 | HB_PAN | Trading Hub | DAY_AHEAD_HOURLY | 20.74 |
| 167 | 2023-05-22 23:00:00-05:00 | 2023-05-22 23:00:00-05:00 | 2023-05-23 00:00:00-05:00 | HB_WEST | Trading Hub | DAY_AHEAD_HOURLY | 21.43 |
168 rows × 7 columns
Example: Fetch DAM for 2 days ago by node#
date = pd.Timestamp.now() - pd.Timedelta(days=2)
df = iso.get_spp(date=date, market="REAL_TIME_15_MIN", location_type="Resource Node")
df
| Time | Interval Start | Interval End | Location | Location Type | Market | SPP | |
|---|---|---|---|---|---|---|---|
| 0 | 2023-05-20 00:00:00-05:00 | 2023-05-20 00:00:00-05:00 | 2023-05-20 00:15:00-05:00 | YNG_WND_ALL | Resource Node | REAL_TIME_15_MIN | 15.18 |
| 1 | 2023-05-20 00:00:00-05:00 | 2023-05-20 00:00:00-05:00 | 2023-05-20 00:15:00-05:00 | FOARDCTY_ALL | Resource Node | REAL_TIME_15_MIN | 15.20 |
| 2 | 2023-05-20 00:00:00-05:00 | 2023-05-20 00:00:00-05:00 | 2023-05-20 00:15:00-05:00 | FLVABES1_ESR | Resource Node | REAL_TIME_15_MIN | 45.84 |
| 3 | 2023-05-20 00:00:00-05:00 | 2023-05-20 00:00:00-05:00 | 2023-05-20 00:15:00-05:00 | FLUVANNA_1_2 | Resource Node | REAL_TIME_15_MIN | 14.10 |
| 4 | 2023-05-20 00:00:00-05:00 | 2023-05-20 00:00:00-05:00 | 2023-05-20 00:15:00-05:00 | FLTCK_SSI | Resource Node | REAL_TIME_15_MIN | 15.05 |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 78907 | 2023-05-20 23:45:00-05:00 | 2023-05-20 23:45:00-05:00 | 2023-05-21 00:00:00-05:00 | PB2SES_CT3 | Resource Node | REAL_TIME_15_MIN | 31.34 |
| 78908 | 2023-05-20 23:45:00-05:00 | 2023-05-20 23:45:00-05:00 | 2023-05-21 00:00:00-05:00 | PB2SES_CT2 | Resource Node | REAL_TIME_15_MIN | 31.34 |
| 78909 | 2023-05-20 23:45:00-05:00 | 2023-05-20 23:45:00-05:00 | 2023-05-21 00:00:00-05:00 | PB2SES_CT1 | Resource Node | REAL_TIME_15_MIN | 31.34 |
| 78910 | 2023-05-20 23:45:00-05:00 | 2023-05-20 23:45:00-05:00 | 2023-05-21 00:00:00-05:00 | PEY_RN | Resource Node | REAL_TIME_15_MIN | 31.34 |
| 78911 | 2023-05-20 23:45:00-05:00 | 2023-05-20 23:45:00-05:00 | 2023-05-21 00:00:00-05:00 | AEEC | Resource Node | REAL_TIME_15_MIN | 31.34 |
78912 rows × 7 columns