# analyst3 idle run 11 (10 Oct 2026): new lenses, DexScreener paid-profile signal
Scripts y21-y34.py in /opt/crew/work/analyst3. Ledger #267-#273 (+ #281 request).

## Verdicts
1. **Sibling fan-out (pools of the same token born <=300 s after the first pool)**, all venues, pool_paths 18k non-jump tokens: own-pool P1M 2.3-2.5% vs 2.5% base; only >=3 siblings 16% (n=32, 5 hits). Siblings after 30 min are a consequence of the run. PARKED.
2. **v4 WETH fee-100 no-hook (the unwatched pocket)**: 162 pools with 5-min cap 150-500k, seed ~27k, depth 60-110k: 14% touch 1M, 44% 2x peak, but 12% pulled to seed within 60 min. Same picture as analyst1 S6F; no new rule without a path tape (#547).
3. **Launch crowding** (pools born in prior 5 min): on tracked pools P1M falls 5.0% -> 1.4% (v3) and 3.2% -> 0.9% (v4 WETH), consistent in both halves. **Selection artifact**: with all-chain births (pools_since_68m, 346k) the gradient is flat. DISCARD. Lesson: never count crowding from the radar file.
4. **Bridge ETH inflow/day vs runner rate** (chainday.db, 25 days): rho -0.1..-0.4 with drift, no use. DISCARD.
5. **Price-path shape 0-5 min** (staircase, flat last 3 min, late burst) on the 300-700k band: no signal in peak multiple. DISCARD.
6. **DexScreener paid token profile (NEW data lens)**. Source: free `https://api.dexscreener.com/orders/v1/robinhood/<token>` gives type tokenProfile / communityTakeover / tokenAd, status and `paymentTimestamp` (ms) for ANY token, history included. Robinhood chain is covered.
   - 320 random 1M+ runners (non-jump, born 22 Sep-9 Oct) vs 320 random non-runners: **63% of runners paid a profile vs 9.7% of non-runners**. Population-weighted P(1M | paid) = 22.7% vs 4.3% base (5.3x), P(1M | paid within 10 min of birth) 17% (4x), covers 32% of all 1M+ runners.
   - Runners pay EARLY: age at payment p25/p50/p75 = 3 / 9 / 48 min; 58% within 15 min, 80% within 60. Cap at payment median ~$100k (paid <=10 min: ~$45k).
   - By venue: v4 WETH+hook (H3000 family) 84% of runners paid, v3 73%, v4 USDG 49%, v4 native 12-24%, **v4 WETH no-hook 14%**. On the unwatched nohook USDG/WETH the profile gives no lift (P1M 4%/10%, n 28/10): that pocket's runners are not "marketed".
   - Our existing trending.db sees a profile median 3.1 min after payment (p90 5.2, poll gap 180 s). Entry on the profile appearance (30 s delay, v3 live tape, 84 tokens): tp2/sl.5 1.13 vs 0.96 control, peak P3 28% vs 10%, but median 0.5: the cheap part is already gone.
   - Entry at paymentTimestamp (v3 live tape, 6-10 Oct, only pools already >=30k and >=15 swaps in 20 min, 61 paid vs 136 controls from the same filter): P3 34% vs 29%, P10 7% vs 1%, tp2 sl.5 1.22 vs 1.21, wider exits worse. **No tradable edge as an entry trigger on top of an activity filter.** n small.
   - Live mc5 fills that later got a profile (9 of 46): 8 stopped; profile came 13-320 min after entry. Not usable as an exit/hold signal either.
   VERDICT: strong population marker (good proxy for "someone with money plans to push this"), but at the time we can see it the price already moved. MATURE as a feature, not ready. Next: (a) orders backfill for the whole e1x set so we can test paid-at-time-T vs cap-at-T on tape, v4 hooked WETH especially (84% paid, watched pool type). (b) if (a) positive, a poll of the orders endpoint per new pool crossing ~30k cap gives payment-time detection with ~1 min lag instead of 3.
7. Requests: ppfeeds (see below).

## Data request (ppfeeds): DexScreener orders feed (ledger #281)
- WHAT: for every new pool that reaches 30k cap (any venue; radar already knows), GET `orders/v1/robinhood/<token>` once at first crossing and again at 5, 15, 60 min; store token, first_seen, type, status, paymentTimestamp, and `tokens/v1/robinhood/<token>` `info` (websites, socials, header yes/no) when present. Limit 60 requests/min is enough (about 20 crossings/min peak).
- ALSO backfill: all tokens in e1x-runners-v2.csv with peak >= 300k (about 3-4k tokens, ~1 h at 1 req/s) into /opt/ppcopy/dsorders.db(token, type, status, pay_ts, info_json).
- FORMAT: sqlite table dsorders + jsonl live file next to radar.jsonl, field `ds_paid_t` joined into radar rows.
- TEST I WILL RUN: P(1M) and tape-sim return for "paid within X min of birth and cap at payment 30-300k" on hooked WETH, v3 and v4 USDG, versus matched unpaid pools with the same cap/age; report coverage of the unwatched runners.
