NYISO logo

NYISO Price Locations

Every NYISO location that carries a price, as three columns: location_id, name, and kind.

Native record
one row per priced location and kind
slow-moving dimension, refreshed every 6 hours publication cadence
Evidence
Reference data
Stable context used to interpret other datasets
Time basis
Point-in-time records
UTC · static reference

Overview

773 rows — generator (758), zone (15). This is the dimension the NYISO 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 NYISO, location_id is the numeric PTID and name is the human-readable zone or generator name. Join on location_id; report name. The same three columns exist for every market, so the equivalent question in another ISO is the same query against that ISO's table.

Query contract

Treat (location_id, kind) as the row identity. This is a current dimension snapshot, not a history: it describes the locations that exist now and carries no validity dates.

Analysis rules

  • Counting rows by kind describes the market's current location inventory. It does not describe how many locations were priced on some past date.
  • Join fact tables on location_id, and add kind to the join when the fact table also carries kind — the pair, not the id alone, is the identity.

Interpretation

  • A location existing here does not mean it has a price in any particular interval; check the price table for that.
  • kind is a classification of the priced object, not of the physical equipment behind it, and carries no capacity, voltage, or geography. Location geography lives in grid.entities.

Access

Query from your own tools

Use the guarded HTTP endpoint directly, or connect an MCP client and load the dataset contract with describe_data before calling query_data.

HTTP endpoint
POST /api/v1/datasets/nyiso_locations/query

Need the full history of this dataset in Snowflake, Databricks or your own storage? Data services delivers it on a schedule.

Schema3

Column
Type
location_idLowCardinality(String)
nameLowCardinality(String)
kindLowCardinality(String)

Sample data

location_idnamekind
-23651HQ_DAM_TRANS_STRIKEgenerator
-24062N.E._DAM_TRANS_STRIKEgenerator
-24063O.H._DAM_TRANS_STRIKEgenerator
-24065PJM_DAM_TRANS_STRIKEgenerator
00generator
23512ARTHUR_KILL_2generator
23513ARTHUR_KILL_3generator
23514ALLEGHENY___COGENgenerator
23515BROOKLYN_NAVY_YARDgenerator
23516ASTORIA___3generator
23517ASTORIA___4generator
23518ASTORIA___5generator
23519POLETTI____generator
23520ARTHUR KILL_GT_1generator
23522WADING RIVER_IC_1generator
23523ASTORIA_GT_1generator
23524EAST RIVER___7generator
23526BOWLINE___1generator
23527ADK_NYS___DAMgenerator
23528NEG_PENN_ALLEGHNYgenerator
23530INDIAN POINT___2generator
23531INDIAN POINT___3generator
23532RUSSELL___2generator
23533RAVENSWOOD___1generator
23534RAVENSWOOD___2generator

Coverage

No time-indexed data — coverage isn’t applicable to this dataset.