NEM Constraint Watch

NSW$71QLD$71SA$-1TAS$49VIC$43

Dispatch interval 2026-07-12 18:10 market time · page generated 18:09:21 · refreshes every 60 s (paused while reading How it works)

13Binding now
0Violated
596Enforceable equations
25Predicted ≤60 min

ThermalTransientSystem strengthFCASRampingCommissioningOther

Predicted to bind within 60 minutes25 constraints · top P 0.88
ConstraintP(bind)Headroom (MW)24 hExpected impact ($/MW)Description
F_I+NIL_APD_TL_L60.88
0.00.38Lower 6 sec Service Requirement for the loss of APD potlines due to undervoltage following a fault on MOPS-HYTS-APD 500 kV line
F_I+NIL_MG_R50.84
0.00.31Out = Nil, Raise 5 min requirement for a NEM Generation Event
F_I+LREG_02100.53
0.00.15NEM Lower Regulation Requirement greater than 210 MW
S>NIL_NWRB2_NWRB10.37
9.819.00Out= NIL, avoid O/L North West Bend-Robertstown #1 132kV line on trip of North West Bend-Robertstown #2 132kV line (this trips MWP1-3 SFs), Feedback
F_T++NIL_MRWF_TG_R60.29
73.50.10Out= Nil, Tasmania Raise 6 sec requirement for loss of the Norwood to Scotsdale tee to Derby 110 kV line, Basslink able to transfer FCAS
F_TASCAP_RREG_02200.29
115.20.10Mainland Raise Regulation Requirement, Cap Tas contribution to 50 MW
F_T_NIL_MINP_R60.29
0.00.10Out= NIL, ensure minimum quantity of TAS R6 FCAS requirement provided through proportional response, considering Basslink headroom
VSML_ROC_800.26
79.315.32Out=Nil, Rate of Change (VIC to SA) constraint (80 MW / 5 Min) for Murraylink
F_T++NIL_WF_TG_R600.21
73.50.07Out= Nil, Tasmania Raise 60 sec requirement for loss of a Smithton to Woolnorth or Norwood to Scotsdale tee Derby, Waddamana to Cattle Hill or Pieman to Granville Harbour line, Basslink able to transfer FCAS
S>>NIL_RBTU_WEWT0.11
52.73.91Out= Nil, avoid O/L Waterloo East-Waterloo 132kV line on trip of one Robertstown-Tungkillo 275kV line, Feedback
S>V_NIL_SETX_SETX10.08
138.52.60Out= Nil, avoid overloading a South East 132/275 kV transformer on trip of the remaining South East 132/275 kV transformer(for Transformer component SECS O/S), Feedback
F_I+RREG_02200.07
115.20.02NEM Raise Regulation Requirement greater than 200 MW
N>NIL_977_9760.07
100.31.60Out= Nil, avoid O/L of one Canberra to Queanbeyan (977/1 or 976/1) 132kV line on trip of other Canberra to Queanbeyan (977/1 or 976/1) 132kV line, Feedback
S>>NIL_BWMP_WTTP0.07
118.12.37Out= Nil, avoid O/L Waterloo - Templers 132kV on trip of Blyth West- Munno Para 275kV line, Feedback
N>Q-NIL_757_7580.07
96.73.42Out= Nil, Avoid overloading 757 or 758 (T174 Terranora to H4 Mudgeeraba) 110kV line on trip of the other 758 or 757 (T174 Terranora to H4 Mudgeeraba line), Flow North, Feedback
S>NIL_HUWT_STBG0.07
43.02.80Out = Nil; avoid O/L on Snowtown - Bungama line 132kV on loss of Hummocks - Waterloo 132kV line, Feedback
F_T++NIL_CHWF_TG_R60.06
78.80.02Out= Nil, Tasmania Raise 6 sec requirement for loss of the Waddamana to Cattle Hill 220kV line, Basslink able to transfer FCAS
F_T++NIL_MG_R60.06
118.50.02Out = Nil, Raise 6 sec requirement for a Tasmania Synchronous Generation Event (both largest MW output and inertia), Basslink able to transfer FCAS
F_T++NIL_MG_R600.06
118.50.02Out = Nil, Raise 60 sec requirement for a Tasmania Synchronous Generation Event (both largest MW output and inertia), Basslink able to transfer FCAS
N_MBTE1_A0.06
69.02.36Out= one Directlink cable, NSW to Qld limit
QNTE_ROC0.06
80.11.70Out=Nil, Rate of Change (Qld to NSW) constraint (80 MW / 5 Min) for Terranora Interconnector
S>NIL_BWMP_RHBR-T0.06
120.92.01Out= Nil, avoid O/L Redhill-Brinkworth T 132kV line on trip of Blyth West-Munno Para 275kV line, Feedback
SVML_ROC_800.06
80.72.00Out=Nil, Rate of Change (SA to VIC) constraint (80 MW / 5 Min) for Murraylink
NQTE_ROC0.05
79.92.21Out=Nil, Rate of Change (NSW to Qld) constraint (80 MW / 5 Min) for Terranora Interconnector
S>>NIL_TWPA_TPRS0.05
100.01.75Out= NIL, avoid O/L Templers-Roseworthy 132kV line on trip of Templers West-Para 275kV line, Feedback
What changed (last 6 h)71 events · 12▲ 59▼ · latest 18:10 ▼ F_I+NIL_APD_TL_L6
ConstraintEventWhenMV now ($/MW)24 hDescription
F_I+NIL_APD_TL_L6▼ released (x3 in 6 h)18:10Lower 6 sec Service Requirement for the loss of APD potlines due to undervoltage following a fault on MOPS-HYTS-APD 500 kV line
V>>NIL_SMTX_SMTX_R5▲ started binding (x5 in 6 h)18:10-8.92Out= Nil, avoid O/L the remaining South Morang 500/330kV F transformer on trip of one South Morang 500/330kV F transformer, radial mode, Yallourn W1 on 500kV mode, Feedback
F_I+NIL_MG_R5▼ released18:10Out = Nil, Raise 5 min requirement for a NEM Generation Event
F_TASCAP_LREG_0210▲ started binding (x8 in 6 h)18:002.49Mainland Lower Regulation Requirement, Cap Tas contribution to 50 MW
F_I+LREG_0210▼ released (x10 in 6 h)18:00NEM Lower Regulation Requirement greater than 210 MW
F_TASCAP_RREG_0220▼ released (x19 in 6 h)17:55Mainland Raise Regulation Requirement, Cap Tas contribution to 50 MW
S>NIL_MHNW1_MHNW2▲ started binding (x10 in 6 h)17:50-3.35Out= Nil, avoid O/L Monash-North West Bend #2 132kV on trip of Monash-North West Bend #1 132kV line, Feedback
F_T++NIL_WF_TG_R60▼ released (x10 in 6 h)17:30Out= Nil, Tasmania Raise 60 sec requirement for loss of a Smithton to Woolnorth or Norwood to Scotsdale tee Derby, Waddamana to Cattle Hill or Pieman to Granville Harbour line, Basslink able to transfer FCAS
VSML_ROC_80▼ released (x6 in 6 h)17:30Out=Nil, Rate of Change (VIC to SA) constraint (80 MW / 5 Min) for Murraylink
F_T++NIL_MRWF_TG_R6▼ released (x10 in 6 h)17:30Out= Nil, Tasmania Raise 6 sec requirement for loss of the Norwood to Scotsdale tee to Derby 110 kV line, Basslink able to transfer FCAS
V::N_NIL_V2▲ started binding (x7 in 6 h)17:15-38.18Out = NIL, prevent transient instability for fault and trip of a HWTS-SMTS 500 kV line, VIC accelerates. Yallourn W G1 on 500kV.
SVML^NIL_MH-CAP_ON▼ released17:15Out=NIL, SA to Vic on ML upper transfer limit to manage voltage collapse at Monash (Note: applies when capacitor banks at Monash are available and I/S for switching.)
Binding now13 constraints · top |MV| $985
ConstraintMarginal value ($/MW)LHS = RHS (MW)24 hDescription
V_DUNDWF1_2_3_168-984.79168.0Discretionary upper limit on Dundonnell WF (1 + 2 + 3) generation of 168 MW
V>>NIL_MLGT_MLGT-135.791,672.5Out = NIL, avoid O/L Moorabool to Geelong #1 or #2 on trip of other Moorabool to Geelong line, Feedback
V::N_NIL_V2-38.18-747.2Out = NIL, prevent transient instability for fault and trip of a HWTS-SMTS 500 kV line, VIC accelerates. Yallourn W G1 on 500kV.
V>>NIL_SMTX_SMTX_R5-8.925,596.5Out= Nil, avoid O/L the remaining South Morang 500/330kV F transformer on trip of one South Morang 500/330kV F transformer, radial mode, Yallourn W1 on 500kV mode, Feedback
F_T+RREG_00505.0750.0Tasmania Raise Regulation Requirement greater than 50 MW
S>NIL_MHNW1_MHNW2-3.35175.7Out= Nil, avoid O/L Monash-North West Bend #2 132kV on trip of Monash-North West Bend #1 132kV line, Feedback
F_TASCAP_LREG_02102.49160.0Mainland Lower Regulation Requirement, Cap Tas contribution to 50 MW
F_T+LREG_00502.1250.0Tasmania Lower Regulation Requirement greater than 50 MW
F_I+NIL_MG_R60.04583.6Out = Nil, Raise 6 sec requirement for a NEM Generation Event
F_I+NIL_MG_R600.04583.6Out = Nil, Raise 60 sec requirement for a NEM Generation Event
F_I+NIL_APD_TL_L600.01434.4Lower 60 sec Service Requirement for the loss of APD potlines due to undervoltage following a fault on MOPS-HYTS-APD 500 kV line
F_I+NIL_APD_TL_L50.01532.0Lower 5 min Service Requirement for the loss of APD potlines due to undervoltage following a fault on MOPS-HYTS-APD 500 kV line
F_I+NIL_MG_R10.01311.1Out = Nil, Raise 1 sec requirement for a NEM Generation Event
Smallest headroom (not yet binding)top 25 · closest 0.0 MW
ConstraintHeadroom (MW)24 hLHSRHSDescription
F_I+NIL_APD_TL_L60.0295.0295.0Lower 6 sec Service Requirement for the loss of APD potlines due to undervoltage following a fault on MOPS-HYTS-APD 500 kV line
F_I+LREG_02100.0210.0210.0NEM Lower Regulation Requirement greater than 210 MW
F_I+NIL_MG_R50.0681.2681.2Out = Nil, Raise 5 min requirement for a NEM Generation Event
F_T_NIL_MINP_R60.00.00.0Out= NIL, ensure minimum quantity of TAS R6 FCAS requirement provided through proportional response, considering Basslink headroom
F_I+NIL_MREH_TL_L13.03.00.0Out = Nil, Lower 1 sec requirement for a Network Event - loss of MREH BDU following a fault on the Sydenham to Plumpton 500kV line
F_I+NIL_LDBES_TL_L13.03.00.0Out = Nil, Lower 1 sec requirement for a Network Event - loss of Liddell BDU following a fault on the Liddell to Liddell BESS (8G) 330kV line
F_I+NIL_APD_TL_L13.03.00.0Out = Nil, Lower 1 sec requirement for NEM Network event, simultaneous loss of both APD potlines due to undervoltage following a fault on MOPS-HYTS-APD 500 kV line.
F_I+NIL_ERB_TL_L13.03.00.0Out = Nil, Lower 1 sec requirement for a Network Event - loss of Eraring BDU following a fault on the Eraring to Eraring BESS (2L) 330kV line
F_I+BIP_ML_L13.03.00.0Out = Nil, Lower 1 sec requirement for a NEM Load Event, for loss of the largest Boyne Island potline.
S>NIL_NWRB2_NWRB19.8175.7185.4Out= NIL, avoid O/L North West Bend-Robertstown #1 132kV line on trip of North West Bend-Robertstown #2 132kV line (this trips MWP1-3 SFs), Feedback
C_N_NESBESS_150_G17.5132.5150.0Commissioning / hold point constraint for New England BESS BDU 1 and 2 of +150 MW - ST5, HP3
V_GANWR_SF_BAT_5025.025.050.0Out = Nil, limit total output of Gannawarra Solar Farm and Battery (BDU) to 50 MW to prevent overload on Gannawarra txfmr
C_N_QUORNP_019_L_H34.815.0-19.8Commissioning / hold point constraint for Quorn Park of -19.80MW - HP3 - HYBRID mode
Q_STR_A19B_KEP42.84.247.0Limit 80% to Kennedy Energy Park if Stan>=2+Cal>=1+Cal+Glad>=2+ (Stan+Cal+Glad) >=7, Kar>=2,NQLD>350&370(AVG),Ross_FN>150&170(AVG),(Townsville GT>=1if kar<2),Zero otherwise.
S>NIL_HUWT_STBG43.0135.5178.5Out = Nil; avoid O/L on Snowtown - Bungama line 132kV on loss of Hummocks - Waterloo 132kV line, Feedback
VSML_22044.3175.7220.0
Q_KEP-HYB_50MW45.84.250.0Kennedy Energy Park upper limit of 50MW
N>NIL_BHTX_HV50.80.050.8Out= NIL, avoid O/L Broken Hill (1 or 2) 220/22kV TX on trip of Broken Hill (2 or 1) 220/22kV TX, Feedback
N>NIL_LSDU52.10.052.1Out = Nil, avoid overloading Lismore to Dunoon line (9U6 or 9U7) on trip of the other Lismore to Dunoon line (9U7 or 9U6), Feedback
S>>NIL_RBTU_WEWT52.7242.8295.5Out= Nil, avoid O/L Waterloo East-Waterloo 132kV line on trip of one Robertstown-Tungkillo 275kV line, Feedback
T>T_NIL_BL_110_257.2104.4161.7Out = Nil, avoid O/L Meadowbank Tee 2 to New Norfolk 110kV line on trip of Tungatinah to Meadowbank Tee 1 to New Norfolk 110kV lines, Feedback
VSML_VFRB_OFF64.3175.7240.0Out=Nil, Vic to SA on Murraylink <=10 for Murraylink export VFRB disabled, Dispatch only
C_N_QUORNP_080_G_H65.015.080.0Commissioning / hold point constraint for Quorn Park of +80MW - HP3 - HYBRID mode
F_I+BIP_ML_L665.7295.0229.3Out = Nil, Lower 6 sec requirement for a NEM Load Event, for loss of the largest Boyne Island potline.
S>NIL_NWRB1_MWP3RB67.8175.7243.5Out= NIL, avoid O/L Morgan Pipeline 3-Robertstown 132kV line on trip of North West Bend-Roberstown 132kV line, Feedback
Constrained units109 units · largest DUNDWF2 -1,043 $/MWh

