CSV File Format – PJM, SPP, MISO, ISONE, and NYISO

File Format Validations:

  • A file must contain the “Header” section and all its columns (case-sensitive). Files without the Header section will be rejected.
  • The file must choose between the following content options:
    • One or both of the “BidsOffers” and/or “ResourceParameters” sections. If both are provided they must be in that order. The sections should not be repeated—all BidOffer rows should be under one BidsOffers section.
    • BilateralSchedules
  • For any/all data section submitted, all column names are required (case-sensitive), in the order shown above, even if there is no data for any row.
  • These format validations will result in the entire file being rejected.

File Scope:

  • Multiple Participant Submissions : BidOffer and Resource Parameter data for multiple participants may be submitted together in the same file, so long as the user submitting the data is authorized for each of the participants.
  • Multi-Day BidOffer Submissions : Users may submit up to seven days at a time.
    • If Submit to ISO = True, we will submit all open ISO intervals and save the rest if the data into MarketSuite. If set to False we will save everything (assuming the MarketSuite windows are open – i.e. intervals in the past will be rejected).
  • Common Validations :
    • If all accounts are mapped to user login the file should succeed.
    • If only a subset of accounts are mapped to users login APX will process those accounts and reject the rest
    • If file contains trade dates beyond system variable APX will process those for open dates and reject the rest
    • If the number of days submitted via CSV are less than or equal to the configured system variable (31 days):
      • AND does not contain days for closed MarketSuite time windows
        • AND SubmitToISO = True, then
          • Submit all data for time windows open at the ISO and Save the remaining intervals
        • AND SubmitToISO = False, then
          • Save all data
      • AND contains days for closed MarketSuite time windows
        • AND SubmitToISO = True, then
          • Submit all data for time windows open at the ISO and Save for the remaining intervals.
          • Reject intervals associated with closed time windows
        • AND SubmitToISO = False, then
          • Save all data associated with open time windows
          • Reject Intervals associated with closed time windows
  • Users should exercise caution when submitting near a market deadline. APX will process the CSV file, but cannot guarantee the ISO data processing time. For this reason, APX recommends that, when submitting near a market deadline, users submit only the immediate trade date in question.
  • Data submitted in advance of ISO scheduling windows will require user submission when the ISO scheduling window opens. APX does not queue submissions for scheduling windows that are not yet open at the ISO (i.e. data will only be saved in the APX MarketSuite).

File Content

Header:

Column Name Data Type Description Required
Version Integer CSV format version. "1" is the latest N
SourceSystem String The system of origin N
CreateDate Datetime Datetime supplied by user. Not validated. N
SubmitToISO boolean A flag that indicates that the bids/offers should be sent automatically to the ISO. ‘False’ means that the bids/offers will need to be reviewed and submitted interactively using the APX MarketSuite® Checkout application. Y
Region string ISO for which the transactions are being submitted Available values: MRTU, TX, PJM, MISO, ISONE, NYISO, SPP Y

BidsOffers:

Column Name Data Type Description Required
Participant string The participant for which the transaction is being submitted Y
Date date Trade date for the transaction. Example: 8/20/2015 Y
Hour string Hour of the day, in “Hour Ending” (1-24). Use “2x” for the duplicate hour on the Daylight Saving Time long day Y
Transaction string The type of transaction. Possible values vary by region. See region-specific sections of this portal. Y
Location string Name or number of the ISO location. In the case of transactions that are point-to-point, this is the source location. Y
SinkLocation string Name or number of the ISO sink location. This is only used for point-to-point transactions. N*
MW decimal MW value Y
Price decimal Price for the transaction. If a multi-point bid curve is being submitted, the price will correspond to the MW point in the same row. Please see "multi-point bids" section for more information. N*
ReferenceCode string Identifier used in some transactions, often for transmission contract or bid name. See ISO-specific sections for more information N*
Attributes string Pipe-separated name/value pairs for attributes specific to the transaction being submitted. See "BidOffer and Trade Attributes" section for more information. Available attributes for a transaction are listed in the region-specific sections of this portal. N*

*May be required for some transaction types

ResourceParameters

