LMP Pricing Data
Contents
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 |
|
❌ |
✅ |
✅ |
✅ |
Ercot |
|
❌ |
✅ |
❌ |
✅ |
ISONE |
|
✅ |
❌ |
✅ |
✅ |
MISO |
|
✅ |
❌ |
❌ |
✅ |
NYISO |
|
✅ |
❌ |
❌ |
✅ |
PJM |
|
✅ |
❌ |
✅ |
✅ |
SPP |
|
✅ |
❌ |
❌ |
✅ |
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'>]