Day-ahead wind generation forecast that beats persistence
Forecast tomorrow's hourly wind output for a German grid zone from open weather forecasts, beat persistence and climatology, and put a euro value on the improvement.
Industry project · for Nordwind Direktvermarktung, a Hamburg company that sells the output of 1.4 GW of onshore wind parks on the power exchange
Nordwind sells electricity from 1.4 GW of onshore wind parks in northern Germany on the day-ahead market. Every day before noon it has to bid 24 hourly volumes for the next day. Whatever it gets wrong is settled at the imbalance price, which last year averaged about €45 per MWh of error on top of the lost sale. Nordwind currently buys forecasts from a vendor but wants an in-house model as a check and a fallback.
The forecasting lead has set a clear test. Use only data that would have been available at 11:00 on the day before delivery: - hourly wind generation for one German control area from SMARD, the Bundesnetzagentur market data portal, scaled to a per-unit capacity factor; - weather forecasts for 6–10 locations in that area (wind speed at 10 m and 100 m, direction, temperature, pressure) from an open source such as Open-Meteo's historical forecast data or DWD open data.
You will build two baselines, persistence (tomorrow equals today at the same hour) and climatology (the average for that month and hour). Then you will train a gradient-boosted model and a small neural network on the weather features. The test is the full most recent year, held out. The target is a normalised RMSE at least 40% below persistence.
Done looks like a reproducible pipeline that builds a forecast for any date, a results report with error by lead hour and by season, a short comparison of the two models, and an estimate of how many euros of imbalance cost a year the better model would save on 1.4 GW.
GitHub repo with data download, feature and training scripts + reports/verification.md + model comparison + one-page value estimate
Stack: Python, pandas, LightGBM, PyTorch, matplotlib
- Forecast-time correctness30
Every feature comes from a weather forecast issued before 11:00 on the day before delivery, never from observed weather on the day.
- Beats the baselines25
nRMSE on the held-out year is at least 40% below persistence and below climatology, with numbers for both.
- Verification depth20
Error is reported by lead hour, by season and for high-wind days, with plots.
- Fair model comparison10
The tree model and the neural network use the same features, splits and tuning budget.
- Value estimate15
Annual imbalance savings on 1.4 GW are estimated from the error reduction, with assumptions stated.
Pass 60% · Merit 75% · Distinction 90%
Engineering Students
Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.
Aspiring Developers
Developers who want to build proof-of-work capstone projects for tech resumes.
Job Seekers
Graduates looking for AI-evaluated code review & verified industry credentials.