Skip to content

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

INVALIDFLAG

The INVALIDFLAG field 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 with INVALIDFLAG of '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 INVALIDFLAG field = '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

SETTLEMENTDATERUNNOREGIONIDPERIODIDRRPEEPINVALIDFLAGLASTCHANGEDROPRAISE6SECRRPRAISE6SECROPRAISE60SECRRPRAISE60SECROPRAISE5MINRRPRAISE5MINROPRAISEREGRRPRAISEREGROPLOWER6SECRRPLOWER6SECROPLOWER60SECRRPLOWER60SECROPLOWER5MINRRPLOWER5MINROPLOWERREGRRPLOWERREGROPPRICE_STATUSRAISE1SECRRPRAISE1SECROPLOWER1SECRRPLOWER1SECROP
2026/09/01 00:05:001NSW1164.95002026/09/01 00:00:0764.950.040.040.030.030.010.013.463.460.010.010.010.010.010.0111FIRM0.020.0200
2026/09/01 00:05:001QLD1154.96002026/09/01 00:00:0754.960.040.040.030.030.010.013.463.460.010.010.010.010.010.0111FIRM0.020.0200
2026/09/01 00:05:001SA1127.76002026/09/01 00:00:0727.760.040.040.030.030.010.013.463.460.010.010.010.010.010.0111FIRM0.020.0200
2026/09/01 00:05:001TAS1126.52002026/09/01 00:00:0726.520.040.040.030.030.010.015.395.390.010.010.010.010.010.011.661.66FIRM0.020.0200
2026/09/01 00:05:001VIC1112.5002026/09/01 00:00:0712.50.040.040.030.030.010.013.463.460.010.010.010.010.010.0111FIRM0.020.0200
2026/09/01 00:10:001NSW1265.51002026/09/01 00:05:0765.510.050.050.030.030.010.013.463.460.010.010.010.010.010.011.681.68FIRM0.020.0200
2026/09/01 00:10:001QLD1255.42002026/09/01 00:05:0755.420.050.050.030.030.010.013.463.460.010.010.010.010.010.011.681.68FIRM0.020.0200
2026/09/01 00:10:001SA1231.57002026/09/01 00:05:0731.570.050.050.030.030.010.013.463.460.010.010.010.010.010.011.681.68FIRM0.020.0200
2026/09/01 00:10:001TAS1230.56002026/09/01 00:05:0730.560.050.050.030.030.010.015.395.390.010.010.010.010.010.011.661.66FIRM0.020.0200
2026/09/01 00:10:001VIC1219.18002026/09/01 00:05:0719.180.050.050.030.030.010.013.463.460.010.010.010.010.010.011.681.68FIRM0.020.0200
2026/09/01 00:15:001NSW1373.7002026/09/01 00:10:0773.70.040.040.030.030.010.017.87.80.010.010.010.010.010.012.52.5FIRM0.020.0200
...

CSETP.WORLDDVD_TRADINGPRICEAEMOPUBLIC2026/10/0916:36:20001791527780825MONTHLY_ARCHIVE001791527780825
ITRADINGPRICE3SETTLEMENTDATERUNNOREGIONIDPERIODIDRRPEEPINVALIDFLAGLASTCHANGEDROPRAISE6SECRRPRAISE6SECROPRAISE60SECRRPRAISE60SECROPRAISE5MINRRPRAISE5MINROPRAISEREGRRPRAISEREGROPLOWER6SECRRPLOWER6SECROPLOWER60SECRRPLOWER60SECROPLOWER5MINRRPLOWER5MINROPLOWERREGRRPLOWERREGROPPRICE_STATUSRAISE1SECRRPRAISE1SECROPLOWER1SECRRPLOWER1SECROP
DTRADINGPRICE32026/09/01 00:05:001NSW1164.95002026/09/01 00:00:0764.950.040.040.030.030.010.013.463.460.010.010.010.010.010.0111FIRM0.020.0200
DTRADINGPRICE32026/09/01 00:05:001QLD1154.96002026/09/01 00:00:0754.960.040.040.030.030.010.013.463.460.010.010.010.010.010.0111FIRM0.020.0200
DTRADINGPRICE32026/09/01 00:05:001SA1127.76002026/09/01 00:00:0727.760.040.040.030.030.010.013.463.460.010.010.010.010.010.0111FIRM0.020.0200
DTRADINGPRICE32026/09/01 00:05:001TAS1126.52002026/09/01 00:00:0726.520.040.040.030.030.010.015.395.390.010.010.010.010.010.011.661.66FIRM0.020.0200
DTRADINGPRICE32026/09/01 00:05:001VIC1112.5002026/09/01 00:00:0712.50.040.040.030.030.010.013.463.460.010.010.010.010.010.0111FIRM0.020.0200
DTRADINGPRICE32026/09/01 00:10:001NSW1265.51002026/09/01 00:05:0765.510.050.050.030.030.010.013.463.460.010.010.010.010.010.011.681.68FIRM0.020.0200
DTRADINGPRICE32026/09/01 00:10:001QLD1255.42002026/09/01 00:05:0755.420.050.050.030.030.010.013.463.460.010.010.010.010.010.011.681.68FIRM0.020.0200
DTRADINGPRICE32026/09/01 00:10:001SA1231.57002026/09/01 00:05:0731.570.050.050.030.030.010.013.463.460.010.010.010.010.010.011.681.68FIRM0.020.0200
DTRADINGPRICE32026/09/01 00:10:001TAS1230.56002026/09/01 00:05:0730.560.050.050.030.030.010.015.395.390.010.010.010.010.010.011.661.66FIRM0.020.0200
DTRADINGPRICE32026/09/01 00:10:001VIC1219.18002026/09/01 00:05:0719.180.050.050.030.030.010.013.463.460.010.010.010.010.010.011.681.68FIRM0.020.0200
DTRADINGPRICE32026/09/01 00:15:001NSW1373.7002026/09/01 00:10:0773.70.040.040.030.030.010.017.87.80.010.010.010.010.010.012.52.5FIRM0.020.0200
...
CEND OF REPORT1003

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.

PDR Loader configuration is:

Report Name Report Subtype Version
TRADING PRICE 2
TRADING PRICE 3

This means that the CSV files start with metadata columns:

I,TRADING,PRICE,2,...
D,TRADING,PRICE,2,...

or

I,TRADING,PRICE,3,...
D,TRADING,PRICE,3,...

ROW_FILTER_TYPE is LASTCHANGED

Indexes

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