Energy QC clean AI-training-safe

European Power Price Convergence & Congestion

How coupled or congested each European power border is, day by day: for ~55 neighbouring bidding-zone pairs, the mean absolute day-ahead price spread (EUR/MWh), the signed mean spread (zone A - zone B), and the share of hours the two zones cleared at an identical price (fully coupled). Interconnector congestion and market-decoupling events show up as a widening absolute spread and a falling coupled-hours share - the interconnector-value and congestion signal traders and TSOs watch, pre-computed from day-ahead prices, 2018-present. Licence-clean and AI-training-safe.

543K
rows
59
zones
2017-2026
coverage
5.3 MB
download
Source
derived
Licence
Redistributable open data
Updates
Daily
Data through
2026-08-01
Quality
QC clean · 0 failures
Format
Apache Parquet + dictionary

Safe to train on

Built only from a named, redistributable official source under a documented open licence - not scraped web data. No copyright grey zone, no personal data. Ships machine-readable Croissant metadata (ML Commons - loads in Hugging Face / Kaggle / Google), an AI training-licence manifest documenting source, licence and provenance for your model's data governance, and a machine-readable data dictionary (drop it into an agent / RAG prompt so the model knows every column) - all inspectable before you buy.

What's included

  • Mean absolute spread + signed spread + fully-coupled-hours % - per border pair × day
  • ~55 neighbouring bidding-zone pairs across the coupled European market
  • Zone = directed pair label 'A~B' (spread is A - B); one row per pair × day × metric
  • Congestion / decoupling = wide absolute spread + low coupled-hours share
  • Derived purely from day-ahead prices; licence-clean & AI-training-safe
  • Source: ENTSO-E (CC-BY)

Schema

ColumnTypeDescriptionFilledDistinct
zone str Neighbouring bidding-zone pair 'A~B' 100.0% 59
ts timestamp (UTC) Day 100.0% 3,136
variable str Mean absolute spread / signed spread A-B / Hours fully coupled (%) 100.0% 3
value float EUR/MWh (spreads) or % (coupled hours) 100.0% 26,847
unit str mixed - see the variable name 100.0% 2
res_min int Native resolution (daily = 1440) 100.0% 1

Sample & preview

Every purchase ships as Apache Parquet with a data dictionary and the full QC report. A free sample (first rows + schema) is downloadable here - confirm fit before you buy. Source: derived (redistributable open data; attribution passes through - see our Licence).

Don't trust screenshots - drop the sample into your notebook right now.

import pandas as pd
df = pd.read_parquet("european-price-convergence_sample.parquet")
df.info()   # typed columns, gap-aware, ready to join
⬇ Download free Parquet sample or CSV for Excel
Coverage: 59 zones

AT~CH · AT~CZ · AT~HU · AT~IT_NORD · AT~SI · CZ~PL · CZ~SK · DE_LU~AT · DE_LU~CH · DE_LU~CZ · DE_LU~DK1 · DE_LU~FR · DE_LU~NL · DE_LU~PL · DK1~DK2 · DK1~NO2 · DK1~SE3 · DK2~SE4 · EE~LV · ES~PT · FI~EE · FR~BE · FR~CH · FR~ES · FR~IT_NORD · GR~BG · HU~HR · HU~RO · HU~SI · IT_CALA~IT_SICI · IT_CNOR~IT_CSUD · IT_CSUD~IT_SARD · IT_CSUD~IT_SUD · IT_NORD~IT_CNOR · IT_SUD~IT_CALA · LT~PL · LT~SE4 · LV~LT · NL~BE · NO1~NO2 · NO1~NO3 · NO1~NO5 · NO1~SE3 · NO2~NO5 · NO3~NO4 · NO3~NO5 · NO3~SE2 · NO4~SE1 · NO4~SE2 · PL~SK · RO~BG · SE1~FI · SE1~SE2 · SE2~SE3 · SE3~FI · SE3~SE4 · SI~HR · SI~IT_NORD · SK~HU