Column Name Data Type Description Required
Participant string The participant for which the transaction is being submitted Y
Date date Trade date for the transaction. Example: 8/20/2015 Y
Hour string Hour of the day, in “Hour Ending” (1-24). Use “2x” for the duplicate hour on the Daylight-Saving long day. Use “1” for Daily-level resource parameters. Y
Parameter string Name of the parameter. Possible values vary by region. See region-specific sections of this portal. Y
Location string Name or number of the ISO location. Y
Value string Numeric or text value for the parameter N*
TableValueX string Pipe-separated name/value or X/Y(/Z) sets. Used for submitting ramp rate curves and other complex parameters. (not currently used for SPP) N*
TableValueY string Pipe-separated name/value or X/Y(/Z) sets. Used for submitting ramp rate curves and other complex parameters. (not currently used for SPP) N*
TableValueZ string Pipe-separated name/value or X/Y/Z sets. Used for submitting ramp rate curves and other complex parameters. (not currently used for SPP) N
ReferenceCode string Used for Schedule ID in PJM and ISONE, where many parameters are entered for a discrete "Schedule ID" N*

*required for some transactions

ResourceParameters

Column Name Data Type Description Required
Participant string The participant for which the bilateral schedule is being submitted Y
Date date Trade date for the bilateral schedule. Example: 8/20/2019 Y
Hour string Hour of the day Y
Transaction string Name of the bilateral schedule type. Possible values vary by region. See region-specific sections of this portal. Y
Location string Name or number of the ISO location. Y
SinkLocation string For bilateral schedules that have a source and a sink, name or number of the ISO Sink location. N*
CounterParty string Not required for these regions. N
MW decimal MW value of the transaction Y (leave blank to cancel)
ReferenceCode string ISO-issued code for the bilateral schedule contract. Y
Attributes string Pipe-separated name/value pairs for attributes specific to the bilateral schedule being submitted. Available attributes for a transaction are listed in the region-specific sections of this portal. N

Multi-Point Bids

Multi-point bids—such as generator offer curves or virtual bids—are entered with one row per bid point. With the exception of the MW and Price columns, all other data must be the same. There will be no validation to ensure that the multi-point bid set conforms to the particular ISO rules for that transaction, the points will be saved in the MarketSuiteTM in the order that they appear in the CSV file and sent to the ISO (upon user submittal) for validation.

Example of BidsOffers section for a three-point bid transaction for one hour:

Participant Date Hour Transaction Location SinkLocation MW Price ReferenceCode Attributes
DEMO 1/20/2019 8 DA Virtual Bid GRDA_HUB 10 35 CurveType=Block
DEMO 1/20/2019 8 DA Virtual Bid GRDA_HUB 20 30 CurveType=Block
DEMO 1/20/2019 8 DA Virtual Bid GRDA_HUB 30 25 CurveType=Block

BidOffer Attributes

BidOffer transactions may have optional or required attributes. These attributes may have default values and the user will only need to supply a value when it differs from the default. The specific attributes available for each transaction, along with the default for that attribute, are listed in the ISO-specific sections. When multiple attributes are submitted for a single transaction, the name/values are pipe-separated (i.e. “|”).

Example of a single attribute for a transaction:

Attributes
DependOnTradeName=APXY Buy

Example of multiple attributes for a transaction:

Attributes
CurveType=Fixed;LinkedHours=8-2

Cancelling

For cancelling BidsOffers, the transaction to be canceled must be submitted with no values in the MW and price columns. When canceling a multi-point bid, only submit one row (not a row for each bid point).

Example of a canceled bid:

Participant Date Hour Transaction Location SinkLocation MW Price ReferenceCode Attributes
DEMO 1/20/2019 8 DA Virtual Bid GRDA_HUB CurveType=Block

Resource Parameters cannot be canceled, but in some cases they may be nullified (i.e. replacing a value with NULL).

Data Coverage for Create/Update/Cancel

All Create, Update and Cancel operations must be explicit. For example, if a bid is submitted for 24 hours of a day, and then the file is re-submitted without the row for the first hour, the first hour will not be canceled or deleted from MarketSuite®.

PJM Market Participant Data

This section will detail all of the transactions that may be submitted in a CSV file in the PJM region, as well as special validations for PJM.

