Prognosebuch Deutsch

Track record

How good were the forecasts on real days, compared with simple rules of thumb? Only forecasts issued live count.

7 days

2026-10-14 – 2026-10-20

For tomorrow (D+1)
ModelDays due / forecastMAE RMSESkillPinballinside 80 % band
naive_similar_day.v1 reference 7 / 744.262.6 015.578 %
lear.v1 7 / 729.939.1 +0.329.080 %
naive_last_day.v1 7 / 730.138.7 +0.3210.286 %
gbm.v1 7 / 737.244.5 +0.1611.469 %
naive_weekly.v1 7 / 765.382.2 −0.4821.561 %
For the day after (D+2)
ModelDays due / forecastMAE RMSESkillPinballinside 80 % band
naive_similar_day.v1 reference 7 / 747.163.2 015.580 %
naive_last_day.v1 7 / 734.040.8 +0.2811.489 %
lear.v1 7 / 747.755.1 −0.0112.580 %
gbm.v1 7 / 749.658.4 −0.0514.864 %
naive_weekly.v1 7 / 765.382.2 −0.3921.759 %

MAE, RMSE and pinball in EUR/MWh per quarter-hour (10 EUR/MWh = 1 ct/kWh). Skill = 1 − MAE ÷ MAE of the reference: above 0 means better than the rule of thumb. About 80 % of prices should fall inside the 80 % band.

By situation

For tomorrow (D+1), MAE
Model All quarter-hoursWeekdaysWeekend Negative pricesPrice spikes
gbm.v1 37.267241.148027.6192–63.968
lear.v1 29.967228.048034.7192–42.968
naive_last_day.v1 30.167229.248032.3192–45.668
naive_similar_day.v1 44.267225.848090.1192–32.368
naive_weekly.v1 65.367255.448090.1192–71.368
For the day after (D+2), MAE
Model All quarter-hoursWeekdaysWeekend Negative pricesPrice spikes
gbm.v1 49.667258.248028.3192–80.768
lear.v1 47.767246.148051.6192–59.668
naive_last_day.v1 34.067234.648032.4192–39.868
naive_similar_day.v1 47.167229.948090.1192–25.568
naive_weekly.v1 65.367255.448090.1192–71.368

Price spike: actual price of 250 EUR/MWh or more (top 10 % in the window).

Is the difference real?

Diebold-Mariano test on daily errors, pairwise, two-sided. A small p-value means the difference is unlikely to be chance. With few days the test is weak.

ABD+np
gbm.v1lear.v117–too few days (7)
gbm.v1naive_last_day.v117–too few days (7)
gbm.v1naive_similar_day.v117–too few days (7)
gbm.v1naive_weekly.v117–too few days (7)
lear.v1naive_last_day.v117–too few days (7)
lear.v1naive_similar_day.v117–too few days (7)
lear.v1naive_weekly.v117–too few days (7)
naive_last_day.v1naive_similar_day.v117–too few days (7)
naive_last_day.v1naive_weekly.v117–too few days (7)
naive_similar_day.v1naive_weekly.v117–too few days (7)
gbm.v1lear.v127–too few days (7)
gbm.v1naive_last_day.v127–too few days (7)
gbm.v1naive_similar_day.v127–too few days (7)
gbm.v1naive_weekly.v127–too few days (7)
lear.v1naive_last_day.v127–too few days (7)
lear.v1naive_similar_day.v127–too few days (7)
lear.v1naive_weekly.v127–too few days (7)
naive_last_day.v1naive_similar_day.v127–too few days (7)
naive_last_day.v1naive_weekly.v127–too few days (7)
naive_similar_day.v1naive_weekly.v127–too few days (7)

30 days

2026-10-01 – 2026-10-20

For tomorrow (D+1)
ModelDays due / forecastMAE RMSESkillPinballinside 80 % band
naive_similar_day.v1 reference 20 / 1946.362.4 015.770 %
lear.v1 20 / 1828.437.0 +0.398.878 %
gbm.v1 20 / 1829.537.0 +0.369.579 %
naive_last_day.v1 20 / 1836.347.9 +0.2212.274 %
naive_weekly.v1 20 / 1960.077.1 −0.3020.263 %
For the day after (D+2)
ModelDays due / forecastMAE RMSESkillPinballinside 80 % band
naive_similar_day.v1 reference 19 / 1855.270.7 018.470 %
gbm.v1 19 / 1736.245.4 +0.3511.478 %
lear.v1 19 / 1745.053.1 +0.2013.173 %
naive_last_day.v1 19 / 1747.861.2 +0.1515.776 %
naive_weekly.v1 19 / 1861.778.5 −0.1221.061 %

