ERCOT (Texas) 15 Min. Real Time Market Electricity Prices

Energy
tick

Every 15 Minutes

tick

Updated Daily

tick

> Dec 2010

tick

7 Hubs, 8 Load Zones

tick

Texas (US)

Summary

15 minutes Settlement Point Prices (SPPs) for Load Zones and Hubs in $/MWh

This is a sample visualization of a small subset of this data product.
Loading...
Charts of ERCOT (Texas) 15 Min. Real Time Market Electricity Prices

Key Features

  • Fifteen-minute interval prices in $/MWh
  • Updated daily by 10 AM UTC (4:00 AM Central Standard Time)
  • Historical data goes back to 2010
  • Covers 7 Hubs, 8 Load Zones

Documentation

Applications

  • Short-term commitments (forecast) of Settlement Point Prices (SPPs)
  • Seasonal average and distribution of price
  • Historical trade area and regional price analysis
  • Valuation of Power Purchase Agreements (PPA's)

Overview

This data product offers fifteen-minute interval prices for all Load Zones and Hubs in ERCOT (Texas).

A price calculated for a Settlement Point for each Settlement Interval using Locational Marginal Price (LMP) data, Settlement Calculations for the Real-Time Energy Operations.

Coverage

List of Load Zones and Hubs covered in this data product:

1. Load Zones

A group of Electrical Buses. Every Electrical Bus in ERCOT with a Load must be assigned to a Load Zone for Settlement purposes. A Non Opt-In Entity (NOIE) Load Zone is a type of Load Zone.

Load Zone Id Name
LZ_AEN Austin Energy
LZ_CPS CPS Energy
LZ_HOUSTON Houston
LZ_LCRA Lower Colorado River Authority
LZ_NORTH North
LZ_RAYBN Rayburn Electric Cooperative
LZ_SOUTH South
LZ_WEST West

2. Hubs

An energized Electrical Bus or group of energized Electrical Buses defined as a single element. The Locational Marginal Price (LMP) of the Hub Bus is the simple average of the LMPs assigned to each energized Electrical Bus on the Hub Bus. A designated Settlement Point consisting of a Hub Bus or group of Hub Buses and the associated Settlement price calculation methodology. The list of Hub Buses and the Settlement price calculation methodology that defines a Hub can never be modified, and a Hub, once defined, exists in perpetuity.

Hub Id Name
HB_BUSAVG Bus Average
HB_HUBAVG Hub Average
HB_HOUSTON Houston
HB_NORTH North
HB_PAN Panhandle
HB_SOUTH South
HB_WEST West

Data Collection Methodology

  • Data is updating from its source every day three times a day including after midnight.
  • It is unified to provide a clean, organized data for both historical and current dates of the operation - ready for analysis.
  • All date and hours are quality checked for consistency and completeness steps.

The Electric Reliability Council of Texas (ERCOT) manages the flow of electric power to more than 26 million Texas customers - representing about 90 percent of the state's electric load. As the independent system operator for the region, ERCOT schedules power on an electric grid that connects more than 46,500 miles of transmission lines and 650+ generation units. It also performs financial settlements for the competitive wholesale bulk-power market and administers retail switching for 8 million premises in competitive choice areas. ERCOT is a membership-based 501(c)(4) nonprofit corporation, governed by a board of directors and subject to oversight by the Public Utility Commission of Texas and the Texas Legislature.

Dictionary

Filter
Column
Title
Data Type
Description
opr_tsOperation TimestampTimestampThe date and hour interval when the market runs and value supplied. There are 96 intervals in a day.
settlement_point_nameSettlement Point NameTextName of a Settlement Point is a Resource Node, Load Zone, or Hub
settlement_point_priceSettlement Point PriceFloatA price calculated for a Settlement Point for each Settlement Interval using Locational Marginal Price (LMP) data, DAM Settlement, Settlement Calculations for the Real-Time Energy Operations

Sample Data

API

ALTADATA provides a powerfull API, compatible with JSON, CSV formats. You can connect, update and analyze our data products with cURL, Python, R, Ruby, Java or Javascript

Authentication

Getting an API key

You need to subscribe to an ALTADATA data product to get an API key. Once you subscribe to the data product you can find your API key on your Account Dashboard.

Auhenticating your requests

`api_key` is your access token. This token must be included on each API call with either a HTTP Header Authorization, or a query parameter api_key.

Example: https://www.altadata.io/data/api/en_01_ercot_04?api_key=YOUR_API_KEY

ALTADATA API Reference Table

Parameter Type Parameter Explanation Available Values Default
General size The number of records will be returned for each page. 5 - 100 20
General page The page number. It starts at 1 and increments one by one. Each page returns records that row count equals to the size parameter 1- ... 1
General format The data return format of API call json , csv json
General collapse The aggregation format of API call Examples are monthly, yearly, bystate, bycountry, etc. Refer to the data product documentation to see available aggregations for it. null
Select columns Column select is how you specify the content of an SQL SELECT c_only, c_certain, c_columns FROM clause. More detail is in the following sections. *
Order order_by Column order is how you specify the content of an SQL ORDER BY clause. More detail is in the following sections. null
Lookup vary by column name Column lookups are how you specify the content of an SQL WHERE clause. More detail is in the following sections. *

Select

Column select is how you specify the content of an SQL SELECT c_only, c_certain, c_columns FROM clause. It specifies as a keyword argument to the query string of API Call URL. Basic usage is a comma-separated list of column names. If not given, the default value is *(asterisk).

Example 1 :

Query : ?columns=C1,C2,C3 SQL Equivalent : Select C1,C2,C3 from DATA_PRODUCT

Example 2 :

Query : Not Given | ?columns= | ?columns=* SQL Equivalent : Select * from DATA_PRODUCT

Order

Column order is how you specify the content of an SQL ORDER BY clause. It specifies as a keyword argument to the query string of API Call URL. Basic usage is a comma-separated list of column names where each column name has an appropriate suffix (asc,desc) after _(underscore) or no suffix (means ascending).

Example :

Query : ?order_by=C1_asc,C2,C3_desc,C4_asc SQL Equivalent : Select * from DATA_PRODUCT order by C1 asc, C2, C4 desc, C4 asc

Order Type Suffix
Ascending null
Ascending asc
Descending desc

Lookup

Column lookups are how you specify the content of an SQL WHERE clause. They’re specifies as keyword arguments to the query string of API Call URL. Basic usage is appending _(underscore) then lookup type as a suffix to name of the column that you want to filter. The query parameter for a column is built like the format {COLUMN_NAME}_{LOOKUP_TYPE}

As a convenience when no lookup type is provided

Lookup Type Suffix Value Type Example SQL Equivalent
Equal to null String | Numeric | Datetime ?COLUMN=VALUE Select * from DATA_PRODUCT where COLUMN=VALUE
Equal to eq String | Numeric | Datetime ?COLUMN_eq=VALUE Select * from DATA_PRODUCT where COLUMN=VALUE
Not Equal to neq String | Numeric | Datetime ?COLUMN_neq=VALUE Select * from DATA_PRODUCT where COLUMN<>VALUE
Greater Than gt Numeric | Datetime ?COLUMN_gt=VALUE Select * from DATA_PRODUCT where COLUMN>VALUE
Greater Than or Equal to gte Numeric | Datetime ?COLUMN_gte=VALUE Select * from DATA_PRODUCT where COLUMN>=VALUE
Less Than lt Numeric | Datetime ?COLUMN_lt=VALUE Select * from DATA_PRODUCT where COLUMN,VALUE
Less Than or Equal to lte Numeric | Datetime ?COLUMN_lte=VALUE Select * from DATA_PRODUCT where COLUMN<=VALUE
In in String ?COLUMN_in=V1,V2,V3 Select * from DATA_PRODUCT where COLUMN in ('V1','V2','V3')
Not In notin String ?COLUMN_notin=V1,V2,V3 Select * from DATA_PRODUCT where COLUMN not in ('V1','V2','V3')

Data Access Examples

cURL
curl \ -H 'Authorization: api_key' \ 'https://www.altadata.io/data/api/en_01_ercot_04'
Python (requests)
response = requests.get( 'https://www.altadata.io/data/api/en_01_ercot_04', headers={'Authorization': 'api_key'} )
Ruby (open-uri)
require 'open-uri' response = URI.open('https://www.altadata.io/data/api/en_01_ercot_04', "Authorization" => "api_key" )
Java (OkHttp)
Request request = new Request.Builder() .url("https://www.altadata.io/data/api/en_01_ercot_04") .addHeader("Authorization", "api_key") .build(); Call call = client.newCall(request); Response response = call.execute();
Javascript (axios)
axios.request({ url: 'https://www.altadata.io/data/api/en_01_ercot_04', method: 'get', headers: { 'Authorization', 'api_key'} }) .then(response => { console.log(response.data) })
R ( jsonlite )
library(jsonlite) data <- fromJSON(`https://www.altadata.io/data/api/en_01_ercot_04`)

Frequently Asked Questions

HOW DO I SUBSCRIBE TO DATA PRODUCTS ON ALTADATA?
DO YOU PROVIDE CUSTOM DATASETS UPON REQUEST?
WHAT ARE THE DIFFERENT WAYS I CAN ACCESS MY SUBSCRIPTION DATA?
HOW CAN I QUICKLY LOOK AT WHAT IS IN THE DATA THAT I SUBSCRIBED TO?
HOW CAN I JOIN ALTADATA PARTNER NETWORK? DO YOU HAVE A LIST OF REQUIREMENTS?