Skip to content

VOLTAGE_INSTRUCTION

Child record for Voltage Instructions (MVAr Dispatch)

Column Schema

EMS_ID

The unique identifier for reference within AEMO –matches equipment names between NOS and EMS

SQL Type: VARCHAR2(60) Polars Type: pl.Categorical

This column is mandatory, and a primary key.

Examples:

  • APD.REAC.A2REAC.VSWT
  • APD.REAC.A3REAC.VSWT
  • ARDN_W.CAP.CAP1.VSWT
  • ARMIDALE.CAP.C1.VSWT
  • ARMIDALE.CAP.C2.VSWT
  • ARMIDALE.CAP.C3.VSWT
  • ARMIDALE.CAP.C4.VSWT
  • ARMIDALE.CAP.C5.VSWT
  • ARMIDALE.CAP.C6.VSWT
  • ARMIDALE.REAC.R1.VSWT

RUN_DATETIME

MVAr Interval – a timestamp of when instructions issued

SQL Type: DATE Polars Type: pl.Datetime()

This column is mandatory, and a primary key.

Example: 2026/09/01 00:15:45

VERSION_DATETIME

Datetime the file was published by VDS - Versions differ from Run_DateTime only for Supplemental runs

SQL Type: DATE Polars Type: pl.Datetime()

This column is mandatory, and a primary key.

Example: 2026/09/01 00:15:45

ADDITIONAL_NOTES

Additional information pertaining to a particular instruction, e.g. Previously issued instruction revoked

SQL Type: VARCHAR2(60) Polars Type: str

This column is not mandatory.

Example: 1_Primary

CONFORMING

[0,1] Denotes if the Device is currently conforming

SQL Type: NUMBER(1,0) Polars Type: pl.Int8

This column is not mandatory.

Example: 1

CONTROL_TYPE

One of VOLTAGE, TAP, MVAR, SWITCH or COMMIT but may be extended to other types

The SQL type is VARCHAR2(20). This is actually a factor/enum, with values:

  • VOLTAGE

  • TAP

  • MVAR

  • SWITCH

  • COMMIT

This column is not mandatory.

DEVICE_ID

The company/participant preferred name of an equipment

SQL Type: VARCHAR2(60) Polars Type: pl.Categorical

This column is not mandatory.

Examples:

  • 1
  • 1 BUS 5 REACTOR
  • 8945
  • 1 BUS REACTOR 275KV
  • 1 BUS REACTOR 275KV H35 STRATHMORE
  • 1 Bus
  • 1 Bus Reactor (84Mvar/275kV)
  • 1 CAPACITOR (140MVAR/300KV)
  • 1 CAPACITOR (20MVAR/132KV)
  • 1 CAPACITOR (30 MVAR/132KV)

DEVICE_TYPE

One of REACTOR, CAPACITOR, GEN, SVC, TRANS or GRPGEN but may be extended to other types

The SQL type is VARCHAR2(20). This is actually a factor/enum, with values:

  • REACTOR

  • CAPACITOR

  • GEN

  • SVC

  • TRANS

  • GRPGEN

  • GENGRP

This column is not mandatory.

INSTRUCTION_SEQUENCE

Order for execution of Instruction

SQL Type: NUMBER(4,0) Polars Type: pl.UInt16

This column is not mandatory.

Examples: 0, 1, 3

INSTRUCTION_SUMMARY

Verbose summary of instruction

SQL Type: VARCHAR2(400) Polars Type: str

This column is not mandatory.

Examples:

  • Lower the voltage of 275KV 2 BUS at S5 Western Downs by 2.0 kV
  • Lower the voltage of 275kV POC ND 8MN1 Bus at H138 TARONG BESS by 2.0 kV
  • Lower the voltage of 275kV POC ND TDRP Bus at S3_Greenbank by 1.5 kV
  • NO INSTRUCTION

PARTICIPANTID

The NEM id of the participant who owns the equipment

For more information, see the dedicated documentation page.

