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