Ancillary Service Only Offer (AOO)
Ancillary Service Only Offer (AOO)
Info
New interface with RTC+B Implementation
The AS Only Offer is an Ancillary Service (AS) offer that is not resource specific. An individual offer should be for a single Ancillary Service product only. The offer is limited to the following AS types: Reg-Up, Reg-Down, On-Non-Spin, RRSPF (RRS – Primary Frequency Response) and ECRSS (ECRS - SCED Dispatchable):
The ASOnlyPriceCurve structure used for ASOnlyOffers can contain up to five price/quantity offer blocks. This structure is described in the following figure:
On submission, the following table describes the items used for an ASOnlyOffer:
Element | Req? | Datatype | Description | Values |
---|---|---|---|---|
startTime | K | dateTime | Start time for bid | Valid start hour boundary for trade date |
endTime | K | dateTime | End time for bid | Valid end hour boundary for trade date |
externalId | N | string | External ID | QSE supplied |
asType | K | string | AS key code | Reg-Up Reg-Down On-Non-Spin RRSPF ECRSS |
bidID | K | string | Multiple offers for same asType allowed by bidID | MP supplied bid ID Value Restrictions: Only alpha numeric, “_”(underscore) and “-“(dash) are valid characters. First and last character should be alpha numeric. Min Length: 2chars. Max Length: 12 chars. |
ASOnlyPriceCurve/startTime | Y | dateTime | Start time for curve | Valid hour boundary |
ASOnlyPriceCurve/endTime | Y | dateTime | End time for curve | Valid hour boundary |
ASOnlyPriceCurve/xvalue | Y | float | Megawatts | Quantity in MW |
ASOnlyPriceCurve/yvalue | Y | float | $/MWh | Price in $/MWh |
The following is an XML example for an ASOnlyOffer for AS type Reg-Up:
<ASOnlyOffer>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<asType>Reg-Up</asType>
<bidID>bid1</bidID>
<ASOnlyPriceCurve>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<CurveData>
<xvalue>24</xvalue>
<y1value>1.83</y1value>
</CurveData>
<CurveData>
<xvalue>20</xvalue>
<y1value>1.60</y1value>
</CurveData>
<CurveData>
<xvalue>18</xvalue>
<y1value>1.55</y1value>
</CurveData>
<CurveData>
<xvalue>22</xvalue>
<y1value>1.62</y1value>
</CurveData>
<CurveData>
<xvalue>28</xvalue>
<y1value>1.90</y1value>
</CurveData>
</ASOnlyPriceCurve>
</ASOnlyOffer>
The following is another XML example for an ASOnlyOffer, where the AS type is only Reg-Down:
<ASOnlyOffer>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<asType>Reg-Down</asType>
<bidID>bid2</bidID>
<ASOnlyPriceCurve>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<CurveData>
<xvalue>15</xvalue>
<y1value>1.82</y1value>
</CurveData>
<CurveData>
<xvalue>27</xvalue>
<y1value>1.95</y1value>
</CurveData>
<CurveData>
<xvalue>30</xvalue>
<y1value>1.96</y1value>
</CurveData>
<CurveData>
<xvalue>27</xvalue>
<y1value>1.83</y1value>
</CurveData>
<CurveData>
<xvalue>21</xvalue>
<y1value>1.80</y1value>
</CurveData>
</ASOnlyPriceCurve>
</ASOnlyOffer>
The following is another XML example for an ASOnlyOffer, where the AS type is On- Non-Spin:
<ASOnlyOffer>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<asType>On-Non-Spin</asType>
<bidID>bid3</bidID>
<ASOnlyPriceCurve>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<CurveData>
<xvalue>20</xvalue>
<y1value>1.65</y1value>
</CurveData>
<CurveData>
<xvalue>22</xvalue>
<y1value>1.70</y1value>
</CurveData>
<CurveData>
<xvalue>25</xvalue>
<y1value>1.75</y1value>
</CurveData>
<CurveData>
<xvalue>27</xvalue>
<y1value>1.83</y1value>
</CurveData>
<CurveData>
<xvalue>29</xvalue>
<y1value>1.85</y1value>
</CurveData>
</ASOnlyPriceCurve>
</ASOnlyOffer>
The following is another XML example for an ASOnlyOffer, where the AS type is RRSPF:
<ASOnlyOffer>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<asType>RRSPF</asType>
<bidID>bid4</bidID>
<ASOnlyPriceCurve>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<CurveData>
<xvalue>25</xvalue>
<y1value>1.83</y1value>
</CurveData>
<CurveData>
<xvalue>30</xvalue>
<y1value>2.20</y1value>
</CurveData>
<CurveData>
<xvalue>28</xvalue>
<y1value>2.12</y1value>
</CurveData>
<CurveData>
<xvalue>25</xvalue>
<y1value>2.22</y1value>
</CurveData>
<CurveData>
<xvalue>20</xvalue>
<y1value>2.10</y1value>
</CurveData>
</ASOnlyPriceCurve>
</ASOnlyOffer>
The following is another XML example for an ASOnlyOffer, where the AS type is ECRSS:
<ASOnlyOffer>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<asType>ECRSS</asType>
<bidID>bid5</bidID>
<ASOnlyPriceCurve>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<CurveData>
<xvalue>26</xvalue>
<y1value>1.83</y1value>
</CurveData>
<CurveData>
<xvalue>23</xvalue>
<y1value>1.81</y1value>
</CurveData>
<CurveData>
<xvalue>21</xvalue>
<y1value>1.75</y1value>
</CurveData>
<CurveData>
<xvalue>18</xvalue>
<y1value>1.70</y1value>
</CurveData>
<CurveData>
<xvalue>20</xvalue>
<y1value>1.75</y1value>
</CurveData>
</ASOnlyPriceCurve>
</ASOnlyOffer>
And the corresponding response:
<ns1:BidSet xmlns:ns1="http://www.ercot.com/schema/2007-06/nodal/ews">
<ns1:tradingDate>2024-05-01</ns1:tradingDate>
<ns1:ASOffer>
<ns1:mRID>QSAMP.20240501.AOO.ECRSS.bid5 </ns1:mRID>
<ns1:externalId/>
<ns1:status>ACCEPTED</ns1:status>
<ns1:error>
<ns1:severity>INFORMATIVE</ns1:severity>
<ns1:text>Successfully processed the ERCOT As Only Offer.</ns1:text>
</ns1:error>
</ns1:ASOffer>
</ns1:BidSet>