# A2 idle run 12 (9 Oct 2026): 10 iterations, out of the box

Data: r6weth.db 21 Sep - 7 Oct, 1931 pools with pull-aware sims (y = +60 s entry, tp3, sl 0.5, fee + 3% slip, pulled LP = 0). Baselines: u100 0.98 (n=1387), h100 2.25, h3000 4.65. Scripts k0-k6.py in /opt/crew/work/analyst2.

## READY for paper: A2-RES60 (arm of tm-busy60 / PERBLK family)
Universe v4 fee 100, hooks = 0 (u100). Feature: pool ETH reserve at the +60 s entry (money that has arrived). Rule: buy at +60 s only if reserve in [3.6, 6.2] ETH. Exit tp 5x (alt tp3), sl 0.5, 4 h stop, pull = 0.
- n=356: tp3 1.33 +-0.08 (halves 1.48/1.19), tp5 1.46 (halves 1.48/1.45), tp10 1.40; baseline same universe 0.98 / 1.03 / 0.85. Pulled 51% vs 65%; 45% reach 3x vs 31%.
- Reserve <2.1: 0.73 (75% pulled), 2.1-3.6: 0.90, 3.6-6.2: 1.33, >6.2: 0.93 (61% pulled). Too little money = nobody outside is there; too much = already pumped / wash.
- Overlap with PERBLK: perblk>=1.25 and band: 1.37 n=382 (3-7 ETH); perblk<1.25 and band 1.04. So it adds little on top of PERBLK (1.30); alone it is a simple second filter. Send as an arm, not a new family.
- Cutoffs came from quartile cuts of the full sample (flagged); halves are time halves, not a clean OOS. Outside-money test not done (txfrom covers few pools). Kill: forward mean < 1.1 over 60 trades.
- Jump trap: y already requires reserve >= 2x position at the exit print and pull-aware zero.

## Iterations
1. TOKEN ORDER (new, address lens). Assumption: token0 vs token1 encodes the launch method. u100 token=token0 n=63 0.98 vs 0.98; h100 2.05 vs 2.26 (n=21). DISCARD.
2. BATCH CREATION (new). Pools per creation tx / per creation block: always 1 in this universe (all 1931). No batch signal exists. DISCARD.
3. OPERATOR HOT HAND (new). Mean y and pulled share of the previous 5 same-family pools (resolved >= 1 h before): u100 0.89/0.98/0.98/1.05 (halves go opposite ways), h100 2.17-2.38 flat. DISCARD (no momentum in operator behaviour; also means "15 losses in a row" is not predictable from the last losses).
4. OPERATOR INVENTORY (new). Alive (unpulled) same-family pools at entry: u100 1.06/1.04/0.98/0.89, launches in last 6 h 1.03-0.94. Weak slope, no rule. DISCARD.
5. MONEY ARRIVING: reserve at +60 s, R60/R0, price 60 s / first price. See READY above. R60/R0 and px60/px0 u100 non-monotone. MATURE -> paper arm.
6. EXITS on the band: tp 1.5/2/3/5/10, sl 0.5/0.7: 1.04/1.14/1.33/1.46/1.40; sl no difference. tp5 best and stable in halves. Rule uses tp5.
7. REGIME: ETH range of previous 12 h and 12 h return, quartiles: u100 0.89/0.94/0.92/1.16 (top vol only), h100 2.42-1.97 (falls with vol). ETH moved at most +-2.5% a day here, so no dump is covered. Side finding: u100 launches fell from 150-220 a day (21-29 Sep) to 22-60 (3-7 Oct), mean y on the thin days 1.45/1.51/2.04 vs 0.7-1.2 (n 22-39, noise). DISCARD, DATA REQUEST below.
8. MOMENTUM (sports-line analogy): price move 0-30 s and 30-60 s: u-shaped (0.93/0.71/1.11/1.14; 1.07/0.75/0.92/1.16). Nothing monotone. DISCARD.
9. FRESHNESS AT ENTRY (swaps in last 10 s, max gap, time since last swap, acceleration 2nd/1st half): all 0.75-1.15 non-monotone, halves disagree. DISCARD.
10. TOKEN ADDRESS (vanity / first hex digit / leading zero): 0.95-1.01 all. DISCARD. Plus data request (below).

## Data request (dataeng, ad hoc)
r6weth.db and /tmp-style pool tables end 7 Oct and ETH is flat in them. Needed to test the regime switch Ben asked for (1 in 4 runners one day, 15 losses next while BTC dumped):
- WHAT: BTCUSD and ETHUSD 1-minute close (public Binance or Coinbase klines, free), 21 Sep 2026 00:00 UTC to now, daily refresh. CSV `ts_utc,btc,eth`, to /opt/sw/ppdata/btceth_1m.csv.
- WHAT 2: extend r6weth.db (pool meta + swap events with sender/recipient) from 7 Oct to now (same schema), so the post-drought days and any BTC dump day are covered.
- TEST: pull-aware y of u100/h100 entries by BTC 1 h / 6 h return (<-1%, -1..+1%, >+1%) and by 1-min realized vol; kill if no bucket differs by > 0.3 with n >= 60 in each; if one does, propose a pause / half-size switch.