Local price adjustment this interval: the unit's effective price is the regional price plus this figure (AEMO's published value where available, our constraint-level attribution alongside). Negative means constrained off.

UnitAdjustment ($/MWh)Our attributionBinding constraints
DUNDWF2-1,042.58 (price floor)-1,042.583
DUNDWF3-1,042.58 (price floor)-1,042.583
DUNDWF1-1,042.58 (price floor)-1,042.583
VBB1-124.58-124.583
ELAINWF1-114.81-114.813
MERCER01-114.81-114.813
MOORAWF1-114.81-114.813
MTGELWF1111.25111.253
BRYB2WF2-106.14-106.143
BRYB1WF1-106.14-106.143
FCAS prices12 nonzero · top RAISEREG $5.07

Frequency-reserve clearing prices this interval and the constraint contributing most. A region's FCAS price is the summed marginal value of the binding requirement constraints covering it.

RegionServicePrice ($/MW)Largest contributor
TAS1RAISEREG5.07F_T+RREG_0050 (100%)
VIC1LOWERREG2.50F_TASCAP_LREG_0210 (100%)
SA1LOWERREG2.50F_TASCAP_LREG_0210 (100%)
QLD1LOWERREG2.50F_TASCAP_LREG_0210 (100%)
NSW1LOWERREG2.50F_TASCAP_LREG_0210 (100%)
TAS1LOWERREG2.13F_T+LREG_0050 (100%)
SA1RAISE6SEC0.04F_I+NIL_MG_R6 (100%)
QLD1RAISE6SEC0.04F_I+NIL_MG_R6 (100%)
TAS1RAISE60SEC0.04F_I+NIL_MG_R60 (100%)
NSW1RAISE6SEC0.04F_I+NIL_MG_R6 (100%)
VIC1RAISE60SEC0.04F_I+NIL_MG_R60 (100%)
SA1RAISE60SEC0.04F_I+NIL_MG_R60 (100%)
Alerts (last 24 h)12 recorded · webhook not configured

