Skip to content

Participant Registration List

The official list of all market participants (generators, loads, storage, and some others) is outside the main MMS dataset, and in a different format to the main dataset (Excel, not CSV). This contains DUID, participant name, a descriptive generator name, and fuel type information. You can find it in the NEM Registration and Exemption List, on the Registration page.

There are many sheets in this .xlsx Excel file. The main one is PU and Scheduled Loads, which contains columns:

Warning

This file is very messy. Be very cautious when programatically extracting data.

  • Some values may be wrapped in quotes. (e.g. Category may be Market or "Market")
  • Some values have trailing spaces
  • Some values have spelling mistakes (e.g. photovoltilac or natrual gas)
  • Some empty values are actually empty, others are -

If you see assets here, but not in other tables, it is likely that this is because they are unscheduled.

Warning

When generators retire, they are removed from this file. (Unlike all other AEMO data, where it is kept for posterity and marked as no longer applicable.)

Note that Basslink (the DC interconnector from Tasmania to Victoria) is included (although this may change soon). Other interconnectors are not included.

Warning

Some numbers in this file are stored as text.

Numbers stored as text in Excel

This means that if you open it in Excel, operations such as summing numbers will give you incorrect results.

Incorrect sum result due to numbers stored as text

Tip

You can also get the fuel type of each DUID from CO2EII_AVAILABLE_GENERATORS.

Column Schema

Participant

This is a human-readable description. It is not the literal PARTICIPANTID column, but should map to that one-to-one.

Examples value: South Australian Water Corporation.

This column is mandatory.

Station Name

Example: Adelaide Desalination Plant

This column is mandatory.

Region

This is the REGIONID.

Values:

  • QLD1
  • VIC1
  • TAS1
  • NSW1
  • SA1

This column is mandatory.

Dispatch Type

Values:

  • Bidirectional Unit
  • Generating Unit
  • Load

This column is mandatory.

Some batteries are represented as a single bidirectional DUID, some are 2 related DUIDs. (More information.)

Category

Values:

  • Market
  • Non-Market

Classification

This tells you whether the generator is scheduled or not.

For more information about this concept, see the dedicated guide. Non-Scheduled assets are missing from many tables.

Examples:

  • Scheduled
  • Non-Scheduled
  • Semi-Scheduled

Fuel Source - Primary

Examples:

  • Battery Storage
  • Hydro
  • Solar

Fuel Source - Descriptor

Examples:

  • Grid
  • Water
  • Solar

Warning

This value may have spelling mistakes. e.g. Natrual Gas/ Diesel instead of Natural Gas/ Diesel

Warning

This value may have trailing spaces and be wrapped in quotes, e.g. "solar ".

Warning

When classifying generators into broad types using keyword searches, be careful. Coal Seam Methane should probably be counted as gas, not coal, despite containing the word "coal". Landfill Methane / Landfill Gas should probably be counted as biowaste not gas, despite containing the word "gas".

Technology Type - Primary

Examples: - Storage - Renewable

Technology Type - Descriptor

Examples:

  • Battery and Inverter
  • Run of River
  • Photovoltaic Tracking Flat panel
  • Photovoltaic Flat panel

Warning

This value may have spelling mistakes. e.g. Photovoltalic Tracking Flat Panel instead of Photovoltaic Tracking Flat Panel

Units

Examples:

  • 1,2-3
  • 1-2
  • 1-4, 5-9

Aggregation

Values:

  • Y
  • N

This field is optional.

DUID

Examples of values in the file:

  • W/HOE#2
  • ALDGASF1
  • ANGAST1

This value can be empty (represented as -). This is the case for some (but not all) non-scheduled generators, and Callide A, whose DUID was deleted around when it was decomissioned.

More information here.

Reg Cap generation (MW)

Max Cap generation (MW)

To understand the difference between registered capacity and maximum capacity, see this Watt Clarity guide

Max ROC/Min generation

"ROC" stands for "Rate of Change"

This may be empty.

Reg Cap consumption (MW)

This may be empty.

Max Cap consumption (MW)

This may be empty.

Max ROC/Min consumption

This may be empty.

Maximum storage capacity

This may be empty.

Comments

This is always empty.

Data Sample

Participant Station Name Region Dispatch Type Category Classification Fuel Source - Primary Fuel Source - Descriptor Technology Type - Primary Technology Type - Descriptor Units Aggregation DUID Reg Cap generation (MW) Max Cap generation (MW) Max ROC/Min generation Reg Cap consumption (MW) Max Cap consumption (MW) Max ROC/Min consumption Maximum storage capacity Comments
South Australian Water Corporation Adelaide Desalination Plant SA1 Bidirectional Unit Market Scheduled Battery Storage Grid Storage Battery and Inverter 1,2-3 Y ADPBA1 7.76 6.15 4 7 6 4 6
South Australian Water Corporation Adelaide Desalination Plant SA1 Generating Unit Market Non-Scheduled Hydro Water Renewable Run of River 1-2 Y ADPMH1 1.44 1 -
South Australian Water Corporation Adelaide Desalination Plant SA1 Generating Unit Market Semi-Scheduled Solar Solar Renewable Photovoltaic Tracking Flat panel 1-4, 5-9 Y ADPPV1 24.75 19 4
South Australian Water Corporation Adelaide Desalination Plant SA1 Generating Unit Market Non-Scheduled Solar Solar Renewable Photovoltaic Flat panel 1-2 Y ADPPV2 0.2 0.2 -

Code Examples

Downloading with Requests

AEMO recently started discriminating against user-agents. So if you try to download this programatically with a script, you will be blocked, unless you set your request header to pretend to be Chrome.

(AEMO if you're reading this and don't like it, then please just move this data to nemweb with all your other data.)

from requests import Session

s = Session()
s.headers.update(
    {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
    }
)

url = "https://www.aemo.com.au/-/media/files/electricity/nem/participant_information/nem-registration-and-exemption-list.xlsx"

r = s.get(url)
r.raise_for_status()
with open("nem-registration-and-exemption-list.xlsx", "wb") as f:
    f.write(r.content)

Nemosis

Nemosis calls this the "Generators and Scheduled Loads" table.

from nemosis import static_table

df = static_table("Generators and Scheduled Loads", raw_data_cache)

Mapping Fuel Types

See the example here