How My Spot Price Forecasting Tool Works
The simulations behind every feasibility study and business case on this site depend on one thing above all else, a credible view of what wholesale electricity is likely to cost. Not an average, and not a rule of thumb. A forecast that reflects how volatile the National Electricity Market actually is, updated continuously, with an honest sense of how confident it is in its own prediction.
This is what my forecasting tool is built to do.
What it does
My tool predicts what electricity will cost on the wholesale market, for the next day ahead, updated every five minutes. It covers Queensland, New South Wales, Victoria, South Australia, and Tasmania. Rather than producing a single number, it gives a full picture for every interval, the most likely price, the probability of a price spike, and a realistic range the price is expected to fall within.
A quick note on the word “nowcast”. A nowcast is the forecast for the very next five minute interval — the price that will be settled in the next market dispatch, before it happens. Because it is built from the market’s live five minute data, actual prices, demand, generator behaviour and reserve levels as they are happening, it is the most accurate view the tool can offer, and the anchor the rest of the forecast hangs off.
How it works
- Learns from history. The tool is trained on years of past market data, prices, demand, weather, interconnector flows between regions, and scheduled power station outages, all drawn from public sources (full references at the bottom of this page).
- Spots patterns. It is a machine learning model, trained to recognise the conditions that lead to high prices, hot days, tight supply, low reserve margins, and interconnector congestion. Over time it becomes reliable at recognising what a spiky day looks like before it happens.
- Runs itself daily. The tool operates automatically. It downloads fresh data, retrains quietly in the background, and produces the next day’s forecast complete with confidence ranges, so every forecast comes with a sense of how sure it actually is.
How accurate it is
Tested against historical outcomes the model had not seen during training, my forecasts typically land within about $9 to $14 per MWh for prices right now, $19 to $29 per MWh an hour ahead, and $31 to $61 per MWh a full day ahead, against a market that regularly ranges from $0 to several hundred dollars per MWh. It correctly identifies 85 to 95% of real price spikes depending on the region, and its confidence ranges are honest, the actual price falls inside the predicted range roughly four times out of five.
Results by region — and how it compares with AEMO’s look-ahead
The table below summarises how the tool tests against five minute settlement data it had not seen during training, for the five regions it covers, with AEMO’s own look-ahead scored alongside for comparison. Every figure in the table was obtained over the same period, Winter 2025, the three months from 1 June to 31 August 2025, and the AEMO columns come from exactly the same window, so both sides of the table speak to the same weeks and the same markets. Every error figure is wMAPE, the average miss expressed as a percentage of the actual price. The columns read across the horizons the tool publishes: the nowcast, one, two and six hours ahead, and a full day ahead, the windows that matter when a control system has to act on a forecast before the price moves. The AEMO column is scored on the closest outlook the market had published at each interval: AEMO itself publishes pre-dispatch prices several hours ahead, but its public archive retains only the nearest view for each period.
Why percentages rather than dollars? Wholesale prices swing from near zero to thousands of dollars per MWh, so a dollar miss means very different things at different times. wMAPE shows the miss as a share of the actual price, so 10% means the forecast typically sat around a tenth of the price away from the real number, and the figures stay comparable across regions and horizons.
| Region | Nowcast wMAPE | AEMO look-ahead wMAPE | 1h ahead wMAPE | 2h ahead wMAPE | 6h ahead wMAPE | Day ahead wMAPE | Spike F1 (nowcast) | AEMO spike F1 | 80% interval coverage |
|---|---|---|---|---|---|---|---|---|---|
| QLD | ~10% | ~40% | ~23% | ~30% | ~42% | ~35% | ~0.86 | ~0.52 | 77–81% |
| NSW | ~14% | ~42% | ~29% | ~34% | ~42% | ~41% | ~0.89 | ~0.61 | 77–79% |
| VIC | ~14% | ~44% | ~31% | ~38% | ~53% | ~61% | ~0.90 | ~0.71 | 80–81% |
| SA | ~17% | ~47% | ~34% | ~45% | ~61% | ~73% | ~0.83 | ~0.73 | 82–83% |
| TAS | ~8% | ~25% | ~16% | ~21% | ~28% | ~30% | ~0.95 | ~0.59 | 80–82% |
Across all five regions, the nowcast is typically within about 8% to 17% of the actual price. That accuracy fades gradually as the outlook stretches further ahead: 16% to 34% one hour out, 21% to 45% two hours out, 28% to 61% six hours out, and 30% to 73% a full day ahead, and even the longest horizon stays far below the market’s normal swings, which routinely reach hundreds of dollars per MWh. The tool also catches 83 to 95% of real price spikes depending on the region.
Two fairness notes on the AEMO columns. AEMO’s figures come from its own archived pre-dispatch forecasts for the same Winter 2025 window, taking the latest outlook AEMO had published at each interval. AEMO publishes its pre-dispatch prices out several hours ahead, but its public archive keeps only the closest outlook for each period, so the column above reflects that nearest view, roughly 30 to 60 minutes out. AEMO’s figures are scored at 30 minute resolution against the 30 minute average price, while mine are scored five minute against five minute, a stricter test. Even on its own terms, the market’s native look-ahead is typically off by a quarter to a half of the price at its shortest horizon, where my tool is off by a tenth or less.
AEMO already publishes a look-ahead price of its own. Every five minutes it re-runs the market’s dispatch engine on forecast inputs, generators’ offers as they currently stand, its own demand forecast, and wind and solar output predictions, and publishes what it expects for the intervals ahead: a five minute view out to the end of the current trading day, in practice several hours ahead, refreshed with every dispatch run, and a half-hourly trading price outlook out to the end of the next trading day. It is the market’s own operational radar, and every participant sees the same numbers. By construction, though, it is a single price path, one expected number per interval, with no statement of how uncertain that number is, and no view of the contingent events that so often move real prices, like a unit tripping mid-ramp.
My tool is a statistical forecast built on top of the same public data. Where pre-dispatch asks “what does the market currently expect?”, my tool asks “what is most likely to happen, and how sure are we?”, learning from history the conditions that produced spikes the dispatch engine could not see, and publishing a range and a spike probability alongside every expected price. The difference shows at the longer horizons: this tool prints a full five minute profile for every interval out to a day ahead, and holds useful accuracy across all of it. The two are complementary, and my tool reads AEMO’s data as part of its inputs. Pre-dispatch is the market’s live operational view, this tool is a planning forecast built to drive control decisions.
One last term. An “80% interval” is the range the tool publishes around each forecast, wide enough that the actual price should land inside it 8 times out of 10. In backtesting the real price landed inside that range 77% to 83% of the time depending on the region, almost exactly what the tool promises. That matters: a forecast that claims 80% but only delivers half that is overconfident, and overconfident ranges are dangerous when real money is committed on the prediction. A tool whose ranges come true about as often as it claims is a tool whose numbers can be trusted.
Why this matters for your business case
A simulation is only as good as the price data driving it. Backtesting a control scheme against real historical settlement data shows what would have been earned or saved in the past. Forecasting is what makes that same control scheme useful going forward, deciding whether to pump now or wait, whether to run a cogen engine now or hold biogas in storage, whether to discharge a battery now or wait for a better price later today. This is the difference between a system that reacts to price after it has already moved, and one that anticipates it early enough to act.
Where to from here
For the market mechanics this forecast is built on, see The National Electricity Market Explained.
Read: Understanding the National Electricity Market ->
For how this forecasting capability is applied to a real plant’s flexible assets, see Demand Response Feasibility for WWTP.
See how this applies to wastewater treatment plants ->
Sources
All training and testing data comes from publicly available AEMO market data, published to the NEM web, plus weather data from the Bureau of Meteorology. References:
- AEMO NEM data dashboard — actual five minute prices, demand and interconnector flows across the NEM: aemo.com.au/energy-systems/electricity/national-electricity-market-nem/data-nem/data-dashboard-nem
- AEMO pre-dispatch — AEMO’s own look-ahead price forecasts, the source of the AEMO columns in the results table above: aemo.com.au/energy-systems/electricity/national-electricity-market-nem/data-nem/market-management-system-mms-data/pre-dispatch
- Australian Bureau of Meteorology — weather observations and forecasts used as model inputs: bom.gov.au
