Open-source grid screening

Model power grid scenarios in minutes, before you commission the study.

Commissioned studies can cost $160,000 (source, opens in a new tab) or more, and procurement and delivery can take months before you get your first results. NEMSweep is free: sweep your assumptions across a year of any grid, hour by hour. It comes ready to run on Australia's National Electricity Market (NEM).

For people who plan, advise on or invest in generation, storage and transmission.

What you get

Your assumptions in, a full year of hourly results out

  • Your assumptions. Fleet, costs, fuel prices, discount rate and reliability target are inputs you set.
  • Same inputs, same results. No random draws, so every number can be rerun.
  • Sweeps built in. Change one input across many runs and get every run's headline results in one summary, in minutes*.
  • Results in your own tools. Hourly dispatch, unserved energy, system cost and emissions, as CSV.
  • Free and open source. The tool is BSD-3-Clause, and the ready-to-run NEM dataset is a free download.

Screening only. No price forecasts or investment valuations, and one typical weather year per run.

Measured with NEMSweep 0.3.0 on a Ryzen 7 7735HS with 32 GB RAM: runs took 2–49 s; the 25-scenario sweep, 10 min.

Why now

As coal retires and data centres connect, grids need more firming

In 2025, renewables overtook coal in global electricity generation for the first time, and the International Energy Agency (IEA) expects data centres' electricity use to roughly double worldwide by 2030. Australia's National Electricity Market shows both at once: its operator, the Australian Energy Market Operator (AEMO), expects nearly two thirds of its remaining coal fleet to retire by 2035, while data-centre use grows almost sevenfold by 2035-36.

Wind and solar output rises and falls with the weather, so grids need firming: storage, hydro or gas that can supply power when wind and solar output is low. How much firming a plan needs, where, and at what cost depends on assumptions that move with every forecast. That is why planners need to test many of them.

Sources: Ember, Global Electricity Review 2026; IEA, Key Questions on Energy and AI (2026); AEMO, 2026 Integrated System Plan; AEMO, 2026 Electricity Statement of Opportunities.

Where it fits

Spend the study budget on the questions that matter

Without screening

  1. Question
  2. Tender
  3. Months of delivery
  4. Answers to the brief you wrote at the start

With NEMSweep first

  1. Question
  2. Screening sweep in minutes
  3. A brief built on the assumptions that move the answer
  4. Detailed study

Detailed studies stay the right tool for final decisions. AEMO's reliability outlook, for example, runs thousands of Monte Carlo simulations across 24 historical weather years. NEMSweep runs one typical weather year per region, so it narrows the questions before that work starts.

Source: AEMO, 2026 Electricity Statement of Opportunities.

Worked example

Without new supply, the NEM holds its reliability target to about 4,500 MW of new data-centre load

We added always-on data-centre load to Australia's grid, from nothing to 12,000 MW across 25 scenarios, and let NEMSweep add batteries wherever a region fell short.

0 100k 200k 300k 400k target missed from 5,000 MWBattery energy capacity, target metBattery energy capacity, target missed0 MW Battery energy capacity: 14,000 MWh Meets the target 500 MW Battery energy capacity: 16,000 MWh Meets the target 900 MW Battery energy capacity: 20,000 MWh Meets the target 1,500 MW Battery energy capacity: 20,000 MWh Meets the target 2,100 MW Battery energy capacity: 23,000 MWh Meets the target 2,500 MW Battery energy capacity: 27,000 MWh Meets the target 3,000 MW Battery energy capacity: 39,000 MWh Meets the target 3,500 MW Battery energy capacity: 46,000 MWh Meets the target 4,000 MW Battery energy capacity: 85,000 MWh Meets the target 4,500 MW Battery energy capacity: 98,000 MWh Meets the target 5,000 MW Battery energy capacity: 160,000 MWh Misses the target 5,400 MW Battery energy capacity: 230,000 MWh Misses the target 6,000 MW Battery energy capacity: 230,000 MWh Misses the target 6,600 MW Battery energy capacity: 230,000 MWh Misses the target 7,000 MW Battery energy capacity: 230,000 MWh Misses the target 7,500 MW Battery energy capacity: 260,000 MWh Misses the target 8,000 MW Battery energy capacity: 260,000 MWh Misses the target 8,400 MW Battery energy capacity: 260,000 MWh Misses the target 9,000 MW Battery energy capacity: 300,000 MWh Misses the target 9,600 MW Battery energy capacity: 300,000 MWh Misses the target 10,000 MW Battery energy capacity: 300,000 MWh Misses the target 10,500 MW Battery energy capacity: 300,000 MWh Misses the target 11,000 MW Battery energy capacity: 300,000 MWh Misses the target 11,500 MW Battery energy capacity: 310,000 MWh Misses the target 12,000 MW Battery energy capacity: 310,000 MWh Misses the target 01,5003,0004,5006,0007,5009,00010,50012,000Always-on data-centre load added (MW)Battery energy capacity (MWh)
Battery energy capacity, target met Battery energy capacity, target missed
Battery energy capacity across the NEM, after the model sized it in each scenario. Solid while the reliability target is met, dashed once it is missed.
  • 4,500 MW The most data-centre load the grid carried within the reliability target
  • 6.8× The battery energy capacity it took, against what the grid started with
  • +53% Change in annual system cost by 12,000 MW, with 4.7% of demand unmet

