Scraper Status

← UK Grid  ·  About  ·  How it works

Outage scrapers

Power cut data

Run every 10 minutes on the VPS, results written to Supabase.

ScraperStatusLast runRecords / DurationError
UKPN ✅ OK 24 Sept, 12:20 (2m ago) 82 / 5.4s -
SSEN ✅ OK 24 Sept, 12:20 (2m ago) 34 / 2.3s -
Northern Powergrid ✅ OK 24 Sept, 12:20 (2m ago) 24 / 22.2s -
SPE ✅ OK 24 Sept, 12:21 (1m ago) 54 / 40.8s -
NGED ✅ OK 24 Sept, 12:21 (1m ago) 76 / 9.6s -
NIE ✅ OK 24 Sept, 12:21 (1m ago) 17 / 0.9s -
ENWL ✅ OK 24 Sept, 12:20 (2m ago) 14 / 1.0s -
Grid data APIs

Live grid feeds

Fetched server-side and cached. CI, FUELINST and MID refresh every 5 minutes; FREQ every 60 seconds. Browsers receive data from this server, not the upstream APIs directly.

SourceStatusLatest dataDetailCached
Carbon Intensity API ✅ OK 11:30–12:00 UK time 81 gCO₂/kWh · actual · low 4m ago
Elexon BMRS (FUELINST) ✅ OK 2026-09-24 period 25 Published 12:15 UK time 4m ago
Elexon BMRS (FREQ) ✅ OK 49.986 Hz 5761 readings, latest 24 Sept, 01:00:00 UK time, about 11h behind real time. Settled data, not the live frequency on the main page. 0m ago
Elexon BMRS (MID) ✅ OK 2026-09-24 period 25 £144.57/MWh · 4,178 MWh traded 4m ago
Data continuity

Boot-time gap check

On each server start, the most recent timestamp in grid_5min is compared to the boot time. If more than 10 minutes of data is missing, the gap is filled automatically from Elexon and the Carbon Intensity API before normal ingest resumes.

Checked at 24 Sept, 11:53. Latest data point was within 10 minutes of boot.

Liveness monitoring

Watchdog

Failure alerts only fire when a scraper runs and reports a problem. This checks the opposite case: a scraper that has stopped running altogether and is reporting nothing at all. Thresholds are 45 minutes for the DNO scrapers and 30 minutes for Grid.

Last checked 4m ago. Nothing silent beyond its threshold.

This card covers the half that runs on this server, watching the VPS. The VPS separately watches the Grid scraper here, on its own 15-minute cron; that half cannot report through this page, because if this server were down the page would be down with it.

Historical data coverage

Row counts vs expected

Checks how many rows exist at each resolution against the number expected for a full window. Both counts are taken against a window measured back from the current instant, so the actual can sit a row either side of the expected figure as periods open and close, and a count fractionally above it is normal rather than a surplus. Real gaps may appear if the server was down, an upstream API was unavailable, or the pruning window has shortened the history.

ResolutionWindowRows (actual / expected)Coverage
5-minute last 24 h 286 / 287 100%
Half-hourly last 7 days 336 / 335 100%
Daily last 30 days 30 / 30 100%

Oldest daily row: 31 Dec 2019    Newest 5-min row: 24 Sept, 12:10

Audience

Page views today

Counted on this server as requests arrive. No cookies, no third-party tracking, and nothing identifying a visitor is stored: each row is a daily total for one page, the bare hostname a visit was referred from, and whether it looked like a crawler. Crawlers are counted separately so they never inflate the human figures.

171

page views today, crawlers excluded  ·  298 more from crawlers

PageViews
/161
/how-it-works8
/about1
/status1
Came fromViews
direct / no referrer170

1 view buffered, not yet written. Last written 0m ago. Counts are exact while the CDN stays off; if it is enabled, cached pages would undercount.