F-0008 · first recorded 2026-08-20

The position map is up to an hour stale relative to the order book, which manufactures phantom triggers

MEASURED

Observationclock gap of 3,055 s (51 min) between the latest l2Book snapshot and the latest position snapshot
Samplefirst end-to-end cascade run, 2026-08-20
Methodcompare observation timestamps of the two joined sources
What is not establishedstructural, not incidental -- the fast position scan runs hourly while the book updates every 5.3 s
Who else publishes thisno liquidation product discloses the age of the positions behind its map
Evidencemarket/cascade_live.py

Found only by running the model end-to-end. In the first run, $10.6M of positions had a liquidation price at or above the current book mid — meaning price had already passed through them and they should have fired. They had not been re-observed.

So a naive trigger rule reads those as “about to liquidate” when they are really “the map is old”. The number is an artifact of the join, not a forecast.

What this forces, and the first fix was also wrong. Defining the trigger against the map’s spot removed the phantom triggers but folded the price DRIFT since the map was taken into the cascade impact: a $222k trigger against $225M of bids reported a 0.252% move, which is arithmetically impossible. All of it was the 180-point gap between a 33-minute-old map and the current book.

The two prices have different jobs and conflating them fakes a move:

pricejob
map spotdecides which clusters are still AHEAD of the market
book topwhere the sweep starts, and what the move is measured FROM

With both separated the same input reports 0.0000% — correct, since $222k does not clear the top bid level.

Publish the drift. map_to_book_drift_pct bounds how far the market has moved since the map could last be trusted, and it belongs next to any forecast rather than hidden inside it.

← Every claim and its status · This finding as JSON →