Skip to main content

Kpler Short Term Forecasts

Wind, solar generation, demand and SPOT price forecasts up to 46 days ahead

Hamza Aourach avatar
Written by Hamza Aourach
Updated over 2 weeks ago

Weather inputs

Our short-term forecasts for wind, solar, demand, and prices rely on two external weather data providers:

  • ECMWF (a.k.a. EC) – European Centre for Medium-Range Weather Forecasts

  • GFS – Global Forecast System from the U.S. National Oceanic and Atmospheric Administration (NOAA)

Both providers run four forecasts per day — 00, 06, 12, and 18 — across two model types :

  • OP (Operational): A single deterministic scenario (AIFS is too)

  • ENS (Ensemble): Multiple scenarios (50 for EC ENS, 100 for EC 46, 30 for GFS ENS)

For more details on our raw weather data coverage, see here

Forecast methodology

Our price forecasting combines machine learning and time series analysis, with a strong foundation in fundamental market drivers such as production, consumption, fuel prices, and interconnector capacity.

To ensure transparency and avoid the “black box effect”, our models operate in two sequential steps:

Step 1 – Fundamental Forecasts

We first convert raw weather data (temperature, wind speed, solar radiation, cloud cover, etc.) into forecasts of demand, wind production, solar production

This stage captures the physical supply-demand fundamentals that will later influence price formation.

Step 2 – Price Forecasts


The outputs in MW from the fundamental models are then fed into our machine learning-based price models to forecast hourly day-ahead electricity prices (€ / MWh). This approach combines fundamental analysis with historical market behavior, effectively capturing the complex interplay of physical system dynamics and structural price signals by combining several key parameters, such as:

  • Annual shape and level of demand

  • Installed renewable capacity

  • Fossil and nuclear power plant availabilities

  • Fuel prices (gas, coal, carbon)

  • Interconnector constraints

From the changes of these different variables, our model is able to predict for each of the future hours a balance between supply and demand on the merit order for the wholesale market and the bid curves for the reserve prices as it has been studied historically.

We use a single coupled machine learning model that predicts all 40+ interconnected bidding-zone prices simultaneously - this structure helps ensure greater coherence across the European day-ahead market. Our model is retrained daily, using an expanding historical window from 2015 to the most recent actuals.

Once finalized, forecast files are not modified further and are made available via FTP and API access.

Delivery timings

We ingests weather runs from ECMWF and NOAA as soon as files are released.

Delivery times vary by model and run. The times below represent the median, 90th percentile (p90), and 95th percentile (p95) of the availability of the full forecast (i.e. when the last forecasted hour becomes available).

Model

Runs (UTC)

Forecast horizon

Delivery times (UTC run : median / p90 / p95)

EC OP

00z, 06z, 12z, 18z

9 days (00z/12z), 3 days (06z/18z)

00z: 06:02 / 06:12 / 06:42

06z: 11:30 / 11:37 / 11:45

12z: 18:00 / 18:09 / 18:52

18z: 23:31 / 23:38 / 23:40

EC ENS

00z, 06z, 12z, 18z

14 days (00z/12z), 3 days (06z/18z)

00z: 06:56 / 07:30 / 08:46

06z: 12:22 / 12:25 / 12:26

12z: 18:52 / 19:12 / 19:43

18z: 00:26 (D+1) / 00:34 (D+1) / 00:35 (D+1)

EC ENS EXTENDED (46)

00z

46 days

00z: 04:15 (D+1) / 08:03 (D+1) / 09:39 (D+1)

EC AIFS

00z, 06z, 12z, 18z

15 days

00z: 05:38 / 05:59 / 06:10

06z: 11:31 / 11:50 / 11:58

12z: 17:36 / 17:50 / 17:56

18z: 23:39 / 23:49 / 23:54

GFS OP

00z, 06z, 12z, 18z

16 days

00z: 05:23 / 05:27 / 05:31

06z: 11:18 / 11:23 / 11:29

12z: 17:20 / 17:24 / 17:26

18z: 23:24 / 23:30 / 23:33

GFS ENS

00z, 06z, 12z, 18z

16 days

00z: 06:47 / 06:53 / 07:01

06z: 12:45 / 12:50 / 12:52

12z: 18:47 / 18:52 / 18:57

18z: 00:50 (D+1) / 00:58 (D+1) / 01:05 (D+1)

Notes:

  • All timings are given in UTC.

  • We update our forecasts as soon as a new weather file is available. Forecasts are delivered continuously: D+1 arrives first, followed by D+2, and so on until the full horizon is covered.

  • The times listed refer to when the last forecasted hour becomes available. Delivery times are indicative and may vary if weather centres or we experience delays.

  • Most of the delay from run start (e.g. 00z) to full delivery comes from the weather provider. Once we receive the data, forecasts are typically published in under one hour.

Coverage

Zone

Live since

Wind

Solar

Load

Price DA

Austria

2019

Belgium

2019

Bosnia and Herzegovina

2025

Bulgaria

2025

Croatia

2024

Czech Republic

2023

DK1

2025

DK2

2025

Estonia

2025

Finland

2025

France

2019

Georgia

2025

Germany

2019

Greece

2025

Hungary

2024

Ireland

2025

Italy

2021

IT-Calabria

2025

IT-Centre-Nort

2025

IT-Centre-South

2025

IT-North

2025

IT-Sardinia

2025

IT-Sicily

2025

IT-South

2025

Latvia

2025

Lithuania

2025

Moldova

2025

Montenegro

2025

Netherlands

2019

NO1

2025

NO2

2025

NO3

2025

NO4

2025

NO5

2025

Poland

2023

Portugal

2025

Romania

2024

SE1

2025

SE2

2025

SE3

2025

SE4

2025

Serbia

2025

Slovakia

2024

Slovenia

2024

Spain

2021

Switzerland

2021

United Kingdom

2020

XK

2025

Access

API

  • Horizon forecasts
    Provides views of forecasts as they appeared from earlier run dates (e.g., D–1, D–2), useful for revision tracking and performance analysis.

  • Ensemble statistics by run date
    For a given run date, provides statistical summaries (min, q25, median, mean, q75, max) calculated across ensemble members from EC ENS and GFS ENS

FTP

For FTP access, connect to:
Host: calc1.cor-e.fr
Port (FTP): 21
Port (SFTP): 2222

Directory paths :

  • Generation: 4_Supply/Forecast/Generation/COR_E/{Country}/yyyy/mm

  • Demand: 3_Demand/Forecast/Load/COR_E/{Country}/yyyy/mm

  • Spot price: 2_Price/Forecast/Day_Ahead/COR_E/{Country}/yyyy/mm

File naming conventions :

  • wind & solar generation: CORE_SUPPLY_FORECAST_Generation_CORE_{Country}_{Wind|Solar}_Hourly_{EC|GFS}_{OP|ENS}_yyyymmdd{00|06|12|18}.csv

  • demand: CORE_DEMAND_FORECAST_Load_CORE_{Country}_Hourly_{EC|GFS}_{OP|ENS|ENS_SCENARIOS}_yyyymmdd{00|06|12|18}.csv

  • Spot price: CORE_PRICE_FORECAST_DayAhead_CORE_{Country}_Hourly_{EC|GFS}_{OP|ENS|ENS_SCENARIOS}_yyyymmdd{00|06|12|18}.csv

For Ensemble forecasts, two files are published for each run:

  • one {ENS} containing the control scenario "0"

  • one {ENS_SCENARIOS} containing the all scenarios (30 for GFS and 50 for EC ENS, 100 for EC ENS EXTENDED (a.k.a EC 46)

Did this answer your question?