Ercot

Contents

Ercot#

Module Contents#

Classes Summary#

Document

Ercot

Electric Reliability Council of Texas (ERCOT)

ERCOTSevenDayLoadForecastReport

Enum class for the Medium Term (Seven Day) Load Forecasts.

Functions#

parse_timestamp_from_friendly_name

Attributes Summary#

ACTUAL_SYSTEM_LOAD_BY_FORECAST_ZONE

ACTUAL_SYSTEM_LOAD_BY_WEATHER_ZONE

DAM_CLEARING_PRICES_FOR_CAPACITY_RTID

DAM_PRICE_CORRECTIONS_RTID

DAM_SETTLEMENT_POINT_PRICES_RTID

DAM_SYSTEM_LAMBDA_RTID

GIS_REPORT_RTID

HISTORICAL_DAM_LOAD_ZONE_AND_HUB_PRICES_RTID

HISTORICAL_RTM_LOAD_ZONE_AND_HUB_PRICES_RTID

HOURLY_RESOURCE_OUTAGE_CAPACITY_RTID

HUB_SETTLEMENT_TYPES

iso

LMPS_BY_ELECTRICAL_BUS_RTID

LMPS_BY_SETTLEMENT_POINT_RTID

LOAD_ZONE_SETTLEMENT_TYPES

LOCATION_TYPE_HUB

LOCATION_TYPE_RESOURCE_NODE

LOCATION_TYPE_ZONE

LOCATION_TYPE_ZONE_DC

LOCATION_TYPE_ZONE_DC_EW

Report Type IDs

LOCATION_TYPE_ZONE_EW

RESOURCE_NODE_SETTLEMENT_TYPES

RTM_PRICE_CORRECTIONS_RTID

SCED_SYSTEM_LAMBDA_RTID

SETTLEMENT_POINT_PRICES_AT_RESOURCE_NODES_HUBS_AND_LOAD_ZONES_RTID

SETTLEMENT_POINTS_LIST_AND_ELECTRICAL_BUSES_MAPPING_RTID

SIXTY_DAY_DAM_DISCLOSURE_REPORTS_RTID

SIXTY_DAY_SCED_DISCLOSURE_REPORTS_RTID

SOLAR_POWER_PRODUCTION_HOURLY_AVERAGED_ACTUAL_AND_FORECASTED_VALUES_BY_GEOGRAPHICAL_REGION_RTID

Settlement Point Type Description

SYSTEM_WIDE_ACTUALS_RTID

THREE_DAY_HIGHEST_PRICE_AS_OFFER_SELECTED_RTID

TWO_DAY_ANCILLARY_SERVICES_REPORTS_RTID

UNPLANNED_RESOURCE_OUTAGES_REPORT_RTID

WIND_POWER_PRODUCTION_HOURLY_AVERAGED_ACTUAL_AND_FORECASTED_VALUES_RTID

Contents#

gridstatus.ercot.ACTUAL_SYSTEM_LOAD_BY_FORECAST_ZONE = 14836[source]#
gridstatus.ercot.ACTUAL_SYSTEM_LOAD_BY_WEATHER_ZONE = 13101[source]#
gridstatus.ercot.DAM_CLEARING_PRICES_FOR_CAPACITY_RTID = 12329[source]#
gridstatus.ercot.DAM_PRICE_CORRECTIONS_RTID = 13044[source]#
gridstatus.ercot.DAM_SETTLEMENT_POINT_PRICES_RTID = 12331[source]#
gridstatus.ercot.DAM_SYSTEM_LAMBDA_RTID = 13113[source]#
class gridstatus.ercot.Document[source]#

Attributes

constructed_name

None

friendly_name

None

friendly_name_timestamp

None

publish_date

None

url

None

class gridstatus.ercot.Ercot[source]#

Bases: gridstatus.base.ISOBase

Electric Reliability Council of Texas (ERCOT)

Attributes

ACTUAL_LOADS_FORECAST_ZONES_URL_FORMAT

https://www.ercot.com/content/cdr/html/{timestamp}_actual_loads_of_forecast_zones.html

ACTUAL_LOADS_WEATHER_ZONES_URL_FORMAT

https://www.ercot.com/content/cdr/html/{timestamp}_actual_loads_of_weather_zones.html

BASE

https://www.ercot.com/api/1/services/read/dashboards

default_timezone

US/Central

interconnection_homepage

