Today when showing our in-development Constraint Dashboard widget in ez2view to a client we came across a beautiful illustration of a little-understood concept in NEM dispatch – the tie-break principle.
The tie-break principle is applied in NEMDE (the NEM dispatch engine) when more than one unit offers MW volume at an identical price and that price includes the last MW dispatched in some part of the solution (i.e. it’s “marginal”). Only some of the MW volume offered at that price will be dispatched, but how to divide up these MW among the units involved? This situation occurs particularly often in the case of ‘disorderly bidding’, where generators bid all their volume to the floor price of –$1,000 to maximise their opportunity to be dispatched behind constraints.
Clause 3.8.16 of the NER has the tie-breaking principle:
“Equal priced dispatch bids and dispatch offers … the MW quantities specified in the relevant price bands of those dispatch bids or dispatch offers must be dispatched on a pro-rata basis, where this can be achieved without imposing undue costs on any party, or violating other constraints.”
Pro-rata to what? And why are the generators bidding at –$1,000, that is, to offer to pay $1,000 for the privilege of being dispatched? Let’s start with a bit of background first …
These notes here provide a detailed introduction to the dispatch process. I’ll talk just about generators here to keep in simple. In short, all generators offer their MW of generation capacity in price bands, where the generator nominates the price for the band and the MW volume it offers at that price for each 5-minute dispatch interval, and NEMDE finds in each dispatch interval the cheapest combination of generation dispatch levels to meet the demand. In theory, if everyone offered their energy at their short-run marginal cost then the dispatch outcome would be the most economic solution in that five-minute period.
When constraints get involved (see Allan’s excellent explainer here about constraints), it gets complicated. If you think of a pair of generators with a too-small transmission line between them and the load, then they can’t both run at full output, and there’ll be a constraint equation in place to limit their combined output. While both will be paid the regional settlement price (under the zonal pricing model used in the NEM), in the dispatch process they’re effectively competing against each other for the limited capacity of their transmission line, and so can increase their share of the volume dispatched by offering it cheaper. How much cheaper? They’ll keep going all the way to –$1,000, the NEM floor price, as their bid price won’t (in most situations) affect the regional settlement price.
Within the constraint, the cost that NEMDE sees for an extra unit of the generation depends on its offer price and the factor or coefficient on the generator in that constraint equation. The factor for each generator shows how big the effect is of extra generation on whatever limit the constraint equation is modelling. Where generators have the same offer price and the same factor they appear as the same “cost” in the constraint, so may trigger a tie-break situation.
A minor technicality – the offer price bid by the generator is adjusted by the marginal loss factor (MLF), but the minimum offer price for each generator is set such that when generators bid at their minimum price they all appear to be at –$1,000 once MLF-adjusted.
System strength constraint
AEMO introduced a constraint equation in 2017 to handle the emerging shortage of system strength in SA, which was a risk to the security of the power system. The constraint equation was quite simply formulated – every semi-scheduled generator in SA was in it, and each had a factor of 1, effectively capping the total output of semi-scheduled generation in SA. This made it a prime candidate for tie-breaking, as when all the generators bid to the floor (as they quickly learned to do when the constraint was binding) they all had the same price (-$1,000) and the same factor (1.0000).
Here’s a snapshot from part of the in-development Constraint Dashboard widget in ez2view showing an interval where the constraint was binding.
There’s a LOT of information in here! Looking left to right:
- “Factor” shows a factor of 1.0000 on each unit – each generator is equally weighted.
- “Contribution” shows how much each contributes to the LHS of the constraint. This is more interesting when the factors are different.
- “Target” shows several pieces of information. I’ll refer to this column again later on.
- The width of the column represents the maximum capacity of the generator.
- The grey (and the first number) is the MW volume dispatched – the dispatch target, shown as the proportion of the maximum capacity. If the unit was at full power the grey would fill the whole box.
- The red is the spare capacity – i.e. available, and bid at any price.
- In this case we know it’s curtailment, given that it’s being bid at -$1,000/MWh
- The sum of the grey and red (and the second number) is the availability – the generation capacity the unit had in that interval, which here is dependent on the wind and solar conditions.
- “Last MW price” shows the price the last megawatt to receive a dispatch target was bid at (at the RRN).
- Here we can see that ALL of these units are bid at –$1,000.
- We know they can’t bid below -$1,000, so conclude all the volume shown is bid at that price.
- “CPD price” is “Connection Point Dispatch” price – the price an individual generator needed to be at or below to be considered for dispatch, given the prevailing constraint equations.
- Given that all the generators in this constraint equation are bid at the floor price with an identical factor, the CPD price is –$1,000.
- This gets more complicated when the factors are different, and when a generator is on the LHS of more than one binding constraint.
- There are plenty of examples of this in dispatch outcomes on most days.
Tie-breaking in action
What’s happening here is an example of a whole lot of generation being split by the tie-breaking principle. Looking at the RHS of the constraint, in total the generation from these units can be 1,085.08 MW. Any more than that will be curtailed.
The definition above of the tie-breaking principle referred to it being done “pro-rata”, to the “MW quantities specified in the relevant price bands”. In its offer, a semi-scheduled generator can offer volume up to its maximum capacity in a price band. What’s actually dispatched is limited by its availability (how much power it can actually provide right now). So if we assume that every generator here has offered its maximum capacity in its –$1,000 price band, then the “pro-rata” will be done by the maximum capacity of the units, finding a pro-rata ratio that achieves the total generation to match the RHS of the constraint.
This can be seen in the “Target” column above, where the grey area shows the proportion of the maximum capacity that is dispatched, and an imaginary line down the page where the grey joins the red shows the application of the “pro-rata to maximum capacity” principle.
- Units that had little capacity available relative to their maximum capacity, such as the Bungala solar farms, had no curtailment as the availability was below the imaginary pro-rata line, but
- Those with large availability relative to their maximum capacity, such as Snowtown South which had good wind, had a lot of curtailment to bring their output down to be pro-rata to maximum capacity with the others.
A note of caution!
Eagle-eyed readers may note that LGAPWF1 and WGWF1 don’t quite follow this principle here. Looking in the hyperlinked ‘Unit Dashboard’ widget in ez2view for each unit I found out why.
- Lincoln Gap had a limited ramp up rate so was dispatched below its availability.
- Willogoleche had chosen to bid 8 MW into the top price band, with a rebid noting there were two turbines out of service (information that should already be captured in the AWEFS forecasting system) – which meant the volume in the lowest price band where the tie-break was occurring was lower, and so Willogoleche’s share was slightly lower than what it could have been.