The duck curve is a 20-year-old problem that has gotten substantially harder in the past four years. California's CAISO net load shape was already challenging by 2020; by 2025, the afternoon ramp rate has steepened further as distributed rooftop solar penetration continued to climb. The belly of the duck, that midday period when solar generation far exceeds load, now regularly drives negative wholesale prices in the SP15 trading hub. And the upstroke, the ramp from roughly 4 PM to 9 PM as solar drops off and evening load rises, has in some spring days exceeded 10,000 MW over three hours.
For distribution operators and DER aggregators working with behind-the-meter batteries in California and other high-solar markets, the duck curve is not just an academic chart. It defines the operating environment. How you position your battery portfolio at noon determines whether you capture the evening peak price spread, and whether you contribute to curtailment avoidance or deepen the midday surplus.
Where the Duck Curve Constraint Comes From
Net load is gross load minus variable renewable generation. As rooftop solar penetration grows, the midday net load trough deepens. The system operator's conventional dispatchable generation needs to follow net load, which means ramping down in the morning as solar rises, idling at minimum output through the midday period, then ramping back up sharply as solar drops off in late afternoon.
Thermal generators have minimum stable generation levels, below which they cannot operate reliably. When net load falls below the aggregate minimum stable generation of online thermal units, the system has two choices: curtail renewables or accept negative prices and shed generation. Both outcomes represent system cost. Curtailment wastes a zero-marginal-cost resource. Negative prices are a signal that the system has more energy than it can absorb and need rapid-ramping resources to come online quickly as load rises.
The practical problem for DER operators is that if you have a 1 MWh battery and you charge it at noon to participate in day-ahead energy arbitrage, you are deepening the midday trough further and adding to the curtailment pressure. Then if you dispatch it during the evening ramp incorrectly timed, you may miss the highest-value intervals. The timing and magnitude of battery dispatch around the duck curve is a coordination problem with direct economic and system reliability consequences.
Pre-positioning: The Core Dispatch Challenge
Managing the duck curve with distributed storage is primarily a pre-positioning problem. A battery needs to arrive at the evening ramp transition with sufficient state of charge to deliver during the high-price hours. It also needs to have charged during the midday period in a way that absorbs excess solar rather than deepening the trough.
These two objectives are not always compatible, and the timing of the transition between them matters. Charging aggressively at noon to maximize absorbed energy may leave the battery full by 2 PM, meaning it cannot accept the additional solar generation that arrives between 2 and 4 PM when irradiance peaks. Charging gradually from 10 AM through 3 PM is better for curtailment absorption, but the dispatch optimizer needs to know the afternoon net load forecast well enough to plan the charge schedule.
The pre-positioning calculation becomes more complex when you are managing a portfolio of batteries across a distribution circuit. A distribution feeder serving a mix of commercial buildings and residential neighborhoods may have localized net load patterns that differ from the bulk system shape. A feeder with heavy commercial air conditioning load in the afternoon may see its local net load increase during the duck curve's belly rather than decrease, requiring a different charge/discharge timing than the system-level price signal suggests.
The Curtailment Window
One of the clearest operational signals that batteries are positioned incorrectly for duck curve management is sustained curtailment during midday hours when batteries in the area are sitting at or near full charge. This happens when dispatch schedules are built from day-ahead price signals only, without accounting for curtailment risk forecasts.
CAISO publishes curtailment forecasts as part of their day-ahead market clearing outputs, and operators can observe real-time curtailment on their systems directly. A dispatch algorithm that sees midday prices near zero or negative and still commands batteries to hold charge rather than absorb more energy is missing the system signal.
We looked at this pattern in early 2025 with a DER aggregator operating in the Sacramento area with roughly 8 MW of distributed behind-the-meter battery capacity. Their day-ahead schedule was built on hourly price forecasts from a standard LMP model. On days with high midday curtailment, the optimizer was leaving batteries at 85% SoC through the midday window because the day-ahead LMP for those hours was only slightly negative, not extreme enough to trigger deeper charging. But the actual system needed absorption: intraday prices fell further, and curtailment ran for four hours. By aligning the charge schedule to incorporate CAISO curtailment probability as a secondary signal alongside price, midday SoC at the start of the ramp period dropped by an average of 12 percentage points on curtailment days, creating room to absorb more solar and arriving at the evening ramp with an appropriate charge level.
Ramp Rate Support During the Upstroke
The upstroke of the duck curve, the rapid net load increase from roughly 4 PM through 8 PM, is also a market opportunity for batteries that are properly positioned. CAISO's flexible ramping product (FRP) pays capacity payments for resources that can provide fast upward ramp capability during this period. A battery that has maintained sufficient SoC through the midday period can both provide energy and capture FRP capacity payments during the evening ramp.
The key is that FRP requires demonstrated ramp capability, not just energy availability. An inverter that can ramp 1 MW per minute provides more FRP value than one limited to 100 kW per minute, even if both have the same energy capacity. For dispatch optimization, we treat FRP and energy dispatch as a joint optimization: allocating some inverter capacity to FRP bid, holding the corresponding SoC in reserve, and freeing the remainder for energy arbitrage during the same intervals.
We are not saying every battery operator needs to participate in FRP or ancillary services to manage the duck curve effectively. Straightforward energy arbitrage around the duck curve shape provides substantial value on its own. The point is that the duck curve creates a well-defined daily structure in net load and prices, and a dispatch optimizer that understands this structure and uses it to plan multi-period charge and discharge schedules will consistently outperform one that treats each interval independently.
Seasonal Variation and Forecast Dependency
The duck curve is not uniform throughout the year. Spring days with mild temperatures and high solar irradiance produce the deepest midday troughs because air conditioning load is low and solar is near peak. Summer days have stronger afternoon air conditioning demand that compresses the duck and shifts the timing of the ramp. Winter days have shorter solar windows and typically lower curtailment risk.
A battery dispatch optimizer needs seasonally calibrated net load forecasts to position assets correctly across this variation. A schedule built using average annual duck curve shape will be systematically late on deep spring curtailment days and over-aggressive in summer afternoons when the system actually needs the batteries to hold capacity for air conditioning peak.
At Voltsynth, we run 15-minute net load forecasts that incorporate solar irradiance, temperature, and day-of-year seasonality as separate input features, allowing the model to adapt its duck curve shape prediction to the specific conditions forecast for each day. The dispatch optimizer then uses that forecast to build a charge and discharge schedule that is calibrated to the actual expected shape, not the average. Over a full year of operation, this day-specific calibration produces materially better timing of the charge/discharge cycle relative to the actual net load shape on each day.