DYNVOLT is the EMS and optimization layer for utility-scale battery storage: grid-code-compliant dispatch that enforces the warranty envelope and never overrides the BMS safety layer, with the audit trail lenders and insurers ask for. Our first 20.64 MWh is in commissioning — until it is live, every dispatch figure on this page is simulated. We model before we promise.
A battery without an optimizer is a parked asset. BESS optimization is the dispatch software that decides — every minute, against live prices, forecasts, and constraints — which revenue stream the battery should serve right now: arbitrage, intraday, balancing reserves, or imbalance settlement. The optimizer is where utility-scale battery storage stops being a capital expense and starts being a yield engine.
Ingests price forecasts (day-ahead, intraday, imbalance) and co-located generation forecasts (PV production, wind, demand) on a rolling horizon.
Solves a constrained optimization problem — maximize revenue subject to state-of-charge, cycle budget, thermal envelope, and grid-code limits.
Issues setpoints to the PCS on the market cadence, inside the warranty envelope and the BMS safety layer. Logs every decision with the inputs that drove it.
DYNVOLT sits exactly where every utility-scale BESS needs an EMS: above the PCS, below the trading desk. It owns the dispatch decision, enforces the warranty envelope, and routes ancillary-service bids — the things a generic site controller cannot do because it has no view of the market.
Active and reactive power setpoints to the PCS over Modbus TCP, on the energy-market cadence. One BESS family implemented at register level today — ESMU and PCS maps, alarm decode — awaiting hardware for validation. The PCS executes inside the BMS-defined safety envelope; DYNVOLT never overrides safety.
aFRR, FCR, mFRR — DYNVOLT models capacity bids from the battery state (availability, ramp-rate, SoC), not a static sheet. Modelled today, switching to live dispatch as our first battery completes commissioning. You submit through your BRP or TSO channel.
Voltage and frequency ride-through, reactive support curves, ramp-rate caps. Configured per-zone, enforced at the edge, audit-logged.
Cycle limits, DoD windows, thermal derating, calendar-aging guards. The optimizer literally cannot schedule a dispatch that breaches the envelope the asset owner defines.
One dispatch model across the co-located solar plant and the battery — clipping recovery, ramp-smoothing, curtailment hedging, and self-consumption solved together.
A utility-scale battery is a multi-million-euro asset. The software that dispatches it has to reduce operational and contractual risk, not add it — so DYNVOLT is built diligence-ready: bounded, logged, and yours.
Every dispatch is logged with the price, forecast, state-of-charge and constraints that drove it. Lenders, warranty insurers and asset managers can reconstruct any cycle on demand — diligence-ready, not a black box.
Telemetry lives on your edge node and your tenancy, not locked inside a vendor cloud. Edge-first by architecture — the operating record of your asset belongs to you.
The optimizer cannot breach the warranty envelope, the grid-code limits, or the BMS safety layer — hard constraints enforced at the edge. The upside is optimized; the downside is bounded by design.
Most operators pick one or two. DYNVOLT models four — a co-optimized BESS dispatch plan that respects state-of-charge, cycle limits, and grid-code obligations. Live capture begins when commissioning completes.

Indicative ranges from European ENTSO-E zones, 2025 trailing data. Actual capture depends on zone, market regime, and battery duration. Price-forecast accuracy is the multiplier on every line.
The optimizer treats battery lifetime as a hard boundary, not a suggestion. Cycle count, depth of discharge, rate limits and thermal derating are enforced as constraints the dispatch engine cannot breach — lifetime is protected by design.
Cycle count, depth of discharge, rate limits and thermal derating are enforced as hard constraints — the optimizer cannot schedule a breach. Pricing degradation as a marginal cost inside the objective is our next step, not our current one.
Balance SoC across racks. Rotate cycle wear evenly across the fleet.
Derate dispatch on hot days and enforce the warranty envelope the asset owner defines — cycle, thermal, and depth-of-discharge limits, never breached.
Reactive support, ramp-rate limits, voltage ride-through.
Every dispatch decision is logged with the price and forecast that drove it.
Most BESS projects ship with a generic EMS or run a rules-based arbitrage loop. Both leave money on the table. Co-optimization across all four streams — modelled today, captured live once commissioning completes — is what separates a utility-scale battery from a parked one.
| Capability | Generic EMS | Arbitrage-only optimizer | DYNVOLT co-optimization |
|---|---|---|---|
| Day-ahead arbitrage | ✓ | ✓ | ✓ |
| Intraday continuous trading | — | partial | ✓ |
| aFRR / FCR ancillary services | — | — | modelled |
| Imbalance settlement hedging | — | — | ✓ |
| Warranty-envelope hard constraints | — | partial | ✓ |
| PV + BESS co-optimization | — | — | ✓ |
| Grid-code & warranty envelope | partial | — | ✓ |
| Dispatch-decision audit trail | — | — | ✓ |
Go deeper: the BMS · PCS · EMS · BESS buyer's guide · revenue stacking explained · the platform-wide EMS →