Dispatch Model

How battery energy storage is optimized across California Independent System Operator (CAISO) markets in the WECC forecast product


Scope and framework

The WECC dispatch model is a single-asset battery optimization that co-optimizes charging, discharging, and ancillary service commitments to maximize forecast revenue, subject to physical and market rules. Shared methodology appears in the Core Dispatch Model documentation.

Geographic coverage

Dispatch is offered only for CAISO locations represented as the three principal load-serving entity nodes:

  • Pacific Gas and Electric Company (PG&E)
  • Southern California Edison (SCE)
  • San Diego Gas & Electric (SDG&E)

Other WECC balancing authorities appear in the system-wide fundamentals model but are not selectable for this single-asset CAISO dispatch workflow.

Revenue stack

The CAISO battery dispatch formulation includes:

  • Day-ahead energy: Hourly co-optimization buys and sells against forecast zonal balancing-authority (BA) day-ahead prices for the selected node.
  • Regulation up: Hourly co-optimization for upward frequency regulation; reserves discharge capability.
  • Regulation down: Hourly co-optimization for downward frequency regulation; reserves charging capability.
  • Spinning reserve: Hourly co-optimization; synchronized reserve with discharge-side headroom.
  • Non-spinning reserve: Hourly co-optimization; non-synchronized reserve cleared in the co-optimization.
  • Resource Adequacy (RA): A compliance obligation layered on top of wholesale markets, not a cleared market product inside the co-optimization. It supplies exogenous capacity revenue and availability or deliverability requirements. Capacity payment comes with those obligations and may impose dispatch constraints (for example reserving discharge power and ensuring sufficient stored energy as binding feasibility conditions during RA hours when Flex RA is enabled). See Resource Adequacy.

Day-ahead energy and ancillary services are co-optimized each hour on the same power and state-of-charge envelope. Resource Adequacy is separate from that stack: capacity revenue is taken as given, while RA rules can require capacity to stay available and, under Flex RA, can reserve discharge power and ensure sufficient stored energy in RA hours without fixing the full schedule. Capacity in excess of the reservation remains available for energy and ancillary optimization.

Day-ahead and ancillary services

Day-ahead energy captures arbitrage and scheduled energy positions against the forecast zonal balancing-authority (BA) day-ahead prices for PG&E, SCE, or SDG&E.

Ancillary services follow CAISO product definitions at a high level: regulation products require symmetric or directional reserve holding consistent with CAISO rules as implemented in the model, and spinning and non-spinning reserve products require sufficient stored energy and ramp capability to sustain the modeled call assumptions. Exact bid formats and simultaneous eligibility rules are enforced inside the optimization so reserved megawatts cannot be double-counted across products and energy.

Resource Adequacy

Resource Adequacy is a compliance-oriented capacity obligation on the asset, not participation in a co-optimized CAISO market product. Contracted capacity receives RA capacity revenue in the results as an exogenous payment, while the run settings determine availability or deliverability treatment and whether dispatch constraints apply (for example during RA hours when Flex RA is on).

RA hours in the model are an exogenous input (a prescribed evening window between HE17–21), not a decision variable the optimizer chooses.

The Resource Adequacy (RA) panel in the Create Forecast flow is shown below.

Resource Adequacy settings showing RA contract price, contracted capacity, and Enable Flex RA toggle

Fields and behavior

Control Units Effect
RA contract price $/kW-month Optional. When set, RA capacity revenue is valued at this fixed contract rate for the contracted megawatts. When left blank, RA capacity revenue uses the modeled RA price path from the forecast rather than a user-supplied rate.
Contracted capacity MW Volume of capacity under the RA contract that earns RA payments (and, if Flex RA is on, drives the discharge reservation).
Enable Flex RA On / off See System RA versus Flex RA.

The in-product banner describes the same behavior in the UI: contracted megawatts earn RA revenue. With Flex RA on, the model must keep enough discharge capability and stored energy during RA hours to meet the obligation, so the battery is less free to run in those hours than with Flex RA off. Any power headroom above the reserved amount can still be used for day-ahead energy and ancillary services.

System RA versus Flex RA

System RA (Flex RA off)
The asset receives exogenous RA capacity payments for the contracted capacity. Dispatch is not explicitly constrained by RA deliverability rules in the optimization; day-ahead and ancillary services are co-optimized without RA hours limiting discharge.

Flex RA (Flex RA on)
The asset still receives RA capacity payments for the contracted capacity, with the same payment treatment as System RA. During RA hours the model must reserve discharge power and keep enough energy in the battery to satisfy Flex RA. That uses up flexibility in those hours for arbitrage and for ancillary services that need discharge, and it requires charge and discharge earlier in the horizon to line up with being able to deliver during RA hours rather than treating each hour in isolation.

The obligation does not fully predetermine dispatch: any capacity not covered by the reservation remains in the co-optimization, so the solver can still use excess capability for merchant revenue subject to the Flex RA limits.

Practical notes

  • Contracted capacity should reflect the megawatts covered by the RA contract being simulated; zero effectively removes RA volume unless other rules in the run require RA.
  • RA contract price is only needed when a specific contract rate should override the modeled RA price series; omit it to use default RA revenues.
  • Results break out RA-related revenue so System RA and Flex RA runs can be compared side by side with the same energy and ancillary price inputs.