Data interface
Files over HTTPS. There is no query interface.
Base address: https://powertradinglab.org/benchmarks/data/
- Unit: EUR per MW of trading capacity, summed over the delivery day.
- Granularity: one row per zone per delivery day, newest pass only.
- Terms: Free to use with attribution. Derived values only: no day-ahead or imbalance prices are republished here or anywhere else in this dataset.
- Heartbeat: status.xml, rewritten by every run.
How the files are organised
[PLACEHOLDER — the frozen archive versus the mutable files; naming (zone, one underscore); the three files per series (full, 90 days, latest); passes as-known and as-final; versions per row; how absences appear in the columns.]
A query interface
[PLACEHOLDER — the data is free and complete as files; a query interface means a second machine and uptime somebody has to be responsible for, so it exists if someone funds that work, and then it serves the same numbers just as freely.]
Files
| File | Bytes | sha256 |
|---|---|---|
| index.json | the map: vocabulary, definitions, files | |
| zones.json | per zone: EIC, timezone, currencies, first and last day | |
| NL_forecasts-90d.csv | 2,195 | d6afe20e4ce302a29286150ad4a12e157d49a1d69551d044481b79ede8b5211d |
| NL_forecasts-latest.csv | 263 | 6e21c0ae57303b989fa35dce2785057558cb29740416c5fa2ea7242fffa28b6d |
| NL_forecasts.csv | 2,195 | d6afe20e4ce302a29286150ad4a12e157d49a1d69551d044481b79ede8b5211d |
| NL_scores-90d.csv | 2,402 | 0ec3e9c924c9dcff5a7bd19860a72e0f012ed53c9dd5c3b6dd99359a5c5a9524 |
| NL_scores-latest.csv | 370 | 76ae5c31595a16d456f594a3d0d39f27ae2f18f0d1e98439a725aa677d5f395c |
| NL_scores.csv | 2,402 | 0ec3e9c924c9dcff5a7bd19860a72e0f012ed53c9dd5c3b6dd99359a5c5a9524 |
| RO_forecasts-90d.csv | 673 | aadf3f55950456bb2ef78dc8721a8324038657a5a9c717818d60e99a64d486ab |
| RO_forecasts-latest.csv | 263 | ad2731ec49300043ecfee45ce2df6d23cfdebddccd3d778ed88050fb46829da5 |
| RO_forecasts.csv | 673 | aadf3f55950456bb2ef78dc8721a8324038657a5a9c717818d60e99a64d486ab |
| RO_scores-90d.csv | 2,309 | dc963989428d9325392daad3ac195f995dd330aedbada6fde83253d0f38b698c |
| RO_scores-latest.csv | 369 | ec74d2a86ab1919e84dae1e91eb08be4f80126d445d6c04aff2628b76c169236 |
| RO_scores.csv | 2,309 | dc963989428d9325392daad3ac195f995dd330aedbada6fde83253d0f38b698c |
| forecasts-latest.csv | 390 | bfaba046c873d9da6c5279c0b574fa5dce22595280b510d5f177ef8dbc4c0442 |
| scores-latest.csv | 528 | b72d2337e6b4367c0f5d445caba81b8f494231e355c8d5151798675bed4c4ac6 |
| zones.json | 505 | f5613f9b7f423e409a3aeb73269ba785dc29a688e27d30eada1d799908d049a1 |
Score columns
zone- Bidding zone code.
delivery_day- The delivery day in the zone's own market time, ISO date.
ptu- How many 15-minute periods the day was graded on. Less than a full day means the source published fewer.
ptu_with_action- How many of those carried a decision of ours. The denominator for trailing_bias_value.
pass- as-known (graded the morning after delivery) or as-final (regraded after imbalance settled).
calc_iteration- Which pass this is for this delivery day, counting from 1.
knownby_ts- The instant the row was computed — everything in it was knowable then.
source_file- The frozen published document this row was derived from.
Benchmark columns
- Extractable
extractable_value - The better of the two passive positions, chosen per PTU with perfect hindsight. It can be negative where dual imbalance pricing leaves the day-ahead price inside the penalty band, and that negative is real.
- Trailing bias
trailing_bias_value - The result of the hourly trailing-bias rule, which picks the day-ahead side from a trailing mean per hour of day and uses only what was known before the auction closed. Empty where no decision was issued.
- Passive DA buy
passive_da_buy_value - Buy 1 MW on the day-ahead auction for every PTU of the day and settle the position in imbalance. No foresight: the same side every PTU.
- Passive DA sell
passive_da_sell_value - Sell 1 MW on the day-ahead auction for every PTU of the day and settle the position in imbalance. No foresight: the same side every PTU.
- Adverse
adverse_value - The worse of the two passive positions, chosen per PTU with perfect hindsight. Where a zone prices imbalance single-sided it is the exact mirror of extractable_value.
Forecast columns
zone- Bidding zone code.
delivery_day- The day the decision is FOR, in the zone's own market time.
knownby_ts- When the decision was made. Always before the day-ahead gate of the day before delivery_day.
ptu- 15-minute periods in the delivery day (92, 96 or 100).
ptu_buy- Periods with action +1: buy on the day-ahead auction, settle in imbalance.
ptu_sell- Periods with action -1: sell on the day-ahead auction, settle in imbalance.
ptu_no_action- Periods with no action. ptu = ptu_buy + ptu_sell + ptu_no_action, always.
data_through- The freshest fact the signal saw.
skip_reason- Empty: where there is no action, the signal did not form. Set: the forecast was REFUSED, and the value says why (kind:missing day[:leg]).
source_file- The frozen published forecast this row was derived from; per-period actions are there.