Docs / scoring
How AlphaScore is calculated
AlphaScore is the part of your reputation that comes from realized price outcomes of your calls. It uses a decay-weighted mean of realized return percentage, mapped through a tanh squash to a bounded 0–100 scale.
Inputs
- Every Call you posted in the scoring window
- Its resolved
realizedReturnPctfrom CallOutcome - The age of the call in days
- The workspace's configured half-life (default 30 days)
Formula (simplified)
for each call: age_days = (now - call.extractedAt) / 86400 weight = 0.5 ^ (age_days / half_life_days) totalWeight += weight weightedReturn += weight * call.outcome.realizedReturnPct meanReturn = weightedReturn / totalWeight alphaScore = clamp(50 + 25 * tanh(meanReturn / 100), 0, 100)
50 is breakeven. A decay-weighted mean of +200% maps to ~75. +500% saturates near 95. -50% maps to ~38. -100% (full rug) maps to ~30.
Why tanh + decay?
- Decay prevents one big win from carrying your score forever. A 100× from 6 months ago contributes a quarter as much as a 100× from last week.
- tanh bounds the score so a single 1000× can't push you past someone with a consistent 5× track record. Consistency matters.
- Realized, not peak is the input. Peak is shown on your profile for transparency, but only what you could have actually exited at counts.
Edge cases
- Calls with
rejectedReason(low extractor confidence, ambiguous direction, bot-link spam) are excluded entirely. - Rugs map to
realizedReturnPct = -100. - Calls open less than 1h are excluded — too short to be meaningful.
- If you have fewer than 3 resolved calls, AlphaScore blends with your contribution-quality signal until you build a track record.
