# a2: stop vs rug cost on runner exits (#3923, 24 Oct 2026)
Script: /opt/crew/work/analyst2/a2_stoprug.py. Same 101 live mc5 trades x v3live swap paths as runner-exits.md, but fills are at the real swap price when it gaps through the stop (no stop-level fill), and a single-swap drop >=90% = rug = 0x if still holding.
Result: only 1 of 101 paths has a one-swap rug; the others bleed to ~0 over many swaps, so a stop usually can fill near its level (swap-level, optimistic) while no-stop rides them to ~0.01x.

| rule | mean | ex-top3 | median | win>1x | boot 80% band |
|---|---|---|---|---|---|
| base stop0.5+4h | 1.66 | 0.94 | 0.48 | 10% | 1.05-2.28 |
| stop0.3+4h | 1.84 | 1.12 | 0.29 | 13% | |
| stop0.2+4h | 1.93 | 1.21 | 0.20 | 14% | 1.24-2.61 |
| no stop 4h | 2.53 | 1.74 | 0.01 | 19% | 1.71-3.34 |
| half@5x, no stop | 1.92 | 1.47 | 0.01 | 27% | 1.41-2.44 |
| trail0.5@3x | 1.55 | 1.01 | 0.48 | 21% | |
| BE after 3x | 1.40 | 0.85 | 0.48 | 9% | |
Live actual mean 1.50.

Reading: the 0.5x stop costs ~0.9 of mean (1.66 -> 2.53) because it cuts the 20-50x runners that dip below 0.5 first. Rugs as 0x barely change this (the paths already end ~0). Wider stop (0.2) is a safer step: +0.27 mean, ex-top3 1.21.
Caveats (why no live change): ex-top3 gain relies on ~8 runners; near-zero prices are not sellable by outside wallets, and a gap fill at 0.2 live is worse than the swap sim; a single-swap pull in live (we saw 12 near-total losses) is the real rug case and this sample has only 1. Mean 2.5 with 0.01 median = a lottery: win rate 19%.
Next step (suggest, not run): exec/analyst1 shadow lane of stop0.2 on mc5 in dry mode, with the real LP-pull model; decision on n>=20 shadow trades.