SQL Type: VARCHAR2(20) Polars Type: pl.Categorical

This column is not mandatory.

Examples:

  • AEMO
  • AGL Barker Inlet
  • AGL Bayswater
  • AGL Hydro
  • AGL Loy Yang
  • AGL Macquarie
  • AGL SA Generation
  • AGL Sales Queensland
  • AusNet Services
  • Berrybank 2 Asset Pt

STATION_ID

The id of the station where the control equipment resides

SQL Type: VARCHAR2(60) Polars Type: pl.Categorical

This column is not mandatory.

Examples:

  • 94K_Tee
  • APD
  • ARARAT_TS
  • ARDROSSAN WEST 132/33kV SUBSTATION
  • ATS
  • Ararat WF
  • Armidale 330kV Substation
  • BATS
  • BETS
  • BGTS

TARGET

Instruction for the device, for this interval null denotes no instruction

SQL Type: NUMBER(20,5) Polars Type: pl.Float64

This column is not mandatory.

Examples: -1.5, -2

New Data Timing

Signal or instructions issued

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("RUN_DATETIME", "VERSION_DATETIME").str.strptime(pl.Datetime, dt_s_fmt),
    )
    .cast(
        {
            "EMS_ID": pl.Categorical,
            "ADDITIONAL_NOTES": str,
            "CONFORMING": int,  # or pl.Int8
            "CONTROL_TYPE": pl.Enum(["VOLTAGE", "TAP", "MVAR", "SWITCH", "COMMIT"]),
            "DEVICE_ID": pl.Categorical,
            "DEVICE_TYPE": pl.Enum(
                ["REACTOR", "CAPACITOR", "GEN", "SVC", "TRANS", "GRPGEN", "GENGRP"]
            ),
            "INSTRUCTION_SEQUENCE": int,  # or pl.UInt16
            "INSTRUCTION_SUMMARY": str,
            "PARTICIPANTID": pl.Categorical,
            "STATION_ID": pl.Categorical,
            "TARGET": pl.Float64,
        }
    )
    # Deduplicate
    # We want one row per ['EMS_ID', 'RUN_DATETIME', 'VERSION_DATETIME']
    # Tie-breaker: greatest value of ['RUN_DATETIME', 'VERSION_DATETIME', 'EMS_ID']
    .sort(["RUN_DATETIME", "VERSION_DATETIME", "EMS_ID"], descending=False)
    .unique(subset=["EMS_ID", "RUN_DATETIME", "VERSION_DATETIME"], keep="last")
)

Nemosis

This table is not yet available in Nemosis.

Example File

From PUBLIC_ARCHIVE_VOLTAGE_INSTRUCTION_FILE01_202609010000.zip

RUN_DATETIMEEMS_IDPARTICIPANTIDSTATION_IDDEVICE_IDDEVICE_TYPECONTROL_TYPETARGETCONFORMINGINSTRUCTION_SUMMARYVERSION_DATETIMEINSTRUCTION_SEQUENCEADDITIONAL_NOTES
2026/09/01 00:15:45APD.REAC.A2REAC.VSWTAEMOAPDA2reacREACTORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
2026/09/01 00:15:45APD.REAC.A3REAC.VSWTAEMOAPDA3reacREACTORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
2026/09/01 00:15:45ARDN_W.CAP.CAP1.VSWTElectraNet SAARDROSSAN WEST 132/33kV SUBSTATION132KV CAP BANK 1CAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
2026/09/01 00:15:45ARMIDALE.CAP.C1.VSWTTransGridArmidale 330kV SubstationNo.1 capacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
2026/09/01 00:15:45ARMIDALE.CAP.C2.VSWTTransGridArmidale 330kV SubstationNo.2 capacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
2026/09/01 00:15:45ARMIDALE.CAP.C3.VSWTTransGridArmidale 330kV SubstationNo.3 CapacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
2026/09/01 00:15:45ARMIDALE.CAP.C4.VSWTTransGridArmidale 330kV SubstationNo.4 CapacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
2026/09/01 00:15:45ARMIDALE.CAP.C5.VSWTTransGridArmidale 330kV SubstationNo.5 CapacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
2026/09/01 00:15:45ARMIDALE.CAP.C6.VSWTTransGridArmidale 330kV SubstationNo.6 CapacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
2026/09/01 00:15:45ARMIDALE.REAC.R1.VSWTTransGridArmidale 330kV SubstationNo.1 reactorREACTORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
2026/09/01 00:15:45ARMIDALE.REAC.R2.VSWTTransGridArmidale 330kV SubstationNo.2 reactorREACTORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
...

