Most forecasting vendors in this space will show you a backtest. Almost none will show you a backtest they couldn't quietly redo until it looked good. We built PHAROS to be checkable, so we ran the check the hard way: we wrote down exactly what we were testing and how we'd score it, recorded a cryptographic fingerprint of that protocol before looking at a single day of the evaluation data, then ran the evaluation exactly once. The scoring script now mechanically refuses to run a second time.
The bet we pre-registered didn't pay off. We say so here, in front of everything else, because a result you can't falsify isn't a result, and because the honesty of that null is what makes the rest of this page worth reading.
The protocol
On 2026-07-26 we locked a pre-registration document. The research
question, the data splits, the spike thresholds, the models being
compared and the success criteria were all fixed in it, and we recorded
its SHA-256 hash (3e60f898…) before touching a
single day of held-out data. That fingerprint is
publicly posted.
Be precise about what that buys you: the document itself is still
sealed, because it describes how the method works, so the hash is a
commitment device rather than a verification you can perform today. It
means we cannot quietly rewrite the protocol later and claim we had it
all along.
Two amendments have been adopted and logged since the lock, so the posted fingerprint matches the document as it stood on the day we sealed it, not the file as it reads now. Both are listed below with their dates and what each one changed, because a page whose whole argument is “we cannot quietly rewrite the protocol later” has to show you the record of every time we changed it openly. The holdout window was sealed: 2025-07-01 through 2026-06-30, a full year, 363 forecast issues, 362 of them eligible. It could only be touched once, by a scoring script that was frozen and independently reviewed before the run.
The amendment log
Amendments to the pre-registration, in the order they were adopted. Each one is dated, appended rather than edited into the sealed body, and carries its own fingerprint of the document as amended.
| Amendment | Adopted | What it changed |
|---|---|---|
| A1 | 2026-07-30 | Designated the $200+ threshold the discriminative threshold for operational and client-facing use, because three higher thresholds are saturated by construction and a spike forecast against them would land every day. Presentation and designation only; grading and archived issues unchanged. |
| A2 | 2026-08-20 | Permitted post-holdout data to be read for development evidence (arithmetic, screening, operations) and barred it from fitting, from any confirmatory claim, and from being shown to a client as validation. Prospective only. |
Read this alongside the fingerprint above rather than instead of it. The posted hash attests the sealed body on the day of the lock and is never regenerated, so hashing the current document against it returns a mismatch. That is by design, and this table is what the mismatch is made of. A hash that moved with its subject would prove nothing. Amendments are always cited with the document they belong to: these two are amendments to the pre-registration, and each later sealed protocol of ours carries its own separately-numbered series.
Since the sealed year, every new forecast has been sealed the same way before its first issue: the mid-day issue, and a forecast for each trading hub a client settles at. Each has its own fingerprint and its own amendment log.
Two mechanical hiccups happened during the run: a duplicated data batch, and a cosmetic crash after scoring had already completed. Both are logged with evidence that no results were visible to us before either was fixed. Nothing about the outcome was known in advance, and nothing about the protocol changed after the fact.
We also split every result three ways: before ERCOT's market redesign on 2025-12-05, after it, and combined. We do that because the redesign changed the market mid-holdout and pretending it didn't would be exactly the kind of after-the-fact framing this exercise exists to prevent.
The bet, and why it lost
Research question: does a dispatch policy built on our candidate forecasting method beat simpler methods at capturing arbitrage revenue, out of sample?
Answer: no. Over the full sealed year the candidate method was beaten by a simple point-forecast baseline, and beaten by a plain persistence rule that does no forecasting at all. The margin was wide enough that the confidence interval did not cross zero, and the result held in both the pre-redesign and post-redesign segments of the year. This is not noise. The candidate method genuinely underperformed, and we said in the pre-registration that we would say so if it did.
We don't think this means that whole family of forecasting is worthless. We think it means this specific dispatch method, built on our candidate forecasting method, isn't the right way to spend that information. That is a real, useful, humbling finding, and it is the reason the product you'd actually buy from us today does not use this method to decide when to charge and discharge.
What survived
The pre-registration also asked a second question, orthogonal to dispatch timing: when a real price spike is coming, does the candidate method's forecast rank that hour among the riskiest? That question came through the sealed year intact, at every threshold the protocol named, across a full calendar year that spanned a market redesign. The simpler comparator model, tested side by side on the same data, did not.
So the sealed exam settled two things in opposite directions. The method is not good at telling you when to trade. It is good at telling you when to pay attention. Everything we built afterwards follows from taking that seriously rather than arguing with it.
“A disciplined rule does well on its own. So what are you selling?”
It is the first question any operator should ask after reading the paragraph above, and it deserves a straight answer rather than a deflection.
You are not paying for a claimed edge over a disciplined rule. On the post-redesign market we would not stand behind that claim, and nothing below walks it back. What the sealed year actually shows is that a disciplined rule does far better than the fleet typically does. That rule is not what most operators are running. It is what most operators are not running, every morning, on time, for a specific asset.
So what you are buying is the discipline itself, executed: a plan issued before the day starts rather than after, and re-issued every day at 13:45 CT on the next day's prices, built on your battery's own hardware limits and priced at your trading hub, arriving early enough to act on, with both plans graded afterwards, where we cannot revise them. That last item is the one a spreadsheet cannot copy. A rule you could write yourself is only worth something on the mornings somebody actually runs it, reads it, and acts on it before the window closes.
Two honest caveats, because this is the page where they belong. First, everything above comes from a sealed year that has ended, on a market that has since been redesigned. None of it is a live result. The live record is graded by a method that cannot be revised after the fact, and that method is set out in full. Second, we are not promising you a number. Every figure we put in front of you is computed backwards, on settled prices: the Recorded figure from your own settled dispatch, its Baseline, the Gain between them, and what the plan was worth beside it. We walk through it on a live screen in the walkthrough.
That is precisely why the live record exists, why a challenger discipline runs behind it, and why the method both are kept by is public. Anything from a sealed year is a starting point that has to be re-earned in the market as it is now, day by day, where we cannot revise it afterwards.
The trust architecture is the other asset
Everything above is checkable by design: the locked protocol, its hash, the frozen scoring script, the one-shot execution, and the fact that we're publishing the losing result with the same rigor as the winning one. We're not aware of another vendor in this niche who publishes a pre-registered, fingerprinted, null-result-included backtest. That isn't a marketing claim. It is a standing offer to be checked.
Running behind it is a rolling record, accruing day by day, graded the next day against settled prices. In the end that is the stronger evidence, because unlike a backtest it cannot be revised after the fact. How it is graded is set out in full.
What this means for you
Read this part twice
None of the above predicts what happens next. A one-shot evaluation over a sealed historical year tells you what would have happened, under fixed rules, on days that have already passed. It is evidence about the past, not a promise about the future. Any capability described here is offered as advisory input to your own dispatch decisions, not as a performance guarantee. Markets move and redesigns happen. One already did mid-evaluation. The honest posture is to keep re-testing rather than to stop at one good result.
We open the fingerprints, the scoring artifacts and the running record on a live screen and walk through them with you. Start on your own asset, and bring your hardest questions.
How the grading works
Archived before, graded after, misses counted, thresholds frozen. The method the live record is kept by.
See the method →Start on your own asset
A virtual walkthrough of the product on a demonstration account. Your own asset from the first day of service.
Start here →