Skip to content

MNSP_INTERCONNECTOR

MNSP_INTERCONNECTOR sets out attributes of each interconnector.

MNSP_INTERCONNECTOR data is public, so is available to all participants.

Source

MNSP_INTERCONNECTOR changes infrequently, typically annually.

Volume

Twice the number of MNSPs.

Column Schema

EFFECTIVEDATE

Date when Interconnector becomes effective

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

This column is mandatory, and a primary key.

Example: 2000/04/06 00:00:00

Note that AEMO represents dates as datetimes with a midnight time component.

LINKID

Identifier for each of the two MNSP Interconnector Links. Each link pertains to the direction from and to.

SQL Type: VARCHAR2(10) Polars Type: str

This column is mandatory, and a primary key.

Examples:

  • BLNKTAS
  • BLNKVIC
  • DLNKNSW
  • DLNKQLD
  • MLINKSA
  • MLINKVIC
  • MLNKSA
  • MLNKVIC

VERSIONNO

Version of data for other key data - a higher version for same key data will take precedence

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

This column is mandatory, and a primary key.

Examples: 1, 3

AUTHORISEDBY

Authorising officer

SQL Type: VARCHAR2(15) Polars Type: str

This column is not mandatory.

Examples:

  • BATCH
  • LUKEB
  • RGILLETT
  • TOM
  • Tom

AUTHORISEDDATE

Date of authorisation. Nominal date but required to enable Interconnector.

Warning

Despite what the name suggests, this is a datetime, not a date.

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

This column is not mandatory.

Example: 2000/04/06 10:04:46

FROM_REGION_TLF

Transmission Loss Factor for Link "From Region" end

SQL Type: NUMBER(12,7) Polars Type: pl.Float64

This column is not mandatory.

Examples: 0.962, 1, 0.9907

FROMREGION

Nominated source region for Interconnector

SQL Type: VARCHAR2(10) Polars Type: str

This column is not mandatory.

Examples:

  • NSW1
  • QLD1
  • SA1
  • TAS1
  • VIC1

INTERCONNECTORID

Interconnector Identifier

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

This column is not mandatory.

Examples:

  • N-Q-MNSP1
  • T-V-MNSP1
  • V-S-MNSP1

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: 2000/04/06 10:04:46

LHSFACTOR

Factor applied to the LHS of constraint equations; set by AEMO

SQL Type: NUMBER(12,7) Polars Type: pl.Float64

This column is not mandatory.

Examples: -1, 1

MAXCAPACITY

Maximum capacity

SQL Type: NUMBER(5,0) Polars Type: pl.Int32

This column is not mandatory.

Examples: 200, 600

METERFLOWCONSTANT

Obsolete; no longer applied. Ignore.

SQL Type: NUMBER(12,7) Polars Type: pl.Float64

This column is not mandatory.

Example: 0

TLF

Transmission Loss Factor (redundant from May 2012)

SQL Type: NUMBER(12,7) Polars Type: pl.Float64

This column is not mandatory.

Examples: 0.9682, 1, 1.1023

TO_REGION_TLF

Transmission Loss Factor for Link at "To Region" end

SQL Type: NUMBER(12,7) Polars Type: pl.Float64

This column is not mandatory.

Examples: 0.962, 1, 0.9907

TOREGION

Nominated destination region for Interconnector

SQL Type: VARCHAR2(10) Polars Type: str

This column is not mandatory.

Examples:

  • NSW1
  • QLD1
  • SA1
  • TAS1
  • VIC1

New Data Timing

Infrequently, typically annually

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"

# Dates are represented as datetimes at midnight

