European Negative Price Hours
Every interval the day-ahead price went negative, per European bidding zone - the renewable-glut events that batteries, flexible load and curtailment desks live for. A clean event table pre-filtered from the full price history.
- Source
- derived
- Licence
- Redistributable open data
- Updates
- Intraday
- 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
- Only negative-price intervals - the renewable-glut event table
- All EU bidding zones, 2018-present; one row per negative-price interval
- Derived from European day-ahead prices
- Source: ENTSO-E (CC-BY, derived)
Schema
| Column | Type | Description | Filled | Distinct |
|---|---|---|---|---|
| zone | str | Bidding zone | 100.0% | 33 |
| ts | timestamp (UTC) | Interval | 100.0% | 22,535 |
| price_eur_mwh | float | Negative day-ahead price, EUR/MWh | 100.0% | 6,561 |
| unit | str | Unit | 100.0% | 1 |
| res_min | int | Native resolution (15/30/60) | 100.0% | 3 |
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-negative-price-hours_sample.parquet") df.info() # typed columns, gap-aware, ready to join⬇ Download free Parquet sample or CSV for Excel
Coverage: 33 zones
AT · BE · BG · CH · CZ · DE_LU · DK1 · DK2 · EE · ES · FI · FR · GR · HR · HU · IE_SEM · LT · LV · NL · NO1 · NO2 · NO3 · NO4 · NO5 · PL · PT · RO · SE1 · SE2 · SE3 · SE4 · SI · SK
Related datasets
Australian Power Grid (AEMO NEM)
The spot price and operational demand of Australia's National Electricity Market - one of the most volatile power markets on earth (huge solar/wind, grid batteries, price spikes to the market cap). AEMO publishes the Regional Reference Price (RRP, AUD/MWh) and operational demand (MW) per NEM region as one CSV per month × region; we stitch them into one clean multi-region, multi-metric Parquet - 5-minute from Oct-2021, 30-minute before. Mirrors the ENTSO-E / EIA / Elexon power products, extending the grid suite to the Australian continent.
European Capacity Factor by Fuel
Capacity factor (%) per European zone × fuel × interval - actual generation divided by installed capacity. How hard each fleet is actually working; the asset-utilization metric.
European Grid Carbon Intensity
Interval-level historical grid carbon intensity (gCO2eq/kWh) per European bidding zone - the generation-weighted average of IPCC lifecycle emission factors. Powers carbon-aware scheduling research, ESG reporting, and emissions analytics.