Flexibility and grid codes

Demand response baselines and measurement

How demand response is measured against a baseline: DFS P376 and self-nominated baselines, capped same-day adjustment, baseline accuracy, and the data that proves a response.

A demand response programme pays for a change in demand, and a change needs a reference: the baseline. It is calculated from past days, not measured, so its method sets how much of the response is counted.

This guide is part of the flexibility series. The IoT in demand response guide follows a whole event, from the instruction to settlement.

A worked example

A site in the GB Demand Flexibility Service (DFS) turns down for one settlement period, 17:00 to 17:30 on a working day. It is one meter point in an aggregated DFS unit, because the minimum unit is 0.1 MW. The DFS P376 baseline for that half-hour is the mean of the same half-hour on the 10 most recent eligible working days. On those days the site used 98, 102, 100, 97, 105, 99, 101, 103, 96 and 99 kWh. The sum is 1,000 kWh, so the baseline is 100 kWh.

Energy in the half-hourAverage power
Baseline100 kWh200 kW
Metered75 kWh150 kW
Delivered25 kWh50 kW

DFS files carry kWh per settlement period. Average power is the energy divided by 0.5 h. NESO assesses delivery for the whole DFS unit against its accepted quantity. Between 50% and 120% of that quantity there is no penalty. Between 25% and 50% the payment is reduced, below 25% it is zero, and delivery above 120% is capped. The NESO guidance gives a unit that delivered 36.7% of 15 MWh: it was settled on 23.3%, or 3.5 MWh.

The result moves one for one with the baseline error. If a busy fortnight in the history puts the baseline 5% high, at 210 kW, the site is credited with 60 kW, 20% more than it delivered. If the baseline is 5% low, at 190 kW, the credit falls to 40 kW.

Rebound is the extra demand after an event, as deferred load recovers: chillers pull the space temperature back down and paused processes restart. DFS pays for delivery in the contracted settlement periods only. Rebound in the periods that follow is outside the payment, but it is on the site's bill and can set a new peak. The calculator below adds two rebound periods to the example. The site avoids 25 kWh during the event and uses 17 kWh above the baseline in the next hour, so the net saving is 8 kWh.

Baseline methods

MethodHow it worksWhere it fails
Averaging similar daysThe mean of the same settlement period on recent eligible days. DFS P376 uses the 10 most recent eligible working days in the previous 60 days. For a non-working day it takes the 4 most recent eligible non-working days and averages the 2 median values.Weather-sensitive loads on a hot or cold event day, and sites with irregular production
Weather matchingThe mean of the eligible days with the closest outdoor temperature. The 2017 CAISO proposal used the 4 days with the closest daily maximum temperature.Needs a representative weather station and a history that covers the event-day temperature
Self-nominated baselineThe site submits its own forecast for each settlement period before the eventThe forecast carries all the risk: any forecast error counts as response
Pre-event levelThe demand over a short window just before the instructionValid only for responses of seconds to minutes, before the load drifts on its own

Averaging works well where load repeats from day to day. The California ISO settled demand response on a 10-of-10 weekday average, with a 20% adjustment cap, until 2017. Its baseline study found that this method worked reasonably for large commercial sites that are not weather-sensitive. It underestimated the response of weather-sensitive commercial sites and of residential resources.

P376 has a minimum history. With 5 to 9 eligible working days in the 60-day window, DFS uses all of them. With fewer than 5, the meter point cannot be used: its baseline defaults to its metered out-turn, so it shows zero delivery. Event days are not eligible. These include days with a DFS event, a DNO flexibility instruction on 48 hours' notice or less, a Capacity Market event, or delivery in another stacked service on 48 hours' notice or less. Frequent events therefore push the averaging window back to older, less representative days.

