theforecastingcompany/enedis-with-holidays
enedis-with-holidays Five years (2020-07-18 → 2025-07-17) of the French total electricity consumption (consommation_totale) published by Enedis, at three frequencies: 30min, 6h, and D (daily). Each row carries the matching covariates (smoothed observed temperature, smoothed climatological-normal temperature, French public holiday flag) and nine forecast windows anchored on three 2024 holidays for backtesting. This dataset is designed to evaluate how well forecasting models… See the full description on the dataset page: https://huggingface.co/datasets/theforecastingcompany/enedis-with-holidays.
enedis-with-holidays
Five years (2020-07-18 → 2025-07-17) of the French total electricity consumption (consommation_totale) published by Enedis, at three frequencies: 30min, 6h, and D (daily). Each row carries the matching covariates (smoothed observed temperature, smoothed climatological-normal temperature, French public holiday flag) and nine forecast windows anchored on three 2024 holidays for backtesting.
This dataset is designed to evaluate how well forecasting models capture holiday effects. French public holidays cause large, predictable drops in electricity consumption that are notoriously hard to forecast with seasonality alone — Labour Day (May 1), Armistice (Nov 11), and the Christmas / New-Year cluster are all included explicitly, with multiple forecast-creation dates per holiday so you can compare model behaviour across short, medium, and long holiday lead times. The is_france_holiday future covariate is the hook for testing covariate-aware models against ones that have to infer the holiday calendar themselves.
The half-hourly row preserves the raw cadence; the 6h and daily rows are time-bucket aggregations (sum for the energy target, mean for temperatures, max for the holiday indicator). Forecast windows are expressed in each row's own frequency units.
Quickstart
from datasets import load_dataset
ds = load_dataset("theforecastingcompany/enedis-with-holidays", split="train")
for row in ds:
print(
row["item_id"], row["freq"],
"T =", len(row["target"][0]),
"targets =", len(row["target_names"]),
"windows =", len(row["window_fcd_idxs"]),
)
# enedis_bilan_30min 30min T = 87648 targets = 1 windows = 9
# enedis_bilan_6h 6h T = 7305 targets = 1 windows = 9
# enedis_bilan_D D T = 1827 targets = 1 windows = 9Ground truth for window i is:
fcd = row["window_fcd_idxs"][i]
horizon = row["window_horizons"][i]
ground_truth = np.array(row["target"])[:, fcd + 1 : fcd + 1 + horizon]
# shape (1, horizon)Rows
All three rows start at 2020-07-18 and end at 2025-07-17 (modulo each frequency's bucketing). The post-2024-10-04 15-min era in the raw Enedis data is aggregated to 30-min mean before the half-hourly row is emitted, so the timeline is uniform across the five-year span.
Schema
Target
consommation_totale— total French electricity consumption, expressed as energy delivered during the bucket in Wh. At daily granularity the value is the total daily energy (≈ 1.2–1.5 TWh per day for France). Always exposed as a 2-D(1, T)array so the schema accommodates future multivariate versions without an API break.
Covariates
- `past_feat_dynamic_real` (history-only)
temperature_reelle_lissee— smoothed observed temperature (°C).- `feat_dynamic_real` (known-future)
is_france_holiday— binary, 1 on French public holidays.temperature_normale_lissee— smoothed climatological-normal temperature (°C).
For the 6h and daily rows: the consumption channel is the sum over the bucket (so units stay in Wh of delivered energy per bucket); the holiday flag is the max (any holiday inside marks the whole bucket); temperatures are bucket means.
Forecast windows
Nine windows = three holidays × three forecast-creation dates each. The FCDs sit 20 / 10 / 5 days before each holiday and the matched horizons extend through the holiday window. The Christmas–New-Year cluster uses longer horizons (28 / 18 / 13 days) so the forecast also covers New Year's Day.
In each row the FCD indexes and horizons are expressed in steps of that row's frequency (so the 30min row's window_horizons are in half-hours, the 6h row's are in six-hour buckets, etc.).
Source & license
Built from the bilan électrique demi-heure series published by Enedis Open Data and mirrored on data.gouv.fr. The covariates are publicly available French public-holiday calendars and Météo-France smoothed temperature references. Redistributed under CC-BY-4.0 with credit to Enedis as the upstream data provider.
Citation
If you use this dataset, please credit Enedis as the upstream data provider and link back to this Hub repository.
