Implementation

To accurately simulate the battery’s behavior and market conditions, the model incorporates constraints that address both the physical limitations of the battery and the relevant market rules and trends.

Battery-related constraints

The following table contains the constraints related to the physical characteristics of the battery being modeled. These characteristics are inputs that can be defined by the user.

ConstraintBoundsExplanation
State of charge0-100 (%)The battery's state of charge should neither exceed its energy capacity, nor fall below zero.
Maximum import/exportBattery rated power (MW)The sum of physical power flows and contracted ancillary service volumes should never exceed the battery's rated power.
FootroomCurrent state of charge (MWh)The battery's state of charge must always be enough to fully deliver its upward ancillary service commitments (those requiring the battery to export power - Reg Up, ECRS, RRS, and NSRS).
HeadroomUn-charged energy capacity (MWh)This is calculated as the battery's maximum energy capacity minus its current state of charge. This value must be enough to fully deliver any downward ancillary service commitment (Reg Down).

Cycling charge

The model is penalized $20 for every 1 MWh it imports. This simulates the cost of "wear and tear" that occurs when the battery is operated. As a result, the model avoids using the battery unless there is a profit opportunity greater than $20/MWh.

The cycling charge makes our model more realistic in two ways. First, it accounts for the cost of degradation that occurs when using the battery, which is a real cost that operators consider in their trading decisions. Second, it somewhat mitigates the effect of our perfect foresight assumption by disincentivizing the model from trading every small price swing (which would be profitable but unrealistic, as real operators can't predict these small swings).

The cycling charge is not included in the final revenue calculation and is only used within the optimization to account for the "wear and tear" cost of using the battery and to mitigate the impact of perfect foresight.

Ancillary services markets

Market saturation

Our model accounts for future saturation of the ancillary services market.

As installed battery capacity grows faster than the ancillary services market, there will be increasingly more ancillary services supply than demand. This will result in lower prices, which is modeled in the Ancillary Service Pricing Model. It also means that individual batteries will have a harder time allocating their capacity to ancillary services. That's modeled here in the Dispatch Model.

Once the battery fleet's capacity is greater than the ancillary services market, we limit how much of the modeled battery's capacity it can allocate to ancillary services. For example, if the ancillary service market size is 75% of the battery fleet's capacity (eg. there are 100 MWs of batteries, and ERCOT needs 75 MW of ancillary services), then the modeled battery can allocate up to 75% of its capacity to ancillary services.

NPRR 1186

Our model accounts for the likely impacts of NPRR 1186, an ERCOT rule proposed to ensure that battery storage resources maintain sufficient state of charge to meet their ancillary service obligations. Although the rule is pending before the Texas PUC as of August 2024, we believe that market participants will be increasingly cautious about violating NPRR 1186's rules.

Based on NPRR 1186, our model enforces a greater state of charge requirement for certain services. They are listed in the table below. For example, a 200% state of charge requirement means that if the model allocates 10 MW to a service, it must have 20 MWh of state of charge so that it can deliver that 10 MW for 2 hours.

Ancillary Service MarketState of Charge Requirement
ECRS200%
Non-Spin400%

Activation Rates

We model the fact that ancillary service commitments will sometimes be called upon. This is important because the attractiveness of a commitment to a storage resource depends on the likelihood that it will be deployed.

The model assumes an activation rate for each service at each 15-minute interval based on its historical average activation rate. If the model makes an ancillary service commitment, it will be required to import / export (depending on the service) energy at the assumed rate, proportional to the size of the commitment. For example, if the actual average activation rate of Reg Up at 08:00 is 35% (meaning that 0.35 MWh of energy are deployed for every 1 MW/hr committed), and the model commits 10 MW to Reg Up at that interval, then the model will be required to export 3.5 MWh.

The model 'sees' these activation rates, just as it sees prices, and it will take this into account when choosing how to allocate to ancillary services. For example, the model will avoid allocating to a service that would require it to import in high price hours, or that would require it to deplete its state of charge and miss out on a big price spike later.