Pick a site, choose dates, press Update forecast
Four global weather models (ECMWF, GFS, ICON, Météo-France) and up to three ensembles are converted to wind-farm and PV power for any location on Earth — free, no account.
Wind farm power
MW · band = ensemble P10–P90Solar PV power
MW · band = ensemble P10–P90Hub-height wind speed
m/s per modelDaily energy
MWh, P50 with P10–P90Combination forecast
Weather models are good in different situations. The weight of each model is learned from its past error separately for each weather situation (wind: low wind / power-curve slope / high wind; solar: clear / broken / overcast) using weights ∝ (1/MSE)p, where the sharpness p is chosen on held-out data, and the spread of past errors in that situation gives a situation-dependent uncertainty band. The latest measurement then corrects the first hours, with the error decaying as e−Δt/τ.
Combination forecast
MWModel weights per weather situation
share of the combinationWith the ERA5 reference the weights show which model agrees best with the reanalysis at this site; with your measurements they reflect real plant skill.
Test-period skill
last 30 % of the training window, not used for learningSkill appears after learning.
Manual weights
Short-term correction
latest measured outputTime empty = the current hour. If measurements are loaded in the Evaluate tab and overlap the period, the most recent one is used automatically.
Weather warnings for operation and trading
Each hour is checked in every weather model (and, for storms, every ensemble member). The share of scenarios that meet a rule sets the level: ! Watch ≥ 15 % !! Warning ≥ 40 % ⛔ Severe ≥ 70 %. Updates automatically with every forecast.
Risk timeline
hover a cell for detailsRun a forecast first.
Active warnings
Situational report
Availability and curtailment forecast
Two versions of the forecast: technically possible feed-in (weather potential minus outages, maintenance and scheduled shutdowns) and real feed-in (additionally grid restrictions and market-driven curtailment at low or negative day-ahead prices).
Maintenance & grid restriction plan
Maintenance: MW unavailable. Grid restriction: maximum export (MW) for the whole plant during the window. Saved in this browser.
Scheduled shutdowns (wind)
Active only when the sun is in that sector and it is sunny (GHI > 60 % of clear sky).
Market & grid
Weather-driven (PV)
Wind: potential vs technically possible vs real feed-in
MW, P50Solar: potential vs technically possible vs real feed-in
MW, P50Energy lost by cause
Optimal day-ahead offer
Revenue for offer q and production p: R(q) = λDq + λ↓(p−q)+ − λ↑(q−p)+. Maximising the expected revenue over the forecast distribution gives the newsvendor solution: offer the τ* = (λD−λ↓)/(λ↑−λ↓) quantile. Quantile forecasts (pinball loss) are therefore the right tool, not the MSE-optimal mean.
Offers vs forecast uncertainty
MW per hourDay-ahead price
€/MWhExpected revenue vs offer
Strategy comparison
expected revenue over all scenarios and hoursBattery scheduling with dynamic programming
State = state of charge (SoC), action = charge / idle / discharge, reward = price × energy − degradation. The optimal schedule is found by backward induction of the Bellman equation Vt(s) = maxa [ rt(s,a) + Vt+1(s′) ] over the selected period.
State of charge
MWhCharge (−) / discharge (+)
MW at the grid connectionLecture MDP: battery with a Markov price
The exercise from the MDP lecture: prices switch between two levels as a Markov chain. Solved for the infinite-horizon discounted value V*(s) = maxa[R(s,a) + γ Σ Psa(s′)V*(s′)] with both value iteration and policy iteration.
Optimal policy π*(s)
Value-iteration convergence
max |Vk+1 − Vk|Evaluate forecasts against your measurements and learn a better model
Upload hourly plant data (CSV with time in UTC and power_mw, or wind_power_mw/solar_power_mw).
The app downloads the archived forecasts for the same hours and compares: raw physical model → ridge regression with polynomial features
(λ and degree chosen by blocked cross-validation) → decision-focused learning (linear offer trained to maximise revenue, not accuracy).
Test-period error
MAE penalises all errors equally; RMSE penalises large errors more — report bothValidation curve
blocked 5-fold CV RMSE vs ridge λLearned power curve
measured vs forecast, test periodTest period time series
MWSite assessment and representative days
A full year of ERA5 reanalysis is converted to hourly capacity factors. Each day becomes a 48-value vector (24 h wind + 24 h solar) and k-means groups them into representative days, each weighted by the number of days it represents — the input format of capacity-expansion models.
Monthly capacity factor
%Elbow plot
within-cluster sum of squares vs kRepresentative days — wind
capacity factor by hour (site time)Representative days — solar
capacity factor by hour (site time)Power curve
per turbine, standard vs site air densityHub-height wind distribution
% of hours, with Weibull fitAnnual energy production (AEP)
selected yearOther uncertainty covers power-curve, loss and reanalysis-bias uncertainty (typically 6–10 %).