106Energy Markets
Can the gap between day-ahead and live power prices be predicted well enough to trade? Not so far: the one tradeable version lost $0.43 per MWh, too small to tell from zero.
- Year
- 2026
- Status
- Live
- Python
- PJM
- ISO-NE
- walk-forward
- pre-registration
- adversarial review
The question
Every hour of US electricity is priced twice: in an auction the day before, and live as the power flows. Can the difference be predicted well enough to trade, and if a new exchange lists contracts on it, is there an edge a small participant can actually capture?
Part 1 · Two prices for the same electricity
A first study looked for the mechanism. Prices at different locations pull apart whenever a transmission constraint binds, and each constraint leaves a pattern across locations. Of 1,221 priced locations in New England, only 4 constraints were testable out of sample; three of the four patterns repeated, and the one that binds most often did not.
Turning that into a trade failed. The only version anyone could trade, guessing tomorrow's constraint from today's, returned −$0.43 per MWh over 308 hours it had never seen, with a range from −$3.15 to +$2.30. Not a small profit and not a reliable loss: a measurement that failed to measure. The report also records where it was wrong. An earlier version charged the trading cost once on a basket that buys at 40 locations and sells at 40 others; charged twice, at $1.02 rather than $0.51, the headline changed sign from a small profit to a small loss.
Part 2 · A model bake-off, and the reviews that stopped it
The next step was a bake-off of five structurally different model families (a direct classifier, quantile models, a tail-specialist mixture, a structural model and a market-relative one) for contracts on PJM prices listed on the ElectronX exchange. Before building anything, the spec went to two independent adversarial reviewers, one on methodology and one on trading reality. Both said: do not start the five-model programme yet.
What they found:
- The power calculation was wrong. The minimum detectable effect had been computed at 50% power and labelled 80%. Corrected, it rose from $3.88 to $5.30–5.50 per MWh, and the honest decision date moved from late 2026 to 2027.
- Day-level clustering was not enough. Daily means were serially correlated at +0.425, so the sample held roughly 11 to 18 independent days, not 26.
- Two "open questions" were already answered by PDFs sitting in the project's own folder, including the fact that the counterparty is a paid, obligated, algorithmic market maker.
- The central pricing identity was wrong for one contract band, whose floor is −$250, not zero.
- Too many tests. At about 50 quasi-independent tests, the chance of at least one false positive is about 92%, so v1.1 requires one primary endpoint per gate and a false-discovery correction for the rest.
Version 1.1 inverted the plan: a cheap, model-free pre-flight first, and the bake-off gated behind it. A follow-up on the apparent premium showed why: at the PJM $0–$500 contract the observed edge was +$5.24 per MWh against a minimum detectable effect of $13.99, so resolving it would take about 178 trading days.
When the work pivoted to the spread itself, the evaluation harness was built before the models so it couldn't be bent to flatter one. Over 13 walk-forward folds and 841,506 contract-hours, the first model beat the baseline in all 13 folds (12.13 sigma), but neither of the two richer models cleared its multiplicity-adjusted bar against it (2.11 and 2.91 sigma, against bars of 3.21 and 3.32). The ladder stops at the first rung.
What I'd try next
Get the data the reviews asked for before fitting anything else: timestamped order-book quotes, a winter of prices (the whole sample is summer), and a month after the exchange's promotions end.