d_fmt = "%Y/%m/%d 00:00:00"

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("AUTHORISEDDATE", "LASTCHANGED").str.strptime(pl.Datetime, dt_s_fmt),
        pl.col("EFFECTIVEDATE").str.strptime(pl.Date, d_fmt),
    )
    .cast(
        {
            "EFFECTIVEDATE": pl.Date(),
            "LINKID": str,
            "VERSIONNO": int,  # or pl.UInt16
            "AUTHORISEDBY": str,
            "FROM_REGION_TLF": pl.Float64,
            "FROMREGION": str,
            "INTERCONNECTORID": pl.Categorical,
            "LHSFACTOR": pl.Float64,
            "MAXCAPACITY": int,  # or pl.Int32
            "METERFLOWCONSTANT": pl.Float64,
            "TLF": pl.Float64,
            "TO_REGION_TLF": pl.Float64,
            "TOREGION": str,
        }
    )
    # Deduplicate
    # We want one row per ['EFFECTIVEDATE', 'LINKID', 'VERSIONNO']
    # Tie-breaker: greatest value of ['LASTCHANGED']
    .sort(["LASTCHANGED"], descending=False)
    .unique(subset=["EFFECTIVEDATE", "LINKID", "VERSIONNO"], 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',
    "MNSP_INTERCONNECTOR",
    "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["MNSP_INTERCONNECTOR"] += ["AUTHORISEDBY", "AUTHORISEDDATE", "LASTCHANGED", "METERFLOWCONSTANT", "TLF"]
df = dynamic_data_compiler(...)

Example File

From PUBLIC_ARCHIVE_MNSP_INTERCONNECTOR_FILE01_202609010000.zip

LINKIDEFFECTIVEDATEVERSIONNOINTERCONNECTORIDFROMREGIONTOREGIONMAXCAPACITYTLFLHSFACTORMETERFLOWCONSTANTAUTHORISEDDATEAUTHORISEDBYLASTCHANGEDFROM_REGION_TLFTO_REGION_TLF
DLNKNSW2000/04/06 00:00:001N-Q-MNSP1NSW1QLD12001.0533102000/04/06 10:04:46TOM2000/04/06 10:04:46
DLNKQLD2000/04/06 00:00:001N-Q-MNSP1QLD1NSW12000.9767-102000/04/06 10:04:46TOM2000/04/06 10:04:46
DLNKNSW2000/12/20 00:00:001N-Q-MNSP1NSW1QLD12001.0521102000/12/20 00:00:00RGILLETT2000/12/20 15:10:16
DLNKQLD2000/12/20 00:00:001N-Q-MNSP1QLD1NSW12001.0196-102000/12/20 00:00:00RGILLETT2000/12/20 15:10:16
DLNKNSW2001/07/01 00:00:003N-Q-MNSP1NSW1QLD12001.0553102001/06/25 16:57:27BATCH2001/07/01 10:43:29
DLNKQLD2001/07/01 00:00:003N-Q-MNSP1QLD1NSW12001.0249-102001/06/25 16:57:27BATCH2001/07/01 10:43:29
DLNKNSW2002/07/01 00:00:001N-Q-MNSP1NSW1QLD12001.0708102002/06/22 13:23:28BATCH2002/06/22 13:23:28
DLNKQLD2002/07/01 00:00:001N-Q-MNSP1QLD1NSW12001.0696-102002/06/22 13:23:28BATCH2002/06/22 13:23:28
DLNKNSW2002/07/01 00:00:002N-Q-MNSP1NSW1QLD12001.0708102002/07/01 14:26:52BATCH2002/07/01 14:26:52
DLNKQLD2002/07/01 00:00:002N-Q-MNSP1QLD1NSW12001.0696-102002/07/01 14:26:52BATCH2002/07/01 14:26:52
MLNKVIC2002/08/06 00:00:001V-S-MNSP1VIC1SA12701.0929102002/08/06 14:55:48BATCH2002/08/06 14:55:48
...

CSETP.WORLDDVD_MNSP_INTERCONNECTORAEMOPUBLIC2026/10/0915:53:53001791525233843MONTHLY_ARCHIVE001791525233843
IPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2LINKIDEFFECTIVEDATEVERSIONNOINTERCONNECTORIDFROMREGIONTOREGIONMAXCAPACITYTLFLHSFACTORMETERFLOWCONSTANTAUTHORISEDDATEAUTHORISEDBYLASTCHANGEDFROM_REGION_TLFTO_REGION_TLF
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2DLNKNSW2000/04/06 00:00:001N-Q-MNSP1NSW1QLD12001.0533102000/04/06 10:04:46TOM2000/04/06 10:04:46
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2DLNKQLD2000/04/06 00:00:001N-Q-MNSP1QLD1NSW12000.9767-102000/04/06 10:04:46TOM2000/04/06 10:04:46
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2DLNKNSW2000/12/20 00:00:001N-Q-MNSP1NSW1QLD12001.0521102000/12/20 00:00:00RGILLETT2000/12/20 15:10:16
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2DLNKQLD2000/12/20 00:00:001N-Q-MNSP1QLD1NSW12001.0196-102000/12/20 00:00:00RGILLETT2000/12/20 15:10:16
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2DLNKNSW2001/07/01 00:00:003N-Q-MNSP1NSW1QLD12001.0553102001/06/25 16:57:27BATCH2001/07/01 10:43:29
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2DLNKQLD2001/07/01 00:00:003N-Q-MNSP1QLD1NSW12001.0249-102001/06/25 16:57:27BATCH2001/07/01 10:43:29
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2DLNKNSW2002/07/01 00:00:001N-Q-MNSP1NSW1QLD12001.0708102002/06/22 13:23:28BATCH2002/06/22 13:23:28
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2DLNKQLD2002/07/01 00:00:001N-Q-MNSP1QLD1NSW12001.0696-102002/06/22 13:23:28BATCH2002/06/22 13:23:28
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2DLNKNSW2002/07/01 00:00:002N-Q-MNSP1NSW1QLD12001.0708102002/07/01 14:26:52BATCH2002/07/01 14:26:52
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2DLNKQLD2002/07/01 00:00:002N-Q-MNSP1QLD1NSW12001.0696-102002/07/01 14:26:52BATCH2002/07/01 14:26:52
DPARTICIPANT_REGISTRATIONMNSP_INTERCONNECTOR2MLNKVIC2002/08/06 00:00:001V-S-MNSP1VIC1SA12701.0929102002/08/06 14:55:48BATCH2002/08/06 14:55:48
...
CEND OF REPORT81

LINKID,EFFECTIVEDATE,VERSIONNO,INTERCONNECTORID,FROMREGION,TOREGION,MAXCAPACITY,TLF,LHSFACTOR,METERFLOWCONSTANT,AUTHORISEDDATE,AUTHORISEDBY,LASTCHANGED,FROM_REGION_TLF,TO_REGION_TLF
DLNKNSW,"2000/04/06 00:00:00",1,N-Q-MNSP1,NSW1,QLD1,200,1.0533,1,0,"2000/04/06 10:04:46",TOM,"2000/04/06 10:04:46",,
DLNKQLD,"2000/04/06 00:00:00",1,N-Q-MNSP1,QLD1,NSW1,200,0.9767,-1,0,"2000/04/06 10:04:46",TOM,"2000/04/06 10:04:46",,
DLNKNSW,"2000/12/20 00:00:00",1,N-Q-MNSP1,NSW1,QLD1,200,1.0521,1,0,"2000/12/20 00:00:00",RGILLETT,"2000/12/20 15:10:16",,
DLNKQLD,"2000/12/20 00:00:00",1,N-Q-MNSP1,QLD1,NSW1,200,1.0196,-1,0,"2000/12/20 00:00:00",RGILLETT,"2000/12/20 15:10:16",,
DLNKNSW,"2001/07/01 00:00:00",3,N-Q-MNSP1,NSW1,QLD1,200,1.0553,1,0,"2001/06/25 16:57:27",BATCH,"2001/07/01 10:43:29",,
DLNKQLD,"2001/07/01 00:00:00",3,N-Q-MNSP1,QLD1,NSW1,200,1.0249,-1,0,"2001/06/25 16:57:27",BATCH,"2001/07/01 10:43:29",,
DLNKNSW,"2002/07/01 00:00:00",1,N-Q-MNSP1,NSW1,QLD1,200,1.0708,1,0,"2002/06/22 13:23:28",BATCH,"2002/06/22 13:23:28",,
DLNKQLD,"2002/07/01 00:00:00",1,N-Q-MNSP1,QLD1,NSW1,200,1.0696,-1,0,"2002/06/22 13:23:28",BATCH,"2002/06/22 13:23:28",,
DLNKNSW,"2002/07/01 00:00:00",2,N-Q-MNSP1,NSW1,QLD1,200,1.0708,1,0,"2002/07/01 14:26:52",BATCH,"2002/07/01 14:26:52",,
DLNKQLD,"2002/07/01 00:00:00",2,N-Q-MNSP1,QLD1,NSW1,200,1.0696,-1,0,"2002/07/01 14:26:52",BATCH,"2002/07/01 14:26:52",,
MLNKVIC,"2002/08/06 00:00:00",1,V-S-MNSP1,VIC1,SA1,270,1.0929,1,0,"2002/08/06 14:55:48",BATCH,"2002/08/06 14:55:48",,
...
C,SETP.WORLD,DVD_MNSP_INTERCONNECTOR,AEMO,PUBLIC,2026/10/09,15:53:53,001791525233843,MONTHLY_ARCHIVE,001791525233843
I,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,LINKID,EFFECTIVEDATE,VERSIONNO,INTERCONNECTORID,FROMREGION,TOREGION,MAXCAPACITY,TLF,LHSFACTOR,METERFLOWCONSTANT,AUTHORISEDDATE,AUTHORISEDBY,LASTCHANGED,FROM_REGION_TLF,TO_REGION_TLF
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,DLNKNSW,"2000/04/06 00:00:00",1,N-Q-MNSP1,NSW1,QLD1,200,1.0533,1,0,"2000/04/06 10:04:46",TOM,"2000/04/06 10:04:46",,
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,DLNKQLD,"2000/04/06 00:00:00",1,N-Q-MNSP1,QLD1,NSW1,200,0.9767,-1,0,"2000/04/06 10:04:46",TOM,"2000/04/06 10:04:46",,
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,DLNKNSW,"2000/12/20 00:00:00",1,N-Q-MNSP1,NSW1,QLD1,200,1.0521,1,0,"2000/12/20 00:00:00",RGILLETT,"2000/12/20 15:10:16",,
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,DLNKQLD,"2000/12/20 00:00:00",1,N-Q-MNSP1,QLD1,NSW1,200,1.0196,-1,0,"2000/12/20 00:00:00",RGILLETT,"2000/12/20 15:10:16",,
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,DLNKNSW,"2001/07/01 00:00:00",3,N-Q-MNSP1,NSW1,QLD1,200,1.0553,1,0,"2001/06/25 16:57:27",BATCH,"2001/07/01 10:43:29",,
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,DLNKQLD,"2001/07/01 00:00:00",3,N-Q-MNSP1,QLD1,NSW1,200,1.0249,-1,0,"2001/06/25 16:57:27",BATCH,"2001/07/01 10:43:29",,
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,DLNKNSW,"2002/07/01 00:00:00",1,N-Q-MNSP1,NSW1,QLD1,200,1.0708,1,0,"2002/06/22 13:23:28",BATCH,"2002/06/22 13:23:28",,
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,DLNKQLD,"2002/07/01 00:00:00",1,N-Q-MNSP1,QLD1,NSW1,200,1.0696,-1,0,"2002/06/22 13:23:28",BATCH,"2002/06/22 13:23:28",,
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,DLNKNSW,"2002/07/01 00:00:00",2,N-Q-MNSP1,NSW1,QLD1,200,1.0708,1,0,"2002/07/01 14:26:52",BATCH,"2002/07/01 14:26:52",,
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,DLNKQLD,"2002/07/01 00:00:00",2,N-Q-MNSP1,QLD1,NSW1,200,1.0696,-1,0,"2002/07/01 14:26:52",BATCH,"2002/07/01 14:26:52",,
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,MLNKVIC,"2002/08/06 00:00:00",1,V-S-MNSP1,VIC1,SA1,270,1.0929,1,0,"2002/08/06 14:55:48",BATCH,"2002/08/06 14:55:48",,
...
C,"END OF REPORT",81

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 22 KB when zipped, 217 KB 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
PARTICIPANT_REGISTRATION MNSP_INTERCONNECTOR 1
PARTICIPANT_REGISTRATION MNSP_INTERCONNECTOR 2

This means that the CSV files start with metadata columns:

I,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,1,...
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,1,...

or

I,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,...
D,PARTICIPANT_REGISTRATION,MNSP_INTERCONNECTOR,2,...

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