MAE, RMSE and pinball in EUR/MWh per quarter-hour (10 EUR/MWh = 1 ct/kWh). Skill = 1 − MAE ÷ MAE of the reference: above 0 means better than the rule of thumb. About 80 % of prices should fall inside the 80 % band.

By situation

For tomorrow (D+1), MAE
Model All quarter-hoursWeekdaysWeekend Negative pricesPrice spikes
gbm.v1 29.5172830.8124826.248028.3144.9177
lear.v1 28.4172828.0124829.348013.6142.2177
naive_last_day.v1 36.3172837.7124832.748029.6147.9177
naive_similar_day.v1 46.3182435.2124870.557698.0140.1177
naive_weekly.v1 60.0182455.2124870.557698.0160.0177
For the day after (D+2), MAE
Model All quarter-hoursWeekdaysWeekend Negative pricesPrice spikes
gbm.v1 36.2163242.1105625.457631.6162.5136
lear.v1 45.0163241.3105651.657647.5160.3136
naive_last_day.v1 47.8163248.5105646.557695.6147.2136
naive_similar_day.v1 55.2172847.5115270.557698.0140.9156
naive_weekly.v1 61.7172857.3115270.557698.0166.1156

Price spike: actual price of 245 EUR/MWh or more (top 10 % in the window).

Is the difference real?

Diebold-Mariano test on daily errors, pairwise, two-sided. A small p-value means the difference is unlikely to be chance. With few days the test is weak.

ABD+np
gbm.v1lear.v11180.7738no demonstrated difference
gbm.v1naive_last_day.v11180.1722no demonstrated difference
gbm.v1naive_similar_day.v11180.0423gbm.v1 is better than naive_similar_day.v1
gbm.v1naive_weekly.v11180.0008gbm.v1 is better than naive_weekly.v1
lear.v1naive_last_day.v11180.1328no demonstrated difference
lear.v1naive_similar_day.v11180.0301lear.v1 is better than naive_similar_day.v1
lear.v1naive_weekly.v11180.0018lear.v1 is better than naive_weekly.v1
naive_last_day.v1naive_similar_day.v11180.1581no demonstrated difference
naive_last_day.v1naive_weekly.v11180.0111naive_last_day.v1 is better than naive_weekly.v1
naive_similar_day.v1naive_weekly.v11190.0455naive_similar_day.v1 is better than naive_weekly.v1
gbm.v1lear.v12170.1833no demonstrated difference
gbm.v1naive_last_day.v12170.3472no demonstrated difference
gbm.v1naive_similar_day.v12170.1329no demonstrated difference
gbm.v1naive_weekly.v12170.0389gbm.v1 is better than naive_weekly.v1
lear.v1naive_last_day.v12170.7603no demonstrated difference
lear.v1naive_similar_day.v12170.2510no demonstrated difference
lear.v1naive_weekly.v12170.0740no demonstrated difference
naive_last_day.v1naive_similar_day.v12170.2344no demonstrated difference
naive_last_day.v1naive_weekly.v12170.2009no demonstrated difference
naive_similar_day.v1naive_weekly.v12180.2959no demonstrated difference

90 days

2026-10-01 – 2026-10-20

For tomorrow (D+1)
ModelDays due / forecastMAE RMSESkillPinballinside 80 % band
naive_similar_day.v1 reference 20 / 1946.362.4 015.770 %
lear.v1 20 / 1828.437.0 +0.398.878 %
gbm.v1 20 / 1829.537.0 +0.369.579 %
naive_last_day.v1 20 / 1836.347.9 +0.2212.274 %
naive_weekly.v1 20 / 1960.077.1 −0.3020.263 %
For the day after (D+2)
ModelDays due / forecastMAE RMSESkillPinballinside 80 % band
naive_similar_day.v1 reference 19 / 1855.270.7 018.470 %
gbm.v1 19 / 1736.245.4 +0.3511.478 %
lear.v1 19 / 1745.053.1 +0.2013.173 %
naive_last_day.v1 19 / 1747.861.2 +0.1515.776 %
naive_weekly.v1 19 / 1861.778.5 −0.1221.061 %

MAE, RMSE and pinball in EUR/MWh per quarter-hour (10 EUR/MWh = 1 ct/kWh). Skill = 1 − MAE ÷ MAE of the reference: above 0 means better than the rule of thumb. About 80 % of prices should fall inside the 80 % band.

By situation

