EPF uses a single SQLite database with 6 tables.
Tables Overview
| Table | Purpose | Primary Key | Rows (typical) |
|---|
ree_hourly | Hourly REE/ESIOS data | datetime_utc | ~35,000 (3+ years) |
ree_15min | 15-minute REE data | datetime_utc | ~18,000 (~5 months) |
predictions | Forecast results | composite (6 cols) | ~500,000+ |
weather_hourly | Open-Meteo hourly | datetime_utc | ~30,000 |
commodity_daily | TTF gas, Brent oil & ETS carbon | date | ~1,500 |
ree_hourly
Hourly electricity market data from REE/ESIOS since 2022-01-01.
| Column | Type | Description |
|---|
datetime_utc | TEXT | ISO 8601 timestamp (PK) |
day_ahead_price | REAL | Day-ahead market price (EUR/MWh) |
intraday_price | REAL | Intraday market price |
real_demand | REAL | Real-time demand (MW) |
demand_forecast | REAL | Demand forecast (MW) |
wind_generation | REAL | Wind generation (MW) |
solar_pv_generation | REAL | Solar PV generation (MW) |
solar_thermal_gen | REAL | Solar thermal generation (MW) |
hydro_generation | REAL | Hydroelectric generation (MW) |
nuclear_generation | REAL | Nuclear generation (MW) |
combined_cycle_gen | REAL | Gas combined cycle (MW) |
coal_generation | REAL | Coal generation (MW) |
cogeneration | REAL | Industrial cogeneration (MW) |
fuel_gas_generation | REAL | Fuel gas generation (MW) |
france_interconnection | REAL | France flow (MW, +import/-export) |
portugal_interconnection | REAL | Portugal flow (MW) |
morocco_interconnection | REAL | Morocco flow (MW) |
collected_at | TEXT | Collection timestamp |
predictions
Forecast results with confidence intervals.
| Column | Type | Description |
|---|
prediction_date | TEXT | Date forecast was generated |
target_date | TEXT | Date being predicted |
target_hour | INTEGER | Hour (0-23) |
target_minute | INTEGER | Minute (0, 15, 30, 45) |
model_name | TEXT | Model identifier |
run_mode | TEXT | dayahead, strategic, or legacy |
predicted_price | REAL | Point forecast (EUR/MWh) |
actual_price | REAL | Actual price (backfilled) |
model_version | TEXT | Training date |
prediction_lower_90 | REAL | 5th percentile |
prediction_upper_90 | REAL | 95th percentile |
prediction_lower_50 | REAL | 25th percentile |
prediction_upper_50 | REAL | 75th percentile |
Primary Key: (prediction_date, target_date, target_hour, target_minute, model_name, run_mode)
commodity_daily
| Column | Type | Description |
|---|
date | TEXT | Date (PK) |
ttf_gas_eur_mwh | REAL | TTF gas price (EUR/MWh) |
brent_oil_usd_bbl | REAL | Brent crude oil price (USD/bbl) |
ets_carbon_eur | REAL | ETS carbon price (EUR/tCO2) |
collected_at | TEXT | Collection timestamp |
weather_hourly
| Column | Type | Description |
|---|
datetime_utc | TEXT | Timestamp (PK) |
temp_c | REAL | Temperature (°C) |
wind_speed_kmh | REAL | Wind speed (km/h) |
precipitation_mm | REAL | Precipitation (mm) |
sunshine_hours | REAL | Sunshine duration (hours) |
cloud_cover_pct | REAL | Cloud cover (%) |
direct_radiation_wm2 | REAL | Direct solar radiation (W/m²) |
diffuse_radiation_wm2 | REAL | Diffuse solar radiation (W/m²) |
collected_at | TEXT | Collection timestamp |