Pareto Grid Get in touch
Revenue optimisation for the NEM

Run your battery, solar or wind for the most it can earn.

Pareto Grid runs a rolling-horizon digital twin of your battery, re-solving the optimal dispatch across energy and all ten FCAS markets every five minutes, and extends the same benchmark and offer strategy to solar and wind. A live decision layer, with no operational risk.

Rolling 5-min horizon
Re-solves the optimal dispatch every interval as prices and predispatch move
Energy + 10 FCAS
Two regulation and eight contingency markets, co-optimised in one dispatch
Live decision layer
Runs beside your EMS, with no operational risk
Built on AEMO data
Production MMSDM pipelines, full FCAS co-optimisation
What it does

A live optimiser, a price forecast, and a benchmark.

The product is the optimiser that lifts what your battery earns. It also produces two things you can use on their own: a NEM energy price forecast, and a perfect-foresight benchmark of how much of the achievable revenue is captured.

01 / The product

A digital twin that runs the dispatch

A rolling-horizon optimiser, a live twin of your asset, plans charge, discharge and bids across energy and all ten FCAS markets and re-solves every five minutes as prices and predispatch move. A live decision layer beside your EMS, with no operational risk.

Decision layer, no operational risk
02 / The forecast

A NEM energy price forecast

An energy price forecast across the dispatch horizon from the platform's own model. Available on its own for trading, analysis and revenue planning, not only to drive the bidder.

Energy price, NEM-native
03 / The benchmark

The Percentage of Perfect

A perfect-foresight ceiling from a full-window MILP, scoring real operation interval by interval. It turns the lift into one defensible number: how much of the achievable revenue is actually captured.

Perfect-foresight MILP
A separate product

See what your own bids do to the price.

The auto-bidder optimises against prices as given, a price-taker. This is a separate product, for when your own volume moves the price. A full replica of NEMDE, AEMO's dispatch engine, run standalone: change a battery's MW or bid bands and read the resulting clearing prices across energy and every FCAS market.

  • A real NEMDE, not an approximation

    A full security-constrained co-optimisation of the five-region NEM: energy and all ten FCAS together, interconnector losses and limits, and AEMO's full network and security constraint set from the actual dispatch case file.

  • Cent-exact on real bids

    Fed real historical bids, it reproduces AEMO's published prices to the cent on 99.4% of energy samples (mean error $0.004/MWh) and 99.3% of FCAS samples, over 260 days. Eight of the ten FCAS markets match near-exactly.

  • The price-maker question

    Size a new asset, test a bidding strategy, or price how much your own volume moves the market: the question a price-taker backtest cannot answer.

Baseline prices are validated per interval against AEMO to the cent. The price change from a large bid perturbation, where it can move the binding constraint, is produced by the same validated engine but is not yet independently validated against a specific observed dispatch event. Raise and lower regulation are the weakest markets, at about 97%.

How it works

A plan that re-solves every five minutes.

The optimiser runs as a live loop on your asset.

  1. 01

    Forecast the prices

    The auto-bidder forecasts energy prices across the horizon from its own model and AEMO pre-dispatch, and takes FCAS prices from AEMO's forecast, alongside your asset's specs: power, usable energy, efficiency, SoC limits.

  2. 02

    Optimise the horizon

    A MILP co-optimises energy and all ten FCAS markets to find the dispatch that earns the most from here forward, holding SoC and the NEM's bi-directional rules.

  3. 03

    Recommend the move

    Charge, discharge and bids for the coming intervals, delivered as a decision layer beside the EMS. It informs the operator, it does not submit bids for you.

  4. 04

    Re-solve in 5 min

    As prices and predispatch update, the horizon re-solves, so the plan always reflects the latest market rather than a stale schedule.

And to prove it

The same engine runs with perfect foresight over the full window to set the achievable ceiling, then scores real dispatch against it. That is the Percentage of Perfect.

Full-window MILP Perfect-foresight ceiling Score actual Percentage of Perfect
Validated on a real asset

An 11-point lift on a real NEM battery, full window.

Over 542 days the optimiser captured 48.2% of the energy perfect-foresight ceiling against 36.9% for the asset's own metered dispatch: an 11.2 percentage point lift on the same asset. Energy only, because that is the number that holds up.

+11.2 pts48.2% vs 36.9%
Optimiser vs actual dispatch