No webhook configured — alerts are recorded here but not delivered. Set NEMC_ALERT_WEBHOOK (ntfy.sh, Slack, or Discord URL) to receive them.

WhenConstraintKindDeliveredMessage
12 15:31F_MAIN++LREG_0210headroomno (no webhook)F_MAIN++LREG_0210 headroom down to 1 MW (fell 47 MW over 15 min) https://nem-constraints.fly.dev/#F_MAIN%2B%2BLREG_0210
12 15:31SVML_ROC_80predictedno (no webhook)SVML_ROC_80 predicted to bind within the hour (P=52%, headroom 54 MW) https://nem-constraints.fly.dev/#SVML_ROC_80
12 15:31S>NIL_HUWT_STBGpredictedno (no webhook)S>NIL_HUWT_STBG predicted to bind within the hour (P=46%, headroom 2 MW) https://nem-constraints.fly.dev/#S%3ENIL_HUWT_STBG
12 15:31F_I+NIL_MG_R5predictedno (no webhook)F_I+NIL_MG_R5 predicted to bind within the hour (P=53%, headroom 0 MW) https://nem-constraints.fly.dev/#F_I%2BNIL_MG_R5
12 15:26C_N_QUORNP_019_L_Hheadroomno (no webhook)C_N_QUORNP_019_L_H headroom down to 20 MW (fell 35 MW over 15 min) https://nem-constraints.fly.dev/#C_N_QUORNP_019_L_H
12 15:26F_T+RREG_0050predictedno (no webhook)F_T+RREG_0050 predicted to bind within the hour (P=88%, headroom 0 MW) https://nem-constraints.fly.dev/#F_T%2BRREG_0050
12 15:26F_MAIN++APD_TL_L5predictedno (no webhook)F_MAIN++APD_TL_L5 predicted to bind within the hour (P=46%, headroom 7 MW) https://nem-constraints.fly.dev/#F_MAIN%2B%2BAPD_TL_L5
12 15:20N>NIL_PKTX_LVheadroomno (no webhook)N>NIL_PKTX_LV headroom down to 19 MW (fell 9 MW over 15 min) https://nem-constraints.fly.dev/#N%3ENIL_PKTX_LV
12 15:20N>NIL_969headroomno (no webhook)N>NIL_969 headroom down to 13 MW (fell 101 MW over 15 min) https://nem-constraints.fly.dev/#N%3ENIL_969
12 15:20F_T_NIL_MINP_R6headroomno (no webhook)F_T_NIL_MINP_R6 headroom down to 0 MW (fell 47 MW over 15 min) https://nem-constraints.fly.dev/#F_T_NIL_MINP_R6
12 15:20F_T+LREG_0050predictedno (no webhook)F_T+LREG_0050 predicted to bind within the hour (P=84%, headroom 0 MW) https://nem-constraints.fly.dev/#F_T%2BLREG_0050
12 15:15F_T+NIL_FCSPS_R60headroomno (no webhook)F_T+NIL_FCSPS_R60 headroom down to 11 MW (fell 50 MW over 15 min) https://nem-constraints.fly.dev/#F_T%2BNIL_FCSPS_R60