http://mis.ercot.com/misapp/GetReports.do?reportTypeId=15933

iso_id

ercot

LOAD_HISTORICAL_MAX_DAYS

14

location_types

None

markets

None

name

Electric Reliability Council of Texas

status_homepage

https://www.ercot.com/gridmktinfo/dashboards/gridconditions

Methods

get_60_day_dam_disclosure

Get 60 day DAM Disclosure data

get_60_day_sced_disclosure

Get 60 day SCED Disclosure data

get_as_monitor

Get Ancillary Service Capacity Monitor.

get_as_prices

Get ancillary service clearing prices in hourly intervals in Day Ahead Market

get_as_reports

Get Ancillary Services Reports.

get_dam_price_corrections

Get RTM Price Corrections

get_dam_spp

Get Historical DAM Settlement Point Prices(SPPs)

get_dam_system_lambda

Get Day-Ahead Market System Lambda

get_energy_storage_resources

Get energy storage resources.

get_fuel_mix

Get fuel mix 5 minute intervals

get_highest_price_as_offer_selected

Get the offer price and the name of the Entity submitting

get_hourly_resource_outage_capacity

Hourly Resource Outage Capacity report sourced

get_hourly_solar_report

Get Hourly Solar Report.

get_hourly_wind_report

Get Hourly Wind Report.

get_interconnection_queue

Get interconnection queue for ERCOT

get_lmp

Get LMP data for ERCOT normally produced by SCED every five minutes

get_load

Get load for a date

get_load_by_forecast_zone

Get hourly load for ERCOT forecast zones

get_load_by_weather_zone

Get hourly load for ERCOT weather zones

get_load_forecast

Returns load forecast of specified forecast type.

get_raw_interconnection_queue

get_real_time_system_conditions

Get Real-Time System Conditions.

get_rtm_price_corrections

Get RTM Price Corrections

get_rtm_spp

Get Historical RTM Settlement Point Prices(SPPs)

get_sara

Parse SARA data from url.

get_sced_system_lambda

Get System lambda of each successful SCED

get_spp

Get SPP data for ERCOT

get_status

Returns status of grid

get_system_wide_actual_load

Get 15-minute system-wide actual load.

get_unplanned_resource_outages

Get Unplanned Resource Outages.

parse_doc

read_doc

read_docs

get_60_day_dam_disclosure(date, end=None, process=False, verbose=False)[source]#

Get 60 day DAM Disclosure data

get_60_day_sced_disclosure(date, end=None, process=False, verbose=False)[source]#

Get 60 day SCED Disclosure data

Parameters:
  • date (datetime.date, str) – date to return

  • end (datetime.date, str, optional) – if declared, function will return data as a range, from “date” to “end”

  • process (bool, optional) – if True, will process the data into standardized format. if False, will return raw data

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

dictionary with keys “sced_load_resource”, “sced_gen_resource”, and

”sced_smne”, mapping to pandas.DataFrame objects

Return type:

dict

get_as_monitor(date='latest', verbose=False)[source]#

Get Ancillary Service Capacity Monitor.

Parses table from https://www.ercot.com/content/cdr/html/as_capacity_monitor.html

Parameters:
  • date (str) – only supports “latest”

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrame with ancillary service capacity monitor data

Return type:

pandas.DataFrame

get_as_prices(date, end=None, verbose=False)[source]#

Get ancillary service clearing prices in hourly intervals in Day Ahead Market

Parameters:
  • date (datetime.date, str) – date of delivery for AS services

  • end (datetime.date, str, optional) – if declared, function will return data as a range, from “date” to “end”

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrame with prices for “Non-Spinning Reserves”, “Regulation Up”, “Regulation Down”, “Responsive Reserves”, “ERCOT Contingency Reserve Service”

Return type:

pandas.DataFrame

get_as_reports(date, verbose=False)[source]#

Get Ancillary Services Reports.

Published with a 2 day delay around 3am central

get_dam_price_corrections(dam_type, verbose=False)[source]#

Get RTM Price Corrections

Parameters:

rtm_type (str) – ‘DAM_SPP’, ‘DAM_MCPC’, ‘DAM_EBLMP’

get_dam_spp(year, verbose=False)[source]#

Get Historical DAM Settlement Point Prices(SPPs) for each of the Hubs and Load Zones

Parameters:

year (int) – year to get data for. Starting 2011, returns data for the entire year

Source:

