Ancillary Service Only Offer (AOO)
Ancillary Service Only Offer (AOO)
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, 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 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 Non-Spin:
<ASOnlyOffer>
<startTime>2024-05-01T00:00:00-05:00</startTime>
<endTime>2024-05-02T00:00:00-05:00</endTime>
<asType>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>