Where the numbers come from
Every value on this dashboard is sourced from a publicly available feed operated by one of three organisations. Nothing is estimated on our side that isn't explicitly flagged.
Sources at a glance
| Source | What we use | Cadence | Typical lag |
|---|---|---|---|
| Elexon BMRS โ FUELINST | Generation by fuel type, interconnector flows | 5 min | ~1โ3 min |
| Elexon BMRS โ Market Index Price (APXMIDP) | Wholesale electricity price (ยฃ/MWh) | 30 min (settlement period) | 10โ25 min into the period |
| Carbon Intensity API โ national | National gCOโ/kWh โ forecast and actual | 30 min | Forecast immediate; actual 30โ60 min after period end |
| Carbon Intensity API โ regional | gCOโ/kWh + fuel mix for 18 DNO regions | 30 min | Forecast at period start (no settled actual) |
| NESO โ demand CSV | National Demand (authoritative), embedded wind & solar | 30 min (settlement period) | Hours to a few days for the settled actual |
How we combine them
The dashboard's headline values are computed like this:
Generation mix
Direct from FUELINST. We bucket Elexon's fuel-type codes (CCGT,
OCGT, WIND, NUCLEAR, BIOMASS, NPSHYD, COAL, OIL, PS, BESS, OTHER)
into the headline categories you see on screen. Behind-the-meter
rooftop solar and small wind are not in FUELINST โ they
come from NESO's EMBEDDED_WIND_GENERATION and
EMBEDDED_SOLAR_GENERATION columns and are stacked
into the appropriate fuel categories.
Wholesale price
Elexon's Market Index Price, APXMIDP data provider โ the volume-weighted average of APX exchange trades for the settlement period. Published 10โ25 minutes into each half-hour, so the Price card flips to a "for HH:MM ยท awaiting next print" state while the new period's print is pending. We never blank the card โ last known value stays visible.
Carbon intensity
The Carbon Intensity API's actual field if it's
present, otherwise forecast. For the current
half-hour, this means you usually see the forecast until ~30 min
after the period closes, at which point the actual replaces it.
Demand
NESO's ND (National Demand) value with
FORECAST_ACTUAL_INDICATOR = "A" if available;
otherwise we derive demand from
total generation + net interconnector flow using
the latest FUELINST data. The derived value is accurate within
~1% but is the conservation identity, not NESO's settled figure.
Interconnectors
Per-cable flows from FUELINST (codes
INTFR,
INTIFA2,
INTNED,
INTNEM,
INTNSL,
INTVKL,
INTIRL,
INTEW,
INTELEC,
INTGRNL), rolled up by country. Positive = importing
into GB; negative = exporting from GB.
Regional
Direct from the Carbon Intensity API's
/regional endpoint. The 18 regions are the
Distribution Network Operator (DNO) regions โ fixed by the
upstream API.
Settlement periods
The British grid runs on 30-minute "settlement periods" anchored to the UTC half-hour. All of our historical storage uses unix milliseconds floored to that boundary. A period labelled 21:00 covers 21:00โ21:30 UTC.
Missing or late data
A settlement period's record is written incrementally as upstream
feeds publish. So a row born at 22:05 may initially have only
byFuel and a forecast carbon value; the
price and the settled carbon arrive
on subsequent ingest passes 10โ60 minutes later. Demand from
NESO may be hours behind. None of this is hidden โ the dashboard
flips to a stale indicator when something is behind, and the
underlying data is merged in as it lands.
A separate daily job at 03:30 UTC scans the last seven days for any settlement period missing fields it should have, and backfills them from the authoritative APIs. That's the safety net for any slipped writes.
Licences & attribution
- Carbon Intensity API โ attribution required per carbon-intensity/terms. The API is "an open and free service to access regional carbon intensity data" developed by the National Grid ESO, the Environmental Defense Fund (EDF), the University of Oxford and WWF.
- NESO data โ published under the Open Government Licence v3.0. ยฉ National Grid Electricity System Operator Limited.
- Elexon BMRS โ accessed via the free open BMRS API. Usage subject to Elexon's terms.
What's not here
- Northern Ireland โ runs on a separate grid (SONI / SEM), not covered by Elexon's GB data
- Sub-half-hour resolution for price and carbon โ upstream feeds publish at 30 min
- Individual generator output below FUELINST aggregate codes
- Customer-level / smart-meter data