GB Balancing Auctions – Dynamic Containment, Reserve & FFR avatar

GB Balancing Auctions – Dynamic Containment, Reserve & FFR

Pricing

from $1.00 / 1,000 results

Go to Apify Store
GB Balancing Auctions – Dynamic Containment, Reserve & FFR

GB Balancing Auctions – Dynamic Containment, Reserve & FFR

Daily unit-level results of NESO balancing auctions: Dynamic Containment, Moderation and Regulation, Quick, Slow and Balancing Reserve, Static FFR, STOR. Provider, unit, technology, MW, clearing price. Open data.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

UK Open Data Tools

UK Open Data Tools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

GB Balancing Auctions – Dynamic Containment, Reserve, FFR & STOR Results (NESO)

Get unit-level results of NESO's daily balancing services auctions as clean JSON, CSV or Excel. It covers the Enduring Auction Capability (EAC): Dynamic Containment, Dynamic Moderation and Dynamic Regulation (DCH, DCL, DMH, DML, DRH, DRL), Positive/Negative Quick Reserve, Slow Reserve and Balancing Reserve. It also covers the historic Static FFR and STOR auction results. Each row gives the provider, unit, technology, delivery window, accepted MW, clearing price (£/MW/h) and postcode district. Results for tomorrow's auctions are available the same day, from NESO's official open-data API.

What data does it return?

  • Market and product: market (EAC, SFFR, STOR), service, product code and name (e.g. DCL = Dynamic Containment Low)
  • Who: participant (provider company), unit ID, technology (batteries, load response…), postcode district
  • When: delivery start and end, EFA block, tender round
  • Result: status, tendered MW, accepted MW, bid price, clearing price and price unit

Who is it for?

  • Battery (BESS) owners, optimisers and route-to-market providers: daily ancillary-service revenue and clearing-price history
  • Aggregators and VPPs: competitor volumes by unit and provider
  • Traders, analysts and investors: price and volume trends for frequency response and reserve products
  • Consultants: revenue stacking models with real accepted volumes

How to use it

  1. Click Try for free / Start.
  2. Pick markets and products (e.g. DCH, DCL) and a delivery window (e.g. last 1 day, or a date range). You can also filter by participant, unit or technology.
  3. Set Max results to cap the run and your cost.
  4. Run it, then export as JSON, CSV or Excel, or read the results through the Apify API. Schedule it daily for a running price history.

Input example

{"markets": ["EAC"], "products": ["DCH", "DCL"], "lastDays": 1, "participantKeywords": ["Zenobe"]}

Input reference

FieldDescription
marketsEAC (default), SFFR, STOR.
productsEAC product codes, e.g. ["DCH","DCL","PQR"]. Empty = all.
lastDays / dateFrom / dateToDelivery window (default last 7 days).
participantKeywordse.g. "Zenobe", "Habitat", "Flexitricity".
unitsExact unit IDs.
technologyKeywordse.g. "Battery", "Load Response".
acceptedOnlyOnly rows with accepted volume (default on).
maxItemsStop after N rows (default 1000).

Output example

One dataset item per accepted unit result. This record is from a real test run:

{
"market": "EAC",
"sourceUrl": "https://www.neso.energy/data-portal/eac-auction-results",
"priceUnit": "GBP/MW/h",
"attribution": "Supported by National Energy SO Open Data",
"license": "National Energy SO Open Data Licence v1.0 (https://www.neso.energy/data-portal/neso-open-licence)",
"service": "Response",
"product": "DCL",
"productName": "Dynamic Containment Low",
"participant": "UK POWER RESERVE LIMITED",
"unit": "AFFR-1",
"technology": "Batteries",
"deliveryStart": "2026-10-29T19:00:00",
"deliveryEnd": "2026-10-29T23:00:00",
"efaBlock": null,
"status": "Accepted",
"tenderedMw": null,
"acceptedMw": 18,
"price": null,
"clearingPrice": 4.65,
"postcodeDistrict": "LE14",
"recordId": "2945#||#125#||#DCL#||#219102",
"tenderRound": null,
"scrapedAt": "2026-10-29T12:05:45.429Z"
}

The same schema is used across all three markets. Newest delivery first.

How much does it cost?

Pay per result: $0.001 per auction-result row ($1 per 1,000). Filtering happens server-side, so you only pay for matching rows. Set a max charge per run and the Actor stops cleanly when it is reached.

Result rowsCost
100$0.10
1,000$1.00
10,000$10.00

Coverage

EAC unit results (NESO "EAC Auction Results by Unit", from Nov 2023, updated daily), Static FFR auction results and STOR auction results as published on the NESO Data Portal.

Source: the NESO Data Portal (National Energy System Operator), published under the NESO Open Data Licence v1.0 (based on the Open Government Licence v3.0): "You are free to: copy, publish, distribute and transmit the Information; adapt the Information; exploit the Information commercially and non-commercially for example, by combining it with other Information, or by including it in your own product or application." Every record carries the required attribution "Supported by National Energy SO Open Data" and a link to the source dataset. This Actor is not affiliated with or endorsed by NESO.

The Actor uses NESO's official CKAN API only (no scraping, no login) and follows NESO's rate guidance (at most two datastore requests per minute), so multi-source runs take ~30 s per extra query.

Organisation data only: providers are companies/units; site postcodes are reduced to the postcode district (outward code).

FAQ

  • What is an EFA block? One of six 4-hour blocks of the electricity day (23:00–03:00 = block 1).
  • Why can a big run be slow? NESO asks API users to make at most two datastore queries per minute, and the Actor respects that.
  • Is NESO the same as National Grid ESO? Yes. The Electricity System Operator became the National Energy System Operator (NESO) in October 2024.
  • Can I build a clearing-price history? Yes. Schedule a daily run with lastDays: 1 and append the results, or set dateFrom/dateTo for a backfill.
  • Need another product or dataset? Open an issue on the Actor page.