https://www.ercot.com/mp/data-products/data-product-details?id=NP4-180-ER

get_dam_system_lambda(date, end=None, verbose=False)[source]#

Get Day-Ahead Market System Lambda

File is typically published around 12:30 pm for the day ahead

https://www.ercot.com/mp/data-products/data-product-details?id=NP4-523-CD

Parameters:
  • date (str, datetime) – date to get data for

  • end (str, datetime, optional) – end time to get data for. If None, return 1 day of data. Defaults to None.

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrame with day-ahead market system lambda data

Return type:

pandas.DataFrame

get_energy_storage_resources(date='latest', verbose=False)[source]#

Get energy storage resources. Always returns data from previous and current day

get_fuel_mix(date, verbose=False)[source]#

Get fuel mix 5 minute intervals

Parameters:
  • date (datetime.date, str) – “latest”, “today”, and yesterday’s date are supported.

  • verbose (bool) – print verbose output. Defaults to False.

Returns:

A DataFrame with columns; Time and columns for each fuel type

Return type:

pandas.DataFrame

get_highest_price_as_offer_selected(date, verbose=False)[source]#

Get the offer price and the name of the Entity submitting the offer for the highest-priced Ancillary Service (AS) Offer.

Published with 3 day delay

Parameters:
  • date (str, datetime) – date to get data for

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrameq

Return type:

pandas.DataFrame

get_hourly_resource_outage_capacity(date, end=None, verbose=False)[source]#

Hourly Resource Outage Capacity report sourced from the Outage Scheduler (OS).

Returns outage data for for next 7 days.

Total Resource MW doesn’t include IRR, New Equipment outages, retirement of old equipment, seasonal mothballed (during the outage season), and mothballed.

As such, it is a proxy for thermal outages.

Parameters:
  • date (str) – time to download. Returns last hourly report before this time. Supports “latest”

  • end (str, optional) – end time to download. Defaults to None.

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrame with hourly resource outage capacity data

Return type:

pandas.DataFrame

get_hourly_solar_report(date, end=None, verbose=False)[source]#

Get Hourly Solar Report.

Posted every hour and includes System-wide and geographic regional hourly averaged solar power production, STPPF, PVGRPP, and COP HSL for On-Line PVGRs for a rolling historical 48-hour period as well as the system-wide and regional STPPF, PVGRPP, and COP HSL for On-Line PVGRs for the rolling future 168-hour period.

Parameters:
  • date (str) – date to get report for. Supports “latest” or a date string

  • end (str, optional) – end date for date range. Defaults to None.

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrame with hourly solar report data

Return type:

pandas.DataFrame

get_hourly_wind_report(date, end=None, verbose=False)[source]#

Get Hourly Wind Report.

This report is posted every hour and includes System-wide and Regional actual hourly averaged wind power production, STWPF, WGRPP and COP HSLs for On-Line WGRs for a rolling historical 48-hour period as well as the System-wide and Regional STWPF, WGRPP and COP HSLs for On-Line WGRs for the rolling future 168-hour period. Our forecasts attempt to predict HSL, which is uncurtailed power generation potential.

Parameters:
  • date (str) – date to get report for. Supports “latest”

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrame with hourly wind report data

Return type:

pandas.DataFrame

get_interconnection_queue(verbose=False)[source]#

Get interconnection queue for ERCOT

Monthly historical data available here:

http://mis.ercot.com/misapp/GetReports.do?reportTypeId=15933&reportTitle=GIS%20Report&showHTMLView=&mimicKey

get_lmp(date, end=None, market: str = Markets.REAL_TIME_SCED, locations: list = 'ALL', location_type: str = 'ALL', verbose=False)[source]#

Get LMP data for ERCOT normally produced by SCED every five minutes

Can specify the location type to return “electrical bus” or “settlement point” data

get_load(date, end=None, verbose=False)[source]#

Get load for a date

Parameters:

date (datetime.date, str) – “latest”, “today”, or a date string are supported.

get_load_by_forecast_zone(date, verbose=False)[source]#

Get hourly load for ERCOT forecast zones

Parameters:
  • date (datetime.date, str) – “today”, or a date string are supported.

  • verbose (bool) – print verbose output. Defaults to False.

Returns:

pandas.DataFrame

get_load_by_weather_zone(date, verbose=False)[source]#

Get hourly load for ERCOT weather zones

