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 | 2023-12-27 00:00:00-05:00 | 2023-12-27 00:00:00-05:00 | 2023-12-27 00:05:00-05:00 | REAL_TIME_5_MIN | CAPITL | Zone | 21.16 | 20.66 | 0.00 | 0.50 |
| 1 | 2023-12-27 00:00:00-05:00 | 2023-12-27 00:00:00-05:00 | 2023-12-27 00:05:00-05:00 | REAL_TIME_5_MIN | CENTRL | Zone | 20.33 | 20.66 | 0.00 | -0.33 |
| 2 | 2023-12-27 00:00:00-05:00 | 2023-12-27 00:00:00-05:00 | 2023-12-27 00:05:00-05:00 | REAL_TIME_5_MIN | DUNWOD | Zone | 21.32 | 20.66 | 0.00 | 0.66 |
| 3 | 2023-12-27 00:00:00-05:00 | 2023-12-27 00:00:00-05:00 | 2023-12-27 00:05:00-05:00 | REAL_TIME_5_MIN | GENESE | Zone | 19.75 | 20.66 | 0.00 | -0.91 |
| 4 | 2023-12-27 00:00:00-05:00 | 2023-12-27 00:00:00-05:00 | 2023-12-27 00:05:00-05:00 | REAL_TIME_5_MIN | H Q | Zone | 20.91 | 20.66 | 0.00 | 0.25 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 2950 | 2023-12-27 17:55:00-05:00 | 2023-12-27 17:55:00-05:00 | 2023-12-27 18:00:00-05:00 | REAL_TIME_5_MIN | NORTH | Zone | 35.45 | 34.49 | 0.00 | 0.96 |
| 2951 | 2023-12-27 17:55:00-05:00 | 2023-12-27 17:55:00-05:00 | 2023-12-27 18:00:00-05:00 | REAL_TIME_5_MIN | NPX | Zone | 35.49 | 34.49 | 0.00 | 1.00 |
| 2952 | 2023-12-27 17:55:00-05:00 | 2023-12-27 17:55:00-05:00 | 2023-12-27 18:00:00-05:00 | REAL_TIME_5_MIN | O H | Zone | 30.80 | 34.49 | 0.00 | -3.69 |
| 2953 | 2023-12-27 17:55:00-05:00 | 2023-12-27 17:55:00-05:00 | 2023-12-27 18:00:00-05:00 | REAL_TIME_5_MIN | PJM | Zone | 33.05 | 34.48 | 1.02 | -0.41 |
| 2954 | 2023-12-27 17:55:00-05:00 | 2023-12-27 17:55:00-05:00 | 2023-12-27 18:00:00-05:00 | REAL_TIME_5_MIN | WEST | Zone | 31.90 | 34.49 | 0.00 | -2.59 |
2955 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 | 2023-12-27 00:00:00-08:00 | 2023-12-27 00:00:00-08:00 | 2023-12-27 01:00:00-08:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 42.94562 | 43.11809 | 0.00000 | -0.17247 |
| 1 | 2023-12-27 00:00:00-08:00 | 2023-12-27 00:00:00-08:00 | 2023-12-27 01:00:00-08:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 41.38474 | 43.11809 | 0.00000 | -1.73335 |
| 2 | 2023-12-27 00:00:00-08:00 | 2023-12-27 00:00:00-08:00 | 2023-12-27 01:00:00-08:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 41.72969 | 43.11809 | 0.00000 | -1.38840 |
| 3 | 2023-12-27 01:00:00-08:00 | 2023-12-27 01:00:00-08:00 | 2023-12-27 02:00:00-08:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 41.30810 | 41.30810 | 0.00000 | 0.00000 |
| 4 | 2023-12-27 01:00:00-08:00 | 2023-12-27 01:00:00-08:00 | 2023-12-27 02:00:00-08:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 39.61860 | 41.30810 | 0.00000 | -1.68950 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 67 | 2023-12-27 22:00:00-08:00 | 2023-12-27 22:00:00-08:00 | 2023-12-27 23:00:00-08:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 46.93873 | 48.68240 | -0.00084 | -1.74283 |
| 68 | 2023-12-27 22:00:00-08:00 | 2023-12-27 22:00:00-08:00 | 2023-12-27 23:00:00-08:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 47.09619 | 48.68240 | 0.02518 | -1.61139 |
| 69 | 2023-12-27 23:00:00-08:00 | 2023-12-27 23:00:00-08:00 | 2023-12-28 00:00:00-08:00 | DAY_AHEAD_HOURLY | TH_NP15_GEN-APND | Trading Hub | 44.13339 | 44.83103 | -0.14622 | -0.55142 |
| 70 | 2023-12-27 23:00:00-08:00 | 2023-12-27 23:00:00-08:00 | 2023-12-28 00:00:00-08:00 | DAY_AHEAD_HOURLY | TH_SP15_GEN-APND | Trading Hub | 43.36936 | 44.83103 | 0.07603 | -1.53770 |
| 71 | 2023-12-27 23:00:00-08:00 | 2023-12-27 23:00:00-08:00 | 2023-12-28 00:00:00-08:00 | DAY_AHEAD_HOURLY | TH_ZP26_GEN-APND | Trading Hub | 43.49937 | 44.83103 | 0.07603 | -1.40769 |
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'>]