I’ve been working for a bit in Nordic energy markets and built a side project to forecast short-term electricity prices across several European areas (currently DE, Nordic price areas, FR, PL). The ML model is based on openly available data, most importantly through:

    • ENTSO-e (European Network of Transmission System Operators for Electricity)
    • ECMWF (European Centre for Medium-Range Weather Forecasts)
    • JAO (Joint Allocation Office)

    The core is an XGBoost model that produces hourly price forecasts up to 7 days ahead using weather, load, renewables, and cross-border signals.

    Price forecast (7-day hourly)

    This is the main view showing the hourly price forecast for the next 7 days.

    You can switch between areas (DE, FI, SE, NO, etc.). In general:

    • works better in weather-driven systems like Germany
    • harder in hydro-dominated areas (Nordics), but still gives a reasonable directional signal

    What’s driving the price

    Wind forecast is one of the main drivers for most European price areas.

    Solar adds the typical mid-day dip, especially in spring/summer.

    Consumption reflects demand patterns driven by temperature, calendar effects, and recent load trends.

    These forecasts for fundamentals are built using a combination of ENTSO-E actuals and ECMWF weather data (wind speed, solar irradiance, temperature, etc.), using multiple geographic points with more weight on areas with higher generation capacity (e.g. wind-heavy regions for wind forecasts).

    Residual load (key signal)

    Residual load = load minus wind minus solar

    This correlates strongly with price and helps explain most of the shape you see in the forecast.

    Forecast history (model evaluation)

    By default, this shows forecast snapshots from the past three days, so you can see how the model’s view of the future has evolved over time.

    You can also switch to archived day-ahead forecasts and compare them directly against actual realized prices over a selected period.

    Model setup (very briefly)

    It’s an XGBoost model trained on data since 2023 using:

    • ECMWF weather (historical + forecast)
    • ENTSO-E generation and load data
    • JAO cross-border capacity info
    • calendar effects and recent price history
    • some hydrology features for FI/NO

    Observations so far

    • Germany works relatively well (strong weather signal)
    • Nordic areas are harder due to hydro dynamics and water values
    • model captures general shape and intraday structure fairly well
    • price spikes and extreme events are still difficult

    This model can’t compete with large fundamental optimization-based models, this is more of a data-driven short-term approach.

    Machine learning models like this can generally be quite good at picking up short-term patterns and reacting quickly to changes in weather, demand, and system conditions, especially in markets where prices are strongly driven by renewables.

    They are relatively lightweight and can be updated frequently, but they rely entirely on historical relationships and available features, which makes them less reliable during structural changes or rare events (e.g. sudden gas price shocks during geopolitical disruptions like the recent Iran conflict, where European gas prices have surged significantly).

    In contrast, large optimization-based models (e.g. unit commitment or dispatch models) explicitly represent the physical system and constraints, which makes them more robust for scenario analysis and longer horizons, but also heavier, and more assumption-driven.

    This project started as a fork of an open source Finnish price forecasting project (https://github.com/vividfog/nordpool-predict-fi), using it as a baseline for the XGBoost setup and the front-end. The project has been expanded to multiple European areas and extended with wind, solar, and load forecasts, additional weather features, and a reworked backend and front-end. The author has indicated that the project is licensed under MIT and can be freely used, modified, and adapted.

    Link if anyone wants to check it out:
    https://eupowerprices.com

    Would be interested in feedback, especially from people working with power markets or time series forecasting.

    7-day forecast dashboard for European day-ahead electricity prices
    byu/skroomey inenergy



    Posted by skroomey

    Leave A Reply
    Share via
    Share via