7-day outlook

Expected binding hours per market day (rhythm model: climatology, outage calendar, ST PASA). Constraints that bind around the clock sit at 24.

ConstraintSun 12Mon 13Tue 14Wed 15Thu 16Fri 17Sat 18
F_T+RREG_005010.024.024.024.024.024.024.0
F_T+LREG_005010.024.024.024.024.024.024.0
F_MAIN+NIL_MG_R15.211.311.311.311.311.311.3
F_MAIN+LREG_02105.211.311.311.311.311.311.3
F_MAIN+RREG_02205.111.111.111.111.111.111.1
F_MAIN+NIL_MG_R65.010.810.810.810.810.810.8
F_MAIN+NIL_MG_R54.910.210.210.210.210.210.2
F_I+NIL_MG_R13.59.89.89.89.89.89.8
F_MAIN+NIL_MG_R604.39.39.39.39.39.39.3
F_I+NIL_MG_R63.39.39.39.39.39.39.3
F_TASCAP_RREG_02203.19.19.19.19.19.19.1
F_I+NIL_MG_R603.29.09.09.09.09.09.0
Planned outages invoking constraint sets (next 7 days)15 outage-set pairs · 15 upcoming

From AEMO's network outage schedule: when these proceed, the listed constraint set is invoked and its constraints start being enforced — advance warning of binding risk. Status: SUBMIT/RESUBMIT = scheduled, PTP = proceeding to plan, *LTP = likely to proceed at that horizon.

