National Electricity Market Optimiser

National Electricity Market Optimiser (NEMO)

Build status badge Coverage Status CodeFactor Bandit

NEMO is a chronological production-cost and capacity expansion model for testing and optimising different portfolios of renewable and fossil electricity generation technologies. It has been developed and improved over the past decade and has a growing number of users.

NEMO dispatch results

It requires no proprietary software to run, making it particularly accessible to the governments of developing countries, academic researchers and students. The model is available for others to inspect and, importantly, to validate the results.


pip install nemopt


For a set of given (or default) generation or demand traces, users can:

  1. Specify & simulate a custom resource mix, or;
  2. "Evolve" a resource mix using pre-configured scenarios, or configure their own scenario

Evolution strategy

The benefit of an evolutionary approach is that while NEMO is searching for the least-cost solution, NEMO can also explore "near-optimal" resource mixes.

NEMO no longer uses genetic algorithms, but has adopted the better performing CMA-ES method.

Resource models

NEMO has models for the following resources: wind (including offshore), photovoltaics, concentrating solar power (CSP), hydropower, pumped storage hydro, biomass, black coal, open cycle gas turbines (OCGTs), combined cycle gas turbines (CCGTs), diesel generators, coal with carbon capture and storage (CCS), CCGT with CCS, geothermal, demand response, batteries, electrolysers, hydrogen fuelled gas turbines, and more.


Documentation is progressively being added to a User's Guide in the form of a Jupyter notebook.

API documentation exists for the nemo module. This is useful when building new tools that use the simulation framework.

The model is described in an Energy Policy paper titled Least cost 100% renewable electricity scenarios in the Australian National Electricity Market by Elliston, MacGill and Diesendorf (2013).

System requirements

NEMO should run on any operating system where Python 3 is available (eg, Windows, Mac OS X, Linux). It utilises some add-on packages:

Scaling up

For simple simulations or scripted sensitivity analyses, a laptop or desktop PC will be adequate. However, for optimising larger systems, a cluster of compute nodes is desirable. The model is scalable and you can devote as many locally available CPU cores to the model as you wish.


Due to a lack of active development, support for SCOOP has been removed. It will be soon replaced with something like Ray.


If you use NEMO, please cite the following paper:

Ben Elliston, Mark Diesendorf, Iain MacGill, Simulations of scenarios with 100% renewable electricity in the Australian National Electricity Market, Energy Policy, Volume 45, 2012, Pages 606-613, ISSN 0301-4215,


The nemo-devel mailing list is where users and developers can correspond.


Enhancements and bug fixes are very welcome. Please report bugs in the issue tracker. Authors retain copyright over their work.


NEMO was first developed by Dr Ben Elliston in 2011 at the Collaboration for Energy and Environmental Markets, UNSW Sydney.

NEMO is free software and the source code is licensed under the GPL version 3 license.

Useful references

Australian cost data are taken from the Australian Energy Technology Assessments (2012, 2013), the Australian Power Generation Technology Report (2015) and the CSIRO GenCost reports (2021, 2022, 2023). The GenCost reports provide the basis of the input cost assumptions for the AEMO Integrated System Plan. Costs for other countries may be added in time.

Renewable energy trace data covering the Australian National Electricity Market territory are taken from the AEMO 100% Renewables Study. An accompanying report describes the method of generating the traces.


Early development of NEMO was financially supported by the Australian Renewable Energy Agency (ARENA). Thanks to undergraduate and postgraduate student users at UNSW who have provided valuable feedback on how to improve (and document!) the model.

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.