Daily guide · NO2 · 2026-08-06
The number your Norway Kristiansand price model has to beat this week
All numbers computed from the week's published auction results at publication and frozen — this article is an honest snapshot, not a page that rewrites itself. Reproduce via the API.
The number to beat this week is 17,47 EUR/MWh: that is the persistence baseline's mean absolute error across the six days from 31 July to 5 August. Any model worth running has to clear that bar comfortably, because persistence sets a low technical hurdle while carrying no feature engineering at all.
What stands out is the spread inside the week. The baseline is easy to beat on 4 August, where the day-ahead persistence error sits at 11,38 EUR/MWh against a day mean of 131,71 EUR/MWh, and again on 31 July at 6,66. The hard day is 3 August, where persistence error jumps to 35,40 even though the day mean of 127,59 is close to the preceding levels. That divergence signals an intraday regime shift the naive carry-over cannot capture.
For context, our own model over the trailing 96 days recorded an MAE of 17,63 against a baseline of 18,47, a thin margin. The concrete takeaway: concentrate feature work on the 3 August profile, where the largest error gap lives, rather than the stable days that persistence already handles well.
Before you train anything on NO2 prices, you need the number your model has to beat. In day-ahead forecasting that number is naive persistence: predict that tomorrow's curve equals today's. It costs nothing, needs no features, and it is embarrassingly hard to beat — because power prices are dominated by daily and weekly rhythms that persistence gets for free. We computed it on this exact week:
17.47 €/MWh
persistence MAE on this week's NO2 auctions — the bar. A model that can't get under this adds negative value.
17.63 vs 18.47
our live production model vs its persistence baseline, trailing 96 scored days — the same scoring, in public, on /accuracy
Why the bar moves: this week, day by day
| Target day | Day mean €/MWh | Persistence MAE |
|---|---|---|
| 2026-07-31 | 126.92 | 6.66 |
| 2026-08-01 | 108.57 | 21.49 |
| 2026-08-02 | 100.23 | 15.61 |
| 2026-08-03 | 127.59 | 35.4 |
| 2026-08-04 | 131.71 | 11.38 |
| 2026-08-05 | 119.39 | 14.27 |
Calm days make persistence look unbeatable; transition days (weather swings, weekend boundaries) are where a real model earns its keep. Averages hide this — always look at the daily distribution.
The part everyone gets wrong: the features
The model is the easy half. The silent killer is lookahead: training on weather reanalysis instead of the forecast that existed at issue time, on revised load data, on same-day flow averages that hadn't finished flowing at the auction. Backtests built that way look brilliant and die in production. Our Quant feature matrices serve one row per (issue day, 15-minute slot) where every column is documented with when it became knowable — the same rows our own models train on:
curl -H "Authorization: Bearer YOUR_KEY" \
"https://voltcast.com/api/v1/features/NO2?issue_from=2026-07-01&horizons=1"
# columns include: price lags · previous-run weather (as forecast AT issue)
# · grid drivers (lagged to last COMPLETE day) · day-ahead load/RES forecasts
# · ensemble spread · target_price label (null until matured, never imputed)
Start free: the persistence bar above needs nothing but GET /v1/prices/NO2
(free tier covers any one zone). When your walk-forward backtest beats it honestly, prove it in public on the
Forecast Bench — forward-blind, open scoring code, and our
own model is auto-entered under identical rules. If you'd rather buy the plumbing than build it, that's
the Quant tier.
Method & citation. Prices are hourly means of published day-ahead auction results (native 15-minute periods averaged; ENTSO-E/SMARD, attributed). Wholesale-price component only — grid fees and taxes come on top and vary by supplier. Cite as "Voltcast Research, voltcast.com/guides/quant-features-no2-2026-08-06".
The monthly European power roundup
Negative-price records, the biggest spreads, which zones were hardest to forecast — every number computed from our production data, on the 2nd of each month. No filler, unsubscribe anytime.