Returns a mapping of NEM market participants (companies) to
their registered Dispatchable Unit Identifiers (DUIDs), joined
from the MMSDM PARTICIPANT and DUDETAILSUMMARY tables.
Use this for corporate ownership analysis: rolling up generator
output or bids from DUID-level data to the company level.
Source
AEMO NEMweb MMSDM archive, PARTICIPANT and DUDETAILSUMMARY tables. AEMO Copyright Permissions Notice.
Value
An aemo_tbl with columns participantid,
participantclassid (e.g. GENERATOR, LOAD, TRADER),
name (company name), duid, stationid, regionid,
dispatchtype, schedule_type. Rows are one per
participant-DUID combination. If MMSDM is unreachable,
returns an empty table with a warning.
See also
aemo_units() for DUID-level registry without
participant mapping.
Other reference:
aemo_dlf(),
aemo_interconnectors(),
aemo_mlf(),
aemo_price_caps(),
aemo_regions(),
aemo_settlement(),
aemo_snapshot(),
aemo_units()
Examples
# \donttest{
op <- options(aemo.cache_dir = tempdir())
try({
pt <- aemo_participants()
# DUIDs owned by AGL
pt[grepl("AGL", pt$name, ignore.case = TRUE), ]
})
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> ℹ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#> ✖ Downloading <https://nemweb.com.au/Data_Archive/Wholesale_Electricity/MMSDM/2…
#>
#> Warning: Could not reach MMSDM DUDETAILSUMMARY; returning empty participant table.
#> ℹ Check your internet connection.
#> # aemo_tbl: NEM market participants (empty - MMSDM unreachable)
#> # Source: https://nemweb.com.au
#> # Licence: AEMO Copyright Permissions Notice
#> # Retrieved: 2026-05-31 19:35 UTC
#> # Rows: 0 Cols: 8
#>
#> [1] participantid participantclassid name duid
#> [5] stationid regionid dispatchtype schedule_type
#> <0 rows> (or 0-length row.names)
options(op)
# }