PJM BidOffer

The following Transactions are supported when submitting BidOffer data for PJM. If you would like to schedule a transaction that is not listed below, please contact your APX Account Manager.

Transaction Description Location Type Reference Code Available Attributes Notes
DA Gen Energy Market Generator Energy Market Bid for DAM. Minimum one, max ten Price/MW rows Generator Numeric PJM Schedule ID, e.g. ‘1’ or ‘99’ - required Required: ‘CurveType’ (Block or Slope)
RT Gen Energy Market Generator Energy Market Bid for RTBM. Minimum one, max ten Price/MW rows Generator Numeric PJM Schedule ID, e.g. ‘1’ or ‘99’ - required Required: ‘CurveType’ (Block or Slope)
DA Decrement Bid DAM Virtual Bid Settlement Point N/A Required: ‘CurveType’ (Block or Slope)
DA Increment Offer DAM Virtual Offer Settlement Point N/A Required: ‘CurveType’ (Block or Slope)
DA Fixed Demand Bid Load Energy value in the DAM. Load Zone N/A
DA Price Sensitive Demand Bid Load Energy Market Bid for DAM. Minimum one, max ten Price/MW rows Load Zone N/A Required: ‘CurveType’ (Block or Slope)

PJM ResourceParameters

The following parameters are supported in PJM. These are all part of the ‘Energy Operating Limits’ template.

Notes:

  • Only submit the parameters that you wish to change. The APX MarketSuite® will take existing value for non-submitted parameters and use those for the submission to PJM. The APX MarketSuite® regularly pulls down data from the PJM portal, so should have the latest info.
Parameter Name Data Type/Format Description Location Type Notes
Commitment Status String Commitment status of the generator. Available values: · Unavailable · Economic · Emergency · MustRun Generator
Economic Max MW Decimal Optional element specifying the economic maximum limit for the hourly interval. Generator
Economic Min MW Decimal Optional element specifying the economic minimum limit for the hourly interval. Generator
Emergency Max MW Decimal Optional element specifying the emergency maximum limit for the hourly interval. Generator
Emergency Min MW Decimal Optional element specifying the emergency minimum limit for the hourly interval. Generator
Fixed Gen boolean Optional element specifying the fixed generation indicator for the unit for this hour. Must be ‘true’ or ‘false’ Generator

PJM BilateralSchedules

The following parameters are supported in PJM. Note that APX does not support scheduling for monthly capacity trades.

Notes:

  • A ReferenceCode is required for all PJM bilaterals.
  • APX does not support scheduling monthly capacity trades
  • APX regularly pulls down the bilateral contracts from PJM InSchedule. A contract must be saved in the MarketSuite in order to submit a bilateral schedule.
  • MarketSuite does not support the upload of trade contracts.
Transaction Name Description Notes
DA Sell Energy IBT/DA Buy Energy IBT Day-Ahead Market Internal Bilateral Trade.
RT Sell Energy IBT/RT Buy Energy IBT Real-Time Market Internal Bilateral Trade.
RT Sell Energy RLR/RT Buy Energy RLR Real-Time Retail Load Responsibility Bilateral Trade.
RT Sell Energy WLR/RT Buy Energy WLR Real-Time Wholesale Load Responsibility Bilateral Trade.
DA Buy SchRes /DA Sell SchRes DA Scheduling Reserve Bilateral Trade.
RT Buy NonSynch/RT Sell NonSynch RT Non-Synchronized Reserve Bilateral Trade.
RT Buy Regulation/RT Sell Regulation RT Regulation Bilateral Trade.
RT Buy Synch/RT Sell Synch RT Synchronized Reserve Bilateral Trade.

SPP Market Participant Data

This section will detail all of the transactions that may be submitted in a CSV file in the SPP region.

SPP BidOffer

