Wattlas
European electricity, explained. Open data on how and when the price of power moves across the continent — pre-computed into views you can actually read, and rebuilt every day.

Not eight tools in a menu — five questions about power
An editorial landing routes you into one of five plain-language questions; each opens a section of views that answer it. Every view can still compare up to six bidding zones at once — here Germany against France, the Netherlands and Austria.

When does power move?
The Daily Rhythm
Electricity has no single price — it has a price every hour. This is how it swings between cheap and expensive, day to day and year to year.
Pulse

Spread

Negative Prices

Capture Price

History

What's flowing through the wires?
What's on the Grid
Behind every price is a physical mix of fuels. This is what generates Europe's power hour to hour — and how clean, or dirty, each hour really is.
Generation Mix

Carbon Intensity

Residual Load

Marginal Fuel

Where does power flow — and why do prices split?
Geography of Price
One country, one price — until the grid can't carry the power across it. Four countries, four answers to the same congestion problem, on the map.
Divergence

Germany North–South

France Nuclear

Nordic Price Zones

UK Regional

Curtailment

Locational Signal

What happens when supply runs tight?
When the Grid is Tested
A renewable grid's hardest hours — the windless, sunless spells it must plan for, the batteries that ride the gap, and the day the lights actually went out.
Dunkelflaute

Storage

Capacity & Adequacy

Iberian Blackout

What does it cost, and who pays?
The Bill
The wholesale price is only the start. This is the economic and consumer half — what flexibility is worth, and how a megawatt-hour becomes your monthly bill.
Flexibility

Retail Wedge

Industrial Prices

Curtailment in €

How it's built
The product stands on its own. What follows is purely technical: the build, the pipeline, and the data sources behind it.
Built with Claude Code, shipped through GitHub
Each view was built as a small vertical slice: a prompt stating the goal and success criteria, then code with an offline test, then a pull request. A human approved every step before it merged.
The same flow as its sibling project, StockScore: small steps, each gated, each reviewable in a diff.
A cron, a commit, a redeploy
The pipeline is the only code that touches the APIs; it writes small JSON the frontend reads directly. A GitHub Action reruns it daily and commits the data; Firebase Hosting redeploys. No backend, no database.
Daily at 05:17 UTC the Refresh-data workflow rebuilds every view and commits only what changed. The heavy MaStR bulk download runs weekly, isolated and non-fatal.
Seven open feeds, plus a gas proxy and a curated table
A stack of public sources, each with its own auth, units, lag and refresh cadence, reconciled to one canonical shape — anything not licence-clean is flagged.
Cadence varies by source — most daily at 05:17 UTC, MaStR weekly, the RTE overlay paused, Eurostat annual, the curated tables on edit. Plus Eurostat GISCO map boundaries.
How the sources are kept honest
Open it.
Everything here is live and public. Explore the five sections and their views, or read how each number is computed.