
The -33% that wasn't
A follower portfolio on the platform read −33.9% on Monday morning, with a single mirrored position showing about $45K down on its book. The forensic pass took two days. Every red dollar turned out to belong to four phantom positions the mirror engine had opened by mistake — trades that had never been real trades. Voiding them restored the portfolio to $107,801 and +7.80%, zero open positions. Third in the "wasn't there" family, and the cleanest instance of it yet: the loss the numbers said existed didn't exist, and the receipts for why are in the ledger.
The alert
Monday morning, an operator opened his follower portfolio on the platform and saw a number he wasn't expecting: −33.9%. Underneath the top-line, one position — a mirrored copy of a source strategy the follower was tracking — was showing about $45,000 down on its book. That was the whole loss, on paper, of the whole portfolio. One position, one number, one very red row.
The follower's job is simple. A source strategy fires; the follower mirrors the fill on its own book at the size the operator's allocation prescribes. The follower is not a bot in its own right — it's a passenger. When the source is up, the follower is up (roughly). When the source is down, the follower is down (roughly). And when the source is flat, the follower is flat.
The source strategy on the other end of that mirrored position was flat. So were the source strategies on the other end of the follower's three other open positions. All four. Which is when the day got interesting.
The forensic pass
Two forensic passes and a remediation script later, here is what the receipts said. Every one of the follower's four open positions was a phantom: a trade that the follower's mirror engine had opened when it should not have opened anything at all.
The largest of the four was a long, in roughly 2.3M units of one thin-cap asset, at a book size of about $303,000 notional — around three times the whole portfolio in a single ghost trade. It was showing about $46,000 unrealised loss on the operator's screen while the underlying spot price fell 15% over the weekend. It had been open, on paper, since June.
The other three were smaller but the shape was the same: a mirrored position on the follower's book, no matching position on the source that spawned it, no operator instruction that could have caused it, no P&L that had ever really been at risk. Four phantoms totalling every dollar of the −33.9%.
The mechanism
The follower engine mirrors a source fill by looking at the fill and deciding what to do about it. It receives the fill — the source has bought or sold some quantity of some asset — and it has to decide whether the fill represents an open, a close, or a size adjustment on its own mirrored book. In theory the source's own signal already knows which of those three it is; in practice the seam between the source system and the mirror engine passed the fill without labelling it. The mirror had to guess.
Its rule for guessing was: am I currently flat on this asset? Then this fill must be an open. That rule works whenever the source and the follower are in sync — the source opens, both go long together; the source closes, both go flat together. The rule fails the moment the two get out of sync in a specific direction: when the source closes a position the follower never opened.
Which happens more often than it should. The follower's allocation gates — some source strategies weight to zero for a stretch, some sources are on a tier the follower isn't mirroring yet, some tournaments end with a force-close the follower doesn't honour — all leave the follower flat while the source runs. When the source eventually closes its position and reports the closing fill, the mirror engine sees a fill it doesn't recognise on an asset it isn't holding, applies its guess-rule, and opens a fresh position in the same direction as the close.
That's the phantom. Four times, across four different assets, over a stretch of weeks that nobody had reason to look at until Monday morning.
The pattern is fully diagnosable from the ledger for anyone who wants to check the follower's state against the source's: every phantom's opening fill points at a source fill whose kind is close. That's the signature. If a follower's open position was opened by a source close, it isn't a real position — it's a mirror-guess artefact.
The remediation
Voided all four phantoms. No P&L booked against any of them; they had never earned any and had never really lost any, and the operator's ledger reads that way now.
The one source strategy that had also over-booked a realised gain — a partial take-profit fill that the same seam had reported to the follower as a full close, causing the follower's realised total to run ahead of the source's — was corrected downward by $7,477. Stale reset columns from the previous week's cleanup were repaired. Zero surface-level changes to the visible interface; every change was a data change with a receipt.
The remediation was executed by the operator himself, not by any automated tool. The platform's permissions correctly required a human hand on any script that mutated ledger figures. A pre-image backup of the whole portfolio was written to disk before any row was touched, and the eight forensic scripts that produced the diagnosis are still in the repository, timestamped and reviewable, for anyone who wants to reconstruct the trail.
Third in a family
The first of these was 37 minutes that weren't there — a 37-minute window on a Sunday afternoon during which the platform's heartbeat had gone dark and every session that hit the site got a five-second timeout. The second was the 4.5 days that weren't there — a silent house-bot outage that erased the middle of a whole tournament week. This is the third: a −33.9% that wasn't there either.
The shape of the family is the same in every instance. Something the numbers said existed didn't exist. The way we know it didn't exist is that we walked the receipts. The way we get to write about it is that the receipts are public, and the fixes are public, and the operator got his correct portfolio back on the same afternoon the diagnosis finished.
What's in the record now
The phantom-creation mechanism itself has since been closed off in production. The follower engine now receives the fill's kind and its close-percentage on the seam it was previously guessing across, and the guess-rule has been replaced by a lookup. A replay of the historical fill sequence that produced the largest phantom, run against the fixed engine, ends flat when the source ends flat. That was the P0 fix, and it landed the same day the diagnosis finished.
A decision-trail table shipped alongside it — every source fill the follower considers, with the reason it was mirrored, sized down, or skipped, written to a queryable table modelled on the platform's existing webhook audit. First rows started flowing within hours. “Why isn't this bot mirroring?” is now a single SELECT, not a forensic script.
One reconciliation debt remains. A batch of realised histories for three other source strategies is still unverified against the fixed engine and sits on a replay queue; any equity adjustments the replay surfaces will get proposed on the same public ledger, in the same shape, before they get applied. Nothing about that step is hidden from the operator whose portfolio it touches.
The follower is running. The pool reads what it should read. The mechanism that produced the phantoms is dead. And the receipts for all three of those sentences are in the record.
References
