UK BESS Pipeline Tracker (REPD) avatar

UK BESS Pipeline Tracker (REPD)

Under maintenance

Pricing

from $20.00 / 1,000 project-updates

Go to Apify Store
UK BESS Pipeline Tracker (REPD)

UK BESS Pipeline Tracker (REPD)

Under maintenance

Tracks the UK battery energy storage system (BESS) planning pipeline via the official Renewable Energy Planning Database (REPD), with diff-based change detection per project.

Pricing

from $20.00 / 1,000 project-updates

Rating

0.0

(0)

Developer

Dennis

Dennis

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

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

FieldTypeDescription
regionarray of stringsOptional: only include projects in these REPD regions (e.g. "Scotland", "Wales", "Northern Ireland", "South West").
minCapacityMWintegerOptional: minimum installed capacity in MW.
maxCapacityMWintegerOptional: maximum installed capacity in MW.
statusarray of stringsOptional: only include projects with one of these development statuses (e.g. "Application Submitted", "Under Construction", "Operational").
planningAuthorityarray of stringsOptional: only include projects handled by these local planning authorities (e.g. "Cotswold", "Fife Council").
onlyChangedSinceLastRunbooleanDefault 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 alongside project-update, only when the delivered project's co-located generation project could be resolved to a name/technology/capacity.
  • ownership-change: $0.03 — charged alongside project-update, only when the operator/applicant of a project has changed since your previous run.

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. capaciteitMWcapacityMW, statusHistoriestatusHistory, isNieuwSindsVorigeRunisNewSinceLastRun, bronUrlsourceUrl, datumOpgehaaldscrapedAt — 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 statusHistory length (most recent 20 entries) so a single flapping project cannot grow the stored history unbounded.
  • Added operator/ownership-change detection (operatorChanged/previousOperator) — new ownership-change event, 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) — new colocation-resolved event.
  • Added a free per-run batch summary record (totals by status/region, total MW pipeline).
  • Added planningAuthority input filter.
  • Added retry with backoff on the REPD download.

0.1.0

  • Initial release.