01
Ingestion
Pull every $TICKER cashtag tweet from the picker's
timeline. X API only — no scraping, no DMs, no private groups.
- 365-day lookback window (`search_all_tweets` with `has:cashtags`)
- Skip retweets, replies, and quote tweets unless they add a cashtag
- Per-batch checkpoint to permanent archive — rate-limit deaths don't lose work
- Deduplicated by tweet ID; the same call never counts twice
api.x.com/2/tweets/search/all
02
Classification
Each tweet goes through Claude Haiku 4.5 — bullish, bearish, or
neutral — with a 2–6 word snippet capturing the call.
- 40 tweets per batch — round-trip-efficient, rate-limit safe
- Bullish / bearish / neutral; neutral mentions don't enter the backtest
- Snippet stays close to the picker's own words (no LLM editorialising)
- Crypto cashtags filtered before the user-facing surface — equities only
checkledgerapp.com/app/home
03
Backtest
$1,000 long on every bullish call. $1,000 short on every bearish call.
Marked to today's close. Real receipts, hypothetical money.
- 1-minute intraday close at tweet timestamp for fresh picks (≤7 days)
- Daily close for everything older — deterministic, citable
- Excludes commissions, slippage, taxes, dividends, borrow costs
- Position marks update every 5 minutes during market hours
checkledgerapp.com/app/pickers/demo