What This Simulation Covers
A 50 MWh battery system in dallas, simulated at module level for 30 days. The window runs from 2025-10-01 to 2025-10-30, covering typical ERCOT fall operations.
Every module (1,120 across 14 containers) runs through real market prices, grid frequency signals, and weather data. The simulation tracks revenue from two streams (ancillary services and energy arbitrage) and measures degradation using a physics-based degradation model.
The Asset Layout
14 containers arranged in a grid. Each holds 10 racks of 8 modules. Every module runs both ancillary services and energy arbitrage in a unified dispatch.
Electricity Price Patterns Over the Window
DAM (day-ahead market) prices across the simulation period, rendered as a surface. The scheduler uses this 14-day lookback to decide when to charge (buy cheap) and discharge (sell high) each day. Price variation across the window shows which days the scheduler targets for arbitrage.
Daily Revenue Breakdown
Revenue per day split into ancillary (orange) and arbitrage (yellow). Daily revenue ranges from $400 to $3,200 depending on price spreads. 30-day total: $47,505.
Revenue vs Cycling Cost: Which Days Are Worth Dispatching?
Battery degradation has two components. Calendar aging happens regardless of dispatch: time and temperature wear the cells whether you operate or not. Cycling wear only happens when you charge and discharge.
The dispatch decision is about cycling cost alone. Calendar aging is a sunk cost. This curve sorts days by revenue-per-cycling-cost ratio (best first) and plots cumulative revenue against cumulative cycling wear. The knee point marks where marginal returns drop: days before the knee earn well above their cycling cost, days after contribute diminishing returns.
Daily P&L: Calendar, Cycling, and Net Profit
Each day's revenue alongside its calendar cost, cycling cost, and net profit. Sorted by revenue-per-cycling-cost ratio. Calendar cost is roughly constant across days. Cycling cost varies with how hard the system works.
Capacity Fade Per Day
Daily degradation percentage from the degradation model. Calendar aging (time and temperature) dominates over cycling degradation. Total fleet-average fade over 30 days: 1.122%.
Degradation Distribution Across the Fleet
Same physical layout, colored by how much capacity each module lost over 30 days. Manufacturing variation in internal resistance causes uneven wear. Average retention: 98.878%. Hover to see individual module values.
What Drives Uneven Wear
Calendar fade vs cycle fade plotted against temperature, SOC, and equivalent full cycles. Calendar aging dominates, driven by temperature and time at high SOC. Cycle fade is smaller but varies with how hard each module works.
Temperature Distribution Across Modules
Peak temperature for every module over the 30-day window. Modules with lower internal resistance draw more current and run warmer. Temperature is the primary driver of calendar aging. This shows where thermal risk concentrates.
Run This Simulation on Your Fleet Data
Every chart above runs live in our copilot. Set your system size, location, and container type to see what 30 days of operations look like for your specific asset.
Launch Copilot