Parameters:
  • date (datetime.date, str) – “today”, or a date string are supported.

  • verbose (bool) – print verbose output. Defaults to False.

Returns:

pandas.DataFrame

get_load_forecast(date, end=None, forecast_type=ERCOTSevenDayLoadForecastReport.BY_FORECAST_ZONE, verbose=False)[source]#

Returns load forecast of specified forecast type.

If date range provided, returns all hourly reports published within.

Note: only limited historical data is available

Parameters:
  • date (str, datetime) – datetime to download. If end not provided, returns last hourly report published before. if “latest”, returns most recent hourly report. if end provided, returns all hourly reports published after this date and before end.

  • end (str, datetime,) – if provided, returns all hourly reports published after date and before end

  • forecast_type (ERCOTSevenDayLoadForecastReport) – The load forecast type. Enum of possible values.

  • verbose (bool, optional) – print verbose output. Defaults to False.

get_raw_interconnection_queue(verbose=False)[source]#
get_real_time_system_conditions(date='latest', verbose=False)[source]#

Get Real-Time System Conditions.

Parses table from https://www.ercot.com/content/cdr/html/real_time_system_conditions.html

Parameters:
  • date (str) – only supports “latest”

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrame with real-time system conditions

Return type:

pandas.DataFrame

get_rtm_price_corrections(rtm_type, verbose=False)[source]#

Get RTM Price Corrections

Parameters:

rtm_type (str) – ‘RTM_SPP’, ‘RTM_SPLMP’, ‘RTM_EBLMP’, ‘RTM_ShadowPrice’, ‘RTM_SOGLMP’, ‘RTM_SOGPRICE’

get_rtm_spp(year, verbose=False)[source]#
Get Historical RTM Settlement Point Prices(SPPs)

for each of the Hubs and Load Zones

Parameters:

year (int) – year to get data for Starting 2011, returns data for the entire year

Source:

https://www.ercot.com/mp/data-products/data-product-details?id=NP6-785-ER

get_sara(url='https://www.ercot.com/files/docs/2023/05/05/SARA_Summer2023_Revised.xlsx', verbose=False)[source]#

Parse SARA data from url.

Seasonal Assessment of Resource Adequacy for the ERCOT Region (SARA)

Parameters:

url (str, optional) – url to download SARA data from. Defaults to Summer 2023 SARA data.

get_sced_system_lambda(date, end=None, verbose=False)[source]#

Get System lambda of each successful SCED

Normally published every 5 minutes

Parameters:
  • date (str, datetime, pd.Timestamp) – date or start time to get data for

  • end (str, datetime, optional) – end time to get data for. If None, return 1 day of data. Defaults to None.

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrame

Return type:

pandas.DataFrame

get_spp(date, end=None, market: str = None, locations: list = 'ALL', location_type: str = 'ALL', verbose=False)[source]#

Get SPP data for ERCOT

Supported Markets:
  • REAL_TIME_15_MIN

  • DAY_AHEAD_HOURLY

Supported Location Types:
  • Load Zone

  • Trading Hub

  • Resource Node

get_status(date, verbose=False)[source]#

Returns status of grid

get_system_wide_actual_load(date, end=None, verbose=False)[source]#

Get 15-minute system-wide actual load.

This report is posted every hour five minutes after the hour.

Parameters:
  • date (str, datetime) – date to get data for

  • end (str, datetime, optional) – end time to get data for. Defaults to None.

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrame with system actuals data

Return type:

pandas.DataFrame

get_unplanned_resource_outages(date, verbose=False)[source]#

Get Unplanned Resource Outages.

Data published at ~5am central on the 3rd day after the day of interest.

Parameters:
  • date (str, datetime) – date to get data for

  • verbose (bool, optional) – print verbose output. Defaults to False.

Returns:

A DataFrame with unplanned resource outages

Return type:

pandas.DataFrame

parse_doc(doc, dst_ambiguous_default='infer', verbose=False)[source]#
read_doc(doc, parse=True, verbose=False)[source]#
read_docs(docs, parse=True, empty_df=None, verbose=False)[source]#
class gridstatus.ercot.ERCOTSevenDayLoadForecastReport[source]#

Bases: enum.Enum

Enum class for the Medium Term (Seven Day) Load Forecasts. The values are the report IDs.

Attributes

BY_FORECAST_ZONE

12311

BY_MODEL_AND_STUDY_AREA

15953

BY_MODEL_AND_WEATHER_ZONE

14837

