LMP Pricing Data

Contents

LMP Pricing Data#

Support#

Below are the currently supported LMP markets

Method

REAL_TIME_5_MIN

REAL_TIME_15_MIN

DAY_AHEAD_HOURLY

REAL_TIME_HOURLY

REAL_TIME_HOURLY_FINAL

REAL_TIME_HOURLY_PRELIM

CAISO

get_lmp

latest, today, historical

latest, today, historical

latest, today, historical

-

-

-

Ercot

get_lmp

-

-

-

-

-

-

IESO

-

-

-

-

-

-

-

ISONE

get_lmp

latest, today, historical

-

today, historical

latest, today, historical

-

-

MISO

get_lmp

latest, today, historical

-

today, historical

-

historical

historical

NYISO

get_lmp

latest, today, historical

latest, today

latest, today, historical

-

-

-

PJM

get_lmp

latest, today, historical

-

today, historical

today, historical

-

-

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 Interval Start Interval End Market Location Location Type LMP Energy Congestion Loss
0 2025-01-27 00:00:00-05:00 2025-01-27 00:00:00-05:00 2025-01-27 00:05:00-05:00 REAL_TIME_5_MIN CAPITL Zone 104.01 44.06 57.09 2.86
1 2025-01-27 00:00:00-05:00 2025-01-27 00:00:00-05:00 2025-01-27 00:05:00-05:00 REAL_TIME_5_MIN WEST Zone 37.72 44.06 -2.37 -3.97
2 2025-01-27 00:00:00-05:00 2025-01-27 00:00:00-05:00 2025-01-27 00:05:00-05:00 REAL_TIME_5_MIN PJM Zone 45.49 44.06 1.74 -0.31
3 2025-01-27 00:00:00-05:00 2025-01-27 00:00:00-05:00 2025-01-27 00:05:00-05:00 REAL_TIME_5_MIN O H Zone 37.61 44.05 -1.77 -4.67
4 2025-01-27 00:00:00-05:00 2025-01-27 00:00:00-05:00 2025-01-27 00:05:00-05:00 REAL_TIME_5_MIN NPX Zone 88.55 44.06 41.71 2.78
... ... ... ... ... ... ... ... ... ... ...
1870 2025-01-27 10:00:00-05:00 2025-01-27 10:00:00-05:00 2025-01-27 10:05:00-05:00 REAL_TIME_5_MIN H Q Zone 35.14 35.53 -0.00 -0.39
1871 2025-01-27 10:00:00-05:00 2025-01-27 10:00:00-05:00 2025-01-27 10:05:00-05:00 REAL_TIME_5_MIN GENESE Zone 40.52 35.54 7.33 -2.35
1872 2025-01-27 10:00:00-05:00 2025-01-27 10:00:00-05:00 2025-01-27 10:05:00-05:00 REAL_TIME_5_MIN DUNWOD Zone 95.92 35.52 57.31 3.09
1873 2025-01-27 10:00:00-05:00 2025-01-27 10:00:00-05:00 2025-01-27 10:05:00-05:00 REAL_TIME_5_MIN CENTRL Zone 49.49 35.54 14.91 -0.96
1874 2025-01-27 10:00:00-05:00 2025-01-27 10:00:00-05:00 2025-01-27 10:05:00-05:00 REAL_TIME_5_MIN CAPITL Zone 109.32 35.53 71.84 1.95

1875 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)
2025-01-27 15:04:16 - DEBUG - Dataset config: {'query': {'path': 'SingleZip', 'resultformat': 6, 'queryname': 'PRC_LMP', 'version': 12}, 'params': {'market_run_id': 'DAM', 'node': None, 'grp_type': [None, 'ALL', 'ALL_APNODES']}}
2025-01-27 15:04:16 - INFO - Fetching URL: http://oasis.caiso.com/oasisapi/SingleZip?resultformat=6&queryname=PRC_LMP&version=12&market_run_id=DAM&node=TH_NP15_GEN-APND,TH_SP15_GEN-APND,TH_ZP26_GEN-APND&startdatetime=20250127T08:00-0000&enddatetime=20250128T08:00-0000
2025-01-27 15:04:17 - DEBUG - Found 1 files: ['20250127_20250128_PRC_LMP_DAM_20250127_07_04_17_v12.csv']
2025-01-27 15:04:17 - DEBUG - Parsing file: 20250127_20250128_PRC_LMP_DAM_20250127_07_04_17_v12.csv
Time Interval Start Interval End Market Location Location Type LMP Energy Congestion Loss
0 2025-01-27 00:00:00-08:00 2025-01-27 00:00:00-08:00 2025-01-27 01:00:00-08:00 DAY_AHEAD_HOURLY TH_NP15_GEN-APND Trading Hub 54.89814 55.89303 0.00000 -0.99490
1 2025-01-27 00:00:00-08:00 2025-01-27 00:00:00-08:00 2025-01-27 01:00:00-08:00 DAY_AHEAD_HOURLY TH_SP15_GEN-APND Trading Hub 54.00385 55.89303 0.00000 -1.88918
2 2025-01-27 00:00:00-08:00 2025-01-27 00:00:00-08:00 2025-01-27 01:00:00-08:00 DAY_AHEAD_HOURLY TH_ZP26_GEN-APND Trading Hub 53.88089 55.89303 0.00000 -2.01215
3 2025-01-27 01:00:00-08:00 2025-01-27 01:00:00-08:00 2025-01-27 02:00:00-08:00 DAY_AHEAD_HOURLY TH_NP15_GEN-APND Trading Hub 54.42792 55.58386 -0.02759 -1.12835
4 2025-01-27 01:00:00-08:00 2025-01-27 01:00:00-08:00 2025-01-27 02:00:00-08:00 DAY_AHEAD_HOURLY TH_SP15_GEN-APND Trading Hub 53.78125 55.58386 0.02055 -1.82315
... ... ... ... ... ... ... ... ... ... ...
67 2025-01-27 22:00:00-08:00 2025-01-27 22:00:00-08:00 2025-01-27 23:00:00-08:00 DAY_AHEAD_HOURLY TH_SP15_GEN-APND Trading Hub 64.24230 67.05524 -0.11732 -2.69562
68 2025-01-27 22:00:00-08:00 2025-01-27 22:00:00-08:00 2025-01-27 23:00:00-08:00 DAY_AHEAD_HOURLY TH_ZP26_GEN-APND Trading Hub 64.21217 67.05524 -0.11392 -2.72915
69 2025-01-27 23:00:00-08:00 2025-01-27 23:00:00-08:00 2025-01-28 00:00:00-08:00 DAY_AHEAD_HOURLY TH_NP15_GEN-APND Trading Hub 64.31694 65.42629 -0.10179 -1.00756
70 2025-01-27 23:00:00-08:00 2025-01-27 23:00:00-08:00 2025-01-28 00:00:00-08:00 DAY_AHEAD_HOURLY TH_SP15_GEN-APND Trading Hub 63.03645 65.42629 0.04401 -2.43386
71 2025-01-27 23:00:00-08:00 2025-01-27 23:00:00-08:00 2025-01-28 00:00:00-08:00 DAY_AHEAD_HOURLY TH_ZP26_GEN-APND Trading Hub 62.86130 65.42629 0.06514 -2.63014

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'>]