Overview
Every ERCOT location that carries a price, as three columns: location_id, name, and kind. 20,456 rows — bus (19,329), node (1,100), weather_zone (8), zone (8), hub (7), interface (4). This is the dimension the ERCOT price, and where applicable constraint, tables join to, and it is the one place a location's type is decided: resolve "which hubs exist", "is this a zone or a node", or "give me the readable name for this id" here rather than inferring a type from a name prefix. For ERCOT, name equals location_id — the settlement-point name is the identifier. The key is (location_id, kind), not location_id alone: 161 ERCOT names exist as both a settlement point and an electrical bus, and those are separately priced objects. Filter on kind when a name could be either. The same three columns exist for every market, so the equivalent question in another ISO is the same query against that ISO's table.
Use with MCP
This table is readable two ways, over the same guarded boundary. Over HTTP: POST /api/v1/datasets/ercot_locations/query, described in the API reference. Or from an MCP client: connect a market below, then use search_data or describe_data to load its query contract before calling query_data.
Schema3
location_idLowCardinality(String)nameLowCardinality(String)kindLowCardinality(String)Sample rows
| location_id | name | kind |
|---|---|---|
| 0001 | 0001 | bus |
| 0001DUPV1_ | 0001DUPV1_ | bus |
| 0001HWFG1 | 0001HWFG1 | bus |
| 0001VICTOR | 0001VICTOR | bus |
| 0001_C | 0001_C | bus |
| 0001_EB | 0001_EB | bus |
| 0001_LO | 0001_LO | bus |
| 0002 | 0002 | bus |
| 0002_EB | 0002_EB | bus |
| 0003 | 0003 | bus |
| 0003EB | 0003EB | bus |
| 0003_EB | 0003_EB | bus |
| 0004 | 0004 | bus |
| 0004EB | 0004EB | bus |
| 0004_1 | 0004_1 | bus |
| 0004_EB | 0004_EB | bus |
| 0005 | 0005 | bus |
| 0006 | 0006 | bus |
| 0006B | 0006B | bus |
| 0006EB | 0006EB | bus |
| 0006_PV1 | 0006_PV1 | bus |
| 0007 | 0007 | bus |
| 0007_EB | 0007_EB | bus |
| 0008 | 0008 | bus |
| 0008EB | 0008EB | bus |
Coverage
No time-indexed data — coverage isn’t applicable to this dataset.