Over 542 days the optimiser captured 48.2% of the energy perfect-foresight ceiling. The asset's own metered dispatch captured 36.9%.

$294vs $203 / MWh
Value captured per MWh

More energy revenue on about 10% less throughput and fewer cycles. The edge is timing, not volume.

+9.7 pts
Forecast is a lever

AEMO pre-dispatch captures 43.5% of perfect against 33.8% for the in-house forecast. A day-by-day selector taking the better of the two reaches the 48.2% headline.

64%of days ahead
Broad-based, not a spike

The edge holds on 64% of days and survives removing the biggest price-spike days. Structural, not a handful of cap days.

Energy only, gross, full 542-day window (Jan 2025 to Jun 2026), scored against the asset's actual metered dispatch. FCAS is held back as indicative; the optimiser is a price-taker, so cap-day figures are an upper bound; and the real asset's dispatch reflects its own operating objective, not merchant maximisation. The figures above are the ones that survive those caveats.

Beyond storage

The same engine, across the NEM fleet.

The benchmark and offer optimisation extend from batteries to solar and wind. Without storage there is no arbitrage, so the levers are different: curtailing output when its net value turns negative, and rebidding cleanly so awards are not spilled through dispatch timing. The perfect-foresight benchmark works the same way, measured on the asset's own generation.

+5.0 pts98.5% vs 93.5%
Solar · a real SA farm, 558 days

The optimised offer strategy captured 98.5% of the achievable energy-and-LGC ceiling, against 93.5% for the plant's own metered dispatch. The lift comes from withholding negative-value output and not spilling awards, avoiding roughly $5M of value-destroying generation.

+1.2 pts99.7% vs 98.5%
Wind · a real SA farm, 558 days

A must-run merchant wind farm already runs close to its ceiling, which sits only about 1.5% above a naive price-taker. The value here is the benchmark itself and not leaking revenue through dispatch timing, not a trading edge. We say so plainly.

Energy plus LGC renewable certificates, merchant value of the assets, full 558-day window (Jan 2025 to Jul 2026) against actual metered dispatch and a perfect-foresight ceiling on the same generation. Excludes FCAS, and real marginal loss factors are applied. Generation uplift is smaller than storage: without the ability to time-shift energy, the headroom is narrower, and it is honest to say so.

Why it's different

Measured, not asserted.

The market is full of revenue claims. Pareto Grid is built around the opposite instinct: a number isn't real until it survives a full-window backtest against the ceiling.

  • Full window, or it doesn't count

    Gains are validated across the whole period, not a flattering slice. Spike-day economics are asymmetric, so a pilot week proves nothing.

  • Benchmarked against perfect, not a baseline

    The reference is the theoretical best, computed by optimisation, not last month's numbers or a vendor's default strategy.

  • If a signal doesn't replicate, it doesn't ship

    Anything whose uplift is near-zero, negative, or can't be reproduced out of sample is rejected and documented, not quietly kept.

Who it's for

One engine, read across the table.

The optimiser lifts revenue and the benchmark proves it. Together they answer a different question for everyone with a stake in a battery's revenue.

Asset owners and operators

Lift dispatch revenue with the live optimiser, and see where the gap opens by hour and condition.

PPA and offtake negotiators

Anchor tolling fees and floor prices to a hard revenue ceiling, not a vendor's estimate.

Developers

Validate merchant revenue before FID and test a project's strategy on historical years before it is built.

Investors and lenders

An independent upper bound for bankability, sensitivity and downside cases in the model.

Third-party evaluators

Score any bidder or platform against a neutral ceiling, for diligence, sale or certification.

Retailers and traders

Quantify cap-contract value and spot exposure through the spikes that move the book.

Who's behind it
AA

Abdollah Ahmadi

Founder · PhD, Power Systems

A decade of quantitative work in the National Electricity Market, building automated bidding and optimisation systems that have run grid-scale batteries across energy and FCAS. Pareto Grid is where that work becomes a product: a live optimisation engine, with the perfect-foresight benchmark to prove its lift.

LinkedIn ↗
Get in touch

See what your battery could earn.

Have an asset? Just name it, and Pareto Grid shows how much of the achievable revenue it's capturing, and where the gap is.

Don't have one yet? Send a size and a period, and Pareto Grid models the revenue a perfectly operated battery of that size could have earned, ideal for sizing or evaluating a new project.

a.ahmadi@paretogrid.com.au