StartsEndsConstraint setEquipmentStatusConstraintsNow
13 Jul 07:0017 Jul 17:00Q-810_PARALLEL_CLOSEH9_PLMWD 275KV_810PDLTP5upcoming
13 Jul 07:0017 Jul 17:00Q-810_PARALLEL_CLOSEH5_WLGA 275KV_810PDLTP5upcoming
13 Jul 07:0013 Jul 16:00Q-RGLC_8875H58_LARC 132KV_7353PDLTP34upcoming
13 Jul 07:0013 Jul 16:00Q-RGLC_8875T199_YAR 4052PDLTP34upcoming
13 Jul 07:0013 Jul 16:00Q-RGLC_8875H58_LARC 275KV_8875PDLTP34upcoming
13 Jul 07:0013 Jul 16:00Q-RGLC_8875T199_YAR 132KV_7353PDLTP34upcoming
13 Jul 07:0013 Jul 16:00Q-RGLC_8875H58_LARC X2PDLTP34upcoming
13 Jul 07:0013 Jul 16:00Q-RGLC_8875T199_YAR FDR_73532PDLTP34upcoming
13 Jul 07:0013 Jul 16:00Q-RGLC_8875H58_LARC TFMR_5422PDLTP34upcoming
13 Jul 07:0013 Jul 16:00Q-RGLC_8875H58_LARC FDR_88752PDLTP34upcoming
13 Jul 07:0013 Jul 16:00Q-RGLC_8875H73_RAGL 275KV_8875PDLTP34upcoming
13 Jul 07:0013 Jul 16:00Q-RGLC_8875H58_LARC CPLR_5062PDLTP34upcoming
14 Jul 07:0014 Jul 16:00Q-RGLC_8875T199_YAR 4052RESUBMIT34upcoming
14 Jul 07:0014 Jul 16:00Q-RGLC_8875T199_YAR FDR_73532RESUBMIT34upcoming
14 Jul 07:0014 Jul 16:00Q-RGLC_8875H58_LARC X2RESUBMIT34upcoming

