Methodology

Three steps from cashtag to receipts.

No vibes. No screenshots. No survivor bias. Every public X stock pick, backtested at $1,000 per call against publicly available prices.

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
Live ingestion stream showing tweets being classified
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
app.checkreceiptsai.com/home
Call feed showing classified picks with sentiment pills
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
app.checkreceiptsai.com/pickers/demo
Chart panel with bullish and bearish call markers

The risk score

A 0–100 composite of four weighted signals. Keeps the leaderboard honest.

0.30

Win rate

Share of directional calls that finished green. A 70% win rate at random scale is the cleanest skill signal we have.

0.25

Concentration

How much of the picker's history sits in a single ticker. A 100-call track record on one stock is a coin-flip dressed as a portfolio.

0.15

Account age

Anchored on X account creation date (or oldest call when unavailable). New accounts get penalised; survivorship bias is real.

0.30

Outlier dependency

Share of total simulated P&L driven by the single best ticker. Catching one 10-bagger isn't the same as a repeatable process.

Each profile shows which signals fired and the full rationale. 0–33 is low risk, 34–66 medium, 67–100 high.

What Receipts doesn't do

Transparency is the product. Here's what's out of scope on purpose.

Crypto, options, futures

Equities only. Crypto tickers are pulled from the archive but filtered from every user-facing surface. Options flow is not in scope.

Slippage, taxes, dividends, borrow

The simulation is gross of all real-world friction. Real execution would not match these numbers.

Stocktwits / private groups / DMs

Only public X posts. Nothing scraped from gated platforms or paid signal services.

Predicting future returns

Past performance, whether real or simulated, does not predict future results. Receipts is informational only and is not financial advice.

Ready to see receipts?

$200/month. Cancel anytime from the Stripe portal.