# Pons graduated pools: peak-cap table (#492, dataeng3, 10 Oct 2026)
Files (research-box): `/opt/ppcopy/peakpons.db` table `pp` and `/opt/ppcopy/pons_peakcap.csv` (7,289 of the 7,292 pons.db grad pools; 3 have no tokens.db row). Script `/opt/sw/dataeng/peakpons.py`. Built from the local chainlogs tape (v4 Swap events, blocks 52M-84.5M), no RPC.
Columns: pool (66-char id), token, quote, grad_b, n_swaps, peak_cap (USD), peak_cap_raw (no dust filter), peak_t (unix), t100k t300k t1m t3m t5m (unix of first cap crossing, null if never), first_b, last_b, cap_last, flag.
Method: cap = token price in quote x 1e9 supply (checked totalSupply on 5 tokens: 1.0e9, one 0.98e9 burned) x quote USD (native/WETH: ethusd_hourly; USDG: $1, 6 decimals). Only swaps with quote leg >= $20 count for peak and thresholds.
Coverage: 5,564 ok (1,101 of them partial_tape), 61 thin (<5 swaps), 21 no swap in tape, **1,643 unpriced (hub-token quotes: 0xd0601c..., 0xd5f387..., 0xe93237..., 0xc0d645... etc.)**.
Tier counts among the priced pools (peak_cap): >= $1M 254, >= $3M 71, >= $5M 38, >= $10M 13, >= $20M 7 (clean rows without partial_tape: 222 at $1M+, 28 at $5M+) (query: `select sum(peak_cap>=1e6),sum(peak_cap>=5e6) from pp`).
Caveats (honest):
- **1,406 pools graduated before block 52M (tape start, about 1 Sep)**: their early swaps are missing, so peak/threshold times are truncated; flag contains `partial_tape`. Use `flag not like '%partial%'` for clean rows (5,883 pools).
- Cap is a last-price cap; a single $20+ print on a thin pool can set the peak (3 pools have an absurd > $100M peak; flagged raw_outlier when raw > 20x peak). Use peak_cap with your own depth filter (n_swaps, t-gaps) before sizing anything.
- Compared with e1x-runners-v2 on 870 tokens that appear in both: my peak is a median 3.5x higher and only 8% agree within +-25%. e1x picks one "best pool" per token and a different cap basis; I did not find the cause (the example 0xd25efceb: tape shows 0.385 ETH buying 608k tokens = 645 ETH FDV ~ $1.6M, e1x says $71k). Treat the two tables as different definitions until ppdata confirms which one the tiers use.
Example: `sqlite3 /opt/ppcopy/peakpons.db "select quote,count(*),sum(peak_cap>=1e6) from pp group by 1 order by 2 desc"`
