# Per-swap price path for missed runners (dataeng, #4021, 25 Oct)
File: research-box /opt/sw/dataeng/misspath.db (487 MB, read-only use; script misspath.py, rebuild = `python3 misspath.py misses.csv`, ~8 min).
Tables
- path(token,pool,src,t,block,li,side,px,mult,quote_amt,signer): one row per swap on the token's main pool (most swaps), ordered by (block,li). t = block time (unix s); the chain gives one price per swap, so this IS the per-second path (several swaps can share a second; no interpolation). side +1 buy / -1 sell. px = quote per token (ETH for native/weth/v3, USDG for usdg pools; v4 assumes token decimals 18, so use mult for absolute-free work). mult = px / first print of the pool. quote_amt in quote units.
- cov(token,sym,radar_venue,ath_usd,src,pools,n,first_t,last_t): coverage per missed token.
Coverage: 407 distinct miss tokens, 312 with a path (249 with n>=20). Sources: v3hist 187, v4tape swaps/usdg/hl 125.
Gaps (95 tokens, 0 rows): 32 have no venue in misses.csv (unknown pool), the rest are v4 pools our tapes never saw (spread over 7-9 Oct and 18-21 Oct: 15+8+9, 23, 16, 12 tokens; all 95 are >=1M runners). A tape-gap check on 18-21 Oct would be the next fix. Big ones with no path: AI ($105M), ORBIO, HOOKR, Muse, RVW, UBIK, HMCAT, V4, BAMBOO.
Caveats: first print can be a $0 dust print, so mult is inflated for some usdg/native pools (filter quote_amt > some floor before using first print as base); 761k rows of fake-pool spam were dropped by keeping only the main pool per token. Tokens with n<20 (e.g. FOLIO n=10) have partial tape.
Example: select t-first.t0 s, px/first.px0 from path ... or `select t,side,mult,quote_amt from path where token='0x..' order by block,li;`
