NEMPulse · FAQ

NEMPulse — Frequently Asked Questions

Common questions about NEMPulse: what it tracks, where the data comes from, what the revenue figures mean, the actual-vs-optimal benchmark, downloads and the public API, and who runs it.

What is NEMPulse?

NEMPulse is an independent dashboard tracking every grid-scale battery in the Australian National Electricity Market (NEM). It shows each battery's dispatch, energy and FCAS revenue, state of charge, bidding behaviour, and how its actual revenue compares to a perfect-foresight optimal benchmark. Everything is derived from AEMO's public NEMWEB data.

Is NEMPulse free?

Yes. NEMPulse is free, has no ads, and has no paywall or login. The charts, the CSV and JSON exports, and the public API are all open. There is a coffee link in the footer if you want to help with server costs, but nothing is gated behind it.

Where does the data come from?

AEMO public data on NEMWEB, downloaded directly from NEMWEB by a custom downloader/parser into a local database, aggregated with pandas, and served through a documented API. The main feeds are DISPATCHLOAD and Next_Day_Dispatch for dispatch and FCAS, DISPATCHPRICE for spot prices, the AEMO bid tables for bidding, and the NEM Registration and Exemption List for the battery registry. The methodology page lists which table feeds which metric.

Are the revenue figures real earnings?

No. All revenue on NEMPulse is gross spot revenue, what a unit would earn settling its energy and FCAS at the regional spot price. It excludes cap contracts, hedges, bilateral deals, network fees and tolling income. Real net P&L depends on each operator's hedge book, which is private. Treat the figures as a market-wide comparison, not a profit statement, and verify independently before relying on them.

What is the actual vs optimal comparison?

For each battery, NEMPulse runs a linear program that co-optimises energy arbitrage and all 10 FCAS markets together (one shared battery, no double-counting) within the unit's SOC, power and capacity limits. We show three tiers: actual revenue; a forecast-informed benchmark — the SAME idealised LP given only AEMO's free public PREDISPATCH price forecast instead of the truth, then paid at actual prices; and a perfect-foresight ceiling that assumes every price is known in advance. Only the perfect ceiling is a true upper bound on actual — the forecast benchmark is a reference, not a floor, so actual can beat it (a better private forecast) or fall short. It isolates the value of price information, not realistic operator execution (a simple, realistic bidding strategy on the same forecast earns considerably less than this idealised figure). Capture rate is actual as a share of a benchmark: vs the forecast benchmark measures how much of the available information value was captured; vs the perfect ceiling (100% unreachable) is the theoretical maximum.

What is the forecast-informed benchmark?

Not a middle tier that actual is bounded by, and not a claim about what a real operator could achieve — it runs the SAME idealised energy + FCAS optimisation as the perfect ceiling, given only AEMO's free public PREDISPATCH price forecast instead of the truth (using only the forecast issued before each trading day, so there is no hindsight), then settles the resulting dispatch at the prices that actually occurred. Its settled revenue can never exceed the perfect-foresight ceiling (it's a feasible dispatch for that same LP), but actual is NOT bounded by it either way: it is a public-information reference, not an operator target, so a unit below it is not necessarily poorly run, and a unit above it (a real desk using a better private/vendor forecast) isn't unusual. Because execution is held equal to the perfect tier (same unconstrained flexibility), it measures the value of information alone — a realistic bidding strategy using the same forecast earns considerably less.

Is the NEM battery fleet cannibalising its own revenue?

Battery revenue cannibalisation is when adding more of the same asset erodes the price signal it depends on: a larger fleet charging in the same troughs and discharging in the same peaks flattens the intraday price spread, the storage analogue of solar value deflation. NEMPulse tracks this directly: the market economics page (nempulse.com.au/market) publishes the live correlation between offered battery capacity and the price spread, region by region, alongside a first-difference test that strips out the shared time trend — the test that actually checks causation, and it gains statistical power as more data arrives. Charts, regression tables and CSV downloads are all on that page.

How is state of charge calculated?

SOC is taken from AEMO-reported energy storage where available, in the next-day archive. Where it is not reported, it is integrated from dispatch MW using a round-trip efficiency of about 85%. Integrated estimates are replaced as reported data arrives. Reported values above 105% of registered capacity are treated as data glitches and fall back to integration.

How current is the data?

Live unit MW (Dispatch_SCADA) updates every 5 minutes. Full per-unit dispatch and FCAS enablement land in the next-day archive around 04:00 the following morning. Bid data is next-day at the earliest. The data status page lists freshness and known quirks per feed.

Can I download the data or use an API?

Yes. Every chart exports the exact data it draws as CSV and JSON. Derived aggregates are also available through a free, read-only public API documented on the API page. Raw bid tables and granular per-interval dispatch are not exposed; the API page explains what is published and what isn't. An MCP server at /mcp is also available for AI agents (Claude, etc.) to query the same data directly.

Who runs NEMPulse?

It's a personal project. The person who runs it works in the Australian energy industry, but NEMPulse is built independently in their own time, is not affiliated with or endorsed by their employer, and treats every battery the same. See the about page for the full conflict-of-interest note.

I found a number that looks wrong. What do I do?

Email [email protected]. It is usually a data quirk, and good catches make the site better.

Browse: Battery fleetActual vs optimalPerformance rankingsMarket economicsMarket eventsBid stackBidding strategyVirtual power plantsProject simulatorAskPulseEmail alerts

Loading live data…