How we know
Wattography combines public observations with explicit power-system models. This page separates what is observed, what is inferred, and what the model cannot establish.
The grid model
Wattography is built on the PyPSA-Eur open dataset for its network topology — 5,777 buses, 7,320 transmission lines, and 12,449 power plants spanning 35 countries (48 ENTSO-E bidding zones). This covers the Continental European synchronous area, the Nordic area, and the British and Irish island systems. These counts describe the network snapshot used by this deployment, not the present-day asset register of any TSO. Iceland is drawn separately as a fixed snapshot — it is an isolated system with no live cross-border exchange, so its picture does not update hour to hour.
Flow magnitudes on transmission lines are estimated with a DC Power Transfer Distribution Factor (PTDF) matrix derived from that network. The DC formulation is a linearisation of the full AC power-flow equations; it holds well for meshed high-voltage grids under normal loading, and its accuracy and limits are well-characterised in the power-systems literature (Stott et al. 2009). The solved relation is f = PTDF · p, where p is the balanced vector of net bus injections and f is active line flow. Every accepted solution must conserve active power at the buses. We treat it as an indicative reconstruction, not a replacement for a TSO state estimator. It does not solve voltage magnitude, reactive power, transformer taps, protection behaviour, contingencies, redispatch or unknown switch states.
Validation and calibration
We validate reconstructed AC border totals against ENTSO-E A11 physical-flow data. Across 69 testable borders, the uncalibrated A11-anchored reconstruction has a median border MAE of 272 MW and median hourly correlation of 0.80. Four borders whose values are imposed by the balance construction are excluded from predictive claims.
Calibration is tested out of time: days 1–21 learn each observed border's mean residual and days 22–30 remain unseen. A PTDF-wide, zero-sum correction reduced demand-weighted held-out MAE from 642 MW to 253 MW. The correction is admitted only for borders whose own held-out MAE improves, and is converted to balanced bus injections before recomputing all line flows. It is not transferred to unseen borders. This test measures persistence over nine held-out days; it does not prove equal accuracy in another season or during contingencies.
Generation data
Zone-level generation by fuel type comes from the ENTSO-E Transparency Platform (document type A75, “Actual Generation per Production Type”), published by transmission operators with about a two-hour lag for most zones. Great Britain is the exception: since it left the ENTSO-E data area, GB generation is taken from the Elexon Balancing Mechanism Reporting Service (BMRS) and mapped onto the same fuel categories.
ENTSO-E does not meter every plant in this feed. Each zone's fuel total is therefore distributed across that fuel's plants on the network using one of two methods:
- Capacity-weighted (the default): the zone total for a fuel is split across its plants in proportion to installed capacity.
- Weather-aware (solar and wind): the same zone total is redistributed using site-level weather and published photovoltaic and wind-turbine performance models, so a solar farm under cloud is dimmed relative to one in clear sky. The zone total is preserved exactly — only its spatial distribution changes.
At the live edge, a publisher may expose an incomplete hour fuel by fuel. The pipeline rejects a materially incomplete mix and carries the last complete mix forward rather than interpreting missing fuels as zero. This improves continuity but cannot recover an observation the publisher has not yet released.
Cross-border and HVDC flows
Cross-border alternating-current flows fall out of the PTDF model directly — they are simply flows on the lines that happen to cross a border. High-voltage direct-current links (the subsea and long-distance interconnectors) are different: they are controllable point-to-point cables, not part of the meshed AC network, so their power has to be entered explicitly.
We take each link's measured exchange and inject it into the AC grid at the buses nearest its converter stations, then let the tracing carry that imported power onward into the receiving network. That is what lets, for example, French nuclear show up in the English interior rather than stopping at the coastline where the cable lands.
Estonia distribution pilot
Estonia's detailed layer uses official ETAK line geometry, while zone load and generation still come from ENTSO-E. Because substation demand, conductor parameters and switch states are not public, demand is spatially allocated using population and plant capacity. The solver separates the meshed 110/330 kV backbone from rooted 6–25 kV feeders and a rooted 35 kV tier, and checks nodal active-power balance before a bundle can be published.
This layer is therefore a qualitative estimate of direction and relative magnitude. Sensitivity tests using plausible resistance and power factor still produce thermal and voltage-drop violations on parts of the reconstructed low-voltage topology. Wattography does not publish feeder voltage, loading or loss values from this model.
Forward and backward tracing (Bialek method)
To answer “where does this plant's electricity go?”, we use Bialek's proportional-sharing flow tracing (Bialek 1996). Applied forward from the generators, it partitions the power at every bus into shares contributed by each upstream source. We trace the highest-output plants every hour and serve their results as a compact map layer.
For the reverse question — “where does my electricity come from?” — we run the same method backward, following a point of consumption back to the generators feeding it. This is computed on demand for any location. Proportional sharing is an accounting allocation over the solved network flow: it does not identify individual electrons or claim that there is a unique physical route from one generator to one consumer.
Carbon intensity
We calculate attributed average lifecycle carbon intensity by attaching an emission factor (grams CO₂-equivalent per kWh) to each fuel. The renewable, nuclear and fossil values follow the medians published in the IPCC Fifth Assessment Report (2014, Working Group III, Annex III). Lignite, oil and a catch-all “other” are extended from the wider literature, as the IPCC table does not break those out separately.
Delivered carbon on plant detail pages may include a simple distance-based loss allowance. That allowance is a presentation heuristic, not an AC loss calculation; it does not use conductor resistance, reactive current or transformer losses. Carbon is average lifecycle attribution, not marginal emissions or avoided emissions from changing electricity use.
Data sources and licenses
- ENTSO-E Transparency Platform — generation, cross-border flows and load (reuse is governed by the Transparency Platform terms; ENTSO-E separately lists datasets eligible for CC BY 4.0 reuse)
- Elexon BMRS — Great Britain generation by fuel (Open Government Licence)
- PyPSA-Eur — transmission network topology (MIT License)
- powerplantmatching — power plant capacities and locations (CC BY 4.0)
- Open-Meteo — weather for solar and wind disaggregation (CC BY 4.0)
- Estonian Topographic Database (ETAK) — Estonia pilot line geometry (CC BY 4.0)
- GIE AGSI+ — European gas storage data
- Basemap © MapTiler, © OpenStreetMap contributors — map tiles and transmission-grid geometry (ODbL)
Methods and tools: Bialek 1996 (flow tracing); Hörsch et al. 2018 and Brown et al. 2018 (PyPSA / PyPSA-Eur); Stott et al. 2009 (DC power flow); pvlib (Holmgren et al. 2018) and windpowerlib (performance modelling); IPCC AR5 (2014), WG III Annex III (emission factors).
How the pieces fit together
Public observations and network data converge into one model; the model answers four kinds of question.