Battery dispatch, run like an experiment
Software that decides, hour by hour and quarter-hour by quarter-hour, when a grid-scale battery should charge and discharge to earn the most from wholesale electricity markets, while accounting honestly for what each cycle costs in battery life.
- DomainEnergy and wholesale power markets
- EngagementOwn product, under a pre-registered measurement programme
- StatusMeasured on historical market data under pre-registration
The evidence discipline
Plenty of software can propose a dispatch schedule. What distinguishes this work is the discipline around it: every question asked of the system is registered in advance, with the competing approaches, the thresholds that would declare a result alive or dead, and the predictions each analyst commits to, all pinned cryptographically before a single number is measured. A result cannot be reinterpreted after it is seen.
Measurements run on a frozen historical window, with a separate slice of market data held sealed and unread for genuine out-of-sample confirmation. The system currently runs against German, Dutch and Turkish day-ahead markets, measured on historical market data under pre-registration.
Backtests are easy. Believing one is hard.
Storage trading software is usually sold on a curve that was tuned until it looked good.
Backtest theatre
A vendor backtest shows the winner and hides the attempts. Buyers have no way to know how many ideas were tried, discarded and quietly absorbed into the curve they are shown.
Cycles are not free
Every charge and discharge spends battery life. A dispatch policy that ignores degradation buys revenue with an asset it does not account for.
Markets move faster than reviews
Wholesale prices reprice by the hour and the quarter-hour. A policy that cannot explain itself cannot be audited at the speed it trades.
A dispatch engine inside an evidence protocol
Each capability below is part of the registered programme.
Dispatch and forecasting engine
Charge and discharge decisions across day-ahead horizons, built to earn from spreads while pricing the battery-life cost of every cycle into the decision itself.
- Hourly and quarter-hourly decision granularity
- Degradation cost carried inside the objective
- Runs against German, Dutch and Turkish day-ahead markets
Pre-registered questions
Arms, thresholds and analyst predictions are committed and cryptographically pinned before measurement, so the result of an experiment is what the registration says it is.
- Alive-or-dead thresholds declared in advance
- Analyst predictions recorded before numbers exist
- Registrations pinned so they cannot drift
Sealed out-of-sample data
A slice of market history is held sealed and unread. Nothing touches it during development, so confirmation on it means what confirmation should mean.
- Frozen historical measurement windows
- A sealed slice reserved for confirmation
- No re-runs against the sealed data
Negative results, published inward
Findings that kill an idea enter the record with the same weight as findings that support one. The surviving ideas are trustworthy precisely because the graveyard is visible.
- Every iteration recorded before the next begins
- Failures reported beside successes
- A null result is treated as a finding
What keeps the numbers honest
The controls that make a result mean something.
Pinned before measured
The full question, its arms and its thresholds are fixed and fingerprinted before measurement starts. Seeing the data cannot rewrite the question.
Alive or dead, decided in advance
Each experiment declares up front what would count as success and what would kill it, so no result gets argued into significance afterwards.
Adversarial review before acceptance
Independent models attack a result before it is accepted: hunting leakage, identifiability failures and optimistic framing, not confirming the house view.
Ideas this process has killed
The programme has falsified its own proposed forecasting shortcut, closed a lane after measuring that it could not pay, and corrected its own instrument when pre-flight checks caught defects.
What a buyer can actually audit
No revenue figures appear here by standing rule: capture numbers stay internal until cleared, and the audit trail is the product's proof.
Auditable
The whole chain
A buyer sees the protocol, the committed predictions, the wrong calls and the killed ideas, not just the surviving curve.
Honest
Cycle costing
Battery-life cost sits inside the dispatch objective, priced into the decision itself.
Three markets
Day-ahead coverage
German, Dutch and Turkish day-ahead markets run through the same registered measurement discipline.
Ask to see the protocol
We can show you the registrations, the committed predictions and the calls that turned out wrong.
Talk to us