Methodology

How we capture, archive and grade.

The rules are public so anyone can check them, including the people we grade. Version 1.0 (September 29, 2026). Future changes are dated and never silently applied to past grades.

1. What counts as a call

A call is a public post that names an asset and a direction (long/bullish or short/bearish). The entry is always the market price at the time of the post, not a price the author mentions afterwards. Target, stop and timeframe are optional. If the author gives them, we use them.

Vague opinions without a clear direction ("looks strong", "watching this one", "interesting chart") are logged as Opinion and are not scored. Jokes, questions, pure news and reposts without comment are not logged at all.

One open thesis per asset and direction. Repeating a call does not create a new one. If a KOL posts again on the same asset in the same direction while an earlier call on it is still open (inside its horizon, target and stop not yet touched), the new post is a Re-affirmation: it is shown in the call log under the original call and not scored. A post counts as a new call only once the earlier call is resolved (target, stop or horizon end). A new or higher target posted while the call is open does not close it: the original call runs to its own resolution, and the new post is logged as a re-affirmation with a note such as “target raised to $X”. This keeps a KOL who posts the same idea ten times from getting ten chances, and stops loud re-posting from counting as extra calls.

2. Capture & archive

3. Horizon

The author's stated timeframe wins (e.g. "by end of month", "this week", "next cycle"). A call with an explicit price target but no timeframe ("$ZEC to $100", "going for $6000") is graded as an Investment call with a 180-day horizon: a price target without a date is not a short-term trade, and 180 days gives it a fair chance. Vague words like "soon" do not count as a timeframe. Otherwise the call is classified at capture time from its wording and chart:

ClassHorizonDefault targetDefault stopTypical wording
Trade / Scalp7 days+15%−15%"scalp", "long here", intraday/4h chart, "quick flip"
Swing30 days+30%−25%"swing", daily chart, "next few weeks", breakout/retest setups
Investment / Cycle180 days+100%−40%"long term", "this cycle", "accumulating", weekly chart, "hold"

Defaults apply only where the author gave no target or stop. For shorts they are mirrored (e.g. Trade short: target −15%, stop +15%). If a stated timeframe is given, it sets the horizon, and the closest class (≤14 days Trade, ≤90 days Swing, longer Investment) supplies any missing default target or stop.

The classification is fixed at capture and never changed later. Nobody, including us, can re-label a losing trade as an "investment" after the fact.

4. Outcome: first touch wins

Within the horizon, we check which level the price reaches first:

Touches are checked on hourly highs and lows. If target and stop fall inside the same hour, 1-minute data decides. If it is still ambiguous, we record it as a Miss (conservative).

Worked example

A KOL posts "long $XYZ" at $1.00. No target, stop or timeframe is given. The next day the price drops to $0.80 (−20%). On day 6 it reaches $4.00 (+300%).

If classified at capture as…StopTargetFirst touchOutcome
Trade (7 days)$0.85 (−15%)$1.15 (+15%)Stop on day 1Miss (stopped out)
Swing (30 days)$0.75 (−25%)$1.30 (+30%)Target, around day 6Hit
Investment (180 days)$0.60 (−40%)$2.00 (+100%)Target on day 6Hit

Same post, different outcomes. That's why the class is fixed at capture from the author's own wording and chart, never after the result is known. In all three cases we also record the worst price ($0.80, −20%) and the best price within the horizon.

5. Also recorded for every call

6. KOL Trust Score (0–100)

—Not yet scoredKOL Trust ScoreExample layout, no data
  • 0–20 Fade
  • 21–40 Caution
  • 41–60 Neutral
  • 61–80 Trusted
  • 81–100 Elite