The following Transactions are supported when submitting BidOffer data for SPP. | Transaction | Description | Location Type | Reference Code | Available Attributes| Notes| |-------------|-------------|-------|-----|---------------|-------------| |DA Gen Energy Market| Generator Energy Market Bid for DAM. Minimum one, max ten Price/MW rows| Generator| N/A| Required: ‘CurveType’ (Block or Slope)| |RT Gen Energy Market| Generator Energy Market Bid for RTBM. Minimum one, max ten Price/MW rows| Generator| N/A| Required: ‘CurveType’ (Block or Slope)| |DA Virtual Bid| Generator Spin Market Bid. One row with values for Price and MW |Settlement Point| N/A| Required: ‘CurveType’ (Block or Slope)| |DA Virtual Offer| Generator Non-Spin Market Bid. One row with values for Price and MW |Settlement Point| N/A| Required: ‘CurveType’ (Block or Slope)|

SPP ResourceParameters

The following parameters are supported in SPP. These are all part of the ‘Energy Operating Limits’ template.

Notes:

  • Parameters must be submitted for a specific market stage—DAM or RTBM. As such, each parameter has a “-DA” or “-RT’ suffix to indicate the market.
  • Only submit the parameters that you wish to change. The APX MarketSuite® will take existing value for non-submitted parameters and use those for the submission to SPP. The APX MarketSuite regularly pulls down data from the SPP portal, so should have the latest info.
Parameter Name Data Type/Format Description Location Type Notes
MaxEconomicLimit-DA
MaxEconomicLimit-RT
Decimal An economic MW level at or below a Resource’s Maximum Normal Capacity Operating Limit used for constraining Energy dispatch and Contingency Reserve clearing during normal system conditions. Generator
MaxEmergencyLimit-DA
MaxEmergencyLimit-RT
Decimal The maximum MW level at which a Resource other than a Block Demand Response Resource may operate under Emergency system conditions. Generator
MaxEmergencyRuntime-DA
MaxEmergencyRuntime-RT
string (hh:mm) The maximum length of time a Resource can operate above its Maximum Normal Capacity Operating Limit up to its Maximum Emergency Capacity Operating Limit. Generator
MaxNormalLimit-DA
MaxNormalLimit-RT
Decimal The maximum MW level at which a Resource may operate continuously. Generator
MaxRegulationLimit-DA
MaxRegulationLimit-RT
Decimal The maximum MW level at which a Regulation Qualified Resource, a Regulation-Up Qualified Resource or a Regulation-Down Qualified Resource may operate while providing Regulation Deployment. Generator
MinEconomicLimit-DA
MinEconomicLimit-RT
Decimal A MW level at or above a Resource’s Minimum Normal Capacity Operating Limit used for energy dispatch at a minimum level during normal operating conditions. Generator
MinEmergencyLimit-DA
MinEmergencyLimit-RT
Decimal The minimum MW level at which a Resource other than a Block Demand Response Resource may operate under Emergency system conditions. Generator
MinEmergencyRuntime-DA
MinEmergencyRuntime-RT
string (hh:mm) The maximum length of time a Resource can operate below its Minimum Normal Capacity Operating Limit down to its Minimum Emergency Capacity Operating Limit. Generator
MinNormalLimit-DA
MinNormalLimit-RT
Decimal The minimum MW level at which a Resource may operate continuously. Generator
MinRegulationLimit-DA
MinRegulationLimit-RT
Decimal The minimum MW level at which a Regulation Qualified Resource, a Regulation-Up Qualified Resource or a Regulation-Down Qualified Resource may operate while providing Regulation Deployment. Generator
MQSRLimit-DA
MQSRLimit-RT
Decimal The maximum amount of Supplemental Reserve that can be provided by a Quick-Start Resource from an off-line state. Generator
TARRFactor-DA
TARRFactor-RT
Decimal Turn-Around Ramp Rate Factor Generator

MISO Market Participant Data

This section will detail all of the transactions that may be submitted in a CSV file in the MISO region, as well as special validations for MISO.

MISO BidOffer

The following Transactions are supported when submitting BidOffer data for MISO. If you would like to schedule a transaction that is not listed below, please contact your APX Account Manager.

Transaction Description Location Type Reference Code Available Attributes Notes
DA Load Energy Self Load Energy value in the DAM. Settlement Point N/A
DA Load Energy Market Load Energy Market Bid for DAM. Minimum one, max ten Price/MW rows Settlement Point N/A Required: ‘CurveType’ (Block)
DA Virtual Bid Generator Spin Market Bid. One row with values for Price and MW Settlement Point N/A Required: ‘CurveType’ (Block)
DA Virtual Offer Generator Non-Spin Market Bid. One row with values for Price and MW Settlement Point N/A Required: ‘CurveType’ (Block)

