How good are the numbers?

Every model is scored daily against what the grid measured, publishes an 80 % range built from its own recent error, and every data feed is checked hourly. Metrics for windows ending 2026-11-15 00:00 UTC.

25%
Solar error, 30 days
NMAE, dispatchable
16%
Wind error, 30 days
NMAE, fleet
74%
P10–P90 coverage
target 80 %
9/9
Feeds fresh
checked hourly
0
Open alerts
no channel configured

01

Feed health

Each source has a freshness rule. A failing rule opens one alert and closes it when the feed recovers.

Solar weather forecast2 d ahead

fresh

Wind weather forecast2 d ahead

fresh

Day-ahead prices26 h ahead

fresh

Actual load (ENTSO-E)2 h ago

fresh

Cross-border flows2 h ago

fresh

Live solar (Transelectrica)44 min ago

fresh

Live wind (Transelectrica)44 min ago

fresh

Hourly nowcast snapshot42 min ago

fresh

Daily model re-fit16 h ago

fresh

02

Model error

Daylight hours for solar. NMAE and NRMSE are normalised by the mean measured output; bias is estimate minus actual; coverage is the share of measured hours inside the P10–P90 band published at the time.

Solar dispatchable
after price-driven curtailment: the number that reaches the market
Yesterday7 days30 days
NMAE22%20%25%
NRMSE28%25%32%
MAPE28%31%36%
MAE148 MW188 MW229 MW
RMSE183 MW235 MW288 MW
Bias-45 MW-28 MW-41 MW
Coverage88%74%76%
Hours862268
Daily NMAE, last 30 days
Solar potential
calibrated estimate before curtailment vs measured national solar
Yesterday7 days30 days
NMAE22%20%25%
NRMSE28%25%32%
MAPE28%31%36%
MAE148 MW188 MW229 MW
RMSE183 MW235 MW288 MW
Bias-45 MW-28 MW-41 MW
Hours862268
Daily NMAE, last 30 days
Wind fleet
68 parks × fleet response curve vs measured national wind
Yesterday7 days30 days
NMAE26%20%16%
NRMSE31%25%20%
MAPE46%36%26%
MAE299 MW194 MW201 MW
RMSE351 MW241 MW263 MW
Bias-32 MW-59 MW-76 MW
Coverage63%77%79%
Hours24167709
Daily NMAE, last 30 days

03

Uncertainty ranges

Ratio of measured to estimated output over the last 30 days, per condition. The bar spans P10 to P90 on a 0–2× axis, the tick is the median, the line marks 1.0. A forecast hour is multiplied by its condition's ratios. Past forecast vintages are not stored yet, so these are nowcast errors: a floor on day-ahead uncertainty.

Solar potential
calibrated estimate before curtailment vs measured national solar
All skies0.63 · 0.98 · 1.79 n 250
Clear (< 20 % cloud)0.75 · 0.86 · 1.47 n 20
Clear (< 20 % cloud) · normal price0.75 · 0.86 · 1.47 n 20
Partly cloudy0.72 · 1.00 · 1.82 n 34
Partly cloudy · price ≤ 5 €/MWh0.81 · 0.91 · 1.04 n 15
Partly cloudy · normal price0.72 · 1.00 · 1.82 n 34
Overcast (≥ 60 %)0.58 · 0.98 · 1.75 n 208
Overcast (≥ 60 %) · normal price0.58 · 0.98 · 1.75 n 208
Solar, single site
uncurtailed hours only, used for roof and farm panels
All skies0.63 · 0.98 · 1.79 n 250
Clear (< 20 % cloud)0.75 · 0.83 · 1.47 n 20
Partly cloudy0.72 · 1.00 · 1.82 n 34
Overcast (≥ 60 %)0.58 · 0.98 · 1.75 n 208
Wind fleet
68 parks × fleet response curve vs measured national wind
All hours0.62 · 1.08 · 1.68 n 708
Wind < 5 m/s0.29 · 1.20 · 2.22 n 220
Wind 5–9 m/s0.65 · 1.08 · 1.39 n 325
Wind ≥ 9 m/s0.89 · 1.06 · 1.16 n 163

04

Alerts

No notification channel is configured, so alerts are recorded here only. Set ALERT_WEBHOOK_URL (Slack, Discord, n8n or any JSON webhook) or TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID on the server to receive them.

resolved
Wind weather forecast: stale: latest 2026-11-15T23:00Z, forecast must reach 36 h aheadopened 33 h ago · closed 16 h ago
resolved
solar_dispatchable error on 2026-11-11's previous day: NMAE 35 % (threshold 35 %)opened 5 d ago · closed 4 d ago
resolved
Day-ahead prices: stale: latest 2026-11-06T22:45Z, tomorrow's auction must be loadedopened 9 d ago · closed 9 d ago
resolved
Cross-border flows: stale: latest 2026-10-22T11:15Z, no older than 4 hopened 24 d ago · closed 24 d ago
resolved
Actual load (ENTSO-E): stale: latest 2026-10-22T11:15Z, no older than 4 hopened 24 d ago · closed 24 d ago
resolved
wind error on 2026-10-18's previous day: NMAE 62 % (threshold 60 %)opened 29 d ago · closed 28 d ago
resolved
Live wind (Transelectrica): stale: latest 2026-10-14T05:00Z, no older than 3 hopened 33 d ago · closed 32 d ago
resolved
Live solar (Transelectrica): stale: latest 2026-10-14T05:00Z, no older than 3 hopened 33 d ago · closed 32 d ago