Eligibility: at least 10 scored calls (opinions don't count). Below that: "Not rated".

Quality beats volume. Posting 100 calls and getting 20 right must never beat posting 10 calls and getting 8 right. So the score looks at accuracy adjusted for sample size and at what following every call would have earned, not at how many calls someone makes.

Each scored call gets an outcome value: Hit = 1, Miss = 0, Expired = 0.5 ± half its excess return vs BTC relative to the class's default target (capped between 0 and 1). Deleted calls count as Miss (0).

ComponentWeightWhat it measures
Adjusted hit rate40%Bayesian-shrunk hit rate: (hits + 5) / (calls + 10), i.e. every KOL starts with a neutral prior of 5 hits out of 10 (50%). A single lucky call can't dominate: 1/1 = 55%, 9/10 = 70%, 20/100 = 23%. Hits are outcome values, so Expired calls count partially.
Expectancy per call35%Average excess return vs BTC across all calls, losers included: "what if you had followed every single call?" Each call is normalized by its class's default target, so a 7-day trade and a 180-day investment are comparable. −1× target → 0 points, 0 → 50, +1× target → 100.
Drawdown pain25%How deep calls went against followers before exit (MAE as a share of the class's default stop). No drawdown → 100, drawdown reaching the stop → 0.

Volume itself earns nothing. More calls only make the estimate more certain, in either direction.

Penalties (subtracted after weighting):

Small samples are pulled toward 50 (neutral): Score = 50 + (Raw − Penalties − 50) × n / (n + 10), where n is the weighted number of scored calls (see §7). Result clipped to 0–100.

Example: sniper vs. spray-and-pray

Two callers, all calls classified as Swing (default target +30%, stop −25%), BTC flat over the period for simplicity. Hits exit at +30%, misses at −25%.

Caller ACaller B
Scored calls (over 5 months)10 (2/month)100 (20/month)
Hits820
Raw hit rate80%20%
Adjusted hit rate (hits+5)/(calls+10)13/20 = 65%25/110 = 23%
Expectancy per call vs BTC(8×30% − 2×25%)/10 = +19%(20×30% − 80×25%)/100 = −14%
Assumed avg drawdown10%20%
Raw score (40/35/25)≈ 70≈ 23
After sample-size adjustment50 + 20 × 10/20 ≈ 60 (Neutral, upper end)50 − 27 × 100/110 ≈ 26 (Caution)
BadgeSelective once rated—

Following every call of B would have lost about 14% per call; following A would have gained about 19%. B's 20 wins look impressive in screenshots, but the record says otherwise. If A keeps the same quality for 20 calls, the score rises to about 64 (Trusted). One-off lucky calls (1/1) stay near neutral.

Selectivity badge

A rated KOL gets the Selective badge when they average 8 or fewer scored calls per month, have an adjusted hit rate of at least 60% and a positive expectancy vs BTC. The badge doesn't change the score. It just highlights callers who speak rarely and are usually right.

Delete Rate & red flags

Delete Rate = deleted calls ÷ tracked calls, counting only calls we archived live (from October 2026). For historical calls we can't know what was deleted before we started watching, so they are excluded from this metric.

Flags appear on the scorecard and the KOL's profile, next to a list of every deleted call with our archived screenshot, fingerprint and archive.org link. Thresholds may be tuned as data comes in. Changes will be dated here. Deleting a call is a documented fact; the flag describes a pattern, not intent.

7. Historical vs live calls

We may add older calls retroactively, but only if the post is still online and can be archived. They are labeled Historical: deletions unknown and count with weight 0.5 in the Trust Score, because losing calls that were deleted before we started watching are invisible (survivorship bias). Calls captured live from October 2026 count with weight 1.0. Historical calls use the same classification and outcome rules, with the entry price taken at the original post time.

8. Market-wide KOL Trust Index

The average Trust Score of all rated KOLs who posted at least one call in the last 30 days, weighted by their number of calls in that period. Shown once at least 20 KOLs are rated.

9. KOL Consensus (sentiment, not advice)

For each asset, open calls from rated KOLs are combined: bullish = +1, bearish = −1 (±2 if the author stated both target and timeframe), each weighted by max(0, (Trust Score − 40) / 60). KOLs in the Fade and Caution zones carry no weight. The weighted average (−1…+1) maps to: ≤ −0.6 Very Bearish · ≤ −0.2 Bearish · < 0.2 Neutral · < 0.6 Bullish · ≥ 0.6 Very Bullish. Shown only when at least 5 rated KOLs have open calls on the asset.

This summarizes what tracked KOLs are saying. It is not a recommendation by iShowMoney.

10. Our own calls

iShowMoney's calls on Our Calls follow exactly the same rules: entry at post time, class fixed at publish time, first-touch outcome. They receive their own Trust Score.

11. Fair use & right of reply

12. Limitations

Detecting calls and classifying them involves judgment and AI-assisted screening. Every call is graded by a documented, reproducible rule set; the interpretation of each post is shown next to it. Corrections: contact us (see right of reply). Aggregated prices can differ slightly from individual exchanges. A Trust Score describes past public calls only. It says nothing about a person's character or future results.