# A1 iterate run 11: bundle size as a filter (BUNDLE35K) + V2RAMP streak sizing

Data: /opt/ppcopy/bundle_fund.db (bundle_launch, 160 bundled launches 14 Sep - 8 Oct, 155 fee-100), e1-runners.csv (outcomes), harness bt.py fw_mc5 trades (177 trades, scripts x1.py, a1_mc5_trades.csv in /opt/crew/work/analyst1).

## 1. BUNDLE35K (new filter on bundled launches)
Who is on the other side: the team buys its own bundle in the launch block. bundle_usd = dollars the bundle wallets paid = committed team capital. More committed capital = bigger coordinated push later.
All 160 bundled launches by bundle_usd quartile (reach $300k / real $3M, jump prints excluded):
- <21.8k: 17% / 5% (n=41); 21.8-28.4k: 54% / 8% (n=39); 28.4-35.6k: 62% / 22% (n=40); >35.6k: 68% / 45% (n=40).
- Halves by launch time: first half >=35k 72%/48% (n=29) vs <35k 57%/20% (n=51); second half >=35k 53%/27% (n=15) vs <35k 34%/6% (n=65). Same sign in both halves.
Mechanical effect checked on real trades: base rule fw_mc5 (v3 WETH, cap $250k-1M at +300 s, fill +6 s, stop 0.5x, pull, 4 h, 1% fee each way) has 177 trades; 72 are bundled launches.
- bundle_usd >= 35k: n=25, mean 5.4x (bootstrap 5-95%: 2.6-9.1), ex-top2 2.9, share >=2x 36%.
- bundle_usd < 35k (bundled): n=47, mean 1.05. Not bundled: n=105, mean 1.82 (top-5 gives most).
- Halves (by time): hi 3.8x (n=12) / 7.0x (n=13); lo 1.4x / 0.65x. Both halves hi >> lo.
Cluster record (operator = bundle_fund cluster): prior reach-300k rate of the same cluster adds lift for small bundles (0.45 vs 0.28 reach, n=42/47) but is small n; not part of the rule.
Kill: after 30 paper trades with bundle_usd >= 35k, mean < 1.2x after fees, or share >= 2x < 15%.
Rule for testmgr: arm of the mc5 test (and of the kit B bundled-launch test): same entry/exit as the base, add the filter bundle_usd >= $35,000 at the launch block (sum of USD paid by wallets that received tokens in the launch tx block). Needs bundle_usd in real time: it equals the bundle detector number ppdata computes; ppfeeds kit feed has the launch-tx buyers.

## 2. Exits on mc5 (negative result)
Same 177 trades, mean x: base (stop .5, 4 h) 2.14; stop .3 2.19; stop .7 1.51; target 2x 1.00, 3x 1.07, 5x 1.16, 10x 1.47; target 3x then trail 50% 1.57, 5x then trail 50% 1.61. Every take-profit or trail loses: top 3 trades give 90 of 379 x-units. The tail is the edge. DISCARD all exits tested. Warning: strategy rests on a few trades (ex-top2 1.76).

## 3. V2RAMP loss streaks (operator state, usable in real time)
v2 seed-1.000 ETH pairs, sim as #149 (0.1 ETH, +5 s, exit 350 s). Longest non-win run 10 vs ~5.5 expected for independent trades. P(non-win) after the last RESOLVED pool (pulled or aged 350 s by our entry time) was a win 21%, was a non-win 37%. After the last two resolved pools both non-wins: next mean 1.30x (n=193) vs 2.07x otherwise; non-win rate 50% vs 22%; halves 1.24/1.88 and 1.37/2.26. Still above 1, so no skip rule; use as size rule: half size while the last two resolved ramp pools both lost. Cheap arm for the V2RAMP test (#149).
This also answers part of Ben's "15 losses in a row" question: streaks are clustered, not independent, in operator-driven families. It is a size switch, not a stop.

## 4. Regime (BTC/ETH, bridge flow)
93 days Jul-Oct, runner reach-$3M rate vs BTC daily return, ETH return, bridge net ETH, launches/day: Spearman 0.02 / -0.04 / 0.18 / 0.18. Worst 10% BTC days (-2.4% avg): 18% vs 14% normal. Hooked fee100 vs BTC return over 12 days: -0.73 (worse BTC = better), u100 +0.17. No pause signal. Caveat: the window has no real dump (worst BTC day -3.3%).

## Data request (dataeng #218)
What: same bundle_launch table (pool, token, creator, fee, launch_b, launch_t, n_wallets, bundle_tokens, bundle_usd, cluster) and bundle_wallet (wallet, tokens, usd, funder, root, hops) as /opt/ppcopy/bundle_fund.db, but for ALL launches from 14 Jul to 11 Sep 2026 (before the gold tape) and for every fee tier and venue v3/v4 (today 155 of 160 rows are fee 100). Bundle = 6+ wallets receiving tokens in the launch tx block (your existing detector).
Why/test: bundle_usd quartile vs reach-$300k and real-$3M rate (e1-runners.csv outcomes) and vs fw_mc5 trade returns. Today n=160 (hi bucket 40). Need n >= 500 to confirm the 35k cutoff and to see whether the lift holds for fee 3000/10000 and v4. Also check the cluster (operator) prior record.
Format/where: sqlite, same schema, /opt/sw/ppdata/bundle_fund_old.db (or extra rows in bundle_fund.db with a src column). Outcome columns not needed (I join e1-runners).
Kill: if the lift (68%/45% top quartile vs 17%/5% bottom) shrinks below 2x on the old period, the filter is dropped.
