01Leaderboard02Sharp vs Crowd Insights03Elite AI (Claude) Analyst04Forecaster Profiles05Profile Stat Cards06Watchlist07Pricing08How It Works09About Us10FAQ11Dispute a Score12Log In13Sign Up

How Scoring Works

We track 150 public crypto forecasters on X. When one posts a price prediction, we capture it, pull the claim out, and score it against real 15-minute market data — the same way for everyone. Here's exactly how a call becomes a score.

In short
  1. Collect every public post from the 150 tracked accounts, on a daily refresh.
  2. Read each post for a forecast — the asset, the direction (long / short), any condition that has to happen first, and the time horizon.
  3. Anchor the call to a starting price and a deadline (the evaluation window).
  4. Score it on four things: how big the move was, how clean it was, how long price stayed on side, and how impressive the move was for that coin.
  5. Rank every forecaster by their average score across all their scored calls.

The Four Scoring Components

Every call gets four scores, each from 0 to 1, each measuring a different angle of "was this a good call?" The final CallRank Score is the average of all four.

We deliberately don't score against price targets. Plenty of calls don't include a number — "BTC going up" vs. "BTC to $120k" — and we want every post scored the same way. So instead of asking "did it hit the target," we measure the actual move price made in the predicted direction.

All four are scored from 0 to 1 and weighted equally (25% each). Two of them — Cleanliness and Time in Favor — are simple ratios. The other two — Absolute Magnitude and Move Quality — use a fixed formula, shown in full below so you can recompute any score yourself.

Absolute Magnitude

25%

How big was the favorable move, adjusted for how long the forecast had to play out? A 20% run in two weeks counts for far more than 20% spread over six months. It answers the simplest question: did the call actually deliver a real move?

Magnitude = tanh(k × M ÷ √T) M = best favorable move, as a decimal (+20% → 0.20) · T = evaluation window, in days · k = 25.0723 (fixed curve constant)

Outcome Cleanliness

25%

How one-sided was the move? We compare the best move for the call against the worst move against it during the window. A call that ran cleanly in the predicted direction scores higher than one that dropped hard against the forecaster before recovering.

Cleanliness = Best Move ÷ (Best Move + Worst Move)

Time in Favor

25%

What share of the window was price actually on the forecaster's side? From the anchor to the deadline, we count how many candles were favorable. A call that was on-side 80% of the window scores higher than one on-side only 30%.

Time in Favor = Favorable Candles ÷ Total Candles

Move Quality

25%

Was the move impressive for that specific coin? A 15% move in BTC is a big deal; 15% in a tiny meme coin might be a slow Tuesday. We compare the move to how much the asset normally moves, so a harder call is worth more than an easy one of the same size.

Quality = 1 − e−r, where r = M ÷ (σ × √H) M = best favorable move, as a decimal (0.20) · σ = the asset's typical daily move, as a decimal (3.5% → 0.035) · H = days it took to reach that peak move
CallRank Score = (Magnitude + Cleanliness + Time in Favor + Quality) ÷ 4

Because all four carry equal weight, the CallRank Score is simply their average. Here's how they come together on one real-shape call:

Example · how the four components diverge
"BTC is going to rip over the next few weeks." @SomeTrader · posted at BTC = $90,000 · "few weeks" → 2-week evaluation window

In the next 2 weeks, BTC runs up to $108,000 (+20%) by day 5, then dips to $84,000 (−7%) by day 9, and finishes at $96,000 on day 14.

Absolute Magnitude
0.87

M = 0.20, T = 14 days → tanh(25.0723 × 0.20 ÷ √14) = 0.87. A big, fast delivery.

Outcome Cleanliness
0.75

$18k up vs $6k down = 18 ÷ 24 = 0.75. A perfectly clean run would be 1.0.

Time in Favor
0.65

Price was above the $90k anchor for ~65% of the 2-week window. The mid-window dip pulled this down.

Move Quality
0.92

BTC normally moves ≈ 7.8% in 5 days (3.5% × √5). The 20% caught was ~2.6× that — very impressive for BTC.

CallRank Score = (0.87 + 0.75 + 0.65 + 0.92) ÷ 4 = 0.80

