8,760 rows · 7 columns
Grid energy load
A year of hourly electricity demand, renewable generation, temperature and wholesale price for one balancing area — including the hours when price goes negative.
What is in it, and what is wrong with it
Load has three nested seasonalities — hour of day, day of week, and time of year — which makes it a much more honest forecasting exercise than the single-seasonality series that show up in tutorials. Prices go negative on windy low-demand nights, so a model that assumes positive prices will look fine on MAPE and be useless in practice.
Schema
| Column | Type | Description |
|---|---|---|
| hour_at | timestamp | Hour beginning, UTC. |
| load_mw | float | System demand in megawatts. |
| temp_c | float | Population-weighted temperature. |
| solar_mw | float | Solar generation. |
| wind_mw | float | Wind generation. |
| price_eur_mwh | float | Day-ahead clearing price. Can be negative. |
| is_holiday | boolean | Public holiday flag. |
First twelve rows
| hour_at | load_mw | temp_c | solar_mw | wind_mw | price_eur_mwh | is_holiday |
|---|---|---|---|---|---|---|
| 2023-01-01 00:00:00 | 4269 | -2.6 | 0 | 219.8 | 38.6 | true |
| 2023-01-01 01:00:00 | 4290.6 | -6.5 | 0 | 493 | 37.91 | true |
| 2023-01-01 02:00:00 | 4441.7 | -6 | 0 | 516.6 | 20.24 | true |
| 2023-01-01 03:00:00 | 4769.1 | -5.8 | 0 | 603.3 | 35.7 | true |
| 2023-01-01 04:00:00 | 5116 | -3.7 | 0 | 514 | 47.96 | true |
| 2023-01-01 05:00:00 | 5938.5 | -0.1 | 0 | 228.9 | 45.44 | true |
| 2023-01-01 06:00:00 | 6283.2 | -1.3 | 0 | 1036 | 42.15 | true |
| 2023-01-01 07:00:00 | 6808.5 | -1.9 | 116.6 | 692.5 | 55.05 | true |
| 2023-01-01 08:00:00 | 7126.5 | -3.6 | 154.3 | 764.6 | 46.63 | true |
| 2023-01-01 09:00:00 | 7083.8 | -0.4 | 227.4 | 216 | 54.32 | true |
| 2023-01-01 10:00:00 | 7033.6 | 2.2 | 401.3 | 372.8 | 50.39 | true |
| 2023-01-01 11:00:00 | 6753.8 | 6.6 | 467.2 | 373.8 | 65.94 | true |