Skip to content

Ancillary Service Offer (ASO)

Ancillary Service Offer (ASO)

An Ancillary Service Offer is used to offer ancillary services from a specified resource. The following diagram describes the structure of an Ancillary Service Offer (ASOffer):

ASOffer Structure

The ASPriceCurve structure when used for ASOffers uses OnLineReserves (to provide price points for Reg-Up, RRS, and/or Online Non-Spin), RegDown elements (to provide price points for Reg-Down), or OffLineNonSpin elements (for Offline Non-Spin and/or OFFEC). The choice depends upon the value of asType, where the values provided can be one of REGUP-RRS-ONNS, Reg-Down or Off-Non-Spin. Up to five points can be specified for OnLineReserves, RegDown, or OffLineNonSpin. This structure is described in the following figure:

AS PriceCurve Structure

The following diagram provides details of the OnLineReserves, RegDown, and OffLineNonSpin structures:

PriceCurves using ASPriceCurve

On submission, the following table describes the items used for an ASOffer:

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
expirationTime Y dateTime Time of offer expiration Valid time before trade date
resource K string Resource Valid resource name
asType K string AS key code

Off-Non-Spin

Reg-Down

REGUP-RRS-ONNS

combinedCycle N string Combined cycle Not required. Value ignored if provided.
PriceCurve/startTime Y dateTime Start time for curve Valid hour boundary
PriceCurve/endTime Y dateTime End time for curve Valid hour boundary

ASPriceCurve/OnLineReserves/xvalue

(Required if

asType = REGUP-RRS-ONNS)

Y float Megawatts Quantity in MW
ASPriceCurve/OnLineReserves/REGUP N float $/MWh Price in $/MWh
ASPriceCurve/OnLineReserves /RRSPF N float $/MWh Price in $/MWh
ASPriceCurve/ OnLineReserves /RRSFF N float $/MWh Price in $/MWh
ASPriceCurve/ OnLineReserves /RRSUF N float $/MWh Price in $/MWh
ASPriceCurve/ OnLineReserves /ONNS N float $/MWh Price in $/MWh
ASPriceCurve/ OnLineReserves /ECRS N float $/MWh Price in $/MWh

ASPriceCurve/ OnLineReserves /block

(Required if

asType = REGUP-RRS-ONNS)

Y string Used as an indicator to describe the type of block FIXED or VARIABLE

ASPriceCurve/RegDown/xvalue or ASPriceCurve/OffLineNonSpin/xvalue

(Required if

asType = Reg-Down or Off-Non-Spin)

Y float Megawatts Quantity in MW

ASPriceCurve/RegDown/REGDN

(Required if asType=Reg-Down)

Y float $/MWh Price in $/MWh

ASPriceCurve/OffLineNonSpin/OFFNS

(asType=Off-Non-Spin)

N float $/MWh Price in $/MWh

ASPriceCurve/OffLineNonSpin/OFFEC

(asType=Off-Non-Spin)

N float $/MWh Price in $/MWh

ASPriceCurve/RegDown/block or ASPriceCurve/OffLineNonSpin/block

(Required if

asType = Reg-Down or Off-Non-Spin)

Y String Used as an indicator to describe the type of block FIXED or VARIABLE
ASPriceCurve/multiHourBlock N Boolean Indicates if offer must be taken as a block for all hours. Default is false

The following is an XML example for an ASOffer, for the AS types of Reg-Up, RRS, and online Non-Spin:

<BidSet>
    <tradingDate>2021-11-16</tradingDate>
    <ASOffer>
        <startTime>2021-11-16T00:00:00-06:00</startTime>
        <endTime>2021-11-17T00:00:00-06:00</endTime>
        <externalId>ERCOTTEST</externalId>
        <expirationTime>2021-11-16T23:59:59-06:00</expirationTime>
        <resource>RES_1</resource>
        <asType>REGUP-RRS-ONNS</asType>
        <ASPriceCurve>
            <startTime>2021-11-16T00:00:00.000-06:00</startTime>
            <endTime>2021-11-17T00:00:00.000-06:00</endTime>
            <OnLineReserves>
                <xvalue>11</xvalue>
                <REGUP>23.00</REGUP>
                <RRSPF>20.00</RRSPF>
                <RRSFF>19.00</RRSFF>
                <RRSUF>18.00</RRSUF>
                <ONNS>1</ONNS>
                <ECRS>10</ECRS>
                <block>VARIABLE</block>
            </OnLineReserves>
        </ASPriceCurve>
    </ASOffer>
</BidSet>

The following is another XML example for an ASOffer, where the AS type is only Reg-Down:

<ASOffer>
    <startTime>2008-01-01T00:00:00-06:00</startTime>
    <endTime>2008-01-02T00:00:00-06:00</endTime>
    <externalId>MyExternalID12345</externalId>
    <expirationTime>2007-12-31T22:00:00-06:00</expirationTime>
    <resource>Resource1</resource>
    <asType>Reg-Down</asType>
    <ASPriceCurve>
        <startTime>2008-01-01T00:00:00-06:00</startTime>
        <endTime>2008-01-01T03:00:00-06:00</endTime>
        <RegDown>
            <xvalue>60</xvalue>
            <REGDN>20.00</REGDN>
            <block>FIXED</block>
        </RegDown>
        <multiHourBlock>false</multiHourBlock>
    </ASPriceCurve>
    <ASPriceCurve>
        <startTime>2008-01-01T03:00:00-06:00</startTime>
        <endTime>2008-01-02T00:00:00-06:00</endTime>
        <RegDown>
            <xvalue>80</xvalue>
            <REGDN>23.00</REGDN>
            <block>FIXED</block>
        </RegDown>
        <multiHourBlock>false</multiHourBlock>
    </ASPriceCurve>
</ASOffer>

The following is another XML example for an ASOffer, where the AS type is Off-Non-Spin:

 <ASOffer>
    <startTime>2008-01-01T00:00:00-06:00</startTime>
    <endTime>2008-01-02T00:00:00-06:00</endTime>
    <externalId>MyExternalID12341</externalId>
    <expirationTime>2007-12-31T22:00:00-06:00</expirationTime>
    <resource>Resource1</resource>
    <asType>Off-Non-Spin</asType>
    <ASPriceCurve>
        <startTime>2008-01-01T00:00:00-06:00</startTime>
        <endTime>2008-01-01T03:00:00-06:00</endTime>
        <OffLineNonSpin>
            <xvalue>60</xvalue>
            <OFFNS>20.00</OFFNS>
            <OFFEC>23.00</OFFEC>
            <block>VARIABLE</block>
        </OffLineNonSpin>
        <multiHourBlock>true</multiHourBlock>
    </ASPriceCurve>
</ASOffer>

And the corresponding response:

<ns1:BidSet xmlns:ns1="http://www.ercot.com/schema/2007-06/nodal/ews">
    <ns1:tradingDate>2008-01-01</ns1:tradingDate>
    <ns1:ASOffer>
        <ns1:mRID>QSAMP.20080101.ASO.Resource1.Off-Non-Spin</ns1:mRID>
        <ns1:externalId/>
        <ns1:status>ACCEPTED</ns1:status>
        <ns1:error>
            <ns1:severity>INFORMATIVE</ns1:severity>
            <ns1:text>Successfully processed the ERCOT As Offer.</ns1:text>
        </ns1:error>
    </ns1:ASOffer>
</ns1:BidSet>