BY_WEATHER_ZONE

12312

gridstatus.ercot.GIS_REPORT_RTID = 15933[source]#
gridstatus.ercot.HISTORICAL_DAM_LOAD_ZONE_AND_HUB_PRICES_RTID = 13060[source]#
gridstatus.ercot.HISTORICAL_RTM_LOAD_ZONE_AND_HUB_PRICES_RTID = 13061[source]#
gridstatus.ercot.HOURLY_RESOURCE_OUTAGE_CAPACITY_RTID = 13103[source]#
gridstatus.ercot.HUB_SETTLEMENT_TYPES = ['HU', 'SH', 'AH'][source]#
gridstatus.ercot.iso[source]#
gridstatus.ercot.LMPS_BY_ELECTRICAL_BUS_RTID = 11485[source]#
gridstatus.ercot.LMPS_BY_SETTLEMENT_POINT_RTID = 12300[source]#
gridstatus.ercot.LOAD_ZONE_SETTLEMENT_TYPES = ['LZ', 'LZ_DC'][source]#
gridstatus.ercot.LOCATION_TYPE_HUB = 'Trading Hub'[source]#
gridstatus.ercot.LOCATION_TYPE_RESOURCE_NODE = 'Resource Node'[source]#
gridstatus.ercot.LOCATION_TYPE_ZONE = 'Load Zone'[source]#
gridstatus.ercot.LOCATION_TYPE_ZONE_DC = 'Load Zone DC Tie'[source]#
gridstatus.ercot.LOCATION_TYPE_ZONE_DC_EW = 'Load Zone DC Tie Energy Weighted'[source]#

Report Type IDs

gridstatus.ercot.LOCATION_TYPE_ZONE_EW = 'Load Zone Energy Weighted'[source]#
gridstatus.ercot.parse_timestamp_from_friendly_name(friendly_name)[source]#
gridstatus.ercot.RESOURCE_NODE_SETTLEMENT_TYPES = ['RN', 'PCCRN', 'LCCRN', 'PUN'][source]#
gridstatus.ercot.RTM_PRICE_CORRECTIONS_RTID = 13045[source]#
gridstatus.ercot.SCED_SYSTEM_LAMBDA_RTID = 13114[source]#
gridstatus.ercot.SETTLEMENT_POINT_PRICES_AT_RESOURCE_NODES_HUBS_AND_LOAD_ZONES_RTID = 12301[source]#
gridstatus.ercot.SETTLEMENT_POINTS_LIST_AND_ELECTRICAL_BUSES_MAPPING_RTID = 10008[source]#
gridstatus.ercot.SIXTY_DAY_DAM_DISCLOSURE_REPORTS_RTID = 13051[source]#
gridstatus.ercot.SIXTY_DAY_SCED_DISCLOSURE_REPORTS_RTID = 13052[source]#
gridstatus.ercot.SOLAR_POWER_PRODUCTION_HOURLY_AVERAGED_ACTUAL_AND_FORECASTED_VALUES_BY_GEOGRAPHICAL_REGION_RTID = 21809[source]#

Settlement Point Type Description ========== ========== =========== Resource Node RN Resource Node for normal resource Resource Node PCCRN Physical Resource Node for combined cycle units Resource Node LCCRN Logical Resource Node for combined cycle plant Resource Node PUN Private Area Network Resource Node Load Zone LZ Congestion Load Zone Load Zone LZ_DC DCTIE Load Zone Hub HU Hub Hub SH ERCOT_345KV_HUBBUSES_AVG Hub AH ERCOT_HUB_AVG ============================================================ Source: https://www.ercot.com/files/docs/2009/10/26/07_tests_for_rsnable_lmps_overview_of_price_valid_tool_09102.ppt

gridstatus.ercot.SYSTEM_WIDE_ACTUALS_RTID = 12340[source]#
gridstatus.ercot.THREE_DAY_HIGHEST_PRICE_AS_OFFER_SELECTED_RTID = 13018[source]#
gridstatus.ercot.TWO_DAY_ANCILLARY_SERVICES_REPORTS_RTID = 13057[source]#
gridstatus.ercot.UNPLANNED_RESOURCE_OUTAGES_REPORT_RTID = 22912[source]#
gridstatus.ercot.WIND_POWER_PRODUCTION_HOURLY_AVERAGED_ACTUAL_AND_FORECASTED_VALUES_RTID = 13028[source]#