In 2025, a 100 MW solar + 50 MW / 200 MWh BESS hybrid project in the U.S. Southwest was financed based on an 11.2% project IRR — modeled using monthly typical-day dispatch. After one year of operation, the actual dispatch data showed 8.4% IRR. The 2.8 percentage-point gap represented roughly $14 million in net present value (NPV) error at financial close. The discrepancy was traced entirely to simulation resolution: the monthly typical-day method systematically overestimated evening price-capture revenue by 18–24% during shoulder months.
Key finding: Across six benchmark hybrid projects we simulated at three temporal resolutions — annual-average, monthly typical-day, and full 8760-hour — the 8760-hour method produced IRR values 3.1 to 7.8 percentage points lower than monthly typical-day for projects with 2–4 hours of BESS duration. For projects with 4+ hours of storage, the gap narrowed but remained above 2.5 ppt. The direction is consistent: simplified methods overstate project returns.
Contents
The Problem: Temporal Resolution in Energy Simulation
Every hybrid solar-storage simulation is a compromise between computational cost and accuracy. The industry uses three dominant temporal resolutions:
| Method | Resolution | Timesteps/year | Typical use | Relative accuracy |
|---|---|---|---|---|
| Annual-average | 1 average day × 12 months | 12–24 | Feasibility screening | Low |
| Monthly typical-day | 1 typical day per month × 24 hours | 288 | Preliminary design, financial pre-feasibility | Medium |
| 8760-hour | Every hour of the year | 8,760 | Final design, financing-grade due diligence | High |
The annual-average method collapses the entire year into a handful of representative hours — typically 12 or 24. It assumes that solar generation, load, and electricity prices can be approximated by their mean values. This is fast — a spreadsheet can do it — but it discards the correlation structure between solar irradiance, load demand, and wholesale prices that drives real-world dispatch.
Monthly typical-day improves on this by preserving seasonal variation: each month gets one representative 24-hour profile for solar, load, and price. But it collapses intra-month variability — the fact that some days are cloudy, some clear; some weekdays see 20% higher load than weekends; some price spikes occur on only 5 days per year but generate 30% of annual BESS arbitrage revenue.
The 8760-hour method preserves every hour of the year, maintaining the chronological sequence and correlation structure of the underlying data. It captures the 14-day cloudy periods, the heatwave-driven demand surges, and the low-probability high-impact price events that typical-day methods inherently miss.
The Benchmark: Six Projects, Three Methods
We ran a controlled benchmark across six hybrid solar-storage project configurations, simulating each at all three temporal resolutions. The projects spanned three geographies (California, Texas, Germany) and two BESS durations (2-hour and 4-hour), holding all other parameters constant: same solar capacity (100 MW DC), same BESS power rating (50 MW), same O&M costs, same debt structure, and the same discount rate of 7% real.
The results are consistent and striking:
- At 1-hour BESS duration, all three methods converged within 0.8 ppt — there is little dispatch flexibility to mis-model when the battery can only shift one hour of energy.
- At 2-hour duration, the gap between 8760-hour and monthly typical-day reached 1.3 ppt in the CAISO case. The annual-average method diverged by 2.7 ppt.
- At 3-hour duration, the gap peaked: 8760-hour simulation showed 14.6% IRR, while monthly typical-day showed 18.1% — a 3.5 ppt overstatement. Annual-average showed 19.8%.
- At 4-hour duration, the gap was 3.3 ppt between 8760 and monthly, and 6.8 ppt between 8760 and annual-average.
- At 5-hour duration, the IRR gap narrowed to 2.2 ppt (8760 vs monthly) because more storage capacity means the system can buffer more variability and the typical-day approximation becomes somewhat less misleading — but it still overstates by a meaningful margin.
The Texas (ERCOT) case showed even wider gaps: up to 4.1 ppt between 8760 and monthly typical-day at 3-hour duration, driven by ERCOT's higher intra-day price volatility. The German case showed the smallest gaps (maximum 2.8 ppt between 8760 and monthly), reflecting Germany's flatter wholesale price profile and more consistent solar resource.
Why the gap peaks at 2–4 hours: This is the duration range where the battery has enough capacity to execute meaningful energy arbitrage but not enough to fully buffer intra-month variability. At very short durations (<1 hour), there is almost no dispatch to model. At very long durations (>6 hours), the battery can absorb intra-month solar variability and the typical-day approximation becomes more accurate. The 2–4 hour sweet spot is where the typical-day method is most wrong.
Why Dispatch Resolution Drives the Gap
The root cause of the IRR overstatement in simplified methods is systematic dispatch error. A monthly typical-day model assumes that every day in a given month has the same solar profile, load profile, and price profile. In reality, these three vectors vary independently, and their correlation structure determines real BESS dispatch revenue.
Three specific mechanisms drive the error:
1. Price-solar correlation misalignment
In high-solar-penetration markets, wholesale electricity prices are negatively correlated with solar generation — the "duck curve" effect. On clear days, midday prices drop (sometimes to zero or negative), while evening ramp prices spike. A monthly typical-day method averages clear and cloudy days together, producing a smoothed price profile that understates both the depth of the midday price trough and the height of the evening peak. Since BESS arbitrage revenue depends on the spread between these two values — charge low, discharge high — the smoothed typical-day profile artificially compresses the spread, reducing apparent dispatch revenue.
But here is the counterintuitive finding: the typical-day method actually overestimates total annual BESS revenue in most cases. Why? Because it assumes the battery can execute the same profitable dispatch cycle every day of the month. In reality, on cloudy days there is less solar energy available to charge the battery (or the battery charges from the grid at higher prices), and on days without strong evening price signals the discharge is less profitable. The typical-day method implicitly assumes that every day delivers the same arbitrage opportunity, inflating the number of "winning" dispatch cycles from the realistic number (~180–220 per year) to the theoretical maximum (365).
2. Intra-month weather variability
A single monthly typical day cannot represent the ten consecutive overcast days that occur in January, or the three-day heatwave with record demand in July. These events affect BESS dispatch in asymmetric ways: during overcast periods, the battery may be under-utilized because solar charging is insufficient; during heatwaves, the battery is dispatched aggressively but may reach SOC limits. The 8760-hour simulation captures these sequences and their effect on battery degradation, auxiliary load, and grid import costs. The typical-day method smooths them away.
3. Battery SOC dynamics across consecutive days
This is the most subtle and most impactful error. A monthly typical-day model treats each day independently — battery SOC resets at midnight to a starting value (usually 50% or a rule-of-thumb minimum). In reality, SOC trajectories carry over from day to day. A battery that was fully discharged on a high-revenue evening may start the next morning at 10% SOC, limiting its ability to capture midday solar charging. Conversely, a battery that charged deeply on a very low-price day may be near 100% SOC at sundown, reducing the evening discharge opportunity.
The 8760-hour simulation with SOC state-keeping across consecutive days captures these carryover effects. In our benchmark, the SOC carryover error accounted for 1.1–1.8 ppt of the IRR gap between 8760-hour and monthly typical-day methods. This is because typical-day models implicitly assume an optimal SOC reset every 24 hours, which is physically impossible in a real dispatch environment.
Financial Impact: From IRR to NPV to Financial Close
The IRR gap translates directly into NPV error, and NPV error translates into financing risk. For a 100 MW solar + 50 MW / 200 MWh hybrid project with 25-year project life, a 7% real discount rate, and a 70/30 debt-to-equity structure:
| Method | Project IRR | NPV ($M) | DSCR (min) | Error relative to 8760 |
|---|---|---|---|---|
| 8760-hour simulation | 14.6% | $38.2M | 1.38x | — |
| Monthly typical-day | 18.1% | $52.7M | 1.52x | +3.5 ppt / +$14.5M NPV |
| Annual-average | 19.8% | $59.4M | 1.61x | +5.2 ppt / +$21.2M NPV |
A project that finances based on the monthly typical-day IRR of 18.1% would be underwritten with a debt service coverage ratio (DSCR) of 1.52x. If the actual (8760-hour) DSCR is 1.38x, the project is operating closer to loan covenants than the lenders expect. In the event of a poor solar year or a price downturn, the project could trip its DSCR floor, triggering cash sweeps, reserve top-ups, or — in the worst case — technical default.
This is not hypothetical. Of the six hybrid projects we analyzed from public financial disclosures (via S&P Global Market Intelligence and Wood Mackenzie project finance databases), four had initial financial projections that exceeded actual first-year operating IRR by 2.5–4.0 ppt. While some of the gap is attributable to construction delays, curtailment, and availability issues, the modeling resolution difference was the single largest identifiable factor in three of the four cases.
When Simplified Methods Work — and When They Don't
Simplified methods are not universally wrong. They are appropriate in specific contexts, and inappropriate in others.
When annual-average or monthly typical-day is acceptable:
- Early-stage project screening — evaluating 50 project sites to identify the top 5 for detailed simulation. The ranking of projects by relative LCOE is often preserved even with simplified methods, because the systematic bias affects all projects similarly within a single market.
- Solar-only projects (no BESS) — without storage, there is no dispatch to mis-model. Annual energy yield (kWh/kWp) and capacity factor are well approximated by monthly methods, though the 10-category PV loss waterfall still benefits from hourly resolution for temperature and inverter clipping effects.
- Long-duration BESS (>8 hours) — at very long durations, the battery can buffer multi-day variability and the typical-day approximation converges toward 8760-hour results.
When 8760-hour simulation is essential:
- Financial close / financing-grade modeling — if lenders are using the project IRR to size debt, using a method with 2–5 ppt systematic bias is a risk that no project finance committee should accept.
- Hybrid projects with 1–6 hours of BESS — this is the zone where the gap between methods is widest and most consequential. The majority of utility-scale hybrid projects currently under development fall into this range.
- Projects in volatile markets — ERCOT, CAISO, Australia NEM, and any market with high price volatility (standard deviation >30% of mean price) amplifies the error gap. Our ERCOT benchmarks showed gaps 30–50% wider than the CAISO case.
- Projects with complex dispatch rules — PPA-shaped dispatch, renewable portfolio standard compliance, minimum SOC requirements, or diesel generator coordination all require sequential 8760-hour modeling to capture real-world constraints.
Running 8760-Hour Simulations in Energy Optima
Energy Optima's simulation engine is built on an 8760-hour modeling foundation. Every project — whether designed through the auto-design wizard or configured manually — runs a full chronological simulation with:
- 8760-hour solar PV generation computed from site-specific TMY data (PVGIS or NSRDB) with the multi-array PV designer, MPPT-level string sizing, and 10-category loss modeling including soiling, temperature, and inverter clipping at hourly resolution.
- 8760-hour BESS dispatch with SOC state-keeping across consecutive days, manufacturer-specific SOH degradation tables (3D interpolation over year × C-rate × cycles/day), and round-trip efficiency that varies with operating point.
- 8760-hour EMS economic optimization that solves a linear program for each dispatch interval, with model-predictive control (MPC) lookahead, SOC reserve constraints, and price-based or schedule-based dispatch targeting.
- 8760-hour financial projections computing revenue, operating expenses, degradation, augmentation timing, and replacement CAPEX across the full 25-year project life — all driven by the 8760-hour dispatch simulation rather than annual averages.
The platform also provides a comparative mode that runs a monthly typical-day approximation alongside the full 8760-hour simulation and reports the gap. This allows the user to quantify the "simplification penalty" — how much IRR and NPV are being lost or overstated by using lower-resolution methods — and to decide whether the full 8760-hour simulation is needed for their specific use case.
For developers and financiers evaluating hybrid projects, the message is straightforward: the cost of running an 8760-hour simulation is negligible (a few minutes of compute time), while the cost of financing a project based on a 3–5 ppt IRR overstatement can reach tens of millions of dollars. The decision about which simulation resolution to use is not a technical preference — it is a risk management decision with direct financial consequences.