LMP Pricing Data#

Support#

Below are the currently supported LMP markets

Method

REAL_TIME_5_MIN

REAL_TIME_15_MIN

REAL_TIME_HOURLY

DAY_AHEAD_HOURLY

CAISO

get_lmp

Ercot

get_spp

ISONE

get_lmp

MISO

get_lmp

NYISO

get_lmp

PJM

get_lmp

SPP

get_lmp

How to use#

We are currently adding Locational Marginal Price (LMP). Even though each BA offers different markets, but you can query them with a standardized API

import gridstatus
nyiso = gridstatus.NYISO()
nyiso.get_lmp(date="today", market="REAL_TIME_5_MIN", locations="ALL")
Time Market Location Location Type LMP Energy Congestion Loss
0 2022-12-30 00:02:36-05:00 REAL_TIME_5_MIN CAPITL Zone 77.03 -12.45 -90.19 -0.71
1 2022-12-30 00:02:36-05:00 REAL_TIME_5_MIN CENTRL Zone -2.01 -12.45 -10.58 -0.14
2 2022-12-30 00:02:36-05:00 REAL_TIME_5_MIN DUNWOD Zone 50.05 -12.45 -63.48 -0.98
3 2022-12-30 00:02:36-05:00 REAL_TIME_5_MIN GENESE Zone -3.51 -12.46 -8.76 0.19
4 2022-12-30 00:02:36-05:00 REAL_TIME_5_MIN H Q Zone -43.84 -12.44 31.66 0.26
... ... ... ... ... ... ... ... ...
2845 2022-12-30 17:00:00-05:00 REAL_TIME_5_MIN NORTH Zone 15.82 16.44 0.00 -0.62
2846 2022-12-30 17:00:00-05:00 REAL_TIME_5_MIN NPX Zone 54.08 16.46 -36.44 1.18
2847 2022-12-30 17:00:00-05:00 REAL_TIME_5_MIN O H Zone 17.61 16.45 -1.87 -0.71
2848 2022-12-30 17:00:00-05:00 REAL_TIME_5_MIN PJM Zone 25.10 16.44 -8.36 0.30
2849 2022-12-30 17:00:00-05:00 REAL_TIME_5_MIN WEST Zone 17.82 16.45 -1.57 -0.20

2850 rows × 8 columns

And here is querying CAISO

import gridstatus
caiso = gridstatus.CAISO()
locations = ["TH_NP15_GEN-APND", "TH_SP15_GEN-APND", "TH_ZP26_GEN-APND"]
caiso.get_lmp(date="today", market='DAY_AHEAD_HOURLY', locations=locations)
Time Market Location Location Type LMP Energy Congestion Loss
0 2022-12-30 00:00:00-08:00 DAY_AHEAD_HOURLY TH_NP15_GEN-APND Trading Hub 130.20757 132.59425 0.00000 -2.38670
1 2022-12-30 00:00:00-08:00 DAY_AHEAD_HOURLY TH_SP15_GEN-APND Trading Hub 128.44406 132.59425 0.00000 -4.15020
2 2022-12-30 00:00:00-08:00 DAY_AHEAD_HOURLY TH_ZP26_GEN-APND Trading Hub 128.07278 132.59425 0.00000 -4.52146
3 2022-12-30 01:00:00-08:00 DAY_AHEAD_HOURLY TH_NP15_GEN-APND Trading Hub 124.12252 126.57814 0.00000 -2.45562
4 2022-12-30 01:00:00-08:00 DAY_AHEAD_HOURLY TH_SP15_GEN-APND Trading Hub 123.18585 126.57814 0.00000 -3.39229
... ... ... ... ... ... ... ... ...
67 2022-12-30 22:00:00-08:00 DAY_AHEAD_HOURLY TH_SP15_GEN-APND Trading Hub 128.15944 131.84100 -0.00321 -3.67836
68 2022-12-30 22:00:00-08:00 DAY_AHEAD_HOURLY TH_ZP26_GEN-APND Trading Hub 126.25389 131.84100 0.00294 -5.59006
69 2022-12-30 23:00:00-08:00 DAY_AHEAD_HOURLY TH_NP15_GEN-APND Trading Hub 124.21894 126.70231 0.00000 -2.48337
70 2022-12-30 23:00:00-08:00 DAY_AHEAD_HOURLY TH_SP15_GEN-APND Trading Hub 123.16731 126.70231 0.00000 -3.53499
71 2022-12-30 23:00:00-08:00 DAY_AHEAD_HOURLY TH_ZP26_GEN-APND Trading Hub 121.72290 126.70231 0.00000 -4.97940

72 rows × 8 columns

You can see what markets are available by accessing the markets property of an iso. For, example

caiso.markets
[<Markets.REAL_TIME_15_MIN: 'REAL_TIME_15_MIN'>,
 <Markets.REAL_TIME_HOURLY: 'REAL_TIME_HOURLY'>,
 <Markets.DAY_AHEAD_HOURLY: 'DAY_AHEAD_HOURLY'>]