UK BESS Pipeline Tracker (REPD)
Under maintenancePricing
from $20.00 / 1,000 project-updates
UK BESS Pipeline Tracker (REPD)
Under maintenanceTracks the UK battery energy storage system (BESS) planning pipeline via the official Renewable Energy Planning Database (REPD), with diff-based change detection per project.
Structured, diff-based tracking of the UK battery energy storage system (BESS) planning pipeline, built on the official Renewable Energy Planning Database (REPD) — new and changed projects delivered per run, never a flat, unfiltered CSV dump.
When should an AI agent use this?
- "Which UK BESS projects have changed planning status since last month?"
- "Show me all operational battery storage projects in Scotland over 50MW."
- "Which local planning authorities have the most BESS applications in the pipeline?"
- "Alert me when a new BESS project is submitted for planning in the South West."
- "What's the current UK BESS pipeline in the Awaiting Construction / Under Construction stages?"
What this Actor does
- Downloads the official quarterly REPD extract (gov.uk, Open Government Licence) directly — no scraping.
- Filters it down to battery energy storage projects only (REPD's
Technology Type == "Battery"rows, covering both standalone BESS and storage co-located with e.g. a solar farm). - Normalizes each project into a flat, consistent JSON record (capacity, status, region, planning authority, coordinates, operator).
- Detects new and changed projects between runs (status change, capacity change) using a persisted snapshot — you only pay for what actually changed, never for re-delivering the same unchanged project. The snapshot survives runs where a project temporarily falls outside your filters, and bridges REPD's own Ref ID renumbering when a project is resubmitted, so a continuing project is never mistaken for a new one.
- Resolves a battery's co-located generation project (e.g. the solar farm it shares a site with) to its name, technology and capacity via REPD's own cross-reference, instead of just a free-text label.
- Delivers a free batch summary record per run (totals by status/region, total MW pipeline) alongside the per-project results, at no extra charge.
Input
| Field | Type | Description |
|---|---|---|
region | array of strings | Optional: only include projects in these REPD regions (e.g. "Scotland", "Wales", "Northern Ireland", "South West"). |
minCapacityMW | integer | Optional: minimum installed capacity in MW. |
maxCapacityMW | integer | Optional: maximum installed capacity in MW. |
status | array of strings | Optional: only include projects with one of these development statuses (e.g. "Application Submitted", "Under Construction", "Operational"). |
planningAuthority | array of strings | Optional: only include projects handled by these local planning authorities (e.g. "Cotswold", "Fife Council"). |
onlyChangedSinceLastRun | boolean | Default true. If false, delivers the full filtered snapshot every run (still only charges for new/changed projects). |
Output
{"projectId": "6845","projectName": "AES Kilroot Station Battery Storage Array","coLocatedWith": "Co-located with fossil fuel plant","coLocatedProject": {"refId": "1867","name": "Morris Fen (PV)","technologyType": "Solar Photovoltaics","capacityMW": 27},"operator": "AES Kilroot Power (AES KPL)","capacityMW": 10,"capacityMWh": null,"status": "Operational","statusHistory": [{ "status": "Under Construction", "date": "2026-04-12T09:00:00.000Z" },{ "status": "Operational", "date": "2026-07-17T11:29:52.970Z" }],"region": "Northern Ireland","country": "Northern Ireland","planningAuthority": "Mid and East Antrim","postCode": "BT38 7LX","osgb36Easting": "157517","osgb36Northing": "543117","sourceRecordLastUpdated": "12/12/2018","isNewSinceLastRun": false,"isChangedSinceLastRun": true,"previousStatus": "Under Construction","refIdChangedFrom": null,"operatorChanged": false,"previousOperator": null,"sourceUrl": "https://assets.publishing.service.gov.uk/media/.../REPD_publication_Q1_2026.csv","scrapedAt": "2026-07-17T11:29:52.970Z"}
coLocatedProject is null when the battery is standalone or when REPD's own cross-reference doesn't
resolve to another project. refIdChangedFrom is only set when this project is recognised as a
continuation of an earlier REPD Ref ID (see FAQ). operatorChanged/previousOperator flag an
ownership/operator change since your previous run — a separate signal from a status/capacity change.
Note: REPD does not publish an MWh (energy capacity) field alongside MW (power capacity) — capacityMWh
is always null, an honest limitation of the source data, not a bug. Coordinates are the source's native
OSGB36 British National Grid easting/northing (not converted to latitude/longitude, to avoid introducing an
unverified projection error).
Use cases
- BESS developers and EPCs scanning regional competition/market density.
- Fire-safety and planning consultancies selling pipeline intelligence to developers.
- Investors/funds scanning BESS project dealflow by region and status.
- Grid connection and interconnection consultants.
- Insurers/underwriters tracking BESS risk portfolios.
Pricing
This Actor uses Apify's Pay-Per-Event (PPE) pricing model.
- Actor Start: $0.00005 (Apify default)
project-update: $0.02 — charged for each new or changed BESS project detected since your previous run. Never charged for unchanged projects or for a run with no changes.colocation-resolved: $0.01 — charged alongsideproject-update, only when the delivered project's co-located generation project could be resolved to a name/technology/capacity.ownership-change: $0.03 — charged alongsideproject-update, only when the operator/applicant of a project has changed since your previous run.
Legal
Source: the Renewable Energy Planning Database (REPD), published by the UK Department for Energy Security and Net Zero via gov.uk, licensed under the Open Government Licence v3.0. All data is at project level (operator/applicant is typically a company, not an individual) — no personal data is processed.
FAQ
Q: How often is the data updated? A: REPD is published quarterly (in the month following each quarter's end). Running this Actor more often than that will not surface new projects, only re-confirm the same snapshot.
Q: Does this include Ireland or the Isle of Man? A: No — REPD covers England, Scotland, Wales and Northern Ireland only.
Q: Why is capacity sometimes missing?
A: Some early-stage projects (e.g. Application Submitted) do not yet have a confirmed installed capacity
in REPD; these are delivered with capacityMW: null rather than a guessed value.
Q: Does this cover other grid storage technologies like pumped hydro or compressed air?
A: No — this Actor tracks battery energy storage (BESS) specifically (REPD's Technology Type == "Battery"
rows). Pumped Storage Hydroelectricity, Liquid Air Energy Storage and Compressed Air Energy Storage are
separate REPD technology types and are intentionally out of scope.
Q: What happens if REPD gives a project a new Ref ID after resubmission? A: REPD itself tracks this via an "Are they re-applying" field. This Actor uses that to recognise the project as a continuation rather than a brand-new one, carrying its status history forward and never double-billing it as new.
Q: How do I catch M&A activity in the BESS pipeline?
A: Watch for operatorChanged: true — this fires whenever the operator/applicant on a project changes
between runs, independent of any status or capacity change, and is billed separately (ownership-change).
Keywords
uk, battery storage, bess, repd, renewable energy planning database, grid, energy storage, planning pipeline
Changelog
0.4.0
- Breaking output schema change: renamed several Dutch-language output field names to English
(e.g.
capaciteitMW→capacityMW,statusHistorie→statusHistory,isNieuwSindsVorigeRun→isNewSinceLastRun,bronUrl→sourceUrl,datumOpgehaald→scrapedAt— see full list in PROJECTINFORMATIE.txt). This Actor's audience reads English, not Dutch. If you have an existing integration reading the old field names, update it before using this version.
0.3.0
- Fixed: a battery row whose co-location reference (incorrectly) pointed to itself no longer shows
itself as its own
coLocatedProject. - Added a cap on
statusHistorylength (most recent 20 entries) so a single flapping project cannot grow the stored history unbounded. - Added operator/ownership-change detection (
operatorChanged/previousOperator) — newownership-changeevent, a dedicated M&A/dealflow signal independent of status/capacity changes. - Added retry-with-backoff test coverage (was previously untested).
0.2.0
- Fixed a bug where the change-detection snapshot was fully overwritten each run instead of merged, which could cause a project to be re-billed as "new" after temporarily falling outside your filters.
- Fixed a bug where a first run with zero matching projects could make the next run also skip billing.
- Added Ref ID continuity handling so a project resubmitted under a new REPD Ref ID is recognised as a continuation, not a new project.
- Added
statusHistory(full status history) to each record. - Added co-located project resolution (
coLocatedProject) — newcolocation-resolvedevent. - Added a free per-run batch summary record (totals by status/region, total MW pipeline).
- Added
planningAuthorityinput filter. - Added retry with backoff on the REPD download.
0.1.0
- Initial release.