One modelled typical weather year per region. Flat load, split across the regions. Generation and transmission held fixed.

Read the worked example

Why simple

Simple enough to run in minutes, and to explain line by line

NEMSweep is built for screening. Its modelling choices trade fine detail for speed, repeatability and results you can trace.

  1. One typical weather year per region, with sun and wind measured where they matter.

    A run takes from seconds to about a minute*, so a whole sweep takes minutes. Hard years, such as a long wind drought, still need a study that runs many weather years.

  2. Short-run marginal cost dispatch, no market bidding.

    Generators dispatch in merit order by short-run marginal cost (SRMC), so every result traces back to an input you set. It doesn't model bidding or forecast spot prices.

  3. Storage sized to the reliability target, without foresight.

    Batteries charge and discharge on a fixed rule, so the sizing is transparent and repeatable. An optimised dispatch plan could need more or less.

  4. System levelised cost, not a retail tariff.

    Build-and-run costs only, so scenarios compare on the same basis. Network, retail, scheme and tax costs are left out.

Run it yourself

From install to your first sweep in four steps

Choose Docker or the .NET command-line tool. Both take you from the ready-to-run NEM dataset to the worked example's sweep.

Installation method

Requires Docker. The image includes the .NET runtime, so you don't need to install .NET separately.

  1. Pull the container image.

    docker pull ghcr.io/hasinthaattanayake/nemsweep:latest
  2. Download the NEM data and set up the worked example.

    From a writable folder, download the ready-to-run NEM dataset (AEMO demand for 2025-26 and typical-year weather files) and prepare a new my-nem-study folder. This doesn't run anything yet.

    docker run --rm -v "${PWD}:/work" ghcr.io/hasinthaattanayake/nemsweep:latest --quick-start advanced /work/my-nem-study
  3. Run the baseline.

    cd my-nem-study
    docker run --rm -v "${PWD}:/work:ro" -v "${PWD}/out:/out" ghcr.io/hasinthaattanayake/nemsweep:latest --run-scenario /work/scenarios/sized-scenario.json --data-root /work/data --output /out/sized
  4. Run the worked example's sweep.

    All 25 scenarios. Then change the values in the sweep file to test your own.

    docker run --rm -v "${PWD}:/work:ro" -v "${PWD}/out:/out" ghcr.io/hasinthaattanayake/nemsweep:latest --run-sweep /work/sweeps/datacentre-full.json --data-root /work/data --output /out/datacentre

The image contains the tool, not the dataset. Run commands keep inputs read-only and write results to out. The latest tag can change and may differ from CLI 0.3.0; pin a commit tag or digest for repeatable studies. Container setup and version pinning

Install the free .NET 10 SDK first, then use the commands below.

  1. Install the command-line tool.

    dotnet tool install --global NEMSweep.CLI --version 0.3.0
  2. Download the NEM data and set up the worked example.

    This downloads the ready-to-run NEM dataset (AEMO demand for 2025-26 and typical-year weather files) and prepares the worked example's scenarios. It doesn't run anything yet.

    nemsweep --quick-start advanced my-nem-study
  3. Run the baseline.

    cd my-nem-study
    nemsweep --run-scenario scenarios/sized-scenario.json --data-root ./data --output ./out/sized
  4. Run the worked example's sweep.

    All 25 scenarios. Then change the values in the sweep file to test your own.

    nemsweep --run-sweep sweeps/datacentre-full.json --data-root ./data --output ./out/datacentre

Regions are defined in the scenario file, so you can model another grid with your own demand and weather data. Set up a custom grid

Work with us

Beyond the open-source tool: studies, integration and training

NEMSweep is free and open source. For work beyond the tool, the NEMSweep core development team, led by Hasintha Attanayake on LinkedIn (opens in a new tab), provides:

  • Screening studies on your question
  • Integration with your team's workflow and tools
  • Training and support for your analysts
  • Sponsored development of new capabilities

Studies and services:

Get in touch on LinkedIn

Questions about the open-source tool:

Open a GitHub issue