For tomorrow (D+1), MAE
Model All quarter-hoursWeekdaysWeekend Negative pricesPrice spikes
gbm.v1 29.5172830.8124826.248028.3144.9177
lear.v1 28.4172828.0124829.348013.6142.2177
naive_last_day.v1 36.3172837.7124832.748029.6147.9177
naive_similar_day.v1 46.3182435.2124870.557698.0140.1177
naive_weekly.v1 60.0182455.2124870.557698.0160.0177
For the day after (D+2), MAE
Model All quarter-hoursWeekdaysWeekend Negative pricesPrice spikes
gbm.v1 36.2163242.1105625.457631.6162.5136
lear.v1 45.0163241.3105651.657647.5160.3136
naive_last_day.v1 47.8163248.5105646.557695.6147.2136
naive_similar_day.v1 55.2172847.5115270.557698.0140.9156
naive_weekly.v1 61.7172857.3115270.557698.0166.1156

Price spike: actual price of 245 EUR/MWh or more (top 10 % in the window).

Is the difference real?

Diebold-Mariano test on daily errors, pairwise, two-sided. A small p-value means the difference is unlikely to be chance. With few days the test is weak.

ABD+np
gbm.v1lear.v11180.7738no demonstrated difference
gbm.v1naive_last_day.v11180.1722no demonstrated difference
gbm.v1naive_similar_day.v11180.0423gbm.v1 is better than naive_similar_day.v1
gbm.v1naive_weekly.v11180.0008gbm.v1 is better than naive_weekly.v1
lear.v1naive_last_day.v11180.1328no demonstrated difference
lear.v1naive_similar_day.v11180.0301lear.v1 is better than naive_similar_day.v1
lear.v1naive_weekly.v11180.0018lear.v1 is better than naive_weekly.v1
naive_last_day.v1naive_similar_day.v11180.1581no demonstrated difference
naive_last_day.v1naive_weekly.v11180.0111naive_last_day.v1 is better than naive_weekly.v1
naive_similar_day.v1naive_weekly.v11190.0455naive_similar_day.v1 is better than naive_weekly.v1
gbm.v1lear.v12170.1833no demonstrated difference
gbm.v1naive_last_day.v12170.3472no demonstrated difference
gbm.v1naive_similar_day.v12170.1329no demonstrated difference
gbm.v1naive_weekly.v12170.0389gbm.v1 is better than naive_weekly.v1
lear.v1naive_last_day.v12170.7603no demonstrated difference
lear.v1naive_similar_day.v12170.2510no demonstrated difference
lear.v1naive_weekly.v12170.0740no demonstrated difference
naive_last_day.v1naive_similar_day.v12170.2344no demonstrated difference
naive_last_day.v1naive_weekly.v12170.2009no demonstrated difference
naive_similar_day.v1naive_weekly.v12180.2959no demonstrated difference

All

2026-10-01 – 2026-10-20

For tomorrow (D+1)
ModelDays due / forecastMAE RMSESkillPinballinside 80 % band
naive_similar_day.v1 reference 20 / 1946.362.4 015.770 %
lear.v1 20 / 1828.437.0 +0.398.878 %
gbm.v1 20 / 1829.537.0 +0.369.579 %
naive_last_day.v1 20 / 1836.347.9 +0.2212.274 %
naive_weekly.v1 20 / 1960.077.1 −0.3020.263 %
For the day after (D+2)
ModelDays due / forecastMAE RMSESkillPinballinside 80 % band
naive_similar_day.v1 reference 19 / 1855.270.7 018.470 %
gbm.v1 19 / 1736.245.4 +0.3511.478 %
lear.v1 19 / 1745.053.1 +0.2013.173 %
naive_last_day.v1 19 / 1747.861.2 +0.1515.776 %
naive_weekly.v1 19 / 1861.778.5 −0.1221.061 %

MAE, RMSE and pinball in EUR/MWh per quarter-hour (10 EUR/MWh = 1 ct/kWh). Skill = 1 − MAE ÷ MAE of the reference: above 0 means better than the rule of thumb. About 80 % of prices should fall inside the 80 % band.

By situation

For tomorrow (D+1), MAE
Model All quarter-hoursWeekdaysWeekend Negative pricesPrice spikes
gbm.v1 29.5172830.8124826.248028.3144.9177
lear.v1 28.4172828.0124829.348013.6142.2177
naive_last_day.v1 36.3172837.7124832.748029.6147.9177
naive_similar_day.v1 46.3182435.2124870.557698.0140.1177
naive_weekly.v1 60.0182455.2124870.557698.0160.0177
For the day after (D+2), MAE
Model All quarter-hoursWeekdaysWeekend Negative pricesPrice spikes
gbm.v1 36.2163242.1105625.457631.6162.5136
lear.v1 45.0163241.3105651.657647.5160.3136
naive_last_day.v1 47.8163248.5105646.557695.6147.2136
naive_similar_day.v1 55.2172847.5115270.557698.0140.9156
naive_weekly.v1 61.7172857.3115270.557698.0166.1156

