Skip to content
Last updated

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

Column NameData TypeDescriptionRequired
VersionIntegerCSV format version. "1" is the latestN
SourceSystemStringThe system of originN
CreateDateDatetimeDatetime supplied by user. Not validated.N
SubmitToISObooleanA 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
RegionstringISO for which the transactions are being submitted Available values: MRTU, TX, PJM, MISO, ISONE, NYISO, SPPY

BidsOffers:

Column NameData TypeDescriptionRequired
ParticipantstringThe participant for which the transaction is being submittedY
DatedateTrade date for the transaction. Example: 8/20/2015Y
HourstringHour of the day, in “Hour Ending” (1-24). Use “2x” for the duplicate hour on the Daylight Saving Time long dayY
TransactionstringThe type of transaction. Possible values vary by region. See region-specific sections of this portal.Y
LocationstringName or number of the ISO location. In the case of transactions that are point-to-point, this is the source location.Y
SinkLocationstringName or number of the ISO sink location. This is only used for point-to-point transactions.N*
MWdecimalMW valueY
PricedecimalPrice 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*
ReferenceCodestringIdentifier used in some transactions, often for transmission contract or bid name. See ISO-specific sections for more informationN*
AttributesstringPipe-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 NameData TypeDescriptionRequired
ParticipantstringThe participant for which the transaction is being submittedY
DatedateTrade date for the transaction. Example: 8/20/2015Y
HourstringHour 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
ParameterstringName of the parameter. Possible values vary by region. See region-specific sections of this portal.Y
LocationstringName or number of the ISO location.Y
ValuestringNumeric or text value for the parameterN*
TableValueXstringPipe-separated name/value or X/Y(/Z) sets. Used for submitting ramp rate curves and other complex parameters. (not currently used for SPP)N*
TableValueYstringPipe-separated name/value or X/Y(/Z) sets. Used for submitting ramp rate curves and other complex parameters. (not currently used for SPP)N*
TableValueZstringPipe-separated name/value or X/Y/Z sets. Used for submitting ramp rate curves and other complex parameters. (not currently used for SPP)N
ReferenceCodestringUsed for Schedule ID in PJM and ISONE, where many parameters are entered for a discrete "Schedule ID"N*

*required for some transactions

ResourceParameters

Column NameData TypeDescriptionRequired
ParticipantstringThe participant for which the bilateral schedule is being submittedY
DatedateTrade date for the bilateral schedule. Example: 8/20/2019Y
HourstringHour of the dayY
TransactionstringName of the bilateral schedule type. Possible values vary by region. See region-specific sections of this portal.Y
LocationstringName or number of the ISO location.Y
SinkLocationstringFor bilateral schedules that have a source and a sink, name or number of the ISO Sink location.N*
CounterPartystringNot required for these regions.N
MWdecimalMW value of the transactionY (leave blank to cancel)
ReferenceCodestringISO-issued code for the bilateral schedule contract.Y
AttributesstringPipe-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:

ParticipantDateHourTransactionLocationSinkLocationMWPriceReferenceCodeAttributes
DEMO1/20/20198DA Virtual BidGRDA_HUB1035CurveType=Block
DEMO1/20/20198DA Virtual BidGRDA_HUB2030CurveType=Block
DEMO1/20/20198DA Virtual BidGRDA_HUB3025CurveType=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:

ParticipantDateHourTransactionLocationSinkLocationMWPriceReferenceCodeAttributes
DEMO1/20/20198DA Virtual BidGRDA_HUBCurveType=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.

TransactionDescriptionLocation TypeReference CodeAvailable AttributesNotes
DA Gen Energy MarketGenerator Energy Market Bid for DAM. Minimum one, max ten Price/MW rowsGeneratorNumeric PJM Schedule ID, e.g. ‘1’ or ‘99’ - requiredRequired: ‘CurveType’ (Block or Slope)
RT Gen Energy MarketGenerator Energy Market Bid for RTBM. Minimum one, max ten Price/MW rowsGeneratorNumeric PJM Schedule ID, e.g. ‘1’ or ‘99’ - requiredRequired: ‘CurveType’ (Block or Slope)
DA Decrement BidDAM Virtual BidSettlement PointN/ARequired: ‘CurveType’ (Block or Slope)
DA Increment OfferDAM Virtual OfferSettlement PointN/ARequired: ‘CurveType’ (Block or Slope)
DA Fixed Demand BidLoad Energy value in the DAM.Load ZoneN/A
DA Price Sensitive Demand BidLoad Energy Market Bid for DAM. Minimum one, max ten Price/MW rowsLoad ZoneN/ARequired: ‘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 NameData Type/FormatDescriptionLocation TypeNotes
Commitment StatusStringCommitment status of the generator. Available values: · Unavailable · Economic · Emergency · MustRunGenerator
Economic Max MWDecimalOptional element specifying the economic maximum limit for the hourly interval.Generator
Economic Min MWDecimalOptional element specifying the economic minimum limit for the hourly interval.Generator
Emergency Max MWDecimalOptional element specifying the emergency maximum limit for the hourly interval.Generator
Emergency Min MWDecimalOptional element specifying the emergency minimum limit for the hourly interval.Generator
Fixed GenbooleanOptional 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 NameDescriptionNotes
DA Sell Energy IBT/DA Buy Energy IBTDay-Ahead Market Internal Bilateral Trade.
RT Sell Energy IBT/RT Buy Energy IBTReal-Time Market Internal Bilateral Trade.
RT Sell Energy RLR/RT Buy Energy RLRReal-Time Retail Load Responsibility Bilateral Trade.
RT Sell Energy WLR/RT Buy Energy WLRReal-Time Wholesale Load Responsibility Bilateral Trade.
DA Buy SchRes /DA Sell SchResDA Scheduling Reserve Bilateral Trade.
RT Buy NonSynch/RT Sell NonSynchRT Non-Synchronized Reserve Bilateral Trade.
RT Buy Regulation/RT Sell RegulationRT Regulation Bilateral Trade.
RT Buy Synch/RT Sell SynchRT 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.

