Daily guide · MK · 2026-08-15
The number your North Macedonia 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 19,24 EUR/MWh, the average error a naive persistence forecast would post across these five days in North Macedonia. That is the bar any serious model has to clear, and it is not a trivial one. Persistence is cheap to run and, when day-to-day price levels are stable, it is surprisingly hard to outperform.
The week is uneven, and that is where the opportunity sits. On 11 and 12 August persistence lands at just 13,26 and 13,64 EUR/MWh, against day means of 139,79 and 139,47 EUR/MWh — flat, well-behaved sessions where beating the baseline is genuinely difficult. The strain shows on 10 August, where persistence jumps to 28,35 EUR/MWh even with a day mean of 140,74, and on 13 August at 22,56 as the mean drops to 128,53. Those transition days are where a model earns its keep.
The concrete takeaway: do not chase the calm mid-week days; focus accuracy on the 10th and 13th. For context, our own model has run at 20,99 MAE over 140 days against a 22,19 baseline, so edges here are measured in small margins.
Before you train anything on MK 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:
19.24 €/MWh
persistence MAE on this week's MK auctions — the bar. A model that can't get under this adds negative value.
20.99 vs 22.19
our live production model vs its persistence baseline, trailing 140 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-08-10 | 140.74 | 28.35 |
| 2026-08-11 | 139.79 | 13.26 |
| 2026-08-12 | 139.47 | 13.64 |
| 2026-08-13 | 128.53 | 22.56 |
| 2026-08-14 | 131.7 | 18.41 |
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/MK?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 with Home: the persistence bar above needs nothing but GET /v1/prices/MK
(Home covers one zone of your choice). 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,
contact us about ML-grade data access.
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-mk-2026-08-15".
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.