ARBO-DART is a good answer to a computational question. Aung and Ludkovski find a day-ahead battery bid profile in 201 real-time solver calls where brute-force 24-dimensional Bayesian optimization spends 529 and still never stops. The gain over solving the two market layers in sequence is 35 cents on $104 a day in Case Study 1 and 64 cents on $140 in Case Study 4. The authors print both numbers and qualify the claim themselves: co-optimization pays "particularly when the DART spread has a non-zero mean". Their conclusion rests the contribution on computation and parsimony, a solution found "multiple times faster than full-dimensional BO" yielding "economically interpretable DA profiles with a small number of charge and discharge intervals". On those terms the paper delivers. The revenue case is the part I would not buy yet, because it rests on one case study where the spread is hard-coded into the simulator.
The machine, block by block
A grid battery in a US two-settlement market makes two decisions. First it commits an hourly power schedule in the day-ahead auction, financially binding. Then, during the operating day, it adjusts around that schedule in real time as prices move, subject to state-of-charge and power limits that the day-ahead commitment has already partly consumed. The money comes from intraday price spreads. The day-ahead schedule prices the option to deviate later: charge too hard in the morning and you have no headroom to sell into an evening real-time spike.
The authors write this as a bilevel problem. The outer layer picks a piecewise-constant day-ahead profile over 24 hours. The inner layer is a closed-loop stochastic control problem at 15-minute resolution (K = 96 steps), solved by SHADOw-GP, the actor-critic regression Monte Carlo solver with Gaussian process emulators from their earlier work. The inner solver is a black box to the outer one: no gradients, no closed-form value function. Each call costs about a minute on a laptop. The outer objective is noisy, because the real-time value is a 10,000-path Monte Carlo average.
So the outer search has to be cheap in evaluations. ARBO-DART is the adaptive-refinement wrapper the paper introduces. It starts from a two-block day-ahead partition, one charge window and one discharge window, and runs Bayesian optimization with a Matérn-5/2 kernel and a UCB rule over that low-dimensional polytope. Then it reads where the fitted real-time policy is doing the most correcting. Blocks with large cumulative real-time imbalance get split; gaps with large imbalance get a new block; blocks the optimizer set to zero amplitude get pruned. Repeat. Each block carries a charge or discharge sign assigned in advance, which keeps the state-of-charge constraints linear. The paper credits that same device, the predetermined block signs from adaptive refinement, with shrinking the search space by a factor of two per block at the current refinement stage.
The baseline hourly day-ahead curve behind Case Studies 1 and 2 comes from averaging CAISO SP-15 LMPs over 3 August to 31 October 2025, giving one representative day. Case Studies 3 and 4 use two alternative day-ahead curves whose construction the paper does not describe. Real-time prices come out of a simulator: the day-ahead price plus a mean-zero Ornstein-Uhlenbeck factor, kappa = 0.2, sigma = 1.0, lambda = 0.05. The battery is 4 MWh / 1 MW at 95% efficiency, with quadratic real-time friction gamma = 0.2 and terminal state-of-charge penalty rho = 100.
The speed claim holds up
The motivating number is in the day-ahead-only MILP. Full hourly resolution earns $101.78 a day. A five-block piecewise-constant profile earns $101.10. Twenty-four dimensions of freedom are worth 68 cents over five, which is the honest justification for hunting the effective dimension rather than searching all 24.
On Case Study 1, ARBO-DART reaches $104.50 in 201 real-time solver evaluations. Full 24-dimensional BO reaches $104.27 after 529 evaluations and never triggers its stopping criterion inside the 500-call budget. Fixed 12-dimensional BO, two-hour blocks, converges at $103.95 after 346 calls. The authors' "2-4 times faster" is defensible on those counts.
The recourse norm separates the methods more sharply than PnL does: 4.30 and 4.27 MW for the two fixed-resolution comparators against 1.29 for ARBO-DART. Their solutions have hours where the day-ahead position and the real-time correction point opposite ways. Aung and Ludkovski read that as non-convergence rather than optimal behaviour, and given that gamma charges for recourse quadratically, that reading is right. Two caveats they state themselves. Both fixed-resolution comparators optimize directly over signed block amplitudes, which makes the SoC constraints piecewise linear, so neither can hand them to a constrained acquisition solver; both sample 2^12 LHS candidates with rejection instead. And the 24-dimensional run never reaches its stopping rule. A comparator handicapped on both the acquisition step and the budget is not a clean benchmark for the refinement idea alone.
Four seeds move the final objective by 5 cents, from $104.42 to $104.47, all terminating at five refinement stages with 194 to 201 evaluations and 8 to 10 nonzero day-ahead blocks.
Does co-optimization pay when the spread is mean-zero?
The sequential greedy comparator solves the day-ahead MILP, hands the profile to the real-time solver once, and stops. One real-time evaluation. It earns $104.15 in Case Study 1 and $139.89 in Case Study 4, against $104.50 and $140.53 for ARBO-DART. Thirty-five cents and 64 cents, 0.34% and 0.46%, for 201 and 102 solver calls.
Greedy also beats the fully converged 12-dimensional BO in Case Study 1, $104.15 against $103.95, with 345 fewer evaluations.
The paper reports no Monte Carlo standard errors on those differences, though it states the objective is noisy and feeds an estimated observation variance sigma_eps^2 to the GP. A 35-cent gap on a noisy 10,000-path estimate wants an error bar before it counts as an economic result.
The zero-mean comparison rests on two curves, since Table 3 reports greedy only for Case Studies 1, 2 and 4. Case Study 3, the flatter curve with two arbitrage cycles, has ARBO-DART at $72.65 against $66.59 for the day-ahead-only optimizer and $38.83 for the TB4 benchmark. No greedy row there.
Case Study 2 hands the optimizer the answer
The authors hard-code a deterministic +$5/MWh real-time premium into hours 20:00-22:00, a cumulative $10 arbitrageable spread. ARBO-DART earns $113.57, greedy earns $103.89, a gap of $9.68. Profit rises $9.07 over Case Study 1, and the 93-cent shortfall against the $10 spread is attributed to the friction gamma. The policy does what you would want: it zeroes the day-ahead commitment in the biased window and defers the sale. Day-ahead trading falls from 87.76% of energy sold in Case Study 1 to 51.56% in Case Study 2, on E+ = E- of 5.57 MWh.
Greedy cannot do this, and the paper says why: its day-ahead MILP sees only the day-ahead curve, commits to discharge over 20:00-22:00, and has nothing left to sell into the premium. "This insensitivity to DART spreads is a major limitation of Greedy."
The gap is almost the whole imposed spread. But the bias is deterministic and enters the same simulator the inner real-time solver is trained against, so the optimizer knows the premium with certainty. That experiment measures the value of a perfect DART spread forecast, delivered through a co-optimization machine. No experiment with forecast error is reported. The conclusion states the finding correctly, that co-optimization pays "particularly when the DART spread has a non-zero mean", and the authors flag alternative bias structures, timing, magnitude and persistence, as future work.
One number cuts against the co-optimization story from another angle. Raising gamma from 0.1 to 0.2 to 0.4 shrinks the recourse L2 norm from 2.38 to 1.29 to 0.69 MW and drops the terminal BO dimension from 14 to 12 to 10. Total PnL moves four cents: $104.53, $104.50, $104.49. The split between market layers is nearly PnL-neutral in this model, which is a strange thing for a co-optimization paper to find and to its credit report.
Missing: a forecast-error experiment
We could not test this on our own data. The mechanism needs hourly day-ahead and 15-minute real-time LMPs at a specific node, plus a battery's state-of-charge dynamics as the state variable. No instrument on our platform carries either, and swapping in an energy ETF would keep none of the structure that generates the profit.
The scope is narrow and the paper is clear about it. One representative day per case study, and for Case Studies 1 and 2 that day is a 90-day price average, so nothing here is a backtest over realized days. The OU innovations are Gaussian, and the authors name heavy-tailed alternatives and other real-time price simulators as future work. Spikes and negative prices are absent by construction, which is our observation rather than theirs. Single-day optimization, no inter-day state-of-charge carryover, no cycling cost, no bid-ask spread, price-taker throughout.
The algorithm earns its result. ARBO-DART finds an economically legible profile, 6 to 10 nonzero blocks across all the configurations in the ablation table, at 201 real-time solver evaluations against 529 for full BO. The revenue case for co-optimization over solving day-ahead then real-time rests on Case Study 2, and Case Study 2 hands the optimizer the answer. Show me the same $9.68 gap with a spread estimated from realized CAISO real-time data, out of sample, with standard errors, and I will treat co-optimization as a revenue item rather than a solver benchmark.