Flexibility and grid codes

What is a virtual power plant?

How a virtual power plant pools batteries, generators and flexible loads across sites: grid-service measurements and a worked availability example.

An open control cabinet with an industrial Gateway, switchgear and battery inverter cabinets in the plant room beyond.

A virtual power plant (VPP) is a group of distributed energy resources on many sites that an aggregator controls as one unit. The aggregator offers that unit to a system operator or a market, and the unit then behaves like one power station. The resources are batteries, standby generators, flexible loads such as refrigeration and HVAC, heat pumps and EV chargers.

Each service sets a minimum unit size. Great Britain's Dynamic Containment needs at least 1 MW per response unit, and allows aggregation only of assets in the same GSP Group. Ten sites with a 100 kW battery each make one 1 MW unit. The system operator or the market pays the aggregator, and the aggregator pays the site owners under contract.

In the United States, the Department of Energy's 2023 Liftoff report estimated 30 to 60 GW of VPP capacity, mostly in demand response programmes. In the EU, Directive (EU) 2019/944 defines aggregation in Article 2(18). Article 13 lets a customer contract with an aggregator independently of its supplier, and Article 17 requires Member States to allow demand response through aggregation.

How a VPP works

A VPP has four layers, and each layer passes specific data to the next.

The four layers of a virtual power plant From the bottom: the asset changes its power, the site system meters it and holds the local limits, the aggregator's platform bids and dispatches the portfolio, and the system operator buys the service and assesses delivery. Measurements travel up the chain and instructions travel down it. Frequency response is drawn separately: each site measures grid frequency itself and responds without a round trip through the chain. System operator or market buys the service, instructs, assesses delivery Aggregator platform forecasts, bids, dispatches, sums the sites Site system meters the asset and the connection, holds the limits Asset battery, load relay or generator changes its power evidence measured kW state frequency response site measures grid frequency and responds on its own Measurements go up, instructions come down Within 1 s: no round trip
The four layers of a VPP. Measurements travel up and instructions travel down; frequency response happens on site, without the round trip.

The asset changes its power: a battery inverter follows a set point, a relay drops a load, a generator starts and synchronises. It reports its own state, such as state of charge, run status or process temperature.

The site system meters the asset and the site connection, and holds the local limits. It reports measured power, available flexibility and asset state to the aggregator. It receives dispatch instructions, availability requests and arm or disarm commands.

The aggregator's platform forecasts what the portfolio can deliver, bids it, dispatches sites and sums their measurements into one signal for the operator.

The system operator or market buys the service, issues instructions and assesses delivery from the metered data.

Frequency response does not use this chain at event time. Each site measures grid frequency itself and responds inside the service's time limit. A service that needs full delivery within 1 s cannot wait for a round trip through a cloud platform. The aggregator's link carries the arming, the response parameters, the availability declarations and the evidence after the event.

VPP, DERMS and microgrid

The boundaries between these three blur in practice. The table shows the typical case.

VPPDERMSMicrogrid
Typical operatorAn aggregator or supplierA network operator, or a utility running its own programmeA site or campus owner, a utility or a third party
PurposeSell flexibility in markets and servicesKeep the network within its thermal and voltage limitsSupply one local system reliably, and island from the grid when designed to
ResourcesMany sites, anywhere on the networkResources on the operator's networkInside one electrical boundary
Main measurement pointEach site's connection, summed into one unitFeeders, substations and connection pointsThe point of common coupling

A microgrid can take part in a VPP as one resource. A VPP spread over many sites is not a microgrid. The microgrid guide covers microgrids in detail.

What a VPP sells

ServiceWhat the sites doExample timing
Frequency responseChange power automatically when local frequency movesGB Dynamic Containment and Moderation: full delivery within 1 s. Dynamic Regulation: within 10 s. Ireland DS3 FFR: within 2 s of the trigger, held to T+10 s
Operating reserveHold a change in power after a frequency event or on instructionIreland DS3: POR T+5 to 15 s, SOR T+15 to 90 s, TOR1 T+90 s to 5 min, TOR2 T+5 to 20 min
Demand flexibilityReduce or shift demand in a contracted windowGB Demand Flexibility Service: half-hourly settlement periods, units from 0.1 MW
Peak and capacity servicesReduce demand at the system or network peakScheduled windows
Energy tradingShift consumption to cheaper periodsDay-ahead to intraday

