# A2: e1x runner map (21 Sep-9 Oct) + USDG 300-450k ride test (#423, 10 Oct)
Data: /opt/ppcopy/e1x-runners.csv (ok pools only), r6usd.db + r6tape.db meta. Scripts it30/e1x_map.py, e1x_b.py, usdg_sim.py.

## Runner map (ok pools, 21 Sep-9 Oct): peak >=1M / 5M / 10M
| quote venue | ok pools | 1M | 5M | 10M |
|---|---|---|---|---|
| USDG v4 nohook | 238 | 175 | 78 | 47 |
| WETH v3 | 1063 | 202 | 67 | 41 |
| WETH v4 hook | 683 | 136 | 33 | 13 |
| USDG v4 hook | 201 | 36 | 15 | 9 |
| WETH v4 nohook | 1058 | 37 | 0 | 0 |
| native v4 nohook | 430 | 25 | 2 | 2 |
| native v4 hook | 187 | 14 | 4 | 2 |
| SUSD v4 | 9 | 9 | 9 | 7 |
5M+ total 208; USDG v4 is 38% of them (WETH v3 32%). Native custom-fee (the 143 gap in #363) is small at 5M+ (2-4), it is a 1M-tier gap only.
Note: 5M+ runners cross 300k at median 3.5 min after birth (p75 18 min); ~50% are SEEDED at/above 300k within 1 min of creation. USDG 5M+: 37 seeded, 36 within 1h, 20 later.

## Test: USDG v4 enter first med-5 print 300-450k (after >=5 swaps, >=40k traded), 7% haircut
n=543 enterable (of 2324 touching 300k; the rest start above 450k = seeded). Reach 1M 57 (10%), 5M 8, 10M 4.
Best rules mean x: tp10 0.80, tpstop(5,0.5) 0.85, trail40 (after 2x) 0.83; halves agree. Hook subset n=35: 1.3-1.5x but only 2 5M runners, noise.
=> NEGATIVE. A 300-450k ride entry in USDG does not pay: the e1x "touch 300k -> 79% reach 1M" is survivorship of pools SEEDED above 300k. Discard.
## Lessons
- USDG runners are decided at birth (seed cap, first minutes), not by a 300k ride. For USDG the hunt belongs to the early-window bots (entry <=1h, seeded caps), where tp/trail decide. Existing A2-USDG4 stage 1 (tick baseline 1.35x) is the right path: next gate = seed cap + first-minute flow features.
- Ask: nothing new. Native custom-fee 5M+ barely exists, deprioritize.
