Feature-first analysis asks "does X predict Y" and drowns in multiple testing —
3,839 combos were tested on 260726 and exactly one survived. Inversion starts from the
outcome and works backwards. This page unifies both inversion lineages on this box:
the on-chain pre-pump signature lift (accum_explosion_forensic, case-control vs
look-alike duds) and the realised-shape inversion (chart_archetypes).
M-20 is now measured inside the canonical universal paper path: point-in-time TDE evidence rides the same position and realised exit, while skipped selection quality uses the same fixed 4h outcome lens. Hard-gate rejects are excluded from hesitation arms.
Do not read the descriptive EV gap as hesitation skill yet.
Coverage is 6.6% taken versus 3.6% skipped;
the comparison remains selection-biased until both clear the 80% gate. Canonical source:
paper_scorecard.json → decision_quality.m20_attention.
A plateau is not automatically bearish. Low volume while price holds a shallow, compressed range above anchored VWAP can be constructive supply dry-up; low-volume breakout is weak; high volume with no progress and negative flow is distribution. The classifier uses only bars visible at classification time and stays shadow-only until forward proof passes.
green = continuation structure · amber = unresolved · red = reversion/failure risk. Thin bars are normalized volume; red bars illustrate sell-dominant flow. Schematics—not historical outcomes.
| shape | measurable structure | read | confirmation / invalidation |
|---|---|---|---|
| CONSTRUCTIVE_ABSORPTION | strong pole · shallow retrace · range+volume contract · AVWAP hold · higher lows | wait / continuation candidate | close above shelf high with renewed positive volume/flow |
| BULL_FLAG_BREAKOUT | constructive shelf + close above resistance | continuation candidate | participation required; fail if close returns inside shelf |
| NO_DEMAND_SHELF | flat price + dry volume, weak support evidence | direction unknown | wait for directional close + flow |
| DISTRIBUTION_PLATEAU | high effort/no result · negative signed volume · flat/lower highs | reversion risk | support break confirms; positive-flow upside break negates |
| FAILED_SHELF | close below support or deep surrender of pole | reversion risk confirmed | must reclaim shelf low/AVWAP before bullish reuse |
| UNSTABLE_CONSOLIDATION | pause too deep, too wide, too loud, or directionally unresolved (catch-all after a qualifying pole) | wait | tighten above VWAP for continuation, or close below support for failure |
| ORDINARY_CHOP | no qualifying impulse — pole_return below the pump-floor prior | no edge | not a post-pump setup; wait for a new impulse or an independently validated catalyst |
Proof: HYPOTHESIS_SHADOW_ONLY. Starting thresholds are priors, not facts. Required: timestamped OHLCV, matched controls, sealed temporal OOS, cost/latency stress, chain×age×liquidity×regime strata, BH-FDR, neighboring-parameter stability, forward paper challenger, then Chris approval.
P0 covers the post-pump SHELF specifically. chart_pattern_intel.py (v1.0.0,
wired into ta_capture.py/token_ta.py/trading_decision_engine.py
since 260731) classifies the broader visible chart into 12 additional shapes — acceptance/rejection
of prior value, liquidity sweeps, parabolic exhaustion, stair-steps, balance rotation — using the
same point-in-time discipline. Until this section existed these lived only as invisible fields
(chart_archetype/_bias/_tags) inside
token_ta_cache.json; nothing rendered them anywhere.
green = continuation/bounce bias · amber =
wait / no-chase · red = reversion risk. Schematics—not historical
outcomes, same as P0. Score is a rule-match strength, not a win probability
(score_semantics: RULE_MATCH_NOT_WIN_PROBABILITY) — the classifier has no admission,
sizing, or exit authority; proof status is HYPOTHESIS_SHADOW_ONLY pending the same 9
gates as P0.
Slices are share of trades (always a positive count, so the geometry is honest). Colour and the legend show whether that cohort makes or loses money — 🟢 profitable, 🔴 losing. A pie cannot draw a negative slice, so signed magnitudes are shown as diverging bars underneath instead of being faked into wedges.
time_to_peak contains future information. It describes outcomes but
does not prove the chart was flat at minute 15 and cannot authorize a live delayed-entry rule by
itself. Keep the Wilson intervals and ex-top-1 check as descriptive evidence; use P0 plus
prospective snapshots for prediction.
| peak arrives | n | P(peak ≥ +50%) | 95% confidence interval | expectancy | ex-top-1 | verdict |
|---|---|---|---|---|---|---|
| <5 min | 8,772 | 11% | [10–11%] | −$25 | −$25 | loses money |
| 5–15 min | 2,401 | 27% | [25–29%] | −$10 | −$10 | loses money |
| 15–30 min | 2,453 | 33% | [31–34%] | $2 | $2 | robust — survives ex-top-1 |
| 30–60 min | 1,922 | 41% | [39–43%] | $5 | $4 | robust — survives ex-top-1 |
| 1–4 h | 2,528 | 52% | [50–54%] | $5 | $4 | robust — survives ex-top-1 |
| >4 h | 3,648 | 46% | [45–48%] | $9 | $9 | robust — survives ex-top-1 |
The intervals for <5min [22–25%] and 15–30min [41–53%] do not overlap — that is a clean statistical separation, not noise. And the positive bands stay positive with their best trade removed, which almost nothing else in this book does.
Safe reading: trades whose eventual peak occurred immediately performed worse in this book. Unsafe reading: assuming every late peak had visibly plateaued early. P0 now measures the actual early geometry and volume state without that hindsight substitution.
Top decile by peak (n=2172, peak ≥ +156%) versus everything else (n=19552). Lift is percentage-point over-representation among winners. A lift above ~6pp is worth a look; below that, treat as noise at this sample size.
| value | in winners | in rest | lift | skew |
|---|---|---|---|---|
| SWING | 72.6% | 46.8% | +25.8pp | |
| SWING_ARM21 | 8.4% | 7.7% | +0.7pp | |
| SWING_TRAIL25_5 | 3.1% | 2.6% | +0.5pp | |
| MOMENTUM | 0.0% | 0.0% | +0.0pp | |
| SWING_SL25 | 0.1% | 0.2% | -0.0pp | |
| SCALP-RATCHET | 0.1% | 0.2% | -0.1pp |
| value | in winners | in rest | lift | skew |
|---|---|---|---|---|
| fomo | 15.1% | 10.3% | +4.8pp | |
| control | 4.6% | 1.4% | +3.1pp | |
| oggy_boost | 3.6% | 1.1% | +2.5pp | |
| smartmoney | 5.6% | 4.0% | +1.6pp | |
| cluster | 5.3% | 3.9% | +1.4pp | |
| fomo_curated | 5.6% | 4.2% | +1.4pp |
| value | in winners | in rest | lift | skew |
|---|---|---|---|---|
| sol | 61.6% | 49.8% | +11.8pp | |
| avalanche | 0.0% | 0.0% | -0.0pp | |
| worldchain | 0.0% | 0.0% | -0.0pp | |
| eth | 6.9% | 8.4% | -1.5pp | |
| bsc | 19.8% | 22.3% | -2.5pp | |
| base | 8.4% | 11.3% | -2.9pp |
| value | in winners | in rest | lift | skew |
|---|---|---|---|---|
| poor | 55.2% | 52.2% | +3.0pp | |
| extreme_poor | 2.4% | 3.4% | -1.0pp | |
| ground | 42.4% | 44.4% | -2.0pp |
Every closed position classified by what it actually did. Post-hoc by
construction — you cannot filter for RUNNER_BANKED at entry. What this does is
size each problem: which shapes carry the book and which bleed it.
| archetype | n | expectancy | ex-top-1 | win rate | armed | median peak | robust? |
|---|---|---|---|---|---|---|---|
| SUSPECT_PRICE | 84 | $476 | $450 | 80% | 100% | 0% | robust + |
| RUNNER_BANKED | 2,087 | $73 | $73 | 100% | 100% | 248% | robust + |
| POP_BANKED | 1,097 | $20 | $20 | 100% | 100% | 71% | robust + |
| RUNNER_SCRATCH | 926 | $3 | $3 | 72% | 100% | 141% | robust + |
| CHOP | 1,514 | −$1 | −$1 | 43% | 40% | 10% | negative |
| POP_FADED | 4,540 | −$8 | −$8 | 13% | 100% | 46% | negative |
| FLATLINE | 4,491 | −$8 | −$8 | 1% | 0% | -1% | negative |
| RUNNER_GAVE_BACK | 384 | −$21 | −$21 | 0% | 100% | 162% | negative |
| SPIKE_FADE | 1,631 | −$31 | −$31 | 3% | 26% | 9% | negative |
| GRIND_DOWN | 1,593 | −$37 | −$37 | 0% | 26% | 12% | negative |
| DOA | 3,460 | −$50 | −$50 | 0% | 0% | -1% | negative |
DOA + FLATLINE ≈ 1,537 positions
that never ticked up at all. No exit rule can rescue these; only admission can.POP_FADED (median peak 43%) +
RUNNER_GAVE_BACK (median peak 166%, win rate 0%) ≈ 1,250 positions that
were profitable and gave it all back.SUSPECT_PRICE is not a chart shape — it is the dust-pool artifact
(queue #204) that the classifier isolates automatically. It was inflating the book's
apparent winners.From accum_explosion_forensic: exploded tokens versus look-alike
duds, so each pattern gets a real lift rather than a survivorship artifact. This answers a
different question from the shape work above — not "what shape won" but "what was visible
on-chain before it moved".
| signature | in exploded | in duds | lift | n exploded | novel? |
|---|---|---|---|---|---|
| REACCUM | 1.4% | 0.0% | 37.6× | 22 | known |
| RANGE | 0.9% | 0.0% | 25.6× | 15 | known |
| ABSORB | 1.1% | 0.1% | 19.4× | 17 | known |
| HL | 1.5% | 0.1% | 15.7× | 23 | known |
| VOL-ANOM | 1.4% | 0.1% | 12.5× | 22 | known |
| FRESH-SWARM | 1.6% | 0.1% | 12.2× | 25 | known |
| FLOW-DIV | 0.9% | 0.1% | 12.0× | 14 | known |
| CLUSTERED-SUPPLY | 1.3% | 0.1% | 11.4× | 20 | known |
| GMGN-CLUSTER | 1.8% | 0.2% | 11.0× | 29 | known |
| WM-BUY | 0.9% | 0.1% | 9.6× | 14 | known |
| SIDE-CLUSTER | 0.5% | 0.1% | 9.1× | 8 | known |
| STEALTH-WAVE | 0.8% | 0.1% | 8.9× | 13 | known |
| ASSOC-SUPPLY | 0.8% | 0.1% | 8.9× | 13 | known |
| SQUEEZE | 0.9% | 0.1% | 8.6× | 15 | known |
Read these as leads, not rules. Several have
n_exploded under 30, so the lift is directional. Note the standing finding from that
lineage: features that look like drags on win-rate (REACCUM, HOLDER-SURGE, VOL-ANOM) are
among the top explosion-lift tails — so do not down-weight a feature on win-rate alone.
The operators, not the tokens. Graded S/A wallets by realised 30-day P&L, reused from the ALPHA leaderboard (not recomputed). This is the money to copy-time into the setups above — the same wallets whose buys now name every ACCUM card.
| wallet | grade | 30d realised | roi 30d | win |
|---|---|---|---|---|
| kien28.base.ethNguyeEarlyWhale | S | $394,371 | +20% | 56% |
| 0x50dcb3f5 | ? | $299,912 | +16% | 44% |
| 0xcf5a3392 | ? | $234,941 | +13% | 51% |
| cDF2-7k-AFeng阿峰_Dailyflipper | ? | $226,728 | +15% | 68% |
| 0x05a94a8d | ? | $207,590 | +11% | 54% |
| BaseWhale枯坐p小将3-10X5FigManyFol | ? | $156,147 | +46% | 73% |
| 0x1057c855 | ? | $126,543 | +6% | 45% |
| Paingelz | ? | $105,660 | +37% | 47% |
| AntPositions | ? | $103,581 | +5% | 37% |
| yukaz | ? | $85,409 | +40% | 59% |
| 西瓜🔶BNB | ? | $76,093 | +8% | 44% |
| blockdao🇨🇳 下次钻石手 | ? | $60,792 | +9% | 43% |
Every line is a direct read of the sections above, not generic advice.
The actual trades we learn from, guaranteeing every chain is represented. ● entry · ● peak · ● exit — see how much of each runner we captured (captured) versus what the peak offered (peak). The gap is the exit problem. Robinhood carries Monaco/Pow cabal alpha — the whole point of inversion.
| token | peak | captured | source | entry → peak → exit |
|---|---|---|---|---|
| $Mooncoin | +1953% | +628% | source_strategy | |
| $CLIP | +1917% | +1271% | scout | |
| $CASH | +1905% | +421% | fomo | |
| $RBL | +1876% | -8% | cluster | |
| $RBL | +1876% | -8% | cluster | |
| $FATSEM | +1874% | -12% | cluster | |
| $FATSEM | +1874% | -12% | cluster | |
| $CASHMONKE | +1850% | -9% | cluster |
| token | peak | captured | source | entry → peak → exit |
|---|---|---|---|---|
| $黄金时代 | +1988% | +844% | momentum_scalp | |
| $bStonkBroker | +1875% | +599% | fomo_curated | |
| $加密人生 | +1676% | +468% | smartmoney |
| token | peak | captured | source | entry → peak → exit |
|---|---|---|---|---|
| $CPEG | +1383% | +923% | oggy_boost | |
| $dogue | +1045% | +656% | fomo | |
| $A1C | +994% | +411% | whalemover |
| token | peak | captured | source | entry → peak → exit |
|---|---|---|---|---|
| $YOMOGI | +1522% | +756% | fomo | |
| $GWEI | +1361% | +604% | whalemover | |
| $FIGHT | +1339% | +10% | cipher |
| token | peak | captured | source | entry → peak → exit |
|---|---|---|---|---|
| $RDUBS | +1825% | +771% | scout | |
| $PUNKS | +1248% | +413% | wallet_intel | |
| $MICROCHIMP | +1050% | +347% | whalemover_rh |
docker exec <gw> python3 /opt/data/scripts/inversion_gen.py ·
Hermes → cron 6 */4, thread 37479