Scoring policy v2.0 · frozen
AI interprets what a post means; a deterministic engine measures each call against price at several horizons and combines the results into a Caller Score.
For each post the AI extracts the asset, direction (bullish or bearish), whether intent is explicit or inferred, any stated horizon, and the exact text supporting it, with a confidence score. Each asset in a post gets its own prediction record.
Only context available at publication is used: the post and the thread before it. Later replies and price data never reach the model. Post text is treated as data, never as instructions.
Excluded: historical commentary, pure questions, two-sided statements, sarcasm that cannot be resolved, and unresolved conditional calls. Extractions below 60% confidence go to manual review rather than being forced into a score.
Horizon is how long after each call we check the price. Every accepted call is measured at all of them, so the same call can be right at 4 hours and wrong at 30 days:
Window is which calls count: those whose outcome resolved in the period, so a short window holds calls that have actually matured. Within a window, recent calls weigh more (half-life = half the window; all time 180 days).
Timeframes written in the post (“today”, “this week”, “this month”) set the call's stated horizon; vague ones go to review. The share of calls with a stated timeframe is shown on each profile.
r = d · (price at horizon / price at post − 1), d = +1 bullish, −1 bearish
correct if r > t · incorrect if r < −t · otherwise neutral
alpha = r − d · (BTC return over the same timestamps) (BTC calls: vs cash)
The entry price is the first observation at or after publication, never before it. Exit is the observation at the end of the horizon, within 60 minutes (10 minutes on 5-minute candles for 1h and 4h). Missing or stale prices leave the call unresolved; nothing is estimated. We also store the best and worst point along the way and the asset's 30-day volatility at entry.
| Asset | 1h | 4h | 24h | 7d | 30d |
|---|---|---|---|---|---|
| BTC | ±0.20% | ±0.41% | ±1.00% | ±2.50% | ±5.18% |
| ETH | ±0.26% | ±0.51% | ±1.25% | ±3.00% | ±6.21% |
| MEMES | ±1.02% | ±2.04% | ±5.00% | ±12.00% | ±24.84% |
| SOL | ±0.31% |
Each view (window × horizon × asset) scores every caller on five components:
ĉ = n/(n+k) · c + k/(n+k) · cohort mean, k = 20
composite = Σ weight × percentile(ĉ) among callers in the view
Caller Score = percentile of the composite among ranked callers (90 = top 10% of this cohort)
Shrinkage keeps a caller with three lucky calls near the middle until the record grows; with hundreds of calls the true value shows. Callers with fewer than 15 scored calls in a view are shown with a “low sample” badge and are not ranked. The score is relative: it says where a caller stands among the accounts we track for that window, horizon and asset, not how good the calls are in absolute terms. It is never shown without its sample size, and every component is on the profile.
Returns are shown per call: “+2% avg 7d return” means each call moved 2% in the called direction over the following 7 days on average. “Following every call” adds up an equal stake on every call resolved in the window. We do not annualise returns: calls overlap, and compounding them back to back would overstate what anyone could have earned.
Same-account, same-asset, same-direction calls within a fixed 24-hour episode count once, anchored to the first eligible post. Later posts are kept as evidence and reversals are flagged.
Claiming a profile verifies ownership only. It cannot hide, remove or change predictions. Corrections go through a logged review and every affected snapshot is recomputed under the published policy.
Known edits are tracked with timestamps. Provider-required deletions are applied, and any resulting coverage limits are disclosed on the profile.
| ±0.61% |
| ±1.50% |
| ±4.00% |
| ±8.28% |
Memecoins are one asset in the filters, but every call is measured on its own token. A cashtag or contract address is matched to the deepest DEX pool on GeckoTerminal that already existed when the token was first called, and priced from that pool's hourly candles (1h and 4h calls use them too). When a token stops trading, its last traded price holds, so a rugged or abandoned token counts as the loss it was instead of dropping out. Tokens with no pool stay unresolved.
Example: bullish ETH
ETH goes from $3,000 to $3,150 in 24 hours (+5%) while BTC rises 3%. With a 1.25% band the call is correct, and its alpha is 5% − 3% = +2%: it beat simply buying BTC.