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, with "ZONE" as default.

iso.location_types
['HUB', 'NODE', 'ZONE']

Example: Fetch latest real-time market (RTM) by zone#

df = iso.get_spp(date="latest", market="REAL_TIME_15_MIN", location_type="zone")
df
Location Time Market Location Type SPP
0 DC_E 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 22.84
1 DC_L 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 22.50
2 DC_N 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 0.24
3 DC_R 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 20.80
4 DC_S 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 5.67
5 LZ_AEN 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 19.61
6 LZ_CPS 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 19.17
7 LZ_HOUSTON 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 21.75
8 LZ_LCRA 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 17.76
9 LZ_NORTH 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 27.43
10 LZ_RAYBN 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 126.80
11 LZ_SOUTH 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone 19.65
12 LZ_WEST 2022-12-22 14:30:00-06:00 REAL_TIME_15_MIN Zone -1.84

Example: Fetch day-ahead market (DAM) for today by hub#

df = iso.get_spp(date="today", market="DAY_AHEAD_HOURLY", location_type="hub")
df
Location Time Market Location Type SPP
0 HB_HOUSTON 2022-12-22 00:00:00-06:00 DAY_AHEAD_HOURLY Hub 33.75
1 HB_NORTH 2022-12-22 00:00:00-06:00 DAY_AHEAD_HOURLY Hub 33.84
2 HB_PAN 2022-12-22 00:00:00-06:00 DAY_AHEAD_HOURLY Hub 33.29
3 HB_SOUTH 2022-12-22 00:00:00-06:00 DAY_AHEAD_HOURLY Hub 34.20
4 HB_WEST 2022-12-22 00:00:00-06:00 DAY_AHEAD_HOURLY Hub 38.58
... ... ... ... ... ...
115 HB_HOUSTON 2022-12-22 23:00:00-06:00 DAY_AHEAD_HOURLY Hub 80.16
116 HB_NORTH 2022-12-22 23:00:00-06:00 DAY_AHEAD_HOURLY Hub 86.00
117 HB_PAN 2022-12-22 23:00:00-06:00 DAY_AHEAD_HOURLY Hub 88.95
118 HB_SOUTH 2022-12-22 23:00:00-06:00 DAY_AHEAD_HOURLY Hub 69.32
119 HB_WEST 2022-12-22 23:00:00-06:00 DAY_AHEAD_HOURLY Hub 90.94

120 rows × 5 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="node")
df
Location Time Market Location Type SPP
0 AEEC 2022-12-20 23:30:00-06:00 REAL_TIME_15_MIN Node 50.30
1 AGUAYO_UNIT1 2022-12-20 23:30:00-06:00 REAL_TIME_15_MIN Node 50.30
2 AJAXWIND_RN 2022-12-20 23:30:00-06:00 REAL_TIME_15_MIN Node 50.30
3 ALGOD_ALL_RN 2022-12-20 23:30:00-06:00 REAL_TIME_15_MIN Node 50.30
4 ALVIN_RN 2022-12-20 23:30:00-06:00 REAL_TIME_15_MIN Node 50.30
... ... ... ... ... ...
76090 WOV_BESS_RN 2022-12-20 00:00:00-06:00 REAL_TIME_15_MIN Node 32.94
76091 WRSBES_BESS1 2022-12-20 00:00:00-06:00 REAL_TIME_15_MIN Node 32.94
76092 W_PECO_UNIT1 2022-12-20 00:00:00-06:00 REAL_TIME_15_MIN Node 32.94
76093 X443ESRN 2022-12-20 00:00:00-06:00 REAL_TIME_15_MIN Node 32.94
76094 YNG_WND_ALL 2022-12-20 00:00:00-06:00 REAL_TIME_15_MIN Node 32.94

76095 rows × 5 columns