Bilateral Schedule Data

The <BilateralSchedule> data section is used for providing bilateral transaction types and is applicable to both Inbound requests and Outbound responses

Item Description MRTU(CAISO) TX(ERCOT)
IntervalLength Interval 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
ISO Optional Field if ProductType = Energy
Data Type: XML duration
‘PT1H’ is 1 hour
‘PT15M’ is 15 minutes
‘PT5M’ is 5 minutes
TransactionType Type of transaction/ resource (XSD Required) ISO Required Field
Data Type: Enumeration
‘Buy’ (MP is buyer)
‘Sell’ (MP is seller)
ISO Required Field
Data Type: Enumeration
‘Buy’ (MP is buyer)
‘Sell’ (MP is seller)
SourceLocation Name of the source (origin) location (XSD Optional) ISO Required Field if TransactionType = Buy and ScheduleType = PhysicalTrade or FinancialTrade
Data Type: String
Valid Gen Node if PhysicalTrade
Valid Trade Hub or LAP if FinancialTrade
When ScheduleType = ASTrade or UpliftCostTrade, no location is needed
ISO Required Field if TransactionType = Buy
Data Type: String If Product Type = (Energy) set = any valid settlement point name (i.e. ‘HBSOUTH’, ‘LZNORTH’) If Product Type = (Capacity, RegUp, RegDn, RRS-PFR, RRS-FFR, RRS-UFR, NonSpin, ECRSS, ECRSM) set = ‘ERCOT’
SinkLocation Name of the sink (destination) location (XSD Optional) ISO Required Field if TransactionType = Sell and ScheduleType = PhysicalTrade or FinancialTrade Data Type: String Valid Gen Node if PhysicalTrade Valid Trade Hub or LAP if FinancialTrade When ScheduleType = ASTrade or UpliftCostTrade, no location is needed ISO Required Field if TransactionType = Buy Data Type: String If Product Type = (Energy) set = any valid settlement point name (i.e. ‘HBSOUTH’, ‘LZNORTH’) If Product Type = (Capacity, RegUp, RegDn, RRS-PFR, RRS-FFR, RRS-UFR, NonSpin, ECRSS, ECRSM) set = ‘ERCOT’
CounterParty Participant short name of the counterparty to the buy or sell trade (XSD Optional) ISO Required Field
Data Type: String
ISO Required Field if TransactionType = Buy or Sell Data Type: String Use only valid ERCOT QSE ID (i.e. QAPX)
TradeName Unique identifier to communicate with the ISO (XSD Optional) ISO Required Field if ScheduleType = PhysicalTrade Data Type: String Trade Name Not Applicable
DependOnTradeName Points to the unique Trade Name of the dependent trade (XSD Optional) ISO Required Field if Schedule Type = PhysicalTrade and the trade is not the first in a chain Data Type: String Trade Name of dependent trade Not Applicable
ScheduleType Type of schedule; default is ‘FinancialTrade’ (XSD Optional) ISO Required Field Data Type: Enumeration ‘FinancialTrade’ (default) ‘PhysicalTrade’ ‘UpliftCostTrade’ Data Type: Enumeration ‘FinancialTrade’ (default) ‘WholesaleLoad’ – for RRSNC trade ‘CntrlLoad’ – for RRSLD trade ‘SelfProvision’ – For Self-Arranged AS
ProductType Points to the unique Trade Name of the dependent trade (XSD Optional) ISO Required Field Date Type: Enumeration ‘Energy’ ‘RegUp’ ‘RegDn’ ‘Spin’ ‘NSpin’ ISO Required Field Data Type: Enumeration ‘Energy’ ‘Capacity’ ‘RegUp’ ‘RegDn’ ‘RRS-PFR’ ‘RRS-FFR’ ‘RRS-UFR’ ‘NSpin’ ‘NSPNM’ ‘ECRSS’ ‘ECRSM'
ExternalId User 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

Bilateral Schedule Detail Attributes

Item Description MRTU(CAISO) TX(ERCOT)
FromInterval From 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
Data Type: Integer between 1 and 100 when FirstIntervalBegin and LastIntervalEnd range = one day
MW Hourly output in megawatt hours. (XSD Optional) ISO Required Field
Data Type: Non Negative Decimal (2)
ISO Required Field
Data Type: Non Negative Decimal (0)

When FirstIntervalBegin and LastInterval End range = one month and MW values vary by hour, FromInterval is repeated 720 times (24 hours * 30 days), assuming 30 days in the month and no time transition. If MW values are the same for the entire month, then FromInterval need only occur one time.

Additional Bilateral Schedule Details

MRTU Examples

