Skip to content
Last updated

Bids/Offers Data

The Bids/Offers data section is used for providing Bid and Offer transaction types and is applicable to both Inbound requests and Outbound responses

BidOffers Attributes

ItemDescriptionMRTU(CAISO)TX(ERCOT)
IntervalLengthInterval size; default is one hour (XSD Optional) Note: The Interval Length must match the system operator’s required granularity.ISO Optional Field
Data Type: XML duration
‘PT1H’ is 1 hour
‘PT5M’ = 5 minutes (applicable for ProductType =‘DynLmtMin’, ‘DynLmtMax’)
ISO Required Field if ProductType = Energy Data Type: XML duration ‘PT1H’ = 1 hour
‘PT5M’ = 5 minutes
TransactionTypeType of transaction/ resource (XSD Required)ISO Required Field
Data Type: Enumeration
‘Gen’
‘ParticipatingLoad’
‘Load’
‘Export’
‘Import’
‘VirtualBid’
‘VirtualOffer’
Virtual Bid/Offer will not be accepted by CAISO until they implement convergence bidding
ISO Required Field
Data Type: Enumeration
‘Gen’
‘LoadResource’
‘ParticipatingLoad’ - For controllable loads
‘VirtualOffer’
‘VirtualBid’
‘SourceSink’
‘Self-Arranged’ – For Self-Arranged AS
LocationName of the scheduled resource (XSD Required)ISO Required Field
Data Type: String
ISO Required Field
Data Type: String
SinkLocationName of the Sink location in a two location transaction (XSD Optional)Not ApplicableISO Required Field
Data Type: String
Used for the SinkLocation of Bids/Offers requiring two locations (i.e. PTP Obligation Bids)
WheelIdWheel identifier (XSD Optional)ISO Required Field for wheels Data Type: String
Wheel Id must be associated to both the import and export side
Not Applicable
ContractIdContract identifier (XSD Optional)ISO Required Field if using ETC or TOR Data Type: String If multiple contracts are used, separate using a commaNot Applicable
SupportingResourceGenerator location supporting an export (XSD Optional)ISO Required Field for exports with Price Taker status
Data Type: String Sink of Gen PNode
Not Applicable
NERCTagNERC tag for imports and exports (XSD Optional)ISO Optional Field for imports and exports
Data Type: String Id of NERC tag
Not Applicable
ExternalIdUser assigned identifier that uniquely maps submitted rows to the client’s source system (XSD Optional)ISO Optional Field
Data Type: String
ISO Optional Field Data Type: String
BidNameUser assigned identifier submitted to the ISO to differentiate between bids at the same location, or bids between the same two locations (PTP) (XSD Optional)Not ApplicableRequired by ERCOT for Energy-Only Offers, Energy Bids, and PTP Obligation Bids. Not allowed for any other bids/offers. If a BidName is submitted for a bid/offer type that does not support it, that bid/offer will fail APX Validation.

SelfSchedule Type Attributes

  • MRTU: Used for Self Schedules of energy and RUC or self provision of ancillary services
  • TX (ERCOT): Used for resource energy (Output Schedules) and AS self arranged quantities
ItemDescriptionMRTU(CAISO)TX(ERCOT)
Product TypeType of product; (XSD Required)ISO Required Field
Data Type: Enumeration
‘Energy’
‘NonFirmEnergy’
‘RegUp’
‘RegDn’
‘Spin’
‘NSpin’
‘RUC’
‘UntCntg’
‘DynLmtMin’
‘DynLmtMax’
ISO Required Field
Data Type: Enumeration
Valid if TxType = ‘Gen’:
‘Energy’
‘RegUp’
‘RegDn’
‘RRS-PFR’
‘RRS-FFR’<br‘RRS-UFR’
‘NSpin’
‘ECRS’ (For SCED dispatched resources)
‘ECRSM’ (For SCED manually resources)
‘OffECRS’ (For SCED offline resources)
Valid if TxType = ‘LoadResource’:
‘RRS-PFR’
‘RRS-FFR’
‘RRS-UFR’
‘NSpin’ aka NSRS
‘ECRS’ (For SCED dispatched resources)
‘ECRSM’ (For SCED manually resources)
ScheduleTypeType of product; (XSD Required)N/AISO Required Field
Data Type: Enumeration:
‘SelfProvision’

Schedule Attributes

ItemDescriptionMRTU(CAISO)TX(ERCOT)
FromIntervalFrom interval i until the next specified interval or until LastIntervalEnd. For example, submitting a single value for FromInterval 1 will assign that value to the whole interval range (XSD Required)ISO Required Field
Date Type: Integer between 1 and 25 when FirstIntervalBegin and LastIntervalEnd range = one day
ISO Required Field
Date Type: Integer between 1 and 300 when FirstIntervalBegin and LastIntervalEnd range = one day
MWThe amount to be self scheduled or self provided (XSD Optional)ISO Required Field
Data Type: Non Negative Decimal (2)
MW
Data Type: Positive 4 significant digits, Decimal (0)

