Home/How it works

Method & honesty notes

How it works

The pipeline

Open-data APIs → a Python/pandas pipeline → committed data/*.json → a static JS frontend → Firebase Hosting. The pipeline is the only thing that touches the upstream APIs; each source is an isolated module, so a failure in one can't break the others. A scheduled job re-runs it daily and commits the refreshed JSON.

Honesty notes

Energy data is easy to get subtly wrong, so the correctness choices are made explicit in the views rather than hidden:

  • Prices are resampled to a consistent hourly resolution. Germany moved to quarter-hourly settlement in October 2025, so hourly spreads are a conservative lower bound — true 15-minute spreads are wider.
  • All times are handled in local time (Europe/Berlin), including the 23- and 25-hour daylight-saving days.
  • The battery-arbitrage and flexibility figures are labelled unachievable upper bounds (perfect foresight, no losses) — not achievable revenue.
  • Carbon intensity is production-based (lifecycle factors); generation gaps render as gaps, never fabricated zeros; negative prices and residual load are kept, never clipped.
  • Where a metric needs a threshold or a different methodology, the choice is stated in the view, not buried.
  • The Iberian-blackout view assigns no cause of its own — it shows what the grid data recorded and cites the official ENTSO-E investigation.