IESO logo

IESO Ontario Zonal Price

The Ontario zonal price, the load-weighted price Ontario's non-dispatchable load pays, in each market run, with loss and congestion components.

Native record
market run x interval
five-minute real-time; hourly day-ahead and pre-dispatch publication cadence
Evidence
Mixed evidence
Multiple evidence types kept distinct in the contract
Time basis
Point-in-time records
UTC · event_time

Overview

Ontario's reference price.

Query contract

Preserve one canonical row per (event_time, market_run, zone_name) before aggregating.

Analysis rules

  • Filter one market_run: 'rt_5min' (real-time, five-minute), 'da_hourly' (day-ahead market) or 'predispatch_hourly' (pre-dispatch projection). Never mix runs, and never take max(event_time) without one: day-ahead rows reach into tomorrow.
  • Rows repeat across polls: dedupe with argMax(value, ingested_at) per key.

Interpretation

  • event_time marks the END of the interval or hour. IESO delivers on EST all year, but this mirror's event_time was built on Toronto wall time, so between the second Sunday of March and the first Sunday of November it is one hour early. The delivery end is event_time + toIntervalSecond(timeZoneOffset(toTimeZone(event_time, 'America/Toronto')) + 18000); rows in the spring-forward hour cannot be placed. Toronto civil time is for display only.
  • Prices are Canadian dollars per MWh. Never add, rank or average them with US-dollar prices without a dated exchange rate, and say which rate was used.

Access

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

Schema8

Column
Type
event_timeDateTime64(6, 'UTC')
market_runLowCardinality(String)
zone_nameLowCardinality(String)
lmpNullable(Float64)
congestionNullable(Float64)
lossNullable(Float64)
publish_timeNullable(DateTime64(6, 'UTC'))
ingested_atDateTime64(6, 'UTC')

Sample data

event_timemarket_runzone_namelmpcongestionlosspublish_timeingested_at
2026-10-12 04:00:00.000000da_hourlyOntario42.74∅0.26∅2026-10-10 17:35:30.740095
2026-10-12 03:00:00.000000da_hourlyOntario51.75-0.060.16∅2026-10-10 17:35:30.740095
2026-10-12 02:00:00.000000da_hourlyOntario54.05-0.070.04∅2026-10-10 17:35:30.740095
2026-10-12 01:00:00.000000da_hourlyOntario58.19-0.01-0.01∅2026-10-10 17:35:30.740095
2026-10-12 00:00:00.000000da_hourlyOntario60.82∅0.03∅2026-10-10 17:35:30.740095
2026-10-11 23:00:00.000000da_hourlyOntario75.22∅0.1∅2026-10-10 17:35:30.740095
2026-10-11 22:00:00.000000da_hourlyOntario80.54∅0.15∅2026-10-10 17:35:30.740095
2026-10-11 21:00:00.000000da_hourlyOntario73.28-0.080.02∅2026-10-10 17:35:30.740095
2026-10-11 20:00:00.000000da_hourlyOntario61.22-0.09-0.03∅2026-10-10 17:35:30.740095
2026-10-11 19:00:00.000000da_hourlyOntario60.61-0.090.04∅2026-10-10 17:35:30.740095
2026-10-11 18:00:00.000000da_hourlyOntario58.05-0.080.03∅2026-10-10 17:35:30.740095
2026-10-11 17:00:00.000000da_hourlyOntario56.64-0.07-0.01∅2026-10-10 17:35:30.740095
2026-10-11 16:00:00.000000da_hourlyOntario53.66-0.190.04∅2026-10-10 17:35:30.740095
2026-10-11 15:00:00.000000da_hourlyOntario50.82-1.530.06∅2026-10-10 17:35:30.740095
2026-10-11 14:00:00.000000da_hourlyOntario43.98-0.010.02∅2026-10-10 17:35:30.740095
2026-10-11 13:00:00.000000da_hourlyOntario42.3-0.010.16∅2026-10-10 17:35:30.740095
2026-10-11 12:00:00.000000da_hourlyOntario41.42-0.010.29∅2026-10-10 17:35:30.740095
2026-10-11 11:00:00.000000da_hourlyOntario36.470.030.36∅2026-10-10 17:35:30.740095
2026-10-11 10:00:00.000000da_hourlyOntario33.33∅0.29∅2026-10-10 17:35:30.740095
2026-10-11 09:00:00.000000da_hourlyOntario37.83∅0.27∅2026-10-10 17:35:30.740095
2026-10-11 08:00:00.000000da_hourlyOntario36.72∅0.22∅2026-10-10 17:35:30.740095
2026-10-11 07:00:00.000000da_hourlyOntario36.4∅0.22∅2026-10-10 17:35:30.740095
2026-10-11 06:00:00.000000da_hourlyOntario34.9∅0.19∅2026-10-10 17:35:30.740095
2026-10-11 05:00:00.000000da_hourlyOntario32.96∅0.14∅2026-10-10 17:35:30.740095
2026-10-11 04:00:00.000000predispatch_hourlyOntario31.8-0.370.09∅2026-10-10 17:35:30.740095

Coverage

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