TransactionDescriptionLocation TypeReference CodeAvailable AttributesNotes
DA Gen Energy MarketGenerator Energy Market Bid for DAM. Minimum one, max ten Price/MW rowsGeneratorN/ARequired: ‘CurveType’ (Block or Slope)
RT Gen Energy MarketGenerator Energy Market Bid for RTBM. Minimum one, max ten Price/MW rowsGeneratorN/ARequired: ‘CurveType’ (Block or Slope)
DA Virtual BidGenerator Spin Market Bid. One row with values for Price and MWSettlement PointN/ARequired: ‘CurveType’ (Block or Slope)
DA Virtual OfferGenerator Non-Spin Market Bid. One row with values for Price and MWSettlement PointN/ARequired: ‘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 NameData Type/FormatDescriptionLocation TypeNotes
MaxEconomicLimit-DA
MaxEconomicLimit-RT
DecimalAn 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
DecimalThe 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
DecimalThe maximum MW level at which a Resource may operate continuously.Generator
MaxRegulationLimit-DA
MaxRegulationLimit-RT
DecimalThe 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
DecimalA 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
DecimalThe 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
DecimalThe minimum MW level at which a Resource may operate continuously.Generator
MinRegulationLimit-DA
MinRegulationLimit-RT
DecimalThe 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
DecimalThe maximum amount of Supplemental Reserve that can be provided by a Quick-Start Resource from an off-line state.Generator
TARRFactor-DA
TARRFactor-RT
DecimalTurn-Around Ramp Rate FactorGenerator

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.

TransactionDescriptionLocation TypeReference CodeAvailable AttributesNotes
DA Load Energy SelfLoad Energy value in the DAM.Settlement PointN/A
DA Load Energy MarketLoad Energy Market Bid for DAM. Minimum one, max ten Price/MW rowsSettlement PointN/ARequired: ‘CurveType’ (Block)
DA Virtual BidGenerator Spin Market Bid. One row with values for Price and MWSettlement PointN/ARequired: ‘CurveType’ (Block)
DA Virtual OfferGenerator Non-Spin Market Bid. One row with values for Price and MWSettlement PointN/ARequired: ‘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 NameDescriptionNotes
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.

TransactionDescriptionLocation TypeReference CodeAvailable AttributesNotes
DA Load Energy SelfLoad Energy value in the DAM.Settlement PointMay be used to specify the ISONE Settlement SubAccount*
DA Load Energy MarketLoad Energy Market Bid for DAM. Minimum one, max ten Price/MW rowsSettlement PointMay be used to specify the ISONE Settlement SubAccount*Required: ‘CurveType’ (Block)
DA Virtual BidGenerator Spin Market Bid. One row with values for Price and MWSettlement PointMay be used to specify the ISONE Settlement SubAccount*Required: ‘CurveType’ (Block)
DA Virtual OfferGenerator Non-Spin Market Bid. One row with values for Price and MWSettlement PointMay 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 NameDescriptionNotes
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.

TransactionDescriptionLocation TypeReference CodeAvailable AttributesNotes
DA Load Energy SelfLoad Energy self-Schedule in the DAM.Settlement PointN/A
DA Load Energy ForecastLoad Energy forecast in the DAM.Settlement PointN/A
DA Load Energy MarketLoad Energy Market Bid for DAM. Minimum one, max ten Price/MW rowsSettlement PointN/ARequired: ‘CurveType’ (Block)
DA Virtual BidGenerator Spin Market Bid. One row with values for Price and MWSettlement PointN/ARequired: ‘CurveType’ (Block)
DA Virtual OfferGenerator Non-Spin Market Bid. One row with values for Price and MWSettlement PointN/ARequired: ‘CurveType’ (Block)