Energy QC clean AI-training-safe

European Weather

What a heatwave or cold snap cost (or saved) each European power-market zone yesterday, priced at the day-ahead clearing price: the weather-driven load deviation from the temperature-normalized demand baseline (MW), that deviation monetised (EUR/day), and a trailing 90-day z-score of the monetised anomaly. A price-weighted anomaly, not the grid's realised balancing/imbalance cost - built strictly look-ahead-free (the z-score at day t uses only days before t).

369K
rows
40
zones
2018-2026
coverage
6.6 MB
download
Source
derived
Licence
Redistributable open data
Updates
Daily
Data through
2026-07-29
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

  • 3 variables per zone x day: weather_driven_load_mw, weather_driven_cost_eur, cost_anomaly_z
  • weather_driven_load_mw = actual load - temperature-normalized demand baseline (MW)
  • weather_driven_cost_eur = weather_driven_load_mw x day-ahead price x 24h (EUR/day, can be negative when weather suppressed demand)
  • cost_anomaly_z = trailing 90-day z-score (min_periods=30), shift(1)'d - strictly no look-ahead
  • Zones = the 3-way intersection of european-electricity-load, european-temperature-adjusted-demand and european-day-ahead-prices
  • Derived from ENTSO-E (CC-BY) - attribute ENTSO-E

Schema

ColumnTypeDescriptionFilledDistinct
zone str ENTSO-E power-market zone 100.0% 40
ts timestamp (UTC) Day 100.0% 3,132
variable str weather_driven_load_mw / weather_driven_cost_eur / cost_anomaly_z 100.0% 3
value float Value - MW for load, EUR for cost, z-score (unitless) for cost_anomaly_z 100.0% 241,387
unit str Unit (mixed - see variable) 100.0% 1
res_min int Native resolution (1440 = daily) 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-weather-power-cost_sample.parquet")
df.info()   # typed columns, gap-aware, ready to join
⬇ Download free Parquet sample or CSV for Excel
Coverage: 40 zones

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