CSETP.WORLDDVD_VOLTAGE_INSTRUCTIONAEMOPUBLIC2026/10/0916:36:24001791527784944MONTHLY_ARCHIVE001791527784944
IVOLTAGE_INSTRUCTIONINSTRUCTION2RUN_DATETIMEEMS_IDPARTICIPANTIDSTATION_IDDEVICE_IDDEVICE_TYPECONTROL_TYPETARGETCONFORMINGINSTRUCTION_SUMMARYVERSION_DATETIMEINSTRUCTION_SEQUENCEADDITIONAL_NOTES
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45APD.REAC.A2REAC.VSWTAEMOAPDA2reacREACTORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45APD.REAC.A3REAC.VSWTAEMOAPDA3reacREACTORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45ARDN_W.CAP.CAP1.VSWTElectraNet SAARDROSSAN WEST 132/33kV SUBSTATION132KV CAP BANK 1CAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45ARMIDALE.CAP.C1.VSWTTransGridArmidale 330kV SubstationNo.1 capacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45ARMIDALE.CAP.C2.VSWTTransGridArmidale 330kV SubstationNo.2 capacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45ARMIDALE.CAP.C3.VSWTTransGridArmidale 330kV SubstationNo.3 CapacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45ARMIDALE.CAP.C4.VSWTTransGridArmidale 330kV SubstationNo.4 CapacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45ARMIDALE.CAP.C5.VSWTTransGridArmidale 330kV SubstationNo.5 CapacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45ARMIDALE.CAP.C6.VSWTTransGridArmidale 330kV SubstationNo.6 CapacitorCAPACITORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45ARMIDALE.REAC.R1.VSWTTransGridArmidale 330kV SubstationNo.1 reactorREACTORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
DVOLTAGE_INSTRUCTIONINSTRUCTION22026/09/01 00:15:45ARMIDALE.REAC.R2.VSWTTransGridArmidale 330kV SubstationNo.2 reactorREACTORSWITCH1NO INSTRUCTION2026/09/01 00:15:450
...
CEND OF REPORT1003

