progrunners.comenergy & technology
progrunners / Open data and tools

Open data and tools, with the workings shown

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.

Six repositories, all MIT or CC-BY, no account and no API key needed for any of them.
On this page
  1. Start here if you need data today
  2. The one thing worth reading even if you take nothing else
  3. Why we publish any of this
  4. What we do for money

Start here if you need data today

Everything below is on GitHub, free, and needs no registration. Pick by what you are trying to do rather than by name.

You wantTake thisFormat
Day-ahead prices, any European zone, any day back to 2022european-power-pricesCSV, one file per day
To query ENTSO-E yourself without fighting the XMLentsoe-quickstartone Python file, no dependencies
The zone code a query needseic-codesCSV and JSON
Czech data from ČEPS and OTE without a tokenceps-oteone Python file
To understand what the imbalance price actually doesimbalance-price-anatomymeasured on 92 018 quarter hours
To know which source has what, across Europeawesome-european-energy-dataan 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.

The one thing worth reading even if you take nothing else

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.

There is a script that checks your own data in one command. It fetches one day twice, once naively and once correctly, and prints both. If your own parser has the bug, the two numbers will not match. It is ninety lines of standard library and it is in the write-up.

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.

Why we publish any of this

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.

What we do for money

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.

Frequently asked questions

Do I need an ENTSO-E account to use these?
Not for the datasets or the lookup tables — they are plain files on GitHub. The entsoe-quickstart client talks to ENTSO-E directly, so for that you need a security token, which is free but arrives by e-mail a few days after you ask for it.
Can I use the data commercially?
The code is MIT, so yes, with no attribution required. The datasets are CC-BY: use them for anything, credit the source. Note that the underlying prices come from ENTSO-E and national exchanges, whose own terms apply to redistribution at scale.
How often does the price dataset update?
Once a day, automatically. It also re-fetches the last few days on every run, so a value the platform corrects after publication gets corrected in the dataset too.
Why publish a bug you had in production?
Because it is the useful part. The fix is four lines; knowing the failure exists is what saves someone a week. It also silently affected a dataset we had told people to trust, and saying so is the minimum.
I found something wrong in one of these.
Open an issue on the repository, or write to info@progrunners.com. A reproducible case — zone, day, what you expected — is worth more than a description, and we will usually have an answer the same day.

Explore the rest of the site

Need this shaped to your market?

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