Price spike: actual price of 245 EUR/MWh or more (top 10 % in the window).

Is the difference real?

Diebold-Mariano test on daily errors, pairwise, two-sided. A small p-value means the difference is unlikely to be chance. With few days the test is weak.

ABD+np
gbm.v1lear.v11180.7738no demonstrated difference
gbm.v1naive_last_day.v11180.1722no demonstrated difference
gbm.v1naive_similar_day.v11180.0423gbm.v1 is better than naive_similar_day.v1
gbm.v1naive_weekly.v11180.0008gbm.v1 is better than naive_weekly.v1
lear.v1naive_last_day.v11180.1328no demonstrated difference
lear.v1naive_similar_day.v11180.0301lear.v1 is better than naive_similar_day.v1
lear.v1naive_weekly.v11180.0018lear.v1 is better than naive_weekly.v1
naive_last_day.v1naive_similar_day.v11180.1581no demonstrated difference
naive_last_day.v1naive_weekly.v11180.0111naive_last_day.v1 is better than naive_weekly.v1
naive_similar_day.v1naive_weekly.v11190.0455naive_similar_day.v1 is better than naive_weekly.v1
gbm.v1lear.v12170.1833no demonstrated difference
gbm.v1naive_last_day.v12170.3472no demonstrated difference
gbm.v1naive_similar_day.v12170.1329no demonstrated difference
gbm.v1naive_weekly.v12170.0389gbm.v1 is better than naive_weekly.v1
lear.v1naive_last_day.v12170.7603no demonstrated difference
lear.v1naive_similar_day.v12170.2510no demonstrated difference
lear.v1naive_weekly.v12170.0740no demonstrated difference
naive_last_day.v1naive_similar_day.v12170.2344no demonstrated difference
naive_last_day.v1naive_weekly.v12170.2009no demonstrated difference
naive_similar_day.v1naive_weekly.v12180.2959no demonstrated difference

Daily error (MAE, D+1)

Daily error (MAE, D+1)050100Fr 2 OctTu 6 OctFr 9 OctTu 13 OctFr 16 OctTu 20 Octnaive_weekly.v1naive_last_day.v1naive_similar_day.v1lear.v1gbm.v1

Track record of the cheapest 3 hours

ModelD+n Hit ratestated within 0.5 ctstated Extra cost vs. best windowSaving vs. day mean
gbm.v1118 28 %29 %83 %84 % 0.28 ct6.16 ct
gbm.v1217 6 %22 %88 %69 % 0.27 ct6.49 ct
lear.v1118 22 %23 %89 %73 % 0.32 ct6.12 ct
lear.v1217 24 %21 %82 %78 % 0.35 ct6.42 ct
naive_last_day.v1118 6 %21 %83 %57 % 0.44 ct6.00 ct
naive_last_day.v1217 12 %20 %82 %55 % 0.41 ct6.35 ct
naive_similar_day.v1119 5 %22 %90 %60 % 0.39 ct6.24 ct
naive_similar_day.v1218 6 %26 %83 %65 % 0.46 ct6.21 ct
naive_weekly.v1119 0 %26 %84 %59 % 0.38 ct6.25 ct
naive_weekly.v1218 0 %23 %83 %57 % 0.39 ct6.29 ct

Missed forecasts

Backtest – not part of the track record

The same code, run for 363 past days (1 October 2025 to 28 September 2026) with only the data known then. It is not pre-registered and therefore optimistic. It shows why a model runs live, not that it is good.

For tomorrow (D+1)
ModelDays due / forecastMAE RMSESkillPinballinside 80 % band
naive_similar_day.v1 reference 363 / 36332.752.1 012.076 %
gbm.v1 363 / 36319.331.8 +0.416.478 %
lear.v1 363 / 36322.036.4 +0.337.676 %
naive_last_day.v1 363 / 36330.248.9 +0.0711.077 %
naive_weekly.v1 363 / 36337.858.8 −0.1613.577 %
For the day after (D+2)
ModelDays due / forecastMAE RMSESkillPinballinside 80 % band
naive_similar_day.v1 reference 363 / 36337.959.5 013.776 %
gbm.v1 363 / 36321.834.7 +0.437.278 %
lear.v1 363 / 36329.244.0 +0.239.976 %
naive_weekly.v1 363 / 36337.858.8 +0.0013.576 %
naive_last_day.v1 363 / 36338.559.9 −0.0213.677 %

MAE, RMSE and pinball in EUR/MWh per quarter-hour (10 EUR/MWh = 1 ct/kWh). Skill = 1 − MAE ÷ MAE of the reference: above 0 means better than the rule of thumb. About 80 % of prices should fall inside the 80 % band. GitHub