NEM intraday price spread for battery arbitrage

NEM intraday price spread for battery arbitrage

A grid battery earns its energy margin by charging in the cheapest part of the day and discharging in the dearest. This page measures that daily price gap in every NEM region from July 2009 to yesterday, from AEMO's 5-minute dispatch prices, in today's dollars so that years compare fairly.

Set Window length to the battery's duration. Window type decides how the hours are picked. Best continuous block takes the most expensive run of consecutive intervals of that length in the day and subtracts the cheapest run, which is close to what a battery cycling once a day can capture. Best individual intervals takes the same number of the day's highest-priced and lowest-priced 5-minute intervals wherever they fall, an upper bound for the same battery. Statistic switches between the median day and the mean day; a few price-spike days move the mean far more than the median.

Daily spread over the last 365 days ($/MWh, today's dollars)

Uses the window length, window type and statistic chosen above.

Figures as of 18 October 2026, 5:42 pm NEM time.

Monthly daily spread, selected region

Real dollars scale each day by ABS CPI, so early years read higher than they settled. Drag across the chart to zoom into a period.

monthreal_spreadnominal_spread
2026-08-01120.5120.5
2026-09-01121.5121.5
2026-10-01165165

Annual daily spread by region (today's dollars)

The current year is year to date, so it is missing the months still to come.

Each day's spread over the last 365 days, selected region

One square per day. Runs of high-spread days show which weeks carried the year's arbitrage value.

daydaily_spread
2026-10-15121.4
2026-10-16111.2
2026-10-17322.5

Build a dashboard like this

An AI agent built this page from a plain-English request using NEM Explorer, which holds AEMO market data from 2009 onward. The page re-runs its queries against the latest data each time it is opened. Ask for your own at chat.scadaminer.com, or connect Claude Code or another MCP client to NEM Explorer and have it save one for you. The request behind this page was close to:

Build me a dashboard of the daily spread between the best and worst 2-hour price windows in each NEM region since 2009, in today's dollars, with controls for window length and region.

Method, sources and caveats

Prices are the regional reference price from AEMO's DISPATCHPRICE table with INTERVENTION = 0, from 1 July 2009 to yesterday in NEM time (UTC+10). A day runs from the interval ending 00:05 to the interval ending 24:00. Days missing more than 12 of their 288 intervals are left out.

For a window of N hours (N × 12 intervals), Best continuous block is the highest average price over any N consecutive hours in the day minus the lowest average over any N consecutive hours. It does not require the cheap block to come before the dear one, and the two blocks can overlap. Best individual intervals is the average of the day's N × 12 highest prices minus the average of its N × 12 lowest.

The spread is the opportunity in the price, not a battery's revenue. It ignores round-trip losses, state of charge carried between days, cycling limits, FCAS co-optimisation and the effect of the battery's own dispatch on price.

Real dollars scale each day by the ABS Consumer Price Index (All groups, Australia) for its quarter, relative to the latest published quarter. Days in quarters the ABS has not yet published stay at their nominal value. The last-365-days figures and the calendar cover complete days only.

Contains material sourced from AEMO. SCADA Miner transforms and analyses the source material; results are not endorsed by AEMO.

Ask your own question of NEM data

More published analyses and dashboards