Since 9 April 2026, industrial and commercial meter points and intermittent renewable meter points can use a self-nominated baseline in DFS. The participant submits a forecast in kWh for every half-hour of the delivery day. The file can arrive no earlier than 24 hours before NESO publishes the service requirement, and no later than its publication. NESO uses the latest version. Domestic meter points stay on P376. The same change lowered the minimum DFS unit from 1 MW to 0.1 MW. A forecast has no history on the event day to check it against. Keep the forecast model, its inputs and its error on non-event days, because DFS requires the participant to keep the baseline for every settled meter point for audit.

Same-day adjustment

An averaging baseline knows nothing about the event day. A same-day adjustment, often called a morning adjustment, corrects the baseline with the site's own load in the hours before the event. In the multiplicative form, the ratio is the metered energy divided by the unadjusted baseline energy over an adjustment window, and the ratio scales the baseline. An additive form adds the difference in kW. The rules proposed to CAISO in 2017 used a 2-hour window that ends 2 hours before the event, and a second 2-hour window that starts 2 hours after it. The buffers keep pre-cooling, early shutdowns and rebound out of the ratio.

Continue the example with the pre-event window only. Between 13:00 and 15:00 the site used 360 kWh against an unadjusted baseline of 383 kWh. The ratio is 0.94, so the adjusted baseline is 0.94 × 200 kW = 188 kW. The counted reduction falls from 50 kW to 38 kW.

Programmes cap the ratio. CAISO's 10-of-10 baseline allowed ±20%, a ratio from 0.8 to 1.2. The 2017 weather-matching proposal allowed 0.71 to 1.4. The CAISO study gives two reasons for a cap: it reduces the variance of the estimate, and it limits how far a site can move its own baseline by changing its load before an event. Without a buffer and a cap, a site that runs extra load in the window raises its baseline. At a ratio of 1.2, the example baseline becomes 240 kW and the counted reduction becomes 90 kW.

Coughlin and colleagues at Lawrence Berkeley National Laboratory tested seven baseline models on 33 commercial buildings in California. A morning adjustment reduced the bias and improved the accuracy of all seven. For buildings with highly variable load, no model gave satisfactory results. Averaging methods were the most accurate for those buildings, but not the least biased.

The DFS guidance (version 18, August 2026) describes no same-day adjustment to the P376 baseline. Check the method in the current documents of the programme you join.

Check the baseline before the first event

Test the method on days without an event. On those days, any difference between the baseline and the metered demand is error. The CAISO study uses two measures. Mean percent error is the average signed error divided by the mean load, and it shows bias: a positive value means the baseline over-predicts. CV(RMSE) is the root mean square error divided by the mean load, and it shows how far single days miss.

Compare both with the committed reduction, not with the load. The CAISO report gives the arithmetic: on a site that cuts 20% of its load, a baseline biased 2% high reports a 22% cut, or 110% of the true reduction. In the example, a CV(RMSE) of 5% on a 200 kW baseline is 10 kW on a typical day, one fifth of the 50 kW commitment.

The meter is rarely the largest error. Class 0.5S metering to IEC 62053-22 limits the meter error to ±0.5% at its reference conditions, which is 1 kW on a 200 kW load. A baseline that is 5% out is 10 kW.

What the site's data must show

ItemWhat to agree and record
Measurement boundaryThe boundary meter, a sub-meter or the asset, and what is inside it. DFS accepts a sub-meter when the boundary MPAN is also given.
IntervalThe settlement interval (30 minutes in DFS), and whether each value is labelled by its start or its end
TimeLocal time or UTC, and the clock source. DFS files use local time. A clock-change day has 46 or 50 settlement periods, not 48.
SignDFS counts an import MPAN as positive when importing and an export MPAN as positive when exporting
QualityHow missing, estimated, late and invalid values are treated
HistoryThe eligible days the method needs. P376 needs at least 5 eligible working days in the previous 60, and uses 10.