RUN_DATETIME,EMS_ID,PARTICIPANTID,STATION_ID,DEVICE_ID,DEVICE_TYPE,CONTROL_TYPE,TARGET,CONFORMING,INSTRUCTION_SUMMARY,VERSION_DATETIME,INSTRUCTION_SEQUENCE,ADDITIONAL_NOTES
"2026/09/01 00:15:45",APD.REAC.A2REAC.VSWT,AEMO,APD,A2reac,REACTOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
"2026/09/01 00:15:45",APD.REAC.A3REAC.VSWT,AEMO,APD,A3reac,REACTOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
"2026/09/01 00:15:45",ARDN_W.CAP.CAP1.VSWT,"ElectraNet SA","ARDROSSAN WEST 132/33kV SUBSTATION","132KV CAP BANK 1",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
"2026/09/01 00:15:45",ARMIDALE.CAP.C1.VSWT,TransGrid,"Armidale 330kV Substation","No.1 capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
"2026/09/01 00:15:45",ARMIDALE.CAP.C2.VSWT,TransGrid,"Armidale 330kV Substation","No.2 capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
"2026/09/01 00:15:45",ARMIDALE.CAP.C3.VSWT,TransGrid,"Armidale 330kV Substation","No.3 Capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
"2026/09/01 00:15:45",ARMIDALE.CAP.C4.VSWT,TransGrid,"Armidale 330kV Substation","No.4 Capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
"2026/09/01 00:15:45",ARMIDALE.CAP.C5.VSWT,TransGrid,"Armidale 330kV Substation","No.5 Capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
"2026/09/01 00:15:45",ARMIDALE.CAP.C6.VSWT,TransGrid,"Armidale 330kV Substation","No.6 Capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
"2026/09/01 00:15:45",ARMIDALE.REAC.R1.VSWT,TransGrid,"Armidale 330kV Substation","No.1 reactor",REACTOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
"2026/09/01 00:15:45",ARMIDALE.REAC.R2.VSWT,TransGrid,"Armidale 330kV Substation","No.2 reactor",REACTOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
...
C,SETP.WORLD,DVD_VOLTAGE_INSTRUCTION,AEMO,PUBLIC,2026/10/09,16:36:24,001791527784944,MONTHLY_ARCHIVE,001791527784944
I,VOLTAGE_INSTRUCTION,INSTRUCTION,2,RUN_DATETIME,EMS_ID,PARTICIPANTID,STATION_ID,DEVICE_ID,DEVICE_TYPE,CONTROL_TYPE,TARGET,CONFORMING,INSTRUCTION_SUMMARY,VERSION_DATETIME,INSTRUCTION_SEQUENCE,ADDITIONAL_NOTES
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",APD.REAC.A2REAC.VSWT,AEMO,APD,A2reac,REACTOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",APD.REAC.A3REAC.VSWT,AEMO,APD,A3reac,REACTOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",ARDN_W.CAP.CAP1.VSWT,"ElectraNet SA","ARDROSSAN WEST 132/33kV SUBSTATION","132KV CAP BANK 1",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",ARMIDALE.CAP.C1.VSWT,TransGrid,"Armidale 330kV Substation","No.1 capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",ARMIDALE.CAP.C2.VSWT,TransGrid,"Armidale 330kV Substation","No.2 capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",ARMIDALE.CAP.C3.VSWT,TransGrid,"Armidale 330kV Substation","No.3 Capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",ARMIDALE.CAP.C4.VSWT,TransGrid,"Armidale 330kV Substation","No.4 Capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",ARMIDALE.CAP.C5.VSWT,TransGrid,"Armidale 330kV Substation","No.5 Capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",ARMIDALE.CAP.C6.VSWT,TransGrid,"Armidale 330kV Substation","No.6 Capacitor",CAPACITOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",ARMIDALE.REAC.R1.VSWT,TransGrid,"Armidale 330kV Substation","No.1 reactor",REACTOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",0,
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,"2026/09/01 00:15:45",ARMIDALE.REAC.R2.VSWT,TransGrid,"Armidale 330kV Substation","No.2 reactor",REACTOR,SWITCH,,1,"NO INSTRUCTION","2026/09/01 00:15:45",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 8 of 2024. 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 280 MB when zipped, 3 GB as unzipped CSV.

Deduplication and PDR Loader Configuration

The primary keys are:

The transaction type is "insert", which means that you will usually not see duplicate data. If you do, you can deduplicate based on the primary keys, without sorting first. Rows from different files with the same primary keys should have the same values.

PDR Loader configuration is:

Report Name Report Subtype Version
VOLTAGE_INSTRUCTION INSTRUCTION 1
VOLTAGE_INSTRUCTION INSTRUCTION 2

This means that the CSV files start with metadata columns:

I,VOLTAGE_INSTRUCTION,INSTRUCTION,1,...
D,VOLTAGE_INSTRUCTION,INSTRUCTION,1,...

or

I,VOLTAGE_INSTRUCTION,INSTRUCTION,2,...
D,VOLTAGE_INSTRUCTION,INSTRUCTION,2,...

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: VOLTAGE_INSTRUCTIONS