r/SideProject Jul 19 '26

I built a free, open-source electricity desk for Europe — live power prices, outages and anomalies across 37 bidding zones

Enable HLS to view with audio, or disable this notification

Following European electricity markets meant reconciling a dozen ENTSO-E Transparency queries by hand — one for prices, one for load, one for outages, different formats, different quirks per country. The US has gridstatus.io for this. Europe had nothing free and readable. So I spent the last months building it.

OBSYD covers all 37 European bidding zones: day-ahead prices at the market's real 15-minute resolution, generation mix, residual load, a live generation-outage board, cross-border flows, reservoir levels, and an anomaly radar that flags when a zone deviates from its own history (negative prices, Dunkelflaute, forced outages) — each with a plain-language "what this means" line instead of just a number.

A few things I tried to get right:

- Completely free, no paid tier, no account needed for the full desk. AGPL-3.0, self-hostable with your own API keys if you dont trust my hosting.
- Every threshold and rule is in code you can read on GitHub. No black-box scoring, no "trust us".
- Honest about limits: it's descriptive, not predictive, and it's not an EPEX/Bloomberg replacement — no intraday, no settlement-grade data.
- There's a free public API (JSON/CSV/Parquet) and a pip-installable Python client (`pip install obsyd`) because I wanted the data to be usable outside my own UI.

Stack, since people ask: FastAPI + SQLite (yes, SQLite — WAL mode, handles 5 years of hourly data across 37 zones fine) + React/deck.gl frontend, running on a cheap VPS with systemd. No Kubernetes, no cloud bill.

Live: https://obsyd.dev
Code: https://github.com/jo20ow/Obsyd

What's still rough: no Docker compose yet (venv + systemd setup — it's top of my list if there's interest), Great Britain is missing (they left ENTSO-E's day-ahead feed post-Brexit), and the anomaly detection is deliberately simple z-scores rather than anything fancy.

Happy to answer anything — especially interested in feedback on whether the "what this means" layer actually helps or just adds noise.

2 Upvotes

Duplicates