Whaal Watcher

Methodology

How the numbers are computed

Every stat on this site is reproducible from public on-chain data and public price data. This page explains the math in plain English — including what it can't tell you.

1 · What counts as a signal

A signal is an exchange-flow movement from a tracked whale wallet:

  • Withdrawal from an exchange → bullish (coins moving to cold storage historically precede accumulation)
  • Deposit to an exchange → bearish (coins moving to an exchange historically precede selling)
  • • Wallet-to-wallet transfers → no signal (no directional read, excluded from all scoring)

Exchange wallets are identified from public clustering data (WalletExplorer) and rich-list tags (BitInfoCharts) — roughly 1,400 labeled addresses across major exchanges.

2 · Scoring a signal

For each signal we measure the forward return at a fixed horizon (1, 7, and 30 days):

r = (price(signal date + H) − price(signal date)) / price(signal date)
signed r = direction × r          ← positive means the whale was "right"

Signals whose forward window hasn't elapsed yet are excluded — we never score against extrapolated or partial data. Every number you see is closed-loop against real historical prices.

3 · Why we headline edge, not win rate

The headline stat everywhere on this site is expectancy — the average signed return per signal:

edge = mean(signed r) × 100        e.g. +1.7% per signal at 7d

A whale that's right 35% of the time but catches big moves is worth following; a whale that's right 55% of the time scalping ±0.1% is noise. Win rate can't tell those two apart — expectancy can. We still show win rate everywhere as secondary context ("62% directionally right"), but it never leads.

4 · The ✓ validated badge (walk-forward, out-of-sample)

Ranking whales on the same history you display is a survivorship-bias machine — the displayed edge would decay the moment anyone acted on it. So a whale only earns ✓ validated out-of-sample when its edge shows up independently in two windows:

  • Formation window — signals older than 45 days show positive edge on enough samples (the whale would have made the leaderboard back then)
  • Holdout window — the signals since then independently confirm it

This answers the only question that matters: "did the edge persist after we would have flagged this whale?" Whales that only look good in hindsight don't get the badge.

5 · Reliability tiers

Small samples lie. A 3-signal whale flips "100% accurate" one time in eight by pure chance. So:

  • Under 5 samples — no score shown at all
  • 5–9 samples — score shown in neutral gray with a "small sample" caveat; no strong archetype claims
  • 10+ samples — full confidence coloring and archetypes ("Smart Money", "Wrong-Way Trader")

6 · Data freshness

Movements are ingested continuously from public Esplora nodes (mempool.space, blockstream.info). Free and anonymous visitors see data delayed 6 hours; Pro sees it live. The delay applies uniformly — leaderboard, dossiers, alerts — so both tiers see an internally consistent picture.

7 · Honest limitations

  • Equal weighting. A 10,000 BTC withdrawal counts the same as a 100 BTC one in the averages. Amount-weighting is on the roadmap.
  • Daily price granularity. A whale that moved at 23:55 UTC gets attributed the day's open-to-open return, not the intraday move.
  • Auto-correlation. Ten deposits over ten days each predicting a fall aren't ten independent observations. We report raw counts, not statistical confidence intervals.
  • Labels are incomplete. Exchange clustering data is public but imperfect; some exchange flow is inevitably classified as plain transfers (and therefore not scored).

None of this is financial advice. Past whale behavior does not predict future returns — the badge means the edge persisted historically, not that it will tomorrow.

See it live → Questions about the math? Every claim on this page maps to code in backend/accuracy.py.