UseCase CounterParty TransactionType SourceLocation SinkLocation ScheduleType ProductType DependOnTradeName
Buy Energy from NCPA – APN Trade NCPA Buy THNP15GEN-APND THSP15GEN-APND TH_ZP26_GEN-APND DLAP_SCE-APND DLAP-PGAE-APND DLAP-SDGE-APND Same as Source Location APX assumes SinkLocation equals SourceLocation. [FinancialTrade] [Energy] Not Applicable.
Sell Energy to BPEC – APN Trade BPEC Sell Same as Sink Location APX assumes SinkLocation equals SourceLocation. THNP15GEN-APND TH_SP15_GEN-APND TH_ZP26_GEN-APND DLAP_SCE-APND DLAP-PGAE-APND DLAP-SDGE-APND [FinancialTrade] [Energy] Not Applicable
Buy Energy from NCPA – PHY Trade NCPA Buy Gen Node Same as Source Location APX assumes SinkLocation equals SourceLocation [PhysicalTrade] [Energy] TradeABC123
Sell Energy to BPEC – PHY Trade BPEC Sell Same as Sink Location APX assumes SinkLocation equals SourceLocation. Gen Node [PhysicalTrade] [Energy] TradeABC123

TX (ERCOT) Examples

UseCase CounterParty TransactionType SourceLocation SinkLocation ScheduleType ProductType DependOnTradeName
Buy Energy from EAGLE EAGLE Buy Settlement Point [Same as SourceLocation] [FinancialTrade] [Energy] Not Applicable
Sell Capacity to EAGLE EAGLE Sell [Same as SinkLocation] ERCOT [FinancialTrade] Capacity Not Applicable
Buy NonSpin from NECC NECC Buy ERCOT [Same as SourceLocation] [FinancialTrade] NSpin Not Applicable
Sell Responsive Primary (Generator Based) to BP BP Sell [Same as SinkLocation] ERCOT [FinancialTrade] RRS-PFR Not Applicable
Buy Responsive Primary(Load Based) from ANP ANP Buy ERCOT [Same as SourceLocation] [WholesaleLoad] RRS-PFR Not Applicable
Buy SCED dispatchable ECRS (Load Based) from ANP ANP Buy ERCOT [Same as SourceLocation] [WholesaleLoad] ECRSS Not Applicable

Additional Bids/Offers Details

Definition of Bilateral Schedule Business key

The business key for a bilateral schedule is defined as the unique combination of:

  • Region
  • MarketParticipant
  • MarketStage
  • Interval
  • TransactionType
  • SourceLocation - note that this should be the same as Sink Location for most Regions
  • Sink Location - note that this should be the same as Sink Location for most Regions
  • CounterParty
  • TradeName (optional)
  • ProductType
  • ScheduleType

Handling of Duplicates records for same Bilateral Schedule Business Key in same submission

If an APX Scheduling API file is submitted with duplicate bilateral schedules, all bilateral schedules that match that business key will be rejected and won’t be saved into the APX MarketSuiteTM.

Replacing Bilateral Schedules

To replace a previously submitted bilateral schedule, simply submit an APX Scheduling API file that contains the same MarketParticipantData and BilateralSchedule business keys. The data in the new file will expire previously submitted data for this same business key.

Omitting / Cancelling Bilateral Schedules

Bilateral Schedule data can be omitted / cancelled using one of two methods:

  • Provide a Null “MW” attribute – this cancels specific intervals for a specific bilateral schedule if it already exists in the APX MarketSuiteTM or skips those intervals if this represents the initial submission of this bilateral schedule.

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

Copy
Copied
<MarketParticipantData Region="MRTU" MarketParticipant="SCID1" MarketStage="DA" FirstIntervalBegin="2021-04-29T07:00:00Z" LastIntervalEnd="2021-04-30T07:00:00Z">
    <BilateralSchedule TransactionType="Sell" SourceLocation="TH_NP15_GEN-APND" SinkLocation="TH_NP15_GEN-APND" CounterParty="SCID2" ProductType="Energy" ScheduleType="FinancialTrade">
        <BilateralScheduleDetail FromInterval="1" MW="50"></BilateralScheduleDetail>
        <BilateralScheduleDetail FromInterval="2"></BilateralScheduleDetail>
        <BilateralScheduleDetail FromInterval="3" MW="42.7"></BilateralScheduleDetail>
...
    </BilateralSchedule>
</MarketParticipantData>
  • Omit the BilateralScheduleDetail element – this cancels the specific bilateral schedule for all intervals from FirstIntervalBegin to LastIntervalEnd

Example:

Copy
Copied
<MarketParticipantData Region="MRTU" MarketParticipant="SCID1" MarketStage="DA" FirstIntervalBegin="2021-04-29T07:00:00Z" LastIntervalEnd="2021-04-30T07:00:00Z">
    <BilateralSchedule TransactionType="Sell" SourceLocation="TH_NP15_GEN-APND" SinkLocation="TH_NP15_GEN-APND" CounterParty="SCID2" ProductType="Energy" ScheduleType="FinancialTrade">
    </BilateralSchedule>
</MarketParticipantData>

NOTE: If cancelled data was already submitted to the ISO, cancel requests will be sent. All data is versioned in the APX MarketSuiteTM database.