Forecast scoreboard

Binds within 60 minutes, last 2 days. Judged per constraint and dispatch interval against realized binding.

SourcePrecisionRecallBrierAlertsEvents
Our model86%71%0.01183,1893,867
AEMO P5MIN82%68%14,45517,482
Persistence96%53%9,70717,482

Binds during a clock hour, by forecast lead time, last 7 days. ST PASA is scored only over the constraints it models.

SourceLeadPrecisionRecallPredictedEvents
Our model (week)0-1 h53%12%3601,552
Our model (week)1-4 h55%13%1,0944,571
Our model (week)4-12 h59%13%2,64611,699
Our model (week)12-24 h61%13%3,28515,839
Our model (week)24-48 h54%11%4,71523,676
Our model (week)48-96 h48%10%1,5447,123
AEMO pre-dispatch0-1 h84%58%1,9082,763
AEMO pre-dispatch1-4 h82%55%5,5358,289
AEMO pre-dispatch4-12 h79%51%14,32722,034
AEMO pre-dispatch12-24 h77%47%17,06827,983
AEMO pre-dispatch24-48 h83%51%5,9839,704
AEMO ST PASA0-1 h0%0141
AEMO ST PASA1-4 h0%0476
AEMO ST PASA4-12 h0%01,539
AEMO ST PASA12-24 h12%13%2,7772,600
AEMO ST PASA24-48 h12%53%22,9435,370
AEMO ST PASA48-96 h13%63%8,1781,670
What the metrics mean

