Data provenance & sources
Every number on the map traces back to a primary source. This is the single page that names them — what each figure is, where it comes from, how fresh it is, and what happens when a source is incomplete. Transparency is the whole point; this is the receipt.
Where each number comes from
One row per figure you can see on the map or in a zone panel. Each is computed from a named primary feed — never modelled, never purchased, never estimated to paper over a gap.
| Figure | Primary source | How it's derived |
|---|---|---|
| Carbon intensity (produced) | ENTSO-E A75 + IPCC AR5/AR6 | Each fuel's generation × its IPCC lifecycle CO₂eq factor, divided by total covered generation. Production-based: the intensity of the electricity generated in the zone. The consumed-here view (next row) blends in flow-traced imports. |
| Carbon intensity (consumed) | ENTSO-E A11 + A75 (flow-traced) | The intensity of the electricity actually used in the zone: domestic generation blended with imports, each import carrying its exporter's own consumption intensity, solved across the whole coupled network. A zone whose imports can't be traced stays grey — never a guessed number. |
| Day-ahead price | ENTSO-E A44 | The cleared day-ahead auction price (EPEX SPOT / Nord Pool / OMIE) for the current 15-min slot. A market settlement, not a forecast — known a day ahead. Negative when renewables glut. |
| Renewable share | ENTSO-E A75 + EU RED II | Share of generation from sources the EU Renewable Energy Directive II counts as renewable (wind, hydro, solar, geothermal, biomass, marine). Nuclear is low-carbon but not renewable. |
| Demand | ENTSO-E A65 | Realised total electricity consumption in the zone — 15-min granularity, ~60-min publication lag. |
| Cross-border flows | ENTSO-E A11 | Net physical flow across each border for the last 15-min slot — the arrows on the map. |
| Great Britain | NESO Carbon Intensity API | GB isn't on ENTSO-E for us, so its national grid operator's own API supplies the fuel mix — recomputed with the same IPCC factors so GB stays directly comparable to the rest of the map. |
| Map geometry | Natural Earth 50m | The zone shapes themselves — public-domain cartography, not grid data. Just where to draw each zone. |
Primary feeds
The external sources every figure above is fetched from — click through to the originals.
- ENTSO-E Transparency Platform Generation (A75), load (A65), day-ahead price (A44) and physical flows (A11) for the European zones.
- NESO Carbon Intensity API Great Britain's generation mix and the operator's own carbon-intensity figure.
- Elexon Insights (BMRS) GB's interconnector flows (IFA, IFA2, ElecLink, BritNed, NemoLink, NSL, Viking Link, Moyle, East-West, Greenlink) — instantaneous outturn on a 5-minute cadence, since ENTSO-E carries no GB data post-Brexit. Contains BMRS data © Elexon Limited copyright and database right.
- IPCC AR6 (WG3) lifecycle emission factors The peer-reviewed lifecycle emission factors (gCO₂eq/kWh per fuel) applied to the generation mix — every factor cited.
- energy-charts.info (Fraunhofer ISE) The wholly independent source our daily cross-check compares against (see below).
- Natural Earth Public-domain 50 m zone geometries — the map shapes.
How fresh — and what we never do
Two things make a number trustworthy: knowing how recent it is, and knowing it was never invented.
- Freshness — fresh = the newest slot the source has published (typically ~1 h behind real time, not live); delayed = real data up to 6 h old; unknown = every field nulled and the zone shown grey. We always label which.
- Factor coverage — the share of a zone's generation backed by a committed IPCC factor. Below 85 %, we publish no headline intensity rather than a number we can't stand behind.
- Grey, not guessed — a zone with no published live data stays grey. We never colour it from a neighbour, an average, or a model.
- Completeness guards — when a source publishes a partial slot — a fraction of the real generation, or one missing a must-run baseload like nuclear — we reject it rather than let it distort the mix.
- No dishonest forecast — carbon intensity and trade balance have no honest day-ahead source, so the forecast omits them rather than guessing.
Produced vs consumed carbon intensity
On the carbon-intensity layer a Produced ⇄ Consumed switch changes what the colour means. Produced is the intensity of the electricity generated inside a zone. Consumed is the intensity of the electricity a person there actually uses — which includes imports: a Czech consumer at 18:00 is partly using German wind and Polish coal flowing across the border. Because zones trade both ways, this is a coupled system (Czechia's consumed intensity depends on Germany's, which depends on Czechia's), solved across the whole network by the standard flow-tracing method (Tranberg et al. 2019, "Real-time carbon accounting method for the European electricity markets"). The honesty rule is unchanged: an import from a zone we can't trace (e.g. Great Britain, which isn't on ENTSO-E for us) is excluded and the zone stays grey — never assigned a guessed number.
Why the same price repeats across the map
Switch to the price layer and you'll see large blocks of the map sharing the exact same number — say 155.89 €/MWh across central Europe at once. That isn't a copy bug. Most of Europe runs a single day-ahead market coupling (SDAC): one auction clears all coupled bidding zones together, and wherever there's enough transmission capacity between two zones, they settle at an identical price. Prices diverge only where a border is congested (the link is full) or where a zone clears in a separate coupling — which is why Switzerland, Great Britain and parts of the Nordics routinely show their own price. Each zone's number is still fetched independently from ENTSO-E; they match because the market made them match, not because we copied one.
Checked against an independent source, daily
Trusting our own pipeline isn't enough. A scheduled job each day re-derives two figures — daily renewable share and daily mean price — for every zone, then compares them against energy-charts.info (Fraunhofer ISE), a wholly separate public source. Any divergence beyond tolerance raises an alarm we investigate. It runs from a clean network outside our own infrastructure, so it can't quietly share a failure with the live ingester.
Go deeper
- Full methodology — the architecture decisions (ADRs) and the complete IPCC factor table, fuel by fuel.
- Live data status — which zones are fresh right now, per source.
- The API — the same data — free and keyless.
- Source code — every line is open.