TRADINGPRICE
TRADINGPRICE sets out 5 minutes spot market price, including fields to handle the Ancillary Services functionality. If prices are adjusted, the final price is recorded in the regional reference price (
RRP) field with price before adjustment recorded in the regional original price (ROP) field. Prior to 5 Minute Settlements, this was half-hourly spot market values, which was calculated as the average of the six 5 minute dispatch intervals within the 30 minute period.TRADINGPRICE data is public, so is available to all participants.
Source
TRADINGPRICE updates every 30 minutes.
Notes
The
INVALIDFLAGfield is used to indicate whether the Trading interval price has been adjusted after the trading interval was completed. On a very restricted set of events, the market rules allow a dispatch price (5 min) to be adjusted on the next business day, and, when this occurs, the corresponding trading interval price for that region is also adjusted and marked as adjusted withINVALIDFLAGof 'A'.The
INVALIDFLAG= 'Y' only applies to historical periods when not all six of the 5-minute dispatch intervals were run in the trading interval. System changes implemented on 30 September 2001 mean this situation no longer occurs since missing dispatch intervals are automatically populated from a previous interval.If the
INVALIDFLAGfield = '0', the price was not adjusted and all six dispatch intervals are present.Prices
There is no field in the TRADINGPRICE table (or the MMS data model anywhere) telling you that the price is provisional or final. The only reliable method is to ensure that the trading date is at least 2 business days old.
Tip
1 second, 6 second, 5 minute, 60 second and regulation refer to types of FCAS markets.
Column Schema
PERIODID
Period number where 1 represents the trading interval ending at 00:05 AEST
SQL Type: NUMBER(3,0)
Polars Type: pl.Int16
This column is mandatory, and a primary key.
Examples:
1, 200
REGIONID
Region Identifier
For more information, see the dedicated documentation page.
The SQL type is VARCHAR2(10).
This is actually a factor/enum, with values:
-
QLD1 -
VIC1 -
TAS1 -
NSW1 -
SA1 -
SNOWY1
This column is mandatory, and a primary key.
RUNNO
Run No
SQL Type: NUMBER(3,0)
Polars Type: pl.UInt16
This column is mandatory, and a primary key.
Example: 1
SETTLEMENTDATE
Date that this data applies to
Warning
Despite what the name suggests, this is a datetime, not a date.
SQL Type: DATE
Polars Type: pl.Datetime()
This column is mandatory, and a primary key.
Example: 2026/09/01 00:05:00
EEP
Excess energy price where negative average
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Example: 0
INVALIDFLAG
Indicates when the Trading interval price has been adjusted after the trading interval was completed
SQL Type: VARCHAR2(1)
Polars Type: pl.Categorical
This column is not mandatory.
Example: 0
LASTCHANGED
Last date and time record changed
For more information, see the dedicated documentation page.
SQL Type: DATE
Polars Type: pl.Datetime()
This column is not mandatory.
Example: 2026/09/01 00:00:07
LOWER1SECROP
Lower1Sec Regional Original Price - uncapped/unfloored and unscaled
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0
LOWER1SECRRP
Regional Lower 1Sec Price - RegionSolution element L1Price attribute
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0
LOWER5MINROP
Original regional price - prior to APC or VoLL overrides applied
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.25
LOWER5MINRRP
Regional reference price for this dispatch period
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.25
LOWER6SECROP
Original regional price - prior to APC or VoLL overrides applied
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.38
LOWER6SECRRP
Regional reference price for this dispatch period
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.38
LOWER60SECROP
Original regional price - prior to APC or VoLL overrides applied
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.38
LOWER60SECRRP
Regional reference price for this dispatch period
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.38
LOWERREGROP
Original regional price - prior to APC or VoLL overrides applied
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 1, 50
LOWERREGRRP
Regional reference price for this dispatch period
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 1, 50
PRICE_STATUS
Status of regional prices for this dispatch interval "NOT FIRM" or "FIRM"
The SQL type is VARCHAR2(20).
This is actually a factor/enum, with values:
-
NOT FIRM -
FIRM
This column is not mandatory.
RAISE1SECROP
Raise1Sec Regional Original Price - uncapped/unfloored and unscaled
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.04
RAISE1SECRRP
Regional Raise 1Sec Price - R1Price attribute after capping/flooring
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.04
RAISE5MINROP
Original regional price - prior to APC or VoLL overrides applied
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.36
RAISE5MINRRP
Regional reference price for this dispatch period
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.36
RAISE6SECROP
Original regional price - prior to APC or VoLL overrides applied
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.38
RAISE6SECRRP
Regional reference price for this dispatch period
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0, 0.38
RAISE60SECROP
Original regional price - prior to APC or VoLL overrides applied
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0.38
RAISE60SECRRP
Regional reference price for this dispatch period
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 0.38
RAISEREGROP
Original regional price - prior to APC or VoLL overrides applied
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 1, 15.5, 10
RAISEREGRRP
Regional reference price for this dispatch period
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
0.01, 1, 15.5, 10
ROP
Regional Original Price. The price before any adjustments were made
For more information, see the dedicated documentation page.
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
-0.04, 0.01, 0, 90
RRP
Regional reference price for this dispatch period
For more information, see the dedicated documentation page.
SQL Type: NUMBER(15,5)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
-0.04, 0.01, 0, 90
New Data Timing
Every 30 minutes on price update
Code Examples
Polars
Casting is enums, categoricals etc is not essential, but may speed up parsing.
Swapping int for pl.UInt16, pl.Int32 would also speed up parsing. However some of the datatypes are inferred, so they may be wrong.
This code deduplicates for you. Deduplication is normally only required across multiple months.
This code assumes that all columns are present, which may not be true for older files.
import polars as pl
import polars.selectors as cs
# e.g. "2029/03/15 00:05:00"
dt_s_fmt = "%Y/%m/%d %H:%M:%S"
csv_paths = ["SOMEFILE.CSV", "OTHERFILE.CSV"]
lf = (
pl.concat(
[
pl.scan_csv(
csv_path, # must be unzipped beforehand
skip_rows=1, # skip the header
infer_schema=False, # much faster
)
.filter(cs.by_index(0) == "D") # drop the footer
.select(~cs.by_index(range(4))) # drop metadata columns
for csv_path in csv_paths
],
how="diagonal_relaxed",
)
.with_columns(
pl.col("SETTLEMENTDATE", "LASTCHANGED").str.strptime(pl.Datetime, dt_s_fmt),
)
.cast(
{
"PERIODID": int, # or pl.Int16
"REGIONID": pl.Enum(["QLD1", "VIC1", "TAS1", "NSW1", "SA1", "SNOWY1"]),
"RUNNO": int, # or pl.UInt16
"EEP": pl.Float64,
"INVALIDFLAG": pl.Categorical,
"LOWER1SECROP": pl.Float64,
"LOWER1SECRRP": pl.Float64,
"LOWER5MINROP": pl.Float64,
"LOWER5MINRRP": pl.Float64,
"LOWER6SECROP": pl.Float64,
"LOWER6SECRRP": pl.Float64,
"LOWER60SECROP": pl.Float64,
"LOWER60SECRRP": pl.Float64,
"LOWERREGROP": pl.Float64,
"LOWERREGRRP": pl.Float64,
"PRICE_STATUS": pl.Enum(["NOT FIRM", "FIRM"]),
"RAISE1SECROP": pl.Float64,
"RAISE1SECRRP": pl.Float64,
"RAISE5MINROP": pl.Float64,
"RAISE5MINRRP": pl.Float64,
"RAISE6SECROP": pl.Float64,
"RAISE6SECRRP": pl.Float64,
"RAISE60SECROP": pl.Float64,
"RAISE60SECRRP": pl.Float64,
"RAISEREGROP": pl.Float64,
"RAISEREGRRP": pl.Float64,
"ROP": pl.Float64,
"RRP": pl.Float64,
}
)
# Deduplicate
# We want one row per ['PERIODID', 'REGIONID', 'RUNNO', 'SETTLEMENTDATE']
# Tie-breaker: greatest value of ['LASTCHANGED']
.sort(["LASTCHANGED"], descending=False)
.unique(subset=["PERIODID", "REGIONID", "RUNNO", "SETTLEMENTDATE"], keep="last")
)
Nemosis
from nemosis import dynamic_data_compiler
df = dynamic_data_compiler(
'2024/01/01 00:00:00',
'2024/01/31 00:00:00',
"TRADINGPRICE",
"data/"
)
Nemosis only includes a subset of columns by default, as an optimisation. (i.e. the commonly used columns.) To include others:
from nemosis import defaults
defaults.table_columns["TRADINGPRICE"] += ["PERIODID", "RUNNO", "EEP", "INVALIDFLAG", "LASTCHANGED", "LOWER1SECROP", "LOWER1SECRRP", "LOWER5MINROP", "LOWER6SECROP", "LOWER60SECROP", "LOWERREGROP", "RAISE1SECROP", "RAISE1SECRRP", "RAISE5MINROP", "RAISE6SECROP", "RAISE60SECROP", "RAISEREGROP", "ROP"]
df = dynamic_data_compiler(...)
Example File
From PUBLIC_ARCHIVE_TRADINGPRICE_FILE01_202609010000.zip
| SETTLEMENTDATE | RUNNO | REGIONID | PERIODID | RRP | EEP | INVALIDFLAG | LASTCHANGED | ROP | RAISE6SECRRP | RAISE6SECROP | RAISE60SECRRP | RAISE60SECROP | RAISE5MINRRP | RAISE5MINROP | RAISEREGRRP | RAISEREGROP | LOWER6SECRRP | LOWER6SECROP | LOWER60SECRRP | LOWER60SECROP | LOWER5MINRRP | LOWER5MINROP | LOWERREGRRP | LOWERREGROP | PRICE_STATUS | RAISE1SECRRP | RAISE1SECROP | LOWER1SECRRP | LOWER1SECROP |
| 2026/09/01 00:05:00 | 1 | NSW1 | 1 | 64.95 | 0 | 0 | 2026/09/01 00:00:07 | 64.95 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1 | 1 | FIRM | 0.02 | 0.02 | 0 | 0 |
| 2026/09/01 00:05:00 | 1 | QLD1 | 1 | 54.96 | 0 | 0 | 2026/09/01 00:00:07 | 54.96 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1 | 1 | FIRM | 0.02 | 0.02 | 0 | 0 |
| 2026/09/01 00:05:00 | 1 | SA1 | 1 | 27.76 | 0 | 0 | 2026/09/01 00:00:07 | 27.76 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1 | 1 | FIRM | 0.02 | 0.02 | 0 | 0 |
| 2026/09/01 00:05:00 | 1 | TAS1 | 1 | 26.52 | 0 | 0 | 2026/09/01 00:00:07 | 26.52 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 5.39 | 5.39 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.66 | 1.66 | FIRM | 0.02 | 0.02 | 0 | 0 |
| 2026/09/01 00:05:00 | 1 | VIC1 | 1 | 12.5 | 0 | 0 | 2026/09/01 00:00:07 | 12.5 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1 | 1 | FIRM | 0.02 | 0.02 | 0 | 0 |
| 2026/09/01 00:10:00 | 1 | NSW1 | 2 | 65.51 | 0 | 0 | 2026/09/01 00:05:07 | 65.51 | 0.05 | 0.05 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.68 | 1.68 | FIRM | 0.02 | 0.02 | 0 | 0 |
| 2026/09/01 00:10:00 | 1 | QLD1 | 2 | 55.42 | 0 | 0 | 2026/09/01 00:05:07 | 55.42 | 0.05 | 0.05 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.68 | 1.68 | FIRM | 0.02 | 0.02 | 0 | 0 |
| 2026/09/01 00:10:00 | 1 | SA1 | 2 | 31.57 | 0 | 0 | 2026/09/01 00:05:07 | 31.57 | 0.05 | 0.05 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.68 | 1.68 | FIRM | 0.02 | 0.02 | 0 | 0 |
| 2026/09/01 00:10:00 | 1 | TAS1 | 2 | 30.56 | 0 | 0 | 2026/09/01 00:05:07 | 30.56 | 0.05 | 0.05 | 0.03 | 0.03 | 0.01 | 0.01 | 5.39 | 5.39 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.66 | 1.66 | FIRM | 0.02 | 0.02 | 0 | 0 |
| 2026/09/01 00:10:00 | 1 | VIC1 | 2 | 19.18 | 0 | 0 | 2026/09/01 00:05:07 | 19.18 | 0.05 | 0.05 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.68 | 1.68 | FIRM | 0.02 | 0.02 | 0 | 0 |
| 2026/09/01 00:15:00 | 1 | NSW1 | 3 | 73.7 | 0 | 0 | 2026/09/01 00:10:07 | 73.7 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 7.8 | 7.8 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 2.5 | 2.5 | FIRM | 0.02 | 0.02 | 0 | 0 |
| ... |
| C | SETP.WORLD | DVD_TRADINGPRICE | AEMO | PUBLIC | 2026/10/09 | 16:36:20 | 001791527780825 | MONTHLY_ARCHIVE | 001791527780825 | ||||||||||||||||||||||||
| I | TRADING | PRICE | 3 | SETTLEMENTDATE | RUNNO | REGIONID | PERIODID | RRP | EEP | INVALIDFLAG | LASTCHANGED | ROP | RAISE6SECRRP | RAISE6SECROP | RAISE60SECRRP | RAISE60SECROP | RAISE5MINRRP | RAISE5MINROP | RAISEREGRRP | RAISEREGROP | LOWER6SECRRP | LOWER6SECROP | LOWER60SECRRP | LOWER60SECROP | LOWER5MINRRP | LOWER5MINROP | LOWERREGRRP | LOWERREGROP | PRICE_STATUS | RAISE1SECRRP | RAISE1SECROP | LOWER1SECRRP | LOWER1SECROP |
| D | TRADING | PRICE | 3 | 2026/09/01 00:05:00 | 1 | NSW1 | 1 | 64.95 | 0 | 0 | 2026/09/01 00:00:07 | 64.95 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1 | 1 | FIRM | 0.02 | 0.02 | 0 | 0 |
| D | TRADING | PRICE | 3 | 2026/09/01 00:05:00 | 1 | QLD1 | 1 | 54.96 | 0 | 0 | 2026/09/01 00:00:07 | 54.96 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1 | 1 | FIRM | 0.02 | 0.02 | 0 | 0 |
| D | TRADING | PRICE | 3 | 2026/09/01 00:05:00 | 1 | SA1 | 1 | 27.76 | 0 | 0 | 2026/09/01 00:00:07 | 27.76 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1 | 1 | FIRM | 0.02 | 0.02 | 0 | 0 |
| D | TRADING | PRICE | 3 | 2026/09/01 00:05:00 | 1 | TAS1 | 1 | 26.52 | 0 | 0 | 2026/09/01 00:00:07 | 26.52 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 5.39 | 5.39 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.66 | 1.66 | FIRM | 0.02 | 0.02 | 0 | 0 |
| D | TRADING | PRICE | 3 | 2026/09/01 00:05:00 | 1 | VIC1 | 1 | 12.5 | 0 | 0 | 2026/09/01 00:00:07 | 12.5 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1 | 1 | FIRM | 0.02 | 0.02 | 0 | 0 |
| D | TRADING | PRICE | 3 | 2026/09/01 00:10:00 | 1 | NSW1 | 2 | 65.51 | 0 | 0 | 2026/09/01 00:05:07 | 65.51 | 0.05 | 0.05 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.68 | 1.68 | FIRM | 0.02 | 0.02 | 0 | 0 |
| D | TRADING | PRICE | 3 | 2026/09/01 00:10:00 | 1 | QLD1 | 2 | 55.42 | 0 | 0 | 2026/09/01 00:05:07 | 55.42 | 0.05 | 0.05 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.68 | 1.68 | FIRM | 0.02 | 0.02 | 0 | 0 |
| D | TRADING | PRICE | 3 | 2026/09/01 00:10:00 | 1 | SA1 | 2 | 31.57 | 0 | 0 | 2026/09/01 00:05:07 | 31.57 | 0.05 | 0.05 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.68 | 1.68 | FIRM | 0.02 | 0.02 | 0 | 0 |
| D | TRADING | PRICE | 3 | 2026/09/01 00:10:00 | 1 | TAS1 | 2 | 30.56 | 0 | 0 | 2026/09/01 00:05:07 | 30.56 | 0.05 | 0.05 | 0.03 | 0.03 | 0.01 | 0.01 | 5.39 | 5.39 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.66 | 1.66 | FIRM | 0.02 | 0.02 | 0 | 0 |
| D | TRADING | PRICE | 3 | 2026/09/01 00:10:00 | 1 | VIC1 | 2 | 19.18 | 0 | 0 | 2026/09/01 00:05:07 | 19.18 | 0.05 | 0.05 | 0.03 | 0.03 | 0.01 | 0.01 | 3.46 | 3.46 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 1.68 | 1.68 | FIRM | 0.02 | 0.02 | 0 | 0 |
| D | TRADING | PRICE | 3 | 2026/09/01 00:15:00 | 1 | NSW1 | 3 | 73.7 | 0 | 0 | 2026/09/01 00:10:07 | 73.7 | 0.04 | 0.04 | 0.03 | 0.03 | 0.01 | 0.01 | 7.8 | 7.8 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 0.01 | 2.5 | 2.5 | FIRM | 0.02 | 0.02 | 0 | 0 |
| ... | |||||||||||||||||||||||||||||||||
| C | END OF REPORT | 1003 |
SETTLEMENTDATE,RUNNO,REGIONID,PERIODID,RRP,EEP,INVALIDFLAG,LASTCHANGED,ROP,RAISE6SECRRP,RAISE6SECROP,RAISE60SECRRP,RAISE60SECROP,RAISE5MINRRP,RAISE5MINROP,RAISEREGRRP,RAISEREGROP,LOWER6SECRRP,LOWER6SECROP,LOWER60SECRRP,LOWER60SECROP,LOWER5MINRRP,LOWER5MINROP,LOWERREGRRP,LOWERREGROP,PRICE_STATUS,RAISE1SECRRP,RAISE1SECROP,LOWER1SECRRP,LOWER1SECROP
"2026/09/01 00:05:00",1,NSW1,1,64.95,0,0,"2026/09/01 00:00:07",64.95,0.04,0.04,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1,1,FIRM,0.02,0.02,0,0
"2026/09/01 00:05:00",1,QLD1,1,54.96,0,0,"2026/09/01 00:00:07",54.96,0.04,0.04,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1,1,FIRM,0.02,0.02,0,0
"2026/09/01 00:05:00",1,SA1,1,27.76,0,0,"2026/09/01 00:00:07",27.76,0.04,0.04,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1,1,FIRM,0.02,0.02,0,0
"2026/09/01 00:05:00",1,TAS1,1,26.52,0,0,"2026/09/01 00:00:07",26.52,0.04,0.04,0.03,0.03,0.01,0.01,5.39,5.39,0.01,0.01,0.01,0.01,0.01,0.01,1.66,1.66,FIRM,0.02,0.02,0,0
"2026/09/01 00:05:00",1,VIC1,1,12.5,0,0,"2026/09/01 00:00:07",12.5,0.04,0.04,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1,1,FIRM,0.02,0.02,0,0
"2026/09/01 00:10:00",1,NSW1,2,65.51,0,0,"2026/09/01 00:05:07",65.51,0.05,0.05,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1.68,1.68,FIRM,0.02,0.02,0,0
"2026/09/01 00:10:00",1,QLD1,2,55.42,0,0,"2026/09/01 00:05:07",55.42,0.05,0.05,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1.68,1.68,FIRM,0.02,0.02,0,0
"2026/09/01 00:10:00",1,SA1,2,31.57,0,0,"2026/09/01 00:05:07",31.57,0.05,0.05,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1.68,1.68,FIRM,0.02,0.02,0,0
"2026/09/01 00:10:00",1,TAS1,2,30.56,0,0,"2026/09/01 00:05:07",30.56,0.05,0.05,0.03,0.03,0.01,0.01,5.39,5.39,0.01,0.01,0.01,0.01,0.01,0.01,1.66,1.66,FIRM,0.02,0.02,0,0
"2026/09/01 00:10:00",1,VIC1,2,19.18,0,0,"2026/09/01 00:05:07",19.18,0.05,0.05,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1.68,1.68,FIRM,0.02,0.02,0,0
"2026/09/01 00:15:00",1,NSW1,3,73.7,0,0,"2026/09/01 00:10:07",73.7,0.04,0.04,0.03,0.03,0.01,0.01,7.8,7.8,0.01,0.01,0.01,0.01,0.01,0.01,2.5,2.5,FIRM,0.02,0.02,0,0
...
C,SETP.WORLD,DVD_TRADINGPRICE,AEMO,PUBLIC,2026/10/09,16:36:20,001791527780825,MONTHLY_ARCHIVE,001791527780825
I,TRADING,PRICE,3,SETTLEMENTDATE,RUNNO,REGIONID,PERIODID,RRP,EEP,INVALIDFLAG,LASTCHANGED,ROP,RAISE6SECRRP,RAISE6SECROP,RAISE60SECRRP,RAISE60SECROP,RAISE5MINRRP,RAISE5MINROP,RAISEREGRRP,RAISEREGROP,LOWER6SECRRP,LOWER6SECROP,LOWER60SECRRP,LOWER60SECROP,LOWER5MINRRP,LOWER5MINROP,LOWERREGRRP,LOWERREGROP,PRICE_STATUS,RAISE1SECRRP,RAISE1SECROP,LOWER1SECRRP,LOWER1SECROP
D,TRADING,PRICE,3,"2026/09/01 00:05:00",1,NSW1,1,64.95,0,0,"2026/09/01 00:00:07",64.95,0.04,0.04,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1,1,FIRM,0.02,0.02,0,0
D,TRADING,PRICE,3,"2026/09/01 00:05:00",1,QLD1,1,54.96,0,0,"2026/09/01 00:00:07",54.96,0.04,0.04,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1,1,FIRM,0.02,0.02,0,0
D,TRADING,PRICE,3,"2026/09/01 00:05:00",1,SA1,1,27.76,0,0,"2026/09/01 00:00:07",27.76,0.04,0.04,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1,1,FIRM,0.02,0.02,0,0
D,TRADING,PRICE,3,"2026/09/01 00:05:00",1,TAS1,1,26.52,0,0,"2026/09/01 00:00:07",26.52,0.04,0.04,0.03,0.03,0.01,0.01,5.39,5.39,0.01,0.01,0.01,0.01,0.01,0.01,1.66,1.66,FIRM,0.02,0.02,0,0
D,TRADING,PRICE,3,"2026/09/01 00:05:00",1,VIC1,1,12.5,0,0,"2026/09/01 00:00:07",12.5,0.04,0.04,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1,1,FIRM,0.02,0.02,0,0
D,TRADING,PRICE,3,"2026/09/01 00:10:00",1,NSW1,2,65.51,0,0,"2026/09/01 00:05:07",65.51,0.05,0.05,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1.68,1.68,FIRM,0.02,0.02,0,0
D,TRADING,PRICE,3,"2026/09/01 00:10:00",1,QLD1,2,55.42,0,0,"2026/09/01 00:05:07",55.42,0.05,0.05,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1.68,1.68,FIRM,0.02,0.02,0,0
D,TRADING,PRICE,3,"2026/09/01 00:10:00",1,SA1,2,31.57,0,0,"2026/09/01 00:05:07",31.57,0.05,0.05,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1.68,1.68,FIRM,0.02,0.02,0,0
D,TRADING,PRICE,3,"2026/09/01 00:10:00",1,TAS1,2,30.56,0,0,"2026/09/01 00:05:07",30.56,0.05,0.05,0.03,0.03,0.01,0.01,5.39,5.39,0.01,0.01,0.01,0.01,0.01,0.01,1.66,1.66,FIRM,0.02,0.02,0,0
D,TRADING,PRICE,3,"2026/09/01 00:10:00",1,VIC1,2,19.18,0,0,"2026/09/01 00:05:07",19.18,0.05,0.05,0.03,0.03,0.01,0.01,3.46,3.46,0.01,0.01,0.01,0.01,0.01,0.01,1.68,1.68,FIRM,0.02,0.02,0,0
D,TRADING,PRICE,3,"2026/09/01 00:15:00",1,NSW1,3,73.7,0,0,"2026/09/01 00:10:07",73.7,0.04,0.04,0.03,0.03,0.01,0.01,7.8,7.8,0.01,0.01,0.01,0.01,0.01,0.01,2.5,2.5,FIRM,0.02,0.02,0,0
...
C,"END OF REPORT",1003
Availability
Visibility: Public
This table is in the public monthly MMSDM archive.
I have collated the list of all those files into one place, in this CSV metadata file. (Columns year, month, url, compressed_size in bytes).
The earliest available data is month 1 of 2015. The most recent available data is month 9 of 2026.
Every month in between has a file. (No gaps.)
Data Size
Each year of data is approximately 8 MB when zipped, 82 MB as unzipped CSV.
Deduplication and PDR Loader Configuration
The primary keys are:
The transaction type is "INSERT-UPDATE", which means that you will likely see duplicate data with different values.
You should deduplicate by sorting based on LASTCHANGED, within each group of primary keys.
| Report Name | Report Subtype | Version |
|---|---|---|
| TRADING | PRICE | 2 |
| TRADING | PRICE | 3 |
This means that the CSV files start with metadata columns:
or
ROW_FILTER_TYPE is LASTCHANGED
Indexes
Links
This page as JSON (schema documented here, but may change)
Download a JSON Schema specification for this table.
Official AEMO schema documentation
Other Information
Package: TRADING_DATA