Precision and recall pull against each other — predicting a bind everywhere catches everything but is mostly wrong. A good forecaster scores well on both.

Model report

Latest walk-forward backtest (expanding windows, no leakage; refreshed weekly).

Average precision0.87
Watchlist precision@200.29
Coverage@200.70
Headroom-rank precision@20 (baseline)0.19
Persistence recall (baseline)0.66
Onsets alerted in advance73%
Median warning (minutes)45

1. Why constraints exist

Every 5 minutes, AEMO's dispatch engine (NEMDE) picks which generators run, cheapest first. Electricity travels over physical wires, and wires have limits. Carry too much and lines overheat, or the grid loses stability after a fault.

Remote generatorscheap, can supply 700 MWThe linelimit 500 MWThe cityneeds 700 MWLocal generators, expensive

Only 500 MW of the cheap power fits down the line, so the rest must come from local plants. A constraint is how that limit is written down as a rule NEMDE must obey. There are more than 15,000 of them, and every one has the same shape.

2. Anatomy of a constraint equation

Left side: what NEMDE can adjust0.8 x Generator A   + 0.3 x Generator B  − 0.2 x InterconnectorRight side: the live limitline rating             − flows measured by SCADA− safety margin         

The left side contains only things NEMDE can adjust: generator outputs and interconnector flows. Each factor says how strongly that unit affects the limit; a factor of 0.8 means backing the generator off by 1 MW relieves the line by 0.8 MW. The right side is the limit itself, recalculated every 5 minutes from things NEMDE cannot control: equipment ratings, live SCADA measurements, demand, and a safety margin.

3. Headroom and binding

Comfortablelarge headroomNear bindinggap shrinkingBinding: LHS = RHSprices move

The gap between the two sides is the headroom. A constraint spends most of its life ignored and only matters when the headroom reaches zero. At that point NEMDE deviates from the cheap plan: generators on the wrong side of the limit are backed down even though they are cheap (constrained off) and others are brought up in their place (constrained on). In the published data, a binding constraint is one with a non-zero marginal value.

4. Marginal value, the shadow price

The marginal value answers a precise question: if this constraint's limit were relaxed by exactly 1 MW, how many dollars would the next 5 minutes of dispatch save?

Constraint bindingat its 500 MW limit+1 MWDispatch swaps 1 MW:$80 plant down, $30 up$50 savedthe marginal value

A constraint with slack headroom has a marginal value of zero, since relaxing a limit you are not touching saves nothing. That makes it the standard binding test. The sign depends on how the equation is written; the magnitude carries the meaning. Summed over time, marginal value multiplied by megawatts prices a piece of congestion, which is how candidate network upgrades get ranked.

One caution when reading dollar figures. In this project's data the median binding marginal value is about $0.38/MW and genuine congestion sits between roughly $0.10 and $1,000. A handful of constraints instead bind at their violation penalty, between $0.4M and $27M per MW. Those are hard operational rules, such as an interconnector forced to zero during an outage, and the number means "hold this at any cost" rather than a market price. The dashboard shows a penalty badge for these instead of a dollar figure.

5. How marginal value becomes regional price

A region's price is the cost of supplying the next 1 MW of demand there. Once a constraint binds, that next megawatt must be supplied without pushing the binding constraint past its limit.

