When recent buyers start selling at a loss, a bottom is usually near. That is true, and our model already knew it — adding this signal made the model worse, so it carries zero weight.
Of the coins moved on-chain today that were last moved less than 155 days ago, the ratio of the price they sold at to the price they were bought at. Above 1.00 those recent buyers are taking profit; below 1.00 they are realising a loss. We score the 30-day moving average of that ratio, not the daily print, because the daily series is dominated by exchange housekeeping.
Our data: Checkonchain, banked in this repo as a frozen write-once series with a SHA-256 prefix, like every other graded input. The loader drops any row that is not a finite positive number before it reaches the scorer — see the tension note at the foot of this page for why that filter is load-bearing here and not merely defensive.
| Measure | Without it | With it |
|---|---|---|
| Walk-forward geomean edge | 1.176 | 1.159 |
| Full-history dollar multiple | 4.25x | 3.72x |
| 2019-22 cycle fold | 1.32 | 1.35 |
Swept at TWO weights on this date, 0.04 and 0.02, and reverted at both. The repo records the figures below for the sweep as a whole and does not break them out per setting, so read them as the outcome of the sweep rather than as the 0.04 row specifically. Measured against the model as it stood on 2026-07-15; that baseline is several re-baselines old and is NOT the current published record — see the register for today's figures. Recorded at src/services/cycleProjection.ts:3052.
The premise is sound and we are not disputing it. New buyers capitulating at a loss really does cluster near lows, and the one place this signal helped was exactly where the theory says it should: the 2019-22 cycle, the fold that contains a genuine bottom, improved from 1.32 to 1.35.
It still failed, and it failed on the aggregate. Walk-forward geomean edge fell from 1.176 to 1.159 and the full-history dollar multiple fell from 4.25x to 3.72x, at both weights in the sweep. A signal that improves one fold and degrades the aggregate has not found something new; it has re-timed something we already had.
The explanation is the least flattering one available, and it is the reason this page exists. Finding bottoms is the thing this model is already best at. A signal whose entire vocabulary is 'this looks like a bottom' arrives with nothing to add to the one call we do not need help with, and its noise still gets a vote on every other day. Being right about the right thing is not the same as being additive.
Read this page next to our Reserve Risk note. Both were swept on the same day, against the identical baseline — 1.176 geomean, 4.25x full history — and both reverted. Reserve Risk cost 0.070 of geomean edge; this cost 0.017. Same verdict, four times the damage, and the cheaper failure is the one that is easier to talk yourself into.
A third candidate later earned the same verdict for the same reason. In August 2026 we reconstructed a perpetual-futures basis proxy on our own BitMEX funding history, and it died the same death: backwardation turned out to be drawdown wearing a costume, and it added +0.53 of a point where the model already buys while costing 12.71 points in the middle of the range. Three independent bottom-side candidates, three rejections, one mechanism. That is a finding about our model, not about the metrics.
It stays wired at weight zero and can be re-swept with one environment variable. We did not delete it; we priced it at nothing.
Every signal we add has to survive the same gate, and most do not. Our published record is measured over 18 walk-forward folds (the year and cycle folds tile the same span, so they are not independent of each other). The figures in the table above are dated results against the model as it stood on the day of the test — the register is the only authority on where the model stands today.
Read the current call in today's briefing, or the timestamped record of every call in the call ledger.