aFRR (automatic Frequency Restoration Reserve) is activated automatically by the TSO's controller and must be fully delivered within 5 minutes; mFRR (manual Frequency Restoration Reserve) is called manually by a dispatcher, has 12.5 minutes, and mainly frees aFRR up again. Both restore 50 Hz after FCR has stopped the deviation. Below: the aFRR vs mFRR difference in detail, with the numbers.
| aFRR | mFRR | |
|---|---|---|
| Full name | automatic Frequency Restoration Reserve | manual Frequency Restoration Reserve |
| Activated by | the TSO's controller, automatically, every few seconds | a dispatcher, manually |
| Full activation time | 5 minutes | 12.5 minutes |
| Main job | restore frequency to 50 Hz | take over longer imbalances so aFRR is free again |
| Older name | secondary control reserve | tertiary reserve (Minutenreserve) |
| European energy platform | PICASSO, 4-second cycle | MARI, quarter-hourly auction |
| Paid for | capacity (being ready) + activated energy | capacity (being ready) + activated energy |
| Upward activation, CZ, Aug 2026 | in 76.3 % of quarter hours | in 31.9 % of quarter hours |
| Energy price, CZ, Aug 2026 | median 135.5 EUR/MWh | 75 EUR/MWh (administrative) |
Below: where FCR and RR fit, how often each product really runs, what it pays, and which endpoint gives you the data.
aFRR (automatic Frequency Restoration Reserve) is balancing power the TSO activates automatically, by a control signal, to bring frequency back to 50 Hz within about five minutes. mFRR (manual Frequency Restoration Reserve) does the same job more slowly: a dispatcher calls it, it has up to 12.5 minutes to deliver, and its main task is to free aFRR up again.
Grid frequency has to stay at 50 Hz. When generation and consumption drift apart, reserves close the gap — in layers, each slower and cheaper than the one before it.
| Reserve | Full name | Activated | Controlled by |
|---|---|---|---|
| FCR | Frequency Containment Reserve | within 30 s, fully by 30 s | automatically, by local frequency |
| aFRR | automatic Frequency Restoration Reserve | seconds, full within 5 min | automatically, by a signal from the TSO |
| mFRR | manual Frequency Restoration Reserve | within 12.5 min | manually, dispatcher calls it |
| RR | Replacement Reserve | 30 min and beyond | manually, to free up the faster layers |
FCR stops the fall, aFRR restores the frequency, mFRR relieves aFRR so it is free again. That sequencing is the whole point: the fast product is scarce and expensive, so the system keeps handing the load down to slower ones.
aFRR — automatic Frequency Restoration Reserve — is balancing power that the transmission system operator (TSO) activates automatically to bring grid frequency back to 50 Hz. It is also known as secondary control reserve (Sekundärregelleistung in Germany).
The TSO's load-frequency controller measures the area control error every few seconds and sends setpoints to the units that sold aFRR capacity. They must start at once and reach the requested output within five minutes, the full activation time of the European standard product. aFRR is bought in two steps: capacity (being ready) in advance, energy (actually moving) when activated, upward and downward separately.
mFRR — manual Frequency Restoration Reserve — is the slower layer of balancing power, activated by a dispatcher instead of a controller. It used to be called tertiary reserve (Minutenreserve in Germany).
A unit called for mFRR has 12.5 minutes to deliver full power, the full activation time of the standard product on the European MARI platform. Its main job is to take over a longer-lasting imbalance so that the scarce, fast aFRR is free again for the next deviation.
FCR — Frequency Containment Reserve — is the fastest reserve: it reacts to the frequency itself, locally, without any signal from the TSO. It is also called primary control reserve.
FCR must be fully activated within 30 seconds when frequency deviates by 200 mHz. It only stops the frequency from falling or rising further; restoring 50 Hz is left to aFRR. Continental Europe needs about 3 000 MW of FCR in total. Roughly half of it is procured jointly in a daily auction by the TSOs of the FCR Cooperation; the rest is procured nationally by the other TSOs.
Definitions make aFRR sound like an emergency measure. It is not — it runs almost constantly. These are the Czech control area figures for August 2026, 2 976 quarter hours:
| Product | Share of quarter hours with activation | Median when active | Peak |
|---|---|---|---|
| aFRR upward | 76.3 % | 3.6 MW | 131.3 MW |
| aFRR downward | 71.1 % | −3.5 MW | −100 MW range |
| mFRR upward | 31.9 % | 2.0 MW | 55.7 MW |
| mFRR downward | 6.0 % | −2.8 MW | rare |
Both directions of aFRR are active in roughly three quarters of all quarter hours, and often both within the same quarter hour — the imbalance flips sign inside fifteen minutes and the controller follows it. Anyone modelling a quarter hour as "short" or "long" is already simplifying.
mFRR is a different animal: upward five times more often than downward. Downward mFRR means telling plants to produce less, and systems are short far more often than long.
Czech regulating energy prices for the same month, 44 640 minute values:
| Product | Median | p95 | Maximum |
|---|---|---|---|
| aFRR | 135.5 EUR/MWh | 221.8 EUR/MWh | 6 688 EUR/MWh |
| mFRR | 75 EUR/MWh (administrative) | — | — |
The median is unremarkable and the maximum is fifty times higher. That gap is the entire economics of balancing. Reserve revenue is not a steady stream with occasional noise — it is a flat line with a handful of hours that pay for the year.
The same shape shows up in the imbalance settlement price, which is built from these activations. We measured that on 92 018 quarter hours with data between January 2022 and August 2026 (the series has gaps): the tail is 18.6 % of quarter hours but 35.9 % of total magnitude.
Until recently every TSO balanced alone. Now the energy side of each product clears on a shared European platform, which is why a German activation can be served by a Czech unit:
| Platform | Product | What it does |
|---|---|---|
| PICASSO | aFRR energy | Continuous cross-border exchange of aFRR energy, 4-second cycle. |
| MARI | mFRR energy | Quarter-hourly auction for mFRR energy across participating TSOs. |
| TERRE | RR energy | Replacement reserve exchange. Stopped operating on 30 December 2025 and was decommissioned in 2026; there is no European RR platform today. |
| IN/IF | imbalance netting | Nets opposing imbalances between areas before anything is activated at all — the cheapest balancing there is. |
Practical consequence: your local activation price is no longer a local variable. It is set by the marginal bid across a coupled area, which is why prices in neighbouring zones move together until the border congests, and then abruptly do not.
Every TSO publishes this, but nowhere the same way.
| Market | Source | Access |
|---|---|---|
| Pan-European | ENTSO-E Transparency — accepted and activated volumes, prices, per area | free, token by e-mail request |
| Germany | Regelleistung.net — capacity and energy auctions, merit order lists, the most detailed in Europe | free REST API |
| Czechia | ČEPS AktivaceSVRvCR and AktualniCenaRE — the figures on this page | free SOAP, no key |
| Austria | APG Markttransparenz | free, CSV export |
| Nordics | Fingrid and Energinet open data | free REST APIs |
| Britain | Elexon BMRS — bid-offer acceptances | free REST API, no key |
# Czech aFRR and mFRR activation, no API key needed
from ceps_ote import Ceps
ceps = Ceps()
akt = ceps.balancing_activation("2026-08-01", "2026-09-01")
for t, row in list(akt.items())[:3]:
print(t, row["aFRR+ [MW]"], row["mFRR+ [MW]"])That client is on GitHub: ceps-ote, one file, no dependencies. For everything else there is entsoe-quickstart and the ENTSO-E API guide.
We build market data pipelines and dashboards for exactly this kind of data — activation feeds, imbalance settlement, backtesting against real published values. Tell us what you are trying to see.
info@progrunners.com