MISO BilateralSchedules

The following bilateral schedules are supported in MISO.

Notes:

  • A ReferenceCode is required for all MISO bilaterals.
  • APX regularly pulls down the bilateral contracts from MISO. A contract must be saved in the MarketSuite in order to submit a bilateral schedule.
  • MarketSuite does not support the upload of trade contracts.
Transaction Name Description Notes
DA Buy Energy FinSchedule
DA Sell Energy FinSchedule
Day-Ahead Energy Financial Schedule.
RT Buy Energy FinSchedule
RT Sell Energy FinSchedule
Real-Time Energy Financial Schedule.

ISONE Market Participant Data

This section will detail all of the transactions that may be submitted in a CSV file in the ISONE region, as well as special validations for ISONE.

ISONE BidOffer

The following Transactions are supported when submitting BidOffer data for ISONE. If you would like to schedule a transaction that is not listed below, please contact your APX Account Manager.

Transaction Description Location Type Reference Code Available Attributes Notes
DA Load Energy Self Load Energy value in the DAM. Settlement Point May be used to specify the ISONE Settlement SubAccount*
DA Load Energy Market Load Energy Market Bid for DAM. Minimum one, max ten Price/MW rows Settlement Point May be used to specify the ISONE Settlement SubAccount* Required: ‘CurveType’ (Block)
DA Virtual Bid Generator Spin Market Bid. One row with values for Price and MW Settlement Point May be used to specify the ISONE Settlement SubAccount* Required: ‘CurveType’ (Block)
DA Virtual Offer Generator Non-Spin Market Bid. One row with values for Price and MW Settlement Point May be used to specify the ISONE Settlement SubAccount* Required: ‘CurveType’ (Block)

*The ReferenceCode column may be used to specify an ISONE Settlement SubAccount to which the transaction will be associated. Else, transaction will be submitted without a sub-account, which means the transaction will be associated with the ‘Default’ SubAccount.

ISONE BilateralSchedules

The following bilateral schedules are supported in ISONE.

Notes:

  • A ReferenceCode is required for all ISONE bilaterals.
  • APX regularly pulls down the bilateral contracts from ISONE. A contract must be saved in the MarketSuite in order to submit a bilateral schedule.
  • MarketSuite does not support the upload of trade contracts.
Transaction Name Description Notes
DA Sell Energy IBT
DA Buy Energy IBT
Day-Ahead Market Internal Bilateral Trade.
RT Sell Energy IBT
RT Buy Energy IBT
Real-Time Market Internal Bilateral Trade.
DA Sell TMOR IBT
DA Buy TMOR IBT
DA 30-minute Operating Reserve Bilateral Trade.
DA Sell TMNSR IBT
DA Buy TMNSR IBT
DA Ten-Minute Non-Synchronized Reserve Bilateral Trade.
RT Sell LoadResp IBT
RT Buy LoadResp IBT
RT Load Responsibility Bilateral Trade

NYISO Market Participant Data

This section will detail all of the transactions that may be submitted in a CSV file in the NYISO region, as well as special validations for NYISO.

NYISO BidOffer

The following Transactions are supported when submitting BidOffer data for NYISO. If you would like to schedule a transaction that is not listed below, please contact your APX Account Manager.

Transaction Description Location Type Reference Code Available Attributes Notes
DA Load Energy Self Load Energy self-Schedule in the DAM. Settlement Point N/A
DA Load Energy Forecast Load Energy forecast in the DAM. Settlement Point N/A
DA Load Energy Market Load Energy Market Bid for DAM. Minimum one, max ten Price/MW rows Settlement Point N/A Required: ‘CurveType’ (Block)
DA Virtual Bid Generator Spin Market Bid. One row with values for Price and MW Settlement Point N/A Required: ‘CurveType’ (Block)
DA Virtual Offer Generator Non-Spin Market Bid. One row with values for Price and MW Settlement Point N/A Required: ‘CurveType’ (Block)