wattlas.net

How it's built

How Wattlas was built, how its data refreshes, how the assistant answers, and where the numbers come from. For what the site shows, take the product tour.

DATA/*.JSON?

Built with Claude Code, shipped through GitHub

>_codetestPRexpert reviewmain

Each view was built in small steps: a written brief, code with a test that runs offline, then a proposed change (a pull request). An expert approves every step before it goes live.

  1. 1Briefgoal and success criteria
  2. 2Claude Codewrites the code and its test
  3. 3Pull requestthe proposed change
  4. 4Reviewan expert approves
  5. 5Mergeinto the live site

Every change starts as a written task (a GitHub issue), and the change links back to it.

The data refreshes itself twice a month

11505:17 UTCJSON

Twice a month a scheduled job fetches fresh data, turns it into small files and republishes the site. No program builds a page when you visit, and the views read from no database.

  1. 1Open dataENTSO-E, NESO, MaStR and more
  2. 2PipelinePython code that computes each figure
  3. 3Data filessmall JSON, saved in the repository
  4. 4The websitestatic files on Firebase

When

On the 1st and 15th of each month at 05:17 UTC, after the previous day's market data is published. Only files that changed are saved.

The same job rebuilds the pages and rewrites any stored assistant answer whose data changed.

?

Can you ask a static site a question?

Yes. Every view has a question box. Here is where its answers come from, how they stay true to the chart, and what they cost.

Most answers are ready before you ask

STOREDyour question/api/ask

A question you type is the only thing on the site worked out on demand. It goes, with what the view is showing, to one small cloud program in Belgium, which fetches the page's data and asks Google's Gemini model.

  1. 1The pageyour question and the view
  2. 2Cloud Functionone small program in Belgium
  3. 3The datafetched from wattlas.net
  4. 4GeminiFlash when signed in, Flash-Lite otherwise
  5. 5Answerwith its caveat

Suggested questions are answered in advance

The three questions under each chart were answered ahead of time. Their 132 answers load at once and need no model call.

If that program is down, every chart and every stored answer still loads.

One question can draw on several views

12 CANDIDATESup to 4

If you are signed in, the assistant can search all 62 data files on the site and use up to four, so one answer can combine two views.

Found two ways

It matches the words in your question, in English, German or French, and what the question means. The best 12 files go forward.

A small model chooses

The cheapest model reads only the 12 file descriptions and picks the ones the question needs.

Trimmed to size

At most 96 KB of data per answer, cut to the zone and years you asked about.

Every figure has a source

Each figure names the file it came from, and the site adds that file's source and caveat.

A set of test questions checks that the search still finds the right files.

Answers stick to the page's own numbers

Grounding means the model answers only from the site's own data: the files behind the view, or the ones picked for your question.

The site chooses the data

Your browser sends only the question and the view, so nobody can slip other data to the model.

Always the current file

Data is fetched when you ask, so the answer and the chart come from the same refresh.

Caveats are added for you

On 18 views, if the model leaves out the caveat, the site adds it.

Stored answers are tested

A stored answer that is missing, refuses to answer or has lost its caveat fails the tests.

If a stored answer's data has changed, it is dropped and the live model answers instead.

What a question costs, and what is kept

CEILING $100 / MONTH

Every limit lives in one place and is checked by a test.

3
free questions per 30 days, then sign in
20
questions a day once signed in
500
questions a day across the site
$100
a month of model spend, at most
90 days
how long a logged question is kept

Nothing in your browser

No question history is stored on your device.

Personal details removed

Email addresses, phone numbers and bank account numbers (IBANs) are removed before a question is logged.

Signing out clears the session; deleting your account removes its record.

Fifteen sources, plus a few tables kept by hand

{ }

Every source publishes in its own format and on its own schedule. The pipeline converts them all to one shape and flags anything that is not openly licensed.

SourceWhat it givesRefreshAccess or licence
Power markets and grids
ENTSO-EPrices, generation, demand and cross-border flows for every EU price area (bidding zone), plus five years of historyTwice a monthAPI token
NESOCarbon intensity across Great Britain, and payments to Scottish wind farms to switch offTwice a monthOpen API
SMARDGerman generation and net balance by grid-operator areaTwice a monthOpen API
ODRÉ / RTEFrench generation from RTE, France's grid operator; the nuclear-availability overlay is pausedTwice a monthOpen API, login
netztransparenzRenewable power switched off in Germany (curtailment)Twice a monthLogin
Installations and charging
MaStREvery wind and solar installation in GermanyTwice a monthOpen export
LadesäulenregisterEvery public charge point in GermanyTwice a monthCC BY 4.0
Prices, fuel and carbon
EurostatWhat makes up electricity prices, vehicle numbers, and national energy useYearly dataOpen API
World BankThe European gas price (TTF)MonthlyCC BY 4.0
EEXThe EU carbon price, from auctionsUpdated by handCurated
Vehicles and trade
KBAThe federal motor transport authority: new vehicles registered in Germany, by drive typeTwice a monthdl-de/by-2-0
UBAThe German Environment Agency: a model of Germany's car fleet to 2035Twice a monthdl-de/by-2-0
Eurostat COMEXTEU imports of Chinese solar modules and batteriesTwice a monthOpen API
World electricity and AI
EmberThe world's electricity mix, year by yearUpdated by handCC BY 4.0
CSO, Epoch AI, ML.ENERGY, EIAData-centre electricity use (CSO, Ireland's statistics office), AI text volumes, energy per token (a token is a fragment of text), Virginia's grid mix (EIA, the US Energy Information Administration)Twice a monthOpen, CC BY 4.0

How the data is checked

Kept apart

Each source has its own code, so one failing can't break the others.

Gaps are shown

A missing source says "awaiting source", and a bad file is replaced by its last good version.

Known traps handled

Since October 2025 German day-ahead prices come every quarter-hour, and clock changes make 23- and 25-hour days. The code handles both.

Tested

Over 3 000 automatic tests that need no internet connection, plus several hundred for the site's cloud programs.

Every series is averaged to hourly values and grouped by local time.

See the result

Every number on the site comes with its window and its caveat.