VIC: price $30$30 plant has spareInterconnector500 / 500 MW, fullNSW: price $80$80 plant sets the pricePrice gap: $80 − $30 = $50. The constraint’s marginal value is also $50.
  1. Ask the price question in VIC: the next MW comes from the $30 plant, so VIC is $30.
  2. Ask it in NSW: the $30 plant has spare capacity, but its path is full and the binding constraint forbids using it. The only legal source is the local $80 plant, so NSW is $80.
  3. Ask the marginal value question: 1 MW more limit would let $30 power displace $80 power, saving $50.

The price gap and the marginal value are the same number seen from two sides. The marginal value is not a fee added to prices; it is the shadow cost of the bottleneck, and price separation is how that cost surfaces. For a simple interconnector limit, the importing region's price is roughly the exporting price plus the marginal value.

There is a subtler case when the binding constraint contains generators with factors. The next megawatt must then come from a blend of plants whose net effect keeps the left side exactly at the limit, and the resulting price can match no one's offer, exceed every offer in the region, or go negative. Per generator, a constraint moves its effective local price by the marginal value times its factor; summed over constraints, that is the local price adjustment AEMO publishes for each unit. The dashboard's expected-impact column estimates that exposure ahead of time.

6. Reading a constraint's name

NRegion (NSW)>>Cause (thermal)NILOutage (none)_39_11Lines 39 and 11

This one reads: NSW thermal limit, in normal grid conditions, protecting line 39 against the trip of line 11. The cause symbols are > for thermal overload, ^ for voltage stability, : for transient stability and F_ for frequency reserves (FCAS). NIL means the grid is in its normal shape; when a line is out for maintenance, the outage token names it instead. The colored dots on the dashboard follow this classification.

7. How our models work

Hour ahead. For every enforceable constraint, every 5 minutes, a gradient-boosted classifier estimates the probability of binding within the next hour. Its evidence comes from four places: level and trend (headroom and how fast it is closing), rhythm (many constraints bind in daily patterns, so a constraint can carry hundreds of megawatts of headroom and still be likely to bind soon), context (time of day and AEMO's own 5-minute pre-dispatch view, including how many of its forward intervals bind and its projected closest approach to the limit), and outside drivers (regional demand, interconnector flows, renewables forecasts, temperature and the outage calendar). Raw scores are calibrated so the probabilities can be read at face value, and the alert threshold is fitted rather than guessed.

How hard will it bite. A second model predicts the likely marginal value of the upcoming bind using quantile regression on the same evidence. It replaced a simple historical-median estimate only after beating it by 28% on held-out error, and it is re-challenged at every retrain.

Week ahead. At that range binding is a rhythm problem. The weekly model is built on each constraint's hour-of-day history, with outage-calendar and AEMO ST PASA adjustments that switch on only when they improve validation accuracy. The 7-day outlook shows expected binding hours per day, which stays meaningful under any correlation between hours and does not saturate the way a chance-of-any-bind figure does.

Some things are deliberately left out: swamped equations (limits parked about 10,000 MW away, which is how AEMO disables a rule), informational rows that were published but never enforced, and auto-generated ramping constraints whose names change daily. Letting these in would corrupt both training and the watchlists.

8. How we grade ourselves

Every forecast this site makes is logged the moment it is made and scored once reality arrives. The Comparisons tab judges our model against AEMO's own forecasts (P5MIN, pre-dispatch and ST PASA) and a persistence baseline on identical terms, and a weekly walk-forward backtest is published as the model report. Some limits to keep in mind: unit-level aggregation approximates the correlation between constraints, a rhythm model cannot foresee a first-of-a-kind event that no outage calendar announced, and AEMO's pre-dispatch knows the actual forward limits inside about 40 hours, so beating it there is expected to be hard. The scoreboard shows where the crossover sits.

9. Data

Everything is built from public AEMO/NEMWeb data, refreshed every 5 minutes: dispatch actuals, P5MIN and pre-dispatch forecasts, ST PASA outlooks and constraint definitions from the monthly MMSDM archive, plus Bureau of Meteorology observations. Timestamps are NEM market time (no daylight saving). Predictions are a research model, not operational advice.

Model health: 7-day Brier 0.0070 · training 0.0040 · alert threshold 0.45.

Source: AEMO NEMWeb public data. Timestamps are NEM market time (no DST). Predictions are a research model, not operational advice.