MarketSchedule Attributes

ItemDescriptionMRTU(CAISO)TX(ERCOT)
Product TypeType of product; (XSD Required)ISO Required Field
Date Type: Enumeration
‘Energy’
‘NonFirmEnergy’
‘RegUp’
‘RegDn’
‘Spin’
‘NSpin’
‘RUC’
‘UntCntg’
ISO Required Field
Data Type: Enumeration
‘Energy’
‘RegDn’ aka DRS
‘RegUp’ aka URS
‘RRS-PFR’
‘RRS-FFR’
‘RRS-UFR’
‘NSpin’
‘OffNSpin’
‘ECRS’
‘ECRSM’
‘OffECRS’
LinkedOfferIDA string used to link multiple offers of different products into a single linked offer (XSD Optional)Not applicableOnly applicable for online AS products (‘RegUp’, ‘NSpin’ and ‘Spin’). Increasing integers ranging from 1 to 5 are valid.

Curve Attributes

  • MRTU: Used for price sensitive bids and offers for energy
  • ERCOT: Used for resource energy offers (generator, load resource), virtual offers (Energy Only Offer, Energy Bid)
ItemDescriptionMRTU(CAISO)TX(ERCOT)
FromIntervalFrom interval is until the next specified interval or until LastIntervalEnd. For example, submitting a single value for FromInterval 1 will assign that value to the whole interval range (XSD Required)ISO Required Field
Date Type: Integer between 1 and 25 when FirstIntervalBegin and LastIntervalEnd range = one day
ISO Required Field
Date Type: Integer between 1 and 25 when FirstIntervalBegin and LastIntervalEnd range = one day
LinkedHoursDefines that a block of hours must receive the same award. (XSD Optional) If intervals are enumerated individually, identical string must be provided for all intervals in each blockISO Optional Field
Hourly Component
Data Type: Enumeration
‘True’
‘False’
Only applicable where Transaction Type = ‘Import’ or ‘Export’; and Product Type = ‘Energy’
Hourly Component
Data Type: String, 5 characters max. Format “X,Y” where X=first hour of block (ISO HE), and Y=number of hours in block (i.e “2,14” indicates a block from HE 2 to HE 15)
Only applicable Where [ TxType = ‘Gen’ or ‘LoadResouce’ and ( Product Type = ‘RegUp’, ‘RegDn’, ‘RRS-PFR’, ‘RRS-FFR’, ‘RRS-UFR’, ‘NSpin’, ‘ECRS’ or Product Type = ‘OffNSpin’, ‘OffECRS’ ) ] ; or [TxType = ‘VirtualBid’, ‘VirtualOffer’ and Product Type = ‘Energy’ ] ; or [TxType = ‘SourceSink’ and Product Type = ‘Energy’ ]
CurveTypeDescribes how the Region interprets a bid point or curve (XSD Optional)ISO Optional Field
Hourly Component
Data Type: Enumeration
‘Block’
ISO Optional Field
Hourly Component
Data Type: Enumeration
‘Block’ aka Variable ‘Fixed’ ‘Slope’ aka Curve
CooptimizedWithASA flag indicating that the ISO can co-optimize the energy and AS offers (XSD Optional)Not applicableISO Optional Field
Data Type: Boolean
‘True’ /‘False’
Applicable where (TxType = ‘Gen’ or ‘LoadResouce’) and ProductType = ‘Energy’
ReasonA string used to identify the reason for supply an updated bidNot applicableISO Optional Field
Data Type: Enumeration
“Fuel”, “Outage”, “DSCM” or “OTHR”
Applicable where (TxType = ‘Gen’) and ProductType = ‘Energy
ReasonTextA text field used when reason is OTHRNot applicableISO Optional Field
Data Type: Freeform text field used when reason is OTHR max 128 characters Applicable where (TxType = ‘Gen’) and ProductType = ‘Energy’ and Reason = ‘OTHR’

CurvePoint Attributes

  • MRTU: Used for price sensitive bids and offers for energy
  • TX (Nodal): Used for resource energy offers (generator, load resource), virtual offers (Energy Only Offer, Energy Bid)
ItemDescriptionMRTU(CAISO)TX(ERCOT)
MWAmount of bid or offer (XSD Optional)ISO Required Field
Data Type: Positive decimal
(4 significant digits, 2 decimal places, i.e. 9999.99) Can be repeated up to 11 times (10 segments w/ price of last 2 pairs the same).
ISO Required Field
Data Type: Positive integer
(4 significant digits, i.e. 9999) If only one P/Q pair, then CurveType = ‘Block’, ‘Slope’ or ‘Fixed’ If more than one P/Q pair, then CurveType = ‘Slope’ Can be repeated up to 10 times (10 segments)
PricePrice of bid or offer (XSD Optional)ISO Required Field
Data Type: Positive or negative decimal (2) Can be repeated up to 11 times (10 segments w/ price of last 2 pairs the same).
ISO Required Field
Data Type: Positive or negative decimal (2) If only one P/Q pair, then CurveType = ‘Block’, ‘Slope’ or ‘Variable’. If more than one P/Q pair, then CurveType = ‘Slope’ (max of 10 P/Q pairs)

MRTU:

  • The MWs provided for an Energy curve are interpreted as cumulative (not incremental). For Load, Export and VirtualBids, the ISO requires the curve to be decreasing (monotonically increasing quantities and decreasing prices with the last two prices being the same). For Gen, Import and VirtualOffers, the ISO requires the curve to be increasing (monotonically increasing quantities and prices with the last two prices matching).

Additional Bids/Offers Details

Definition of Bid/Offer Business key
The business key for a bilateral schedule is defined as the unique combination of:

  • Region
  • MarketParticipant
  • MarketStage
  • Interval
  • TransactionType
  • Location
  • ContractID (optional)
  • <SelfSchedule> or <MarketSchedule>
  • ProductType

Handling of Duplicates records for same Bid/Offer Business Key in same submission
If an APX Scheduling API file is submitted with duplicate bids/offers for the same business key, all bids/offers that match that business key will be rejected and won’t be saved into the APX MarketSuiteTM.

Replacing Bids/Offers
To replace a previously submitted bid or offer, simply submit an APX Scheduling API file that contains the same <MarketParticipantData> and <BidsOffers> business keys. The data in the new file will expire previously submitted data for this same business key.

Cancelling / Omitting Intervals for Bids/Offers
Bids/Offers data can be omitted / cancelled using one of two methods

  • Omit the “MW” attribute – this cancels specific intervals for a specific bid/offer if it already exists in the APX MarketSuiteTM or skips those intervals if this represents the initial submission of this bid or offer.

Schedule Example (Interval 2 is omitted, or cancelled if it was previously submitted to the APX MarketSuiteTM):

<MarketParticipantData Region="MRTU" MarketParticipant="SCID1" MarketStage="DA" FirstIntervalBegin="2021-03-02T08:00:00Z" LastIntervalEnd="2021-03-03T08:00:00Z">
    <BidsOffers TransactionType="Gen" Location="GEN_1">
        <SelfSchedule ProductType="Spin">
            <Schedule FromInterval="1" MW="2.6"></Schedule>
            <Schedule FromInterval="2"></Schedule>
            <Schedule FromInterval="3" MW="2.4"></Schedule>
...
        </SelfSchedule>
    </BidsOffers>
</MarketParticipantData>

Curve Example (Interval 2 is omitted, or cancelled if it was previously submitted to the APX MarketSuiteTM):

<MarketParticipantData Region="MRTU" MarketParticipant="SCID1" MarketStage="RT" FirstIntervalBegin="2021-04-29T07:00:00Z" LastIntervalEnd="2021-04-30T07:00:00Z">
    <BidsOffers TransactionType="Gen" Location="GEN_1">
        <MarketSchedule ProductType="Energy">
            <Curve FromInterval="1">
            <CurvePoint MW="310.5" Price="499"></CurvePoint>
            <CurvePoint MW="322.7" Price="499"></CurvePoint>
        </Curve>
        <Curve FromInterval="2">
            <CurvePoint/>
        </Curve>
        <Curve FromInterval="3">
            <CurvePoint MW="310.5" Price="499"></CurvePoint>
            <CurvePoint MW="322.1" Price="499"></CurvePoint>
        </Curve>
        ...
        </MarketSchedule>
    </BidsOffers>
</MarketParticipantData>

Omit the <Schedule> or <Curve> element – this cancels the specific bid/offer for all intervals from FirstIntervalBegin to LastIntervalEnd

Schedule Example


 <MarketParticipantData Region="MRTU" MarketParticipant="SCID1" MarketStage="DA" FirstIntervalBegin="2021-03-02T08:00:00Z" LastIntervalEnd="2021-03-03T08:00:00Z">
    <BidsOffers TransactionType="Gen" Location="GEN_1">
        <SelfSchedule ProductType="Spin">
    </SelfSchedule>
 </BidsOffers>
</MarketParticipantData>

Curve Example

 <MarketParticipantData Region="MRTU" MarketParticipant="SCID1" MarketStage="DA" FirstIntervalBegin="2021-03-02T08:00:00Z" LastIntervalEnd="2021-03-03T08:00:00Z">
    <BidsOffers TransactionType="Gen" Location="GEN_1">
        <MarketSchedule ProductType="Energy">
    </MarketSchedule>
 </BidsOffers>
</MarketParticipantData>