...
Traders use their market knowledge to set key inputs in pdBidr. These inputs are four priceband values and two trader parameters called Trader Price Max (TPmax) and Trader Price Min (TPmin). Volume is then allocated to one of the four pricebands (or priceband1) as a function of these two Trader Parameters as well as the SRMC (or turn down price) and forecast prices. TPmax, TPmin and SRMC are Bid Parameters.
Inputs and definitions
Information | Source | Description |
---|---|---|
SRMC + Raise Contingency Liability = SRMC+ | SRMC is a Bid Parameter. Raise Contigency Liability is calculated by the Solver. | This is intended to represent the static SRMC plus the Raise Contingency FCAS liability (which is usually very small). Note that the addition of the FCAS liability is currently disabled. |
FRRP | User selected price forecast source | The forecast energy price |
TraderPriceMinimum and TraderPriceMaximum (TPmin and TPmax) | Trader parameters | These parameters define the PriceType and consequently PricePhase (see below) and also provide the lower and upper limit of the pricebands where volume may be allocated (other than priceband 1 which volume may also be allocated to). |
Constraint_status | MMS.dispatch_local_price | Constraint_status is equal to 1 if local_price_adjustment is positive and represents the unit is at risk of being constrained OFF, 0 means there are no binding constraints for that unit and -1 means that the local_price_adjustment is negative and represents the unit is at risk of being constrained ON. As of the time of writing we consider it best to enter the constraint_status as a static trader parameter. |
max_capacity (MC) | MMS.dudetail | The volume to allocate in the chosen priceband. |
Formulas
The complete formulas are provided at the end of this page under the heading “Formulas - complete” and are written to be programmatically unambiguous. To simplify the concept the following section excludes the dynamic FCAS liability and is headed “Formulas - simplified”.
...
The forecast price for each dispatch interval is characterised as one of four “price_types (PT)” where the PT is assigned a label (which is entirely arbitrary) of either -10, -1, 1 or 10. PT is a function of the TPmin, SRMC and TPmax. PT is defined as follows:
PT | Condition | Explanation |
---|---|---|
10 | TPmax < FRRP | Expected price is sufficiently above SRMC that I want to ensure unit operates at full capacity |
1 | SRMC < FRRP <= TPmax | Expected price is above SRMC but I’m willing to move volume out of PB1 |
-1 | TPmin < FRRP <= SRMC | Expected price is below SRMC but I want to allocate volume near SRMC |
-10 | FRRP <= TPmin | Expected price is significantly below SRMC and I want to avoid being dispatched whilst prices are likely to stay very low |
PT for the next three dispatch intervals
...
Constraint_status = Any (-1, 0, 1)
If PT = 10 then allocate MC to PB1 |
---|
Constraint_status = 0
PT = -10 | PT = -1 | PT = 1 | |
---|---|---|---|
PP = 1 | N/A | N/A | > TPmin |
PP = -1 | N/A | <SRMC+ | >TPmin |
PP = -10 | <TPmax | >SRMC+ | < SRMC+ |
...
Constraint_status = 1 (constrained off)
PT = -10 | PT = -1 | PT = 1 | |
---|---|---|---|
PP = 1 | N/A | N/A | PB1 |
PP = -1 | N/A | <SRMC+ |
PB1 | ||
PP = -10 | <TPmax | >SRMC+ |
---|
PB1 |
Constraint_status = -1 (constrained on)
PT = -10 | PT = -1 | PT = 1 | |
---|---|---|---|
PP = 1 | N/A | N/A | >TPmin |
PP = -1 | N/A | <TPmax | >TPmin |
PP = -10 | PB10 | PB10 | <TPmax |
Choosing values for Traderprice max and min
...
Constraint_status = Any (-1, 0, 1)
If PT = 10 then allocate MC to PB1 |
---|
Constraint_status = 0
PT = -10 | PT = -1 | PT = 1 | |
---|---|---|---|
PP = 1 | N/A | N/A | min(>TPmin , <SRMC+ ) |
PP = -1 | N/A | min(<TPmax , <SRMC+ ) | min(>TPmin , <SRMC+ ) |
PP = -10 | max(<TPmax , >SRMC+ ) | min(<TPmax , >SRMC+ ) | min(<TPmax , <SRMC+ ) |
Constraint_status = 1 (constrained off)
PT = -10 | PT = -1 | PT = 1 | |
---|---|---|---|
PP = 1 | N/A | N/A | PB1 |
PP = -1 | N/A | min(<TPmax , <SRMC+ ) | min(>TPmin , <SRMC+ ) |
PP = -10 | max(<TPmax , >SRMC+ ) | min(<TPmax , >SRMC+ ) | min(<TPmax , <SRMC+ ) |
Constraint_status = -1 (constrained on)
PT = -10 | PT = -1 | PT = 1 | |
---|---|---|---|
PP = 1 | N/A | N/A | min(>TPmin , <SRMC+ ) |
PP = -1 | N/A | max(<TPmax , <SRMC+ ) | min(>TPmin , <SRMC+ ) |
PP = -10 | PB10 | PB10 | max(<TPmax , <SRMC+ ) |