Phase 1 shadow · synthetic · independent  ·  SAWEM Phase 1 Trading Simulator — explainer-grade, not an MMS.  ·  Trading Rules Round 2 (12 April 2026 v01 draft)
Trading day 2026-05-29 virtual hour 00 Auction state: ACCEPTING gate close in 18h:00m DAM clear IDM re-clear Balancing Settlement
SAWEM
Shadow-day · stage 2 of 4 · intraday market

IDM re-clear · hour 19 · 2026-05-29

Stage status timestamp (IDM re-cleared): 2026-05-29T20:25:00Z

Illustrative re-clearing — production MMS runs a full intraday SCED. The IDM stage consumes the DAM result for this hour, applies each variable generator's revised forecast, and re-clears the residual gap.

DAM SMP
R2219.54 / MWh
IDM SMP
R2219.54 / MWh
Residual gap re-cleared
163.0 MWh
from forecast slip on variable plant
163.0 MWh uncovered → balancing

Peak hour — no spare IDM supply. The residual gap exceeds the remaining unawarded supply, so 163.0 MWh cannot be backfilled intraday and falls through to balancing at the imbalance price. IDM SMP holds at the DAM SMP.

Forecast adjustments at the IDM gate

Variable generators (wind / solar / aggregated renewables) revise availability; a slip beyond −5% makes the seller IDM re-bid eligible (the forecast-slip story). Dispatchable plant shows 0% slip.

Party DAM award (MWh) Forecast slip Revised (MWh) Gap (MWh) Re-bid?
Aggregator — renewables pool 300.0 -7.1% 278.7 -21.3 re-bid window →
Cross-border — ZESA interconnect 200.0 200.0
Eskom Holdings — coal fleet (Generator) 30000.0 30000.0
Eskom Holdings — OCGT peaker (Generator) 400.0 400.0
IPP — wind plant (Generator) 1094.0 -12.9% 952.3 -141.7 re-bid window →
Audit chain

Commit this IDM re-clear to the append-only SHA-256 chain (idm_re_cleared event). Best-effort: with no D1 binding bound locally this degrades to a "not recorded" marker rather than failing.

Full DAM + IDM transcript
[clearHour] day=2026-05-29 hour=19 seed=42
[clearHour] tieBreak=price_asc → ts_asc → party_id_asc
[clearHour] demand_mw_min=2160000
[clearHour] accept offer=o-19-renew-agg party=agg_renewables_01 price=41974c volume=18000 cumulative=18000
[clearHour] accept offer=o-19-wind party=gen_ipp_wind_01 price=43116c volume=65640 cumulative=83640
[clearHour] accept offer=o-19-coal party=gen_eskom_coal_01 price=84346c volume=1800000 cumulative=1883640
[clearHour] accept offer=o-19-zesa party=cb_zesa_synthetic price=110289c volume=12000 cumulative=1895640
[clearHour] accept offer=o-19-ocgt party=gen_eskom_ocgt_01 price=221954c volume=24000 cumulative=1919640
[clearHour] SMP=221954c marginal=gen_eskom_ocgt_01
— IDM —
[reclearIntraday] day=2026-05-29 hour=19 seed=42
[reclearIntraday] slip party=agg_renewables_01 -7.1% dam=18000 revised=16722 gap+=1278
[reclearIntraday] slip party=gen_ipp_wind_01 -12.9% dam=65640 revised=57140 gap+=8500
[reclearIntraday] residual_gap=9778 backfilled=0 uncovered=9778 idm_smp=221954c backfill_awards=0
Shadow-day stage 2/4 · Trading Rules R2 §07 (intraday) · simulator build 2026-05-29.