NESO data
Statistical views and tools built on public NESO data.
A small catalogue of tools and reference material built on publicly available NESO data. Three sub-areas sit below — a planned frequency-statistics tool, live historical-trend views built on GC0105 / GC0151 incident reports, and a general-purpose interface to the NESO Data Portal.
The AI aspect of this piece of the work is a custom API interface developed to connect to the NESO data portal to allow data to be retrieved directly from the system operator, allowing for easy dissection, review and analysis. The AI approach here is somewhat more complex as using an AI to directly process large datasets (each NESO monthly frequency data set is circa 75Mb), becomes context heavy and a massive token burner. Instead I used the AI to develop software tools to analyse and parse the data in a structured method into trend data that the AI could then review and used to extrapolate patterns of behaviour.
Sub-areas
Three views on the same data source.
1 · Frequency data
Custom statistical view of GB system frequency from a dedicated API script. Month-by-month distributions, percentiles and excursion counts. In development.
2 · Historical trends
Live view of GB system incidents and transmission faults from NESO's GC0105 / GC0151 monthly reports. 157 incidents, 222 faults, Dec 2024 – Mar 2026.
3 · NESO API
General-purpose interface to the NESO Data Portal for pulling and interrogating other published datasets on demand. In development.
Frequency data
1Statistical view of GB system frequency.
In development. A dedicated interactive view built on a custom API script that pulls GB system-frequency data and produces month-by-month statistical summaries — distributions, percentiles, time inside and outside operational bands, and month-on-month trends.
The intent is a quick, high-level way to see whether baseline system behaviour is drifting, without wading through the underlying time-series yourself.
Looking across the whole period (Jan 2025 → Mar 2026), the grid stayed inside the operational band the vast majority of the time and never breached statutory licence limits. One month stands out — January 2025 — with roughly three times the operational-excursion count of any other month in the window.
Historical trends
2GB system incidents and transmission faults — Dec 2024 to Mar 2026.
Live view derived from NESO’s monthly GC0105 (system-incident) and GC0151 (transmission-fault) reports. The underlying pipeline ingests the raw .xlsx files, extracts per-event frequency, RoCoF and inertia figures, and produces the summary tables and plots shown below.
Four themes surfaced in the current dataset: which circuits are faulting most, what impact events have on system frequency, what system inertia looks like at the time of incidents, and how often contingent events (multiple incidents close in time) occur.
Theme 1 · What circuits are faulting
Transmission faults by month, split by network operator. NGET dominates the volume by count; the Jan 2025 spike (78 faults versus the typical 8–15) is Storm Éowyn. Below: the circuits appearing most frequently as fault locations across the whole window.
Theme 2 · Frequency impact
Frequency nadir over time for each system incident. The 49.8 Hz and 49.5 Hz reference lines give a quick read on which events ran through operational and statutory envelopes. Most events stay inside ±0.2 Hz; the tail of deeper excursions is where the interesting engineering questions sit.
Theme 3 · System inertia at the time of events
System inertia at the time of each incident, plus an inertia-vs-|RoCoF| scatter for larger events (≥400 MW loss). The Pearson correlation across those is −0.52 — a clean signal that lower inertia produces steeper RoCoF, as expected from the swing-equation. A seasonal pattern shows through in the inertia-over-time plot, with summer months sitting noticeably lower.
Theme 4 · Contingent events
Days with two or more system incidents within 60 minutes, flagged separately on the per-day bar below. The current window has seven such clusters covering fourteen events; Storm Éowyn’s 24 January 2025 day alone accounts for five. Contingent events matter disproportionately for operability — two medium-sized trips close in time can strain the system more than one large one.
Download raw data
CSV snapshots of the processed dataset.
Current snapshot covers December 2024 to March 2026. Refreshes when new monthly GC0105 / GC0151 reports are published.
NESO API
3General interface to the NESO Data Portal.
A static, interactive dashboard built directly on top of the NESO Data Portal’s CKAN API. Grouped into five themes — system load, generation mix, ancillary-service requirements, EAC procurement, and Demand Flexibility — covering roughly fourteen individual panels at half-hourly or EFA-block resolution.
Data refreshes monthly. A single build script pulls every source CSV from the Data Portal, geocodes new provider postcodes, and bakes the charts into a self-contained HTML page with no runtime calls — so it serves as a pure static asset from Cloudflare.