Energy data, locked as published
Some of Denmark’s most used energy data is overwritten as it changes: Energinet’s CO₂ forecast, which tells you when power is greenest, and the official list of grid tariffs and the electricity tax. Two collectors now save both, every hour and every day, in hash chains anchored on GitHub. Later, anyone can check what was published and when.
- Rules published before the first download
- Anchored on GitHub every day
- No results until there is something real to show
Reading the public anchor files on GitHub…
The electricity tax, 2019–2027
From the official price list, as published. What happens in 2028 isn’t in the list yet. The archive will show the day it appears.
| Period | Øre per kWh, excl. VAT | Incl. 25 % VAT |
|---|
Charge EA-001 “Elafgift” in Energinet’s DataHub price list, as published on 30 September 2026 (the first snapshot of the price archive). The list starts in 2019. The tax was also cut to the EU minimum in the first half of 2023. The reduced rate for electric heating and business refunds are not shown.
What is being locked, and why
Both datasets are public. What isn’t kept anywhere is how they looked yesterday.
Does the green hour hold?
- Energinet’s forecast of CO₂ per kWh, DK1 and DK2, saved every hour, up to 48 hours ahead.
- It is overwritten as it updates. In a test, 71 of 140 future values changed within 20 minutes. Nobody can score yesterday’s forecast unless it was saved at the time.
- The test: if you charge in the 3 hours the forecast called greenest, how much CO₂ do you actually avoid, compared with the day’s average and with “same hours as yesterday”?
First result around 30 October, marked preliminary. The rules, fixed before the first snapshot.
Every tariff, every day
- The full DataHub price list, saved every day: every grid company’s tariffs, Energinet’s tariffs and fees, and the electricity tax.
- The list only shows its current state. When DataHub 3.0 went live on 21 September 2026, the owner column changed, and 13,465 rows now carry no owner name at all. From now on, every change is logged with before and after.
- Plus the day-ahead electricity prices for DK1 and DK2, as we first see them. Any later correction is logged, not hidden.
An archive, not a test: any analysis built on it gets its own rules first. The method.
How good is Denmark’s wind forecast?
Nearly seven years of Energinet’s published wind and solar forecasts, from the day before to the hour before, scored against settled production and against a lazy guess. The rules were published before any data was downloaded. We have asked Energinet to comment before anything is shown here, so the results wait until they have had time to answer.
Check it without trusting us
Both collectors are open source, Python standard library only, with offline tests.
CO₂ forecast chain
The newest hash of the chain, committed publicly every day. Change any saved forecast and the chain no longer leads to a head that is already public.
The anchor file →Price archive chain
The same for the price list and day-ahead prices. Identical snapshots share one file, but every download is still in the chain.
The anchor file →Run it yourself
The code’s SHA-256 is in METHOD.lock, and each daily anchor records which version the server ran.
Read the code →- 29 Sep 2026Energinet’s datasets probed. The CO₂ forecast turned out to be overwritten, so it has to be saved as it’s published.
- 30 Sep 2026Both collectors running. Rules published first, then the first downloads, then the first public anchors.
- Now · day –Collecting. CO₂ forecast every hour, the price list and day-ahead prices every day.
- 14 Oct 2026 at the earliestWind and solar forecast results, after Energinet has had time to comment.
- Around 30 Oct 2026First green-hours result, marked preliminary.
This is the same method we use to validate trading signals: lock it before the outcome, measure it against data we don’t control, and compare it with a lazy guess.