Reading: A strong call. Magnitude says they delivered real size, Quality says it was a big move even by BTC's standards, Cleanliness says it was meaningfully one-sided (3× more favorable than adverse, just not perfect), and Time in Favor says the mid-window dip kept them from being on the right side the whole way through.

The Process · Five Steps

01

Posts collected

We monitor 150 public crypto accounts on X and ingest every public post on a daily refresh.

02

Forecast extracted

Our AI pipeline pulls the asset, direction, any conditional trigger and the timeframe — from the text, the chart, or both. Posts with no scoreable forecast are filtered out.

03

Market data anchored

We set the anchor price where the scoring clock starts — the first 15-min close after the post, or the candle that confirms a trigger — then track candles to the deadline.

04

Forecast scored

When the window closes, the call is scored on the four components above and averaged — 25% each. Every number is auditable.

05

Ranked and published

Each forecaster's calls are averaged into one CallRank Score, ranked #1–150, and refreshed daily with full audit trails.

Get further details — conditional triggers, evaluation windows & legal

Conditional Triggers

Many crypto forecasters don't make flat predictions — they post conditional calls like "If BTC holds $98k, then I'm bullish." We recognize five types of conditional triggers:

TypeWhat it meansActivationExample post
Hold / DefendPrice must hold a level — closing on the same side of it for multiple consecutive candlesRequires a defined number of consecutive confirming closes on the appropriate candle timeframe"If $2,680 holds as support..."
Break / ClosePrice must close through a level (in either direction) to activateA single confirming close beyond the stated level"If we break $100k..."
ReclaimPrice must close back across a previously crossed level and sustain itRequires consecutive confirming closes back across the level"If ETH reclaims $2,830..."
Sweep / WickPrice wicks through a level intraday, typically followed by a reversal in the opposite directionEvaluated using candle wicks rather than closes — fast resolution"If they sweep $2,680 lows..."
Retest / BouncePrice approaches a level from either side and reverses from itEvaluated when price wicks to the level and moves away"Retest $2,830 as support..."

The exact number of confirming candles required for each trigger type, and the candle timeframe used for evaluation, are calibrated based on the type of trigger and the chart timeframe referenced in the post. These parameters are part of our proprietary scoring rubric.

If a conditional trigger is never met during the evaluation window, the forecast is marked as "not triggered" and does not count toward the forecaster's score — no penalty, no reward. Only triggered forecasts enter the scoring set.

Evaluation Window

Every forecast has a maximum evaluation window — the time period during which the prediction is considered "live" and price action is tracked against it. This window is determined using a strict priority cascade. Lower steps never override higher ones:

Step 1 — Explicit Time Horizon (Highest Priority)

If the post states an explicit timeframe (e.g., "within 7 days", "by Friday", "next week"), that timeframe is used directly. If matched, no further steps are evaluated.

Step 2 — Chart Timeframe Lookup

If no explicit timeframe is stated but a chart is attached (or a chart timeframe is referenced in the text, e.g., "on the 4H"), we identify the candle duration of the chart and map it to an evaluation window using the table below. If matched, no further steps are evaluated.

Chart TimeframeEvaluation WindowIn Plain TermsApprox. Candles
15-minute1 day1 day~96
30-minute2 days2 days~96
45-minute3 days3 days~96
1-hour3 days3 days~72
2-hour5 days5 days~60
3-hour7 days1 week~56
4-hour7 days1 week~42
6-hour14 days2 weeks~56
8-hour14 days2 weeks~42
12-hour21 days3 weeks~42
Daily30 days1 month~30
2-day45 days~6 weeks~22
3-day60 days2 months~20
Weekly90 days3 months~13
Bi-weekly120 days4 months~8
Monthly180 days6 months~6

For chart timeframes not listed, we round to the nearest row. If exactly between two rows, the shorter (more conservative) window is used.

Step 3 — AI-Inferred Timeframe (Lowest Priority)

If neither an explicit timeframe nor a chart timeframe is available, our AI pipeline infers the intended timeframe from the language and context of the post (e.g., "looking for a move soon" vs. "long-term thesis"). This is the fallback and is only used when Steps 1 and 2 produce no result.

Once the evaluation window closes, the forecast is scored against the market data from that period. The window is never extended beyond available market data. If the post explicitly states a timeframe, that always takes precedence over the chart-based lookup or AI inference.

About CallRank & how scores are produced