Generation and storage inside the boundary change what is counted. For a turn-down, DFS calculates delivery as (baseline import − baseline export) − (metered import − metered export). Take a site with 80 kW of solar and a net import of 40 kW. The site stops 60 kW of load, so the boundary moves to 20 kW net export. Delivery is (40 − 0) − (0 − 20) = 60 kW, and all of it counts. For the same reason, a self-nominated baseline for an import MPAN can be negative. If a battery or generator inside the boundary starts at the event, the boundary meter counts its output as response. A sub-meter on the controlled load counts only the load.

Late data must be filed by the time it was measured, not the time it arrived. Duplicates must not count twice. The timestamps guide explains both.

Unusual days

A holiday, a production stoppage or a failed chiller changes demand with or without an event. The baseline rule decides what happens to that day. Under P376, an event day leaves the pool, and the next older eligible day in the 60-day window takes its place. The DFS guidance excludes only event days. A working day with a stoppage therefore stays in the pool and pulls the baseline down for the next 10 working days. Record the reason for each unusual day. Until that day drops out of the pool, the participant can bid less for the unit, or move an industrial or commercial meter point to a self-nominated baseline. If the programme allows a gap to be estimated, mark each estimated value as estimated.

Keep control evidence separate

An acknowledged dispatch shows that the instruction arrived. The asset's feedback shows that it acted. The metered change shows what the grid saw. DFS makes the first record mandatory for a manual opt-in meter point. The participant must hold a confirmation from that meter point, received between the bid and the start of delivery, or the meter point cannot be settled. For a directly instructed load, the instruction is the confirmation, and the participant must keep it.

Disputes over the metered record come from specific faults. An interval is missing from the baseline window. A logger clock is one interval out, so the reduction lands in the wrong settlement period. An estimated value is submitted as metered. The BESS command verification guide covers the control side.

Prepare for a programme

  1. Get the current baseline method, settlement interval, file format and sign convention from the aggregator or programme. The virtual power plant guide explains who does what.
  2. Meter the site at the settlement interval or finer. For a P376 baseline, start at least 3 weeks before the first event, so that 10 eligible working days remain after holidays. For weather matching, meter across the temperatures the events will see.
  3. Calculate the baseline for 10 or more non-event days and compare it with the metered demand. Record the bias and the CV(RMSE) in kW, and compare them with the committed reduction.
  4. Run a test event. Compare the calculated reduction at the boundary with the metered change at each controlled asset.
  5. Store the source intervals, the baseline calculation and the method version together.

Metering and control with EpiSensor

A ZDR demand response controller meters a three-phase supply at Class 0.5S (IEC 62053-22) and controls the load it serves: a relay sheds a load or starts a generator, or a Modbus set point drives a battery. The Class 0.5S rating covers the controller and its current transformers together. It records the control action and the metered change on one clock. Models with GPS/GNSS time sync record events at 20 ms resolution. ZEM electricity monitors meter other circuits at the same class, which gives a sub-meter record for each controlled load. A Gateway running Edge keeps the interval history on site with the measurement time of each reading, and sends it to the aggregator's platform over MQTT or HTTP. The demand response solution shows the full system.

Common questions

What is a demand response baseline?

An estimate of how much electricity a site would have used during an event if it had not responded. The response is the baseline minus the metered consumption. Each programme defines its own baseline method.

How is a demand response baseline calculated?

Most methods average the same settlement period on recent eligible days. The P376 method used by the GB Demand Flexibility Service takes the 10 most recent eligible working days in the previous 60 days. Other methods select days with a similar outdoor temperature, or use a schedule that the site submits before the event.

What is a morning adjustment in demand response?

A same-day correction that scales the baseline by the ratio of metered load to baseline load in a window before the event. In the rules proposed to California ISO in 2017, the window ends 2 hours before the event, so pre-cooling does not enter it, and the ratio is capped. A Lawrence Berkeley National Laboratory study of 33 California commercial buildings found that it reduced bias and improved accuracy for all seven baseline models tested.

How do you check that a baseline is accurate?

Calculate it for days with no event and compare it with the metered demand. Mean percent error shows bias, and CV(RMSE) shows the spread on single days. Compare both, in kW, with the reduction the site commits to.