The short answer is yes — you can run FCR (Primärregelleistung) and EPEX SPOT intraday arbitrage on the same physical battery. The longer answer is that doing both simultaneously on the same capacity block is physically impossible, but a well-designed control system can allocate capacity between them across time to capture revenue from both markets. The approach requires clear prequalification compliance, careful SOC management, and a dispatch model that respects each market's operational constraints without letting them conflict.
This piece goes through the specifics: what the prequalification rules actually permit, how to structure the SOC allocation, where the real tensions are, and what stacked revenue looks like in practice versus the theoretical maximum.
The SOC Conflict Explained
FCR requires the battery to maintain symmetric response availability at all times during prequalified periods. The ENTSO-E FCR specification — adopted by all four German TSOs — requires that you can deploy your full prequalified power in both charge and discharge directions simultaneously as frequency deviates. In practice this means your SOC must stay within a band where both directions are possible. Most operators and TSOs work with a 30–70% SOC operating window during FCR service, though the exact requirement is that you must not curtail FCR response due to SOC limits during the service period.
EPEX intraday arbitrage, on the other hand, wants you at low SOC before a cheap charging window and high SOC before an expensive discharge window. A dispatch system targeting maximum intraday spread needs the freedom to take the battery to 5% SOC (to charge from a negative-price period) and 95% SOC (to discharge at peak price). These are directly incompatible with FCR's symmetric SOC requirement.
The resolution is that you cannot do both at full intensity at the same time. You have three structurally sound approaches:
- Capacity split: Allocate a fixed portion of battery capacity to FCR (kept in the 30–70% band) and a separate portion to intraday trading (free to swing 5–95%). Requires oversizing the battery — you need enough nameplate capacity that both allocations are meaningful.
- Time split (weekly calendar): Commit FCR for specific weeks and trade spot in other weeks. FCR is tendered weekly, so you can simply not bid FCR in weeks where you want full intraday freedom.
- Hybrid SOC segmentation: During FCR service hours (typically 0–24 but can be sub-periods if the TSO permits partial-day prequalification), hold the FCR SOC band. In non-service hours, trade freely. In Germany, the standard FCR prequalification does not support partial-day service, so this approach requires negotiation with the TSO or aggregator.
Prequalification Rules for Stacking
The key regulatory question is whether German FCR prequalification rules permit the battery to also trade EPEX intraday while prequalified. The answer, based on the TransnetBW and TenneT prequalification frameworks, is yes — with conditions.
The TSO does not care what else the battery is doing as long as FCR response capability is continuously maintained during the prequalified service period. The prequalification contract requires you to:
- Maintain prequalified symmetric power availability at all times during the service period
- Not curtail FCR response due to SOC depletion in either direction
- Report any availability curtailment to the TSO immediately
- Meet minimum availability thresholds (typically 90% uptime per week)
Nothing in these requirements prevents you from simultaneously placing EPEX trades, provided the FCR capacity block is actually maintained. What this means operationally: the prequalified FCR capacity must be treated as a hard reserve. If you prequalify 50 kW of a 100 kW battery, the dispatch system must ensure those 50 kW and their associated SOC headroom are never committed to EPEX trading during FCR service periods. The remaining 50 kW can do whatever the intraday market offers.
We've found that the aggregators handling FCR for sub-1 MW systems are generally familiar with this arrangement — it's how most well-managed commercial storage assets operate. What they push back on is any situation where FCR availability gaps appear in telemetry data. A single missed FCR response event due to SOC being outside the band triggers a penalty and a warning. Two in a short period risks loss of prequalification status for that asset.
Weekly Calendar Approach
The cleanest implementation for commercial systems under 200 kWh is the weekly calendar split. Because FCR is tendered weekly with submission on Monday for the following Monday–Sunday service window, you have a natural 7-day planning horizon.
Our optimizer uses a 4-week rolling FCR commitment calendar. The input parameters:
- Target FCR revenue per quarter (user-configurable, based on current tender price expectations)
- Minimum FCR commitment weeks (to maintain prequalification standing with aggregator)
- Intraday revenue forecast for the next 4 weeks (derived from weather model + historical volatility)
The optimizer allocates FCR commitment for the weeks where the intraday opportunity cost is lowest — typically mid-autumn weeks when renewable volatility is moderate and FCR prices are relatively high. High-volatility weeks (storm events, cold snaps with wind lulls) are reserved for unconstrained intraday trading.
In practice for a 100 kWh system, the typical output is 2–3 FCR commitment weeks per month with 1–2 unconstrained intraday weeks. This produces roughly 55–65% of theoretical maximum FCR revenue (compared to running FCR every week) but preserves access to the highest-value intraday trading periods. The net result typically beats pure-FCR-only participation because the weeks reserved for intraday often coincide with price events that would have been very expensive opportunity costs.
Intraday SOC Stacking During FCR Weeks
Even during FCR commitment weeks, partial intraday revenue is accessible. The mechanism is the FCR-reserved capacity split on the 100 kWh battery:
- 50 kW / 40–50 kWh is the FCR allocation. SOC for this block is held in 30–70% of the FCR allocation's capacity. It is not touched by intraday dispatch.
- 50 kW / 50–60 kWh remaining capacity is freely tradeable on EPEX intraday.
This is implemented at the BMS level by defining two virtual state-of-charge segments. The inverter firmware must support segmented SOC management — not all inverter platforms do this natively. Systems from Fronius (Tauro series), KACO (blueplanet series), and some ABB configurations support configurable SOC partitioning via Modbus setpoints, which is how we implement this. Older or simpler inverter platforms may require a software-layer SOC governor that enforces the partition rules by limiting charge/discharge commands.
The tradeoff: each half of a 100 kWh battery operating independently has less intraday trading flexibility than the full 100 kWh would have. The 50 kWh intraday-free slice can execute approximately 1 full cycle per day (charging 50 kWh in cheap windows, discharging 50 kWh at peak prices). Compare to 1.5–2 full cycles per day achievable with unconstrained 100 kWh. Revenue impact is roughly 40–50% of full intraday capacity utilization.
Operational Limits and Where Stacking Breaks Down
We're not saying capacity stacking works cleanly in all scenarios — there are conditions where the approach fails and you have to choose between FCR and intraday:
Extended Dunkelflaute events: During 3–5 day wind-and-solar lull periods in winter, intraday prices spike to €200–€500/MWh for extended stretches. The opportunity cost of the FCR allocation is extreme. If you're mid-commitment-week when a Dunkelflaute starts, you cannot exit the FCR commitment without penalty. This is why the optimizer should maintain some FCR-free weeks as buffer even when FCR prices are high.
Negative intraday prices: When EPEX QH prices go deeply negative (–€50 to –€200/MWh), aggressive charging is optimal. If your FCR partition is maintaining 30–70% SOC, you're charging the FCR segment to its upper bound before the intraday segment can get fully loaded. The result: you miss some of the cheap charging window. For most commercial batteries at 1C rate and 50% capacity available for intraday, this costs 10–15 kWh of missed charging on deeply negative days.
SOC rebalancing conflicts: After several days of FCR operation, the two virtual segments may drift out of their intended SOC split due to asymmetric frequency response (more discharge than charge, or vice versa). Rebalancing both segments to their target SOC simultaneously requires careful sequencing of charge/discharge commands across the two virtual pools. Doing this incorrectly can briefly violate FCR availability. Our implementation handles this with a scheduled rebalancing window in the overnight low-demand hours when FCR response events are statistically less frequent.
What the Stacked Revenue Numbers Look Like
For a 100 kWh LFP system running the hybrid FCR + intraday stack we've described (2–3 FCR weeks per month, capacity split during FCR weeks), with a peak shaving obligation on top:
| Service | Configuration | Annual revenue estimate |
|---|---|---|
| FCR (Primärregelleistung) | 50 kW prequalified, 2.5 weeks/month avg commitment | €2,400–€3,800/year |
| EPEX intraday arbitrage | Full 100 kWh on unconstrained weeks; 50 kWh slice on FCR weeks | €4,800–€7,200/year |
| Peak shaving | 60 kW reduction target, business hours | €8,500–€10,800/year |
| Total stacked | €15,700–€21,800/year |
The range is wide because intraday revenue varies significantly with German market volatility in a given year. The FCR and peak shaving components are more predictable; intraday is the variable factor. The floor estimate (€15,700) reflects a low-volatility year with compressed intraday spreads. The ceiling (€21,800) reflects a year with multiple extended Dunkelflaute events captured as intraday revenue during non-FCR weeks.
The key takeaway from two years of operating this type of multi-service dispatch logic: the optimizer decisions about which weeks to commit to FCR versus leave open for intraday matter more than fine-tuning the intraday spread threshold. Getting the macro allocation right is where most of the value difference between a well-managed and a poorly-managed stacking strategy lives. The week-by-week FCR tender decision is where we focus the most attention in encosa's planning module.