The Demand Flexibility Service has run year-round as an in-merit tool since 27 November 2024. In Ireland, EirGrid and SONI plan to move the DS3 reserve services into a day-ahead auction under their Future Arrangements for System Services. Check the current service terms before a design uses any number in this table.

The dynamic response guide and the FCAS guide cover frequency services in Great Britain, Ireland and Australia. The EV grid assets guide and the OCPP guide explain how chargers take part. A charger's controllable range depends on how many vehicles are connected and their state of charge.

What a site needs to take part

Metering

The data rate depends on the service, and the difference is large:

ServiceData the operator uses
GB Dynamic Containment and Moderation20 Hz performance data per response unit
GB Dynamic Regulation20 Hz or 2 Hz performance data
Ireland DS3 FFRA device recorder with a minimum resolution of 20 ms
Ireland DS3 POR, SOR and TOR1 from aggregated sitesAggregated demand at 1 Hz or faster, time-stamped and synchronised to a common time, with each site's data within one working day of an event
GB Demand Flexibility ServiceHalf-hourly metered data per unit, plus every input to the baseline

Synchronise the clocks as well. At 20 Hz, a clock error of 50 ms moves the whole trace by one sample, and the assessment then compares the wrong samples.

Decide the measurement boundary before you commission. When the service measures at the site connection, every other load on the site is in the result. A 300 kW load shed during a 200 kW compressor start shows as a 100 kW reduction. Sub-meter the asset as well as the connection, so that you can explain the difference. The baseline guide explains how delivery is calculated against a baseline.

Control with clear authority

A request from the aggregator must reach the asset, and the asset must stay inside its own limits: battery state of charge, production deadlines, comfort bands, minimum run times. Name one system that owns each set point. Write down what the asset does when the aggregator link fails, and after how many seconds.

The DS3 protocol makes some of this explicit for aggregators. The aggregator must be able to enable and disable services remotely at every individual site. It must also stagger load reconnection after an event, so that inrush does not push demand above the pre-event level. The local control guide gives a structure for the failure cases.

Available flexibility

A 500 kW battery is not always a 500 kW resource. Its available power depends on state of charge, temperature and other commitments. A refrigeration process can shed load for 20 minutes but not for two hours. Report the power the asset can hold for the full service window, and update it when that changes.

Proof of delivery

Record four stages separately: the request, its acceptance, the asset's feedback and the measured change in power. Suppose the aggregator sends a 400 kW discharge set point. The battery controller acknowledges it and reports 400 kW. The meter shows 250 kW, because the battery reached its state-of-charge floor after six minutes. The first three records say the event succeeded. Only the fourth shows the shortfall and when it started. The BESS command verification guide covers this in detail.

Worked example: declaring a three-site unit

An aggregator must declare availability for a 60-minute demand reduction window. It has three sites with 1.7 MW of nameplate flexibility.

SiteNameplateLimit in this windowDeclared
Battery, 500 kW / 1,000 kWh, 70% state of charge, 10% floor500 kW600 kWh usable holds 500 kW for 72 minutes500 kW
Cold store compressors400 kWProduct temperature limits the shed to 20 minutes0 kW
Standby generator, 800 kW, no export permitted800 kWSite import is 600 kW, so import can fall by only 600 kW600 kW
Unit1,700 kW1,100 kW

If the window were 90 minutes, the battery could hold only 600 kWh ÷ 1.5 h = 400 kW, and the unit would drop to 1,000 kW. The cold store is still useful: a 20-minute shed fits a reserve window such as DS3 TOR2, which is assessed from T+5 to T+20 minutes. The generator's limit moves with site load. If site import falls to 450 kW during the window, the generator's declared figure must fall with it.

Where delivery fails

Each of these failures shows in the data if the site records it.

FailureWhat happensWhat shows it
Energy runs outA battery or thermal store reaches its limit before the window endsThe asset's state of charge or temperature record, before the meter shows it
ReboundLoads restart together after the event and push demand above the baseline. DS3 FFR fails if the energy lost from T+10 to T+20 s exceeds the energy delivered up to T+10 sSite import at the service's data rate for at least 20 s after the event
Data or availability gapIn GB dynamic services, any unavailability in a half-hour settlement period sets that period's availability factor to zero, even if the asset respondedCompleteness of the telemetry and availability record per settlement period
Late declarationA DS3 unit must not declare its availability down in real time during a frequency event, so the declaration made before the event is the one assessedDeclared availability against measured capability before each event
Outside toleranceDS3 FFR passes a sample within the larger of 10% of the expected response or 1 MW, capped at 50% of the expected response for small unitsSample-by-sample comparison of expected and achieved response

