LMP Pricing Data#
Support#
Below are the currently supported LMP markets
Method |
REAL_TIME_5_MIN |
DAY_AHEAD_HOURLY |
REAL_TIME_15_MIN |
REAL_TIME_HOURLY |
|
|---|---|---|---|---|---|
CAISO |
|
latest, today, historical |
latest, today, historical |
latest, today, historical |
- |
Ercot |
|
- |
latest, today, historical |
latest, today, historical |
- |
ISONE |
|
latest, today, historical |
today, historical |
- |
latest, today, historical |
MISO |
|
latest |
latest |
- |
- |
NYISO |
|
latest, today, historical |
latest, today, historical |
- |
- |
PJM |
|
today, historical |
latest, today, historical |
- |
today, historical |
SPP |
|
latest, today, historical |
latest, today, historical |
- |
- |
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 | Interval Start | Interval End | Market | Location | Location Type | LMP | Energy | Congestion | Loss | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2024-02-20 00:00:00-05:00 | 2024-02-20 00:00:00-05:00 | 2024-02-20 00:05:00-05:00 | REAL_TIME_5_MIN | CAPITL | Zone | 31.58 | 30.34 | 0.00 | 1.24 |
| 1 | 2024-02-20 00:00:00-05:00 | 2024-02-20 00:00:00-05:00 | 2024-02-20 00:05:00-05:00 | REAL_TIME_5_MIN | WEST | Zone | 26.77 | 30.33 | 2.77 | -0.79 |
| 2 | 2024-02-20 00:00:00-05:00 | 2024-02-20 00:00:00-05:00 | 2024-02-20 00:05:00-05:00 | REAL_TIME_5_MIN | PJM | Zone | 28.37 | 30.34 | 2.39 | 0.42 |
| 3 | 2024-02-20 00:00:00-05:00 | 2024-02-20 00:00:00-05:00 | 2024-02-20 00:05:00-05:00 | REAL_TIME_5_MIN | O H | Zone | 26.03 | 30.33 | 2.57 | -1.73 |
| 4 | 2024-02-20 00:00:00-05:00 | 2024-02-20 00:00:00-05:00 | 2024-02-20 00:05:00-05:00 | REAL_TIME_5_MIN | NPX | Zone | 31.76 | 30.33 | 0.00 | 1.43 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 3265 | 2024-02-20 17:00:00-05:00 | 2024-02-20 17:00:00-05:00 | 2024-02-20 17:05:00-05:00 | REAL_TIME_5_MIN | DUNWOD | Zone | 38.19 | 35.36 | 0.00 | 2.83 |
| 3266 | 2024-02-20 17:00:00-05:00 | 2024-02-20 17:00:00-05:00 | 2024-02-20 17:05:00-05:00 | REAL_TIME_5_MIN | CENTRL | Zone | 35.22 | 35.36 | 0.00 | -0.14 |
| 3267 | 2024-02-20 17:00:00-05:00 | 2024-02-20 17:00:00-05:00 | 2024-02-20 17:05:00-05:00 | REAL_TIME_5_MIN | CAPITL | Zone | 36.88 | 35.36 | 0.00 | 1.52 |
| 3268 | 2024-02-20 17:00:00-05:00 | 2024-02-20 17:00:00-05:00 | 2024-02-20 17:05:00-05:00 | REAL_TIME_5_MIN | LONGIL | Zone | 137.96 | 35.37 | -99.27 | 3.32 |
| 3269 | 2024-02-20 17:00:00-05:00 | 2024-02-20 17:00:00-05:00 | 2024-02-20 17:05:00-05:00 | REAL_TIME_5_MIN | MHK VL | Zone | 36.91 | 35.36 | 0.00 | 1.55 |
3270 rows × 10 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 | Interval Start | Interval End | Market | Location | Location Type | LMP | Energy | Congestion | Loss | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2024-02-20 00:00:00-08:00 | 2024-02-20 00:00:00-08:00 | 2024-02-20 01:00:00-08:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 38.53704 | 39.64891 | 0.04588 | -1.15775 |
| 1 | 2024-02-20 00:00:00-08:00 | 2024-02-20 00:00:00-08:00 | 2024-02-20 01:00:00-08:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 38.71544 | 39.64891 | -0.03344 | -0.90003 |
| 2 | 2024-02-20 00:00:00-08:00 | 2024-02-20 00:00:00-08:00 | 2024-02-20 01:00:00-08:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 38.41411 | 39.64891 | -0.03344 | -1.20136 |
| 3 | 2024-02-20 01:00:00-08:00 | 2024-02-20 01:00:00-08:00 | 2024-02-20 02:00:00-08:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 37.93579 | 39.01475 | 0.05637 | -1.13533 |
| 4 | 2024-02-20 01:00:00-08:00 | 2024-02-20 01:00:00-08:00 | 2024-02-20 02:00:00-08:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 38.09262 | 39.01475 | -0.04040 | -0.88173 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 67 | 2024-02-20 22:00:00-08:00 | 2024-02-20 22:00:00-08:00 | 2024-02-20 23:00:00-08:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 46.66255 | 47.86265 | -0.04183 | -1.15828 |
| 68 | 2024-02-20 22:00:00-08:00 | 2024-02-20 22:00:00-08:00 | 2024-02-20 23:00:00-08:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 46.16956 | 47.86265 | -0.04183 | -1.65126 |
| 69 | 2024-02-20 23:00:00-08:00 | 2024-02-20 23:00:00-08:00 | 2024-02-21 00:00:00-08:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 41.39522 | 43.06738 | 0.07637 | -1.74854 |
| 70 | 2024-02-20 23:00:00-08:00 | 2024-02-20 23:00:00-08:00 | 2024-02-21 00:00:00-08:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 42.02337 | 43.06738 | -0.05346 | -0.99055 |
| 71 | 2024-02-20 23:00:00-08:00 | 2024-02-20 23:00:00-08:00 | 2024-02-21 00:00:00-08:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 41.55393 | 43.06738 | -0.05346 | -1.45998 |
72 rows × 10 columns
You can see what markets are available by accessing the markets property of an iso. For, example
caiso.markets
[<Markets.REAL_TIME_5_MIN: 'REAL_TIME_5_MIN'>,
<Markets.REAL_TIME_15_MIN: 'REAL_TIME_15_MIN'>,
<Markets.DAY_AHEAD_HOURLY: 'DAY_AHEAD_HOURLY'>]