We build market data pipelines for a living. The parts that are useful on their own we publish — the datasets, the lookup tables, and the mistakes we made getting them right.
Everything below is on GitHub, free, and needs no registration. Pick by what you are trying to do rather than by name.
| You want | Take this | Format |
|---|---|---|
| Day-ahead prices, any European zone, any day back to 2022 | european-power-prices | CSV, one file per day |
| To query ENTSO-E yourself without fighting the XML | entsoe-quickstart | one Python file, no dependencies |
| The zone code a query needs | eic-codes | CSV and JSON |
| Czech data from ČEPS and OTE without a token | ceps-ote | one Python file |
| To understand what the imbalance price actually does | imbalance-price-anatomy | measured on 92 018 quarter hours |
| To know which source has what, across Europe | awesome-european-energy-data | an annotated list |
If you only want the numbers and not the plumbing, the live prices for 38 bidding zones are on this site at European electricity prices, updated through the day.
ENTSO-E compresses its price curves. When consecutive quarter hours clear at the same price it publishes the first one and omits the rest, and nothing in the response says so. Parse the points one at a time and those intervals disappear silently.
We had this bug for months. It had removed 10.8 % of our own published dataset — 324 394 rows across 1 718 of 1 725 days — and the README blamed the source for it. A single French day came out 11 % too expensive because the gap fell in the cheap midday solar hours.
The full account — what curveType A03 is, the second trap of several price series arriving in one response, and how to verify a series against something that is not ENTSO-E — is in curveType A03: the gap that eats 10 % of your prices.
Partly because the work is already done. A dataset that updates itself daily costs nothing extra to share, and the lookup tables were built because we needed them.
Mostly because it is the honest version of a portfolio. Anyone can claim to know a market. Publishing the data, the parser and the bug we shipped for months lets you judge that for yourself before you talk to us.
The licences are permissive on purpose: MIT for the code, CC-BY for the data. Use them in a commercial product, no attribution needed for the code. The only thing we ask is that you check the numbers against a second source before you rely on them — which is exactly the lesson that produced the article above.
We build the things that sit on top of this data: trading dashboards, market data pipelines, backtests against real published values, imbalance settlement reconciliation. Mostly for utilities, traders and aggregators in Central Europe and DACH.
If something here is close to what you need but not quite it — a zone we do not cover, a source we have not touched, a series that will not reconcile — that is the conversation we are interested in. Examples of finished work are in a balancing market dashboard and rebuilding an intraday order book.
We build market data pipelines and dashboards for European power — ENTSO-E, national TSOs, imbalance settlement, backtesting. Tell us what you are trying to see and we will tell you whether it is a week or a quarter.
info@progrunners.com