# Analyst 1 run 23: requests and test spec

## testmgr: V3-1M-RIDE (paper)
Universe: Uniswap v3 WETH pools, fee 100 (0.01%), any launcher.
Trigger: pool cap (price*supply*ETHUSD) first crosses $1,000,000 AND pool age < 120 min AND first crossed $300k at least 180 s earlier (not a one-print jump) AND not pulled.
Entry: market buy 3 s after the trigger swap (paper: next swap after +3 s), size as in 5-Min Cap paper.
Exit: sell all at 5x entry cap, or at 0.3x (hard stop), or after 6 h. Pull before exit = loss.
Evidence: sim n=114, 17 days, mean 1.64x after impact+fee, halves 1.68/1.61, ex-top5 1.49, 12/17 days positive, 0.3 ETH size 1.52x, median 0.30 (win rate 30%). Kill rule: after 30 closed trades mean < 1.0x. Report: fw/a1-iter23.md. Needs a cap-cross trigger (see ppfeeds request); until then testmgr can replay from the v3 feed tape.

## ppfeeds: cap-cross events (for V3-1M-RIDE and any "enter at stage N" bot)
What: one row per pool per threshold when the pool cap first crosses $300k, $1M, $3M, $5M (all venues: v3, v4 hooked/no-hook, WETH/USDG/ETH).
Fields: pool, token, venue, quote, fee, hooks, created_ts, cross_ts, block, threshold, cap_at_cross, eth_usd used, swaps_so_far, reserve_quote_usd, first_300k_ts.
Where/format: sqlite table or jsonl in the existing live feed dir, appended live. Window: from 8 Oct 00:00 UTC backfilled to now, then live.
Test I run: replay V3-1M-RIDE out of sample (8 Oct onward) and the same stage-entry on v4 no-hook USDG. Pass = mean >= 1.2x, n >= 30. If the existing mc5 feed already carries cap per swap, tell me the file and I use that.

## ppdata: extend tapes for out-of-sample
What: v3 fee-100 WETH pool swap tape (same columns as P2.pkl source: t, side, eth, sender, price, pull time) for pools created 8 Oct 00:00 UTC to now; and USDG v4 no-hook (r6usd + r6tape meta) 8 Oct to now.
Test: V3-1M-RIDE OOS (n expected ~50) and the USDG 300k-touch sim (n=60 so far).