The tolerance absorbs measurement error. Size the declaration so that the expected response passes at every sample with the tolerance unused.

Choose the asset interface

Build the site inventory from the installed model and its communication option. An inverter's measurement map, a generator's operating state and the settlement meter answer different questions. These examples link to model-specific setup instructions and manufacturer references.

AssetMonitoring starting pointWhat to resolve for dispatch
Sungrow SH10RT hybrid inverterLocal Modbus TCP; keep PV, battery and site-meter measurements distinctA separate authorised command interface and ownership of battery or export set points
DSE8620 MKII generator controllerModbus RTU or TCP with the installed personality and configured pagesStart/stop authority, breaker interlocks and permitted parallel operation
Carlo Gavazzi EM530/EM540 S1 meterRS-485 Modbus RTU; match the CT or direct-connected variant and scalingMeasurement boundary, sign and interval aggregation for the chosen service

These are monitoring paths. A register read does not establish a dispatch path. Use the local control matrix to assign command ownership and failure behaviour, then compare the resulting power change with the Demand response event calculator.

Start with one site

  1. List each flexible asset with its interface (relay contact or Modbus register map), its power range in each direction and how long it can hold a change.
  2. Meter the site connection and each asset at the resolution the target service uses. Collect several weeks of data before the first event, so that the baseline has history.
  3. Agree with the asset owner and the aggregator which system owns each set point, and what the asset does when the link drops.
  4. Run test events at the service's data rate. Compare the measured response with the request at every sample, against the service's tolerance.
  5. Check the rebound and the data completeness of each test event, as well as the response. Enrol more sites when the first site passes the service's own test, not before.

Flexibility with EpiSensor

The ZDR demand response controller meters a three-phase supply at Class 0.5S, samples frequency at least every 100 ms at 0.01 Hz resolution and responds to under-frequency within 100 ms. The relay variants shed a load or start a generator. The battery-control variant follows frequency and sends a changing set point to a battery or UPS over Modbus. Two variants record each event at 20 ms with GPS time, which is the resolution that DS3 FFR assessment uses. Confirm the recorder against the TSO's device standard for your service. In a 2018 project at Dublin Airport, EpiSensor frequency monitoring and control brought the airport's backup generation into DS3 (3 MW) and I-SEM (8 MW). These are separate programme figures, not one combined fast-response capacity.

A ZEM electricity monitor sub-meters the other circuits, so that you can separate the asset's response from other loads. A Gateway running Edge keeps the data and the automation on site, and exports measurements to the aggregator's platform over MQTT or HTTPS. Agree separately with the aggregator how dispatch instructions reach the site. The demand response solution shows a complete system. For an Italian portfolio, use the TIDE distributed-flexibility guide to keep the BRP, BSP, UVAN or UVAZ and settlement records separate from this owner-side data path. A renewable energy community can use the separate Italy CER and shared-energy guide to distinguish owner telemetry from GSE measurements, hourly sharing and tariff settlement.

Common questions

How big does a site need to be to join a virtual power plant?

The site itself can be small. The minimum applies to the aggregated unit that the aggregator offers. Great Britain's Dynamic Containment, Moderation and Regulation need at least 1 MW per response unit, and the Demand Flexibility Service accepts units from 0.1 MW since 9 April 2026. Ten sites with a 100 kW battery each can make one 1 MW unit.

How does a virtual power plant make money?

The system operator or a market pays the aggregator, and the aggregator shares the revenue with the site owners under a contract. Some services pay for availability only: Great Britain's dynamic frequency services pay per MW per hour of contracted availability. Others pay for measured delivery against a baseline, as the Demand Flexibility Service does.

What is the difference between a VPP and a microgrid?

A microgrid is a set of loads and resources inside one electrical boundary that can operate as a unit, and often disconnect from the grid. A VPP coordinates resources on many sites that stay connected to the grid and need not share an electrical boundary. A microgrid can be one resource inside a VPP.

What is DERMS?

A distributed energy resource management system is software that monitors and dispatches distributed resources on a network. Network operators use it to keep feeders and substations within limits, and some utilities run their own VPP programmes through one. The difference from a VPP is usually who operates it and why, not the software.