Wholesale prices
Spot prices at the island reference nodes and four more, dispatch prices for the live week and final prices for history, and the figures the Prices tab derives from them.
Data used
- Real-time dispatchElectricity Authority (EMI) The live week: generation by unit, island load, prices, the Tiwai smelter (TWI2201). Also the inputs to the HVDC estimate and the price explainer.The last month or so · Usually 1–2 minutes after each interval starts
- Dispatch prices and volumesElectricity Authority (EMI) Fills gaps in the live week; history for the weeks since the latest metered month; plants the metering doesn’t have (batteries, new solar farms).From 10 Sep 2020 · 1–4 days late
- Final energy pricesElectricity Authority (EMI) Every price in the history. The usual prices the explainer compares with.From 1996 (the site uses August 1997 on) · Usually the next day
Which prices
New Zealand’s wholesale market sets a price at every node on the grid, every five minutes; prices differ between nodes by transmission losses and constraints. The site shows six, north to south:
| Node | Code | Where | Shown on |
|---|---|---|---|
| Ōtāhuhu | OTA2201 | Auckland | Prices tab |
| Whakamaru | WKM2201 | Waikato River | Prices tab |
| Haywards | HAY2201 | Wellington: North Island reference | Everywhere |
| Benmore | BEN2201 | Waitaki: South Island reference | Everywhere |
| Islington | ISL2201 | Christchurch | Prices tab |
| Invercargill | INV2201 | Southland | Prices tab |
Haywards and Benmore sit at the two ends of the HVDC link and are the usual reference prices for each island. Prices are in dollars per megawatt-hour ($100/MWh is 10 cents a kWh), before lines charges, GST and retail margins.
The live week: dispatch prices
- Each 5-minute dispatch case’s price at each node, from the real-time feed.
- Where the week was filled from the EA’s daily dispatch files, those files have no rows for bus nodes such as Haywards and Benmore. The files do give each node’s price and its location factor against the island reference node, and price ÷ location factor gives the reference price exactly. Ōtāhuhu, Islington and Invercargill have no price for those intervals; Whakamaru, a generating node, does.
- Gaps of up to 12 intervals (an hour of 5-minute data) at the four other nodes are bridged by a straight line; longer ones are left empty.
History: final prices
History uses the EA’s final prices, the prices the market settles on, for every half-hour trading period. They are published the next day, marked interim until confirmed (occasionally for longer, while a period is under review). Trading period 1 starts at midnight New Zealand time.
Dispatch and final prices can be very different under scarcity pricing: on 9 August 2021, dispatch prices at Haywards averaged $16,270/MWh with a peak of $356,621, while the final prices averaged $360 with a peak of $2,698.
What the Prices tab works out
- Island spread
- Haywards − Benmore, $/MWh. Positive when the North Island is dearer.
- Islands priced apart
- Shaded where Haywards and Benmore differ by more than $10 and by more than 10% of the lower price; usually the HVDC link, or the grid near it, is at a limit. The range figure is the share of intervals priced apart.
- Time-weighted average
- Every interval counts the same: Σ price × hours ÷ Σ hours.
- Generation-weighted average
- Each interval counts by how much was generated, so busy peaks count for more: Σ(each fuel’s MW × its island’s price × hours) ÷ Σ(MW × hours), over every fuel below.
- Price captured by fuel
- The average price a fuel’s generation was worth: its output × its island’s reference price, summed, ÷ its output. Shown as $/MWh and as a percentage of the generation-weighted average. Batteries count discharge only (not the price they paid to charge); embedded solar is left out because it isn’t paid the spot price.
- Price range
- On 12 months and All: each day’s spread of half-hourly final prices: the middle 80% (10th to 90th percentile), lowest and highest. Weeks and months average the daily percentiles and take the lowest and highest half-hour.
- Price spikes
- On 12 months and All: the number of half-hours in each period over $500 and over $1,000/MWh, at the chosen reference node.
- Price by time of day
- A heat map of the last 30 days: one row per day, one column per half-hour, coloured by price at the chosen node.
- Range figures
- Each node’s average and highest price over the range, and the time it was over $500/MWh.
The Prices tab’s HVDC chart is the same series as the Generation tab’s; see HVDC transfer.
Price scales
- Spike-proof
- Linear to about $100, compressed above it, so a single spike doesn’t flatten everything else: the chart plots sign(p) × log₁₀(1 + |p| ÷ 100), which also handles negative prices.
- Capped
- Linear up to $600; anything higher is clipped and marked at the top.
- Linear
- A plain scale, showing spikes at their true size.
Known limits
- Dispatch prices can be revised, and can differ a lot from final prices; the live week is replaced with final prices as they are published.
- Prices are wholesale spot prices only. Most electricity is sold under contracts and retail plans, at other prices.
Code: site/src/lib/prices/data.js (everything the Prices tab works out), ingest/history.py (final prices, daily spreads).
Spotted a problem with this page, or know a better source? Email us about it