FPP_FORECAST_DEFAULT_CF
This report delivers the forecast default contribution factors (DCF) effective for a billing period (aligned to the settlement week)
Column Schema
CONSTRAINTID
Constraint ID (binding constraint ID from FCAS data used in FPP calculations)
SQL Type: VARCHAR2(20)
Polars Type: pl.Categorical
This column is mandatory, and a primary key.
Examples:
F_I+GFT_TG_R5F_I+LREG_0210F_I+ML_L5_APD_LDF_I+NIL_APD_TL_L5F_I+NIL_MG_R5F_I+RREG_0220F_I+TTS_TG_R5F_MAIN++APD_TL_L5F_MAIN++LREG_0210F_MAIN++NIL_MG_R5
EFFECTIVE_END_DATETIME
Effective period end date and time (DD/MM/YYYY HH24:MI:SS) fixed to the UTC+10 time zone (NEM time) of the effective period for this default contribution factor related to the combination of FPP unit ID / constraint. This is the billing period over which these default contribution factors will be effective / applied. Effective end date will align with the end of a settlement week.
SQL Type: DATE
Polars Type: pl.Datetime()
This column is mandatory, and a primary key.
Example: 2026/09/13 00:00:00
EFFECTIVE_START_DATETIME
Effective period start date and time (DD/MM/YYYY HH24:MI:SS) fixed to the UTC+10 time zone (NEM time) of the effective period for this default contribution factor related to the combination of FPP unit ID / constraint. This is the billing period over which these default contribution factors will be effective / applied. In most cases this will align to the settlement week, however there are some cases (like a new constraint) where the effective start date will be prorated to align with the change.
SQL Type: DATE
Polars Type: pl.Datetime()
This column is mandatory, and a primary key.
Example: 2026/09/09 17:55:00
FPP_UNITID
FPP Unit ID (registered DUID/ TNI)
SQL Type: VARCHAR2(20)
Polars Type: str
This column is mandatory, and a primary key.
Examples:
ADPBA1ADPPV1AGLHALAGLSOMALDGASF1ANGAST1APD_LOADARWF1AVLSF1BALB1
VERSIONNO
The version number. In most cases this version will be the historical performance calculation run number from the FPP database (which is different from the FPP run number), however there are some cases (like a new constraint) where the version number listed here will be the FPP run number from the FPP database (this will be where the effective start date time will be prorated to align with the detection of this change).
SQL Type: NUMBER(10)
Polars Type: pl.UInt64
This column is mandatory, and a primary key.
Examples:
1, 130
BIDTYPE
Bid type (the bid type saved in relation to constraint ID from FCAS data used in FPP calculations)
The SQL type is VARCHAR2(10).
This is actually a factor/enum, with values:
-
ENERGY -
LOWERREG -
LOWER60SEC -
RAISE5MIN -
LOWER5MIN -
LOWER6SEC -
RAISE60SEC -
RAISE6SEC -
RAISEREG -
RAISE1SEC -
LOWER1SEC
This column is not mandatory.
DCF_ABS_NEGATIVE_PERF_TOTAL
The sum of absolute negative performance in MWHz for the combination of constraint (raise or lower). This is used as the denominator in normalising default contribution factors (DCF) as the historical performance is always negative for DCF. For further details please see the FPP procedure document. >0 = Performance was calculated for the units NULL = Performance for the units was unavailable
SQL Type: NUMBER(18,8)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
255.05571, 428.31788
DCF_REASON_FLAG
The reason flag showing the decision matrix for the default contribution factor (DCF)
SQL Type: NUMBER(5)
Polars Type: pl.Int32
This column is not mandatory.
Examples:
0, 1, 4
DEFAULT_CONTRIBUTION_FACTOR
Calculated default contribution factor from the historical performance period. For further details please see the FPP procedure document.
SQL Type: NUMBER(18,8)
Polars Type: pl.Float64
This column is not mandatory.
Examples:
-0.00000013, 0, -0.03972986
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/09 17:59:02
REGIONID
Region ID of the frequency deviation / frequency measure
For more information, see the dedicated documentation page.
The SQL type is VARCHAR2(20).
This is actually a factor/enum, with values:
-
QLD1 -
VIC1 -
TAS1 -
NSW1 -
SA1 -
SNOWY1
This column is not mandatory.
SETTLEMENTS_UNITID
The Settlements Unit ID (registered DUID / TNI) Note that this SETTLEMENTS_UNITID is what is sent and used by the Settlements system, and may be different from the FPP_UNITID for non-scheduled loads where the FPP_UNITID may be a descriptive key, whereas what will be sent to Settlements as the SETTLEMENTS_UNITID will be the TNI code.
SQL Type: VARCHAR2(50)
Polars Type: str
This column is not mandatory.
Examples:
ADPBA1ADPPV1AGLHALAGLSOMALDGASF1ANGAST1ARWF1AVLSF1BALB1BALDHWF1
New Data Timing
Approval of an FPP historical default contribution factor calculation run (i.e. every week)
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(
"EFFECTIVE_END_DATETIME", "EFFECTIVE_START_DATETIME", "LASTCHANGED"
).str.strptime(pl.Datetime, dt_s_fmt),
)
.cast(
{
"CONSTRAINTID": pl.Categorical,
"FPP_UNITID": str,
"VERSIONNO": int, # or pl.UInt64
"BIDTYPE": pl.Enum(
[
"ENERGY",
"LOWERREG",
"LOWER60SEC",
"RAISE5MIN",
"LOWER5MIN",
"LOWER6SEC",
"RAISE60SEC",
"RAISE6SEC",
"RAISEREG",
"RAISE1SEC",
"LOWER1SEC",
]
),
"DCF_ABS_NEGATIVE_PERF_TOTAL": pl.Float64,
"DCF_REASON_FLAG": int, # or pl.Int32
"DEFAULT_CONTRIBUTION_FACTOR": pl.Float64,
"REGIONID": pl.Enum(["QLD1", "VIC1", "TAS1", "NSW1", "SA1", "SNOWY1"]),
"SETTLEMENTS_UNITID": str,
}
)
# Deduplicate
# We want one row per ['CONSTRAINTID', 'EFFECTIVE_END_DATETIME', 'EFFECTIVE_START_DATETIME', 'FPP_UNITID', 'VERSIONNO']
# Tie-breaker: greatest value of LASTCHANGED
.sort(LASTCHANGED, descending=False)
.unique(
subset=[
"CONSTRAINTID",
"EFFECTIVE_END_DATETIME",
"EFFECTIVE_START_DATETIME",
"FPP_UNITID",
"VERSIONNO",
],
keep="last",
)
)
Nemosis
This table is not yet available in Nemosis.
Example File
From PUBLIC_ARCHIVE_FPP_FORECAST_DEFAULT_CF_FILE01_202609010000.zip
| FPP_UNITID | CONSTRAINTID | EFFECTIVE_START_DATETIME | EFFECTIVE_END_DATETIME | VERSIONNO | BIDTYPE | REGIONID | DEFAULT_CONTRIBUTION_FACTOR | DCF_REASON_FLAG | DCF_ABS_NEGATIVE_PERF_TOTAL | SETTLEMENTS_UNITID | LASTCHANGED |
| ADPBA1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | SA1 | -0.00014247 | 0 | 305.25101 | ADPBA1 | 2026/09/09 17:59:02 |
| ADPPV1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | SA1 | -0.00052278 | 0 | 305.25101 | ADPPV1 | 2026/09/09 17:59:02 |
| AGLHAL | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | SA1 | 0 | 0 | 305.25101 | AGLHAL | 2026/09/09 17:59:02 |
| AGLSOM | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | VIC1 | -0.00013222 | 0 | 305.25101 | AGLSOM | 2026/09/09 17:59:02 |
| ALDGASF1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | QLD1 | -0.00525191 | 0 | 305.25101 | ALDGASF1 | 2026/09/09 17:59:02 |
| ANGAST1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | SA1 | 0 | 0 | 305.25101 | ANGAST1 | 2026/09/09 17:59:02 |
| APD_LOAD | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | VIC1 | -0.0048583 | 0 | 305.25101 | VAPD | 2026/09/09 17:59:02 |
| ARWF1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | VIC1 | -0.00227708 | 0 | 305.25101 | ARWF1 | 2026/09/09 17:59:02 |
| AVLSF1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | NSW1 | -0.00383524 | 0 | 305.25101 | AVLSF1 | 2026/09/09 17:59:02 |
| BALB1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | VIC1 | -0.0000591 | 0 | 305.25101 | BALB1 | 2026/09/09 17:59:02 |
| BALDHWF1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | VIC1 | -0.00251649 | 0 | 305.25101 | BALDHWF1 | 2026/09/09 17:59:02 |
| ... |
| C | SETP.WORLD | DVD_FPP_FORECAST_DEFAULT_CF | AEMO | PUBLIC | 2026/10/09 | 17:50:49 | 001791532249627 | MONTHLY_ARCHIVE | 001791532249627 | ||||||
| I | FPP | FORECAST_DEFAULT_CF | 1 | FPP_UNITID | CONSTRAINTID | EFFECTIVE_START_DATETIME | EFFECTIVE_END_DATETIME | VERSIONNO | BIDTYPE | REGIONID | DEFAULT_CONTRIBUTION_FACTOR | DCF_REASON_FLAG | DCF_ABS_NEGATIVE_PERF_TOTAL | SETTLEMENTS_UNITID | LASTCHANGED |
| D | FPP | FORECAST_DEFAULT_CF | 1 | ADPBA1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | SA1 | -0.00014247 | 0 | 305.25101 | ADPBA1 | 2026/09/09 17:59:02 |
| D | FPP | FORECAST_DEFAULT_CF | 1 | ADPPV1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | SA1 | -0.00052278 | 0 | 305.25101 | ADPPV1 | 2026/09/09 17:59:02 |
| D | FPP | FORECAST_DEFAULT_CF | 1 | AGLHAL | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | SA1 | 0 | 0 | 305.25101 | AGLHAL | 2026/09/09 17:59:02 |
| D | FPP | FORECAST_DEFAULT_CF | 1 | AGLSOM | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | VIC1 | -0.00013222 | 0 | 305.25101 | AGLSOM | 2026/09/09 17:59:02 |
| D | FPP | FORECAST_DEFAULT_CF | 1 | ALDGASF1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | QLD1 | -0.00525191 | 0 | 305.25101 | ALDGASF1 | 2026/09/09 17:59:02 |
| D | FPP | FORECAST_DEFAULT_CF | 1 | ANGAST1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | SA1 | 0 | 0 | 305.25101 | ANGAST1 | 2026/09/09 17:59:02 |
| D | FPP | FORECAST_DEFAULT_CF | 1 | APD_LOAD | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | VIC1 | -0.0048583 | 0 | 305.25101 | VAPD | 2026/09/09 17:59:02 |
| D | FPP | FORECAST_DEFAULT_CF | 1 | ARWF1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | VIC1 | -0.00227708 | 0 | 305.25101 | ARWF1 | 2026/09/09 17:59:02 |
| D | FPP | FORECAST_DEFAULT_CF | 1 | AVLSF1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | NSW1 | -0.00383524 | 0 | 305.25101 | AVLSF1 | 2026/09/09 17:59:02 |
| D | FPP | FORECAST_DEFAULT_CF | 1 | BALB1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | VIC1 | -0.0000591 | 0 | 305.25101 | BALB1 | 2026/09/09 17:59:02 |
| D | FPP | FORECAST_DEFAULT_CF | 1 | BALDHWF1 | F_MAIN+APD_TL_L5 | 2026/09/09 17:55:00 | 2026/09/13 00:00:00 | 1 | LOWERREG | VIC1 | -0.00251649 | 0 | 305.25101 | BALDHWF1 | 2026/09/09 17:59:02 |
| ... | |||||||||||||||
| C | END OF REPORT | 1003 |
FPP_UNITID,CONSTRAINTID,EFFECTIVE_START_DATETIME,EFFECTIVE_END_DATETIME,VERSIONNO,BIDTYPE,REGIONID,DEFAULT_CONTRIBUTION_FACTOR,DCF_REASON_FLAG,DCF_ABS_NEGATIVE_PERF_TOTAL,SETTLEMENTS_UNITID,LASTCHANGED
ADPBA1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,SA1,-0.00014247,0,305.25101,ADPBA1,"2026/09/09 17:59:02"
ADPPV1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,SA1,-0.00052278,0,305.25101,ADPPV1,"2026/09/09 17:59:02"
AGLHAL,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,SA1,0,0,305.25101,AGLHAL,"2026/09/09 17:59:02"
AGLSOM,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,VIC1,-0.00013222,0,305.25101,AGLSOM,"2026/09/09 17:59:02"
ALDGASF1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,QLD1,-0.00525191,0,305.25101,ALDGASF1,"2026/09/09 17:59:02"
ANGAST1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,SA1,0,0,305.25101,ANGAST1,"2026/09/09 17:59:02"
APD_LOAD,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,VIC1,-0.0048583,0,305.25101,VAPD,"2026/09/09 17:59:02"
ARWF1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,VIC1,-0.00227708,0,305.25101,ARWF1,"2026/09/09 17:59:02"
AVLSF1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,NSW1,-0.00383524,0,305.25101,AVLSF1,"2026/09/09 17:59:02"
BALB1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,VIC1,-0.0000591,0,305.25101,BALB1,"2026/09/09 17:59:02"
BALDHWF1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,VIC1,-0.00251649,0,305.25101,BALDHWF1,"2026/09/09 17:59:02"
...
C,SETP.WORLD,DVD_FPP_FORECAST_DEFAULT_CF,AEMO,PUBLIC,2026/10/09,17:50:49,001791532249627,MONTHLY_ARCHIVE,001791532249627
I,FPP,FORECAST_DEFAULT_CF,1,FPP_UNITID,CONSTRAINTID,EFFECTIVE_START_DATETIME,EFFECTIVE_END_DATETIME,VERSIONNO,BIDTYPE,REGIONID,DEFAULT_CONTRIBUTION_FACTOR,DCF_REASON_FLAG,DCF_ABS_NEGATIVE_PERF_TOTAL,SETTLEMENTS_UNITID,LASTCHANGED
D,FPP,FORECAST_DEFAULT_CF,1,ADPBA1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,SA1,-0.00014247,0,305.25101,ADPBA1,"2026/09/09 17:59:02"
D,FPP,FORECAST_DEFAULT_CF,1,ADPPV1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,SA1,-0.00052278,0,305.25101,ADPPV1,"2026/09/09 17:59:02"
D,FPP,FORECAST_DEFAULT_CF,1,AGLHAL,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,SA1,0,0,305.25101,AGLHAL,"2026/09/09 17:59:02"
D,FPP,FORECAST_DEFAULT_CF,1,AGLSOM,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,VIC1,-0.00013222,0,305.25101,AGLSOM,"2026/09/09 17:59:02"
D,FPP,FORECAST_DEFAULT_CF,1,ALDGASF1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,QLD1,-0.00525191,0,305.25101,ALDGASF1,"2026/09/09 17:59:02"
D,FPP,FORECAST_DEFAULT_CF,1,ANGAST1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,SA1,0,0,305.25101,ANGAST1,"2026/09/09 17:59:02"
D,FPP,FORECAST_DEFAULT_CF,1,APD_LOAD,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,VIC1,-0.0048583,0,305.25101,VAPD,"2026/09/09 17:59:02"
D,FPP,FORECAST_DEFAULT_CF,1,ARWF1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,VIC1,-0.00227708,0,305.25101,ARWF1,"2026/09/09 17:59:02"
D,FPP,FORECAST_DEFAULT_CF,1,AVLSF1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,NSW1,-0.00383524,0,305.25101,AVLSF1,"2026/09/09 17:59:02"
D,FPP,FORECAST_DEFAULT_CF,1,BALB1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,VIC1,-0.0000591,0,305.25101,BALB1,"2026/09/09 17:59:02"
D,FPP,FORECAST_DEFAULT_CF,1,BALDHWF1,F_MAIN+APD_TL_L5,"2026/09/09 17:55:00","2026/09/13 00:00:00",1,LOWERREG,VIC1,-0.00251649,0,305.25101,BALDHWF1,"2026/09/09 17:59:02"
...
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 12 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 5 MB when zipped, 45 MB 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.
| Report Name | Report Subtype | Version |
|---|---|---|
| FPP | FORECAST_DEFAULT_CF | 1 |
This means that the CSV files start with metadata columns:
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: FPP