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, pulled via NEMOSIS 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 computes the maximum energy-arbitrage revenue achievable given the realised price path and the unit's SOC, ramp and capacity limits, assuming perfect foresight. The capture rate is actual revenue as a share of that optimum. It is energy-only (FCAS is excluded from the benchmark), and because it assumes perfect foresight, 100% is an unreachable ceiling rather than a target.

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.

Who runs NEMPulse?

It's a personal project. The person who runs it works for EnergyAustralia, but NEMPulse is built independently in their own time, is not affiliated with or endorsed by EnergyAustralia, 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 optimalMarket eventsBid stackBidding strategyVirtual power plantsProject simulatorAskPulseEmail alerts

Loading live data…