Bonus task · test window 1 Jul 2021 – 11 Aug 2021
Six weeks, six strategies
The brief scored algorithms on a six-week test window in winter 2021. Here the battery starts empty on 1 July and carries its charge from day to day. Perfect foresight sets the ceiling; the four practical strategies only ever see past and current prices.
Results
Revenue over the test window
| Strategy | Test revenue | Share of perfect | Cycles | Avg buy | Avg sell | CV, Jan–Jun 2021 |
|---|---|---|---|---|---|---|
| Perfect foresightforesight | $5,926,534 | 100% | ||||
| Perfect foresight, daily resetforesight | $5,921,103 | 100% | ||||
| Rolling persistence (MPC)no foresight | $2,443,858 | 41% | ||||
| Day-ahead persistenceno foresight | $2,254,116 | 38% | ||||
| Fixed price thresholdsno foresight | $1,594,771 | 27% | ||||
| Time-of-day scheduleno foresightbest practical | $3,748,713 | 63% |
Revenue is before fixed O&M ($279,616 over 42 days). Cycles count full 580 MWh discharges. The perfect-foresight daily-reset row restarts empty every midnight, as the Dispatch Lab does.
Cumulative revenue
Where the gap opens up
The perfect battery out-earns every practical strategy on 41 of the 42 days, and pulls ahead fastest on spiky evenings it saw coming: its five best days alone earn 25% of its total. Day-ahead persistence trades about as much as perfect foresight (122.7 against 123.9 cycles) but at the wrong times, because yesterday's timing is often off: it buys at $55.30 on average against $30.22, and sells at $103.78 against $129.76. It ends only 2 of 42 days holding energy. Rolling persistence trades less (73.5 cycles) and ends 21 of 42 days still holding energy, which it carries into the next morning. The time-of-day schedule simply trades the usual morning and evening peaks every day, which proves the most robust of the four.
Is the gap real or a few lucky days? Day by day, with 95% intervals and paired tests, on this window, the cross-validation half-year and 2025: regret with uncertainty.
Inspect a day
Any day of the window, any strategy
Strategy
Day · shade = perfect revenue
Rolling persistence (MPC)
Tue 6 Jul 2021
-$15,886 vs perfect $569,627 · -3%
Continuous run: the battery carries its charge overnight, so a day can start part-full. Re-solve this day in the Lab (each Lab day starts empty).
Calibrated on 2018–2020
Fixed price thresholds
A grid search over training-period price quantiles picked the levels that earned the most on 2018–2020:
- Charge at or below
- $88.81
- 68th percentile
- Discharge at or above
- $116.33
- 88th percentile
The rule fills up at the first price under the line rather than the cheapest one, then sits full on days that never cross the sell line: 38 full cycles in six weeks against the perfect battery's 124.
Calibrated on 2018–2020
Time-of-day schedule
The optimiser applied to the average 2018–2020 day gives one fixed schedule, replayed every day:
Two cycles a day: fill overnight, sell the morning peak, refill in the solar trough, sell the evening peak. Crude, but the shape of a winter day barely changes. How each policy works.