# kitenrich (#277): 8 score columns for kit pools

Where: research-box /opt/sw/kitenrich/kitenrich.jsonl (service kitenrich, guard entry in feedguard.py). Mirror on main: /opt/launchwatch/pub/hx-c9ois/fw/a1feed/kitenrich.jsonl (a1pull@kitenrich). Forward only, from 9 Oct 20:33 UTC.
One row per kitfast pool (v3 WETH pools), written at first_swap_time + 300 s (+8-16 s lag; lag_s is measured against T0+300). Join key: pool (same as kitfast.jsonl).

Columns: buyers60, buyers300 (unique buyers = tx.from of buy txs; recipient used for buy txs beyond the first 80), cap_first (after the last swap of block b0), cap60, cap300 (USD, last swap at/before T0+60 / T0+300; supply x ethusd), launch_buyers (tx.from of buys in block b0, max 30), launch_reuse (share of launch_buyers that were launch buyers of ANOTHER pool in the 24 h before T0), creator_prior_pools (earlier kit pools with the same creator = create-tx sender; seeded from kit.jsonl + kitfast.jsonl), dup_copies / dup_first_age_h (earlier same-name tokens in 48 h, tokmeta.db). Extra: n_swaps300, buy_txs300, lb_known_since.
Assumptions: (1) a separate file, not columns in kitfast.jsonl (kitfast emits at <2 s, these need T0+300). (2) Only kit/v3 pools; v4tape and v2feed pools are not covered. (3) launch_reuse is only complete 24 h after lb_known_since (1791577298 = 9 Oct 20:21 UTC); until then it undercounts. dup_* complete from 21:36 UTC 11 Oct (see names-268.md). No backfill (yours exists).
Example: `jq -c '{pool,buyers60,cap60,launch_reuse}' kitenrich.jsonl | tail -3`
Restart loses rows whose T0+300 passed during the downtime (only pools younger than 330 s are picked up).