CallRank scores public crypto forecasters based on their forecasts published on X. Scores reflect how a forecaster's public predictions compare to historical market data over a defined evaluation window. CallRank scores public posts only. CallRank does not score private communications, private accounts, or any data the forecaster has not chosen to publish.

Stage 1: Claim Extraction. An automated pipeline reads public X posts and identifies the forecast within each post: the asset, predicted direction, time horizon, and any attached conditions. This stage requires judgment. As the pipeline reads natural-language posts intended for human readers, misinterpretations can occur — misreading attached charts, misclassifying direction, misidentifying the time horizon, or misinterpreting irony, sarcasm, or conditional language. Mistaken output at this stage is possible.

Stage 2: Scoring. Once a claim is extracted, the scoring computation is mechanical. The pipeline compares the extracted forecast to historical market data from public sources and records how price actually moved within the window. Every component of a score traces back to a specific public post and market-data check, so any reader can follow the references from a score back to the original post and the data it was checked against.

What a CallRank score is. Evaluative commentary on a forecaster's track record, derived from a disclosed method applied to public data. Scores, rankings, and labels are not factual assertions about a forecaster's character, competence, or fitness. The same method applies to every scored forecaster; CallRank does not alter it based on identity, follower count, or payment status.

What a CallRank score is not. Not financial, investment, or trading advice. Not a recommendation to follow, hire, fire, invest with, or avoid any forecaster. Not a prediction of future accuracy. Not an assessment of a person's character or intent. Not a guarantee of correctness — any specific score may be wrong.

Verify or correct a score. This page publishes the full method, data sources, and scoring formula. Any reader can verify a score by following the audit trail back to the underlying public posts and market-data checks. If you're a forecaster who believes a score about you is incorrect, the correction process is published here; submitted corrections are reviewed against the same audit trail, and confirmed errors are revised. Dispute a score →

Limitations & Known Constraints

Parsing limitsSome forecasts are too complex, multi-layered, or ambiguous to parse reliably — nested conditionals, irony, or heavy slang. We filter these where we can, but some may get scored incorrectly. That's what the dispute process is for.
Chart analysisChart interpretation is more ambiguous than text — hand-drawn lines, overlapping annotations, and non-standard tools may be misread. Complex chart posts get manual review, but errors may still occur.
AI errorsThe pipeline may occasionally extract the wrong asset, direction, or timeframe. We manually review the highest-impact calls; if you spot an error, tell us and we'll review it.
Deleted postsAny post deleted before our daily extraction isn't captured or scored. We track deleted scored-post counts per account as a transparency metric, so selective deletion after scoring is visible.
Platform scopeWe can only score what's publicly posted on X. Private calls, group chats, Discord/Telegram, or other platforms are not captured.
Asset coverageScoring is limited to roughly the top 250 assets by market cap; calls on smaller-cap tokens outside that universe are flagged as unscoreable.
Exchange variancePrices differ across exchanges. We aggregate from high-volume exchanges, but a forecaster's preferred exchange may differ slightly — this can affect edge cases near a conditional level.
Past ≠ futurePast results don't predict future results. Rankings reflect historical performance only and are not a guarantee of future outcomes.
Methodology evolutionOur scoring methodology may be updated as markets evolve. All changes are published transparently with version history.

Disclaimer

CallRank.AI is a measurement and analytics platform. Nothing on this site constitutes financial advice, investment advice, trading advice, or any other kind of professional advice. CallRank.AI does not recommend any forecaster, asset, or trading strategy.

Past results do not guarantee future results. All data is provided "as is" without warranty of any kind, express or implied. Rankings, scores, and analytics reflect historical observations from public posts and should not be relied upon as the sole basis for any investment or trading decision.

CallRank.AI is not a substitute for independent research or qualified financial advice. By using CallRank.AI, you acknowledge that you are solely responsible for your own trading and investment decisions, and that CallRank.AI bears no liability for any losses incurred.

What We Don't Score

We measure forecast accuracy, not trading profit. From a public post we can't see entries, exits, position sizes, leverage, or stop-losses — so we never estimate ROI or P&L. A forecaster can be highly accurate and still lose money with poor risk management, and the reverse is just as true. CallRank scores the call, not the trade. We also don't reward the wording itself — confident phrasing and hedged phrasing are scored on what price actually did, nothing more.