Methodology
How Callscore keeps score
Data sources
Production settlement uses a market-data provider abstraction. The default implementation reads USD prices from CoinGecko (asset identifiers bitcoin, ethereum, solana). Every stored price records the provider’s own timestamp and a source label.
This deployment is running in Demo Mode: prices come from a deterministic simulator and are labelled as simulated everywhere they appear. They are not live market data.
Price snapshot rules
- Start price is captured when the Round opens (
opens_at), from the provider’s historical price closest to that instant. - Reference price is stored on every call at lock time for transparency; it does not affect scoring.
- End price is captured at or after
ends_atfrom the provider’s historical price closest to the end time. - Snapshots are appended to a
price_snapshotstable and never overwritten. A manual admin override creates an audit-log entry with the reason.
Neutral threshold
Each Round stores a neutral_threshold_percent (default 0.5% for a 24-hour Round).
percentage_change = ((end_price - start_price) / start_price) * 100 Bullish if percentage_change > threshold Bearish if percentage_change < -threshold Neutral otherwise (a change exactly equal to ±threshold is Neutral)
Settlement process
- Calls are accepted only while
opens_at ≤ now < locks_at. Deadlines are enforced on the server and in the database, never just by the countdown. - A scheduled job (and the admin console) settles Rounds once
now ≥ ends_at. The Round moves tosettling, which acts as a lock against concurrent runs, then tosettled. - Settlement is idempotent: a settled Round is never settled twice, and XP is written through a ledger keyed by (user, Round, reason) so replays cannot double-award.
- Correct direction = 100 Round Score. Incorrect = 0. Confidence is recorded for calibration but does not multiply the score.
Void rules
If required price data is unavailable or clearly invalid after retries, an administrator may void the Round. Void Rounds award no score and no XP, do not affect streaks, and are excluded from accuracy, ratings and leaderboards. Settled Rounds cannot be voided; they can only be archived.
AI profile methodology
The three AI analysts are deterministic, rule-based simulations built for Callscore. They do not call commercial model APIs. Each profile computes trailing 1-, 3- and 7-day returns, 7-day volatility and distance from the 7-day mean from prices available before the lock, then applies its published rule set:
- ATLAS — weighs trend, momentum and volume; cites market-trend, momentum, volume; strategy version
atlas-v1.0.0. - PULSE — rides short-term momentum; cites momentum, market-trend, volatility; strategy version
pulse-v1.0.0. - DRIFT — reads sentiment, fades crowded moves; cites social-sentiment, volume, market-breadth; strategy version
drift-v1.0.0.
AI forecasts use the same direction / three-signal / confidence / timestamp structure as human forecasts, are locked before locks_at, store the strategy version and a non-secret input snapshot, and are never backfilled after the end price is known. AI forecasts are not financial advice.
Crowd aggregation
The Crowd call is the percentage of locked human calls by direction. AI forecasts are never included. Exact percentages are revealed to a viewer only after they lock their own call or once the Round is no longer accepting calls; visitors see an obscured teaser.
Accuracy calculation
accuracy = correct_settled_predictions / valid_settled_predictions
Open, pending and void calls are excluded. The 7-day and 30-day views filter by the Round’s end time.
Leaderboard formula
accuracy_component = accuracy_percentage * 0.60 (max 60) experience_component = min(valid_settled / 30, 1) * 25 (max 25) consistency_component = min(current_streak / 10, 1) * 15 (max 15) arena_rating = round(sum, 1) (max 100)
Analysts need at least 5 valid settled Rounds in the selected scope to be ranked. Below that they appear unranked with a provisional rating. Ties are broken by accuracy, then by settled count.
XP, levels and badges
- Lock a valid call: +10 XP · Correct call: +100 XP · Three-correct streak: +25 XP · Five-correct streak: +50 XP · Seven valid Daily Rounds completed: +50 XP (once).
- Levels: Observer (0) → Scout (250) → Analyst (750) → Strategist (1500) → Signal Hunter (3000) → Oracle (6000).
- Badges are cosmetic and reputational only. They never carry financial value.
Call Profile
Call Profile summarises a user’s forecasting-game history: most-used signal, best-performing signal (minimum 3 settled uses), best asset (minimum 3 Rounds), accuracy by direction, confidence calibration and a market-style label. It is computed only once a user has 5 valid settled Rounds; before that the profile shows “Building your Call Profile”. Call Profile is not evidence of trading profitability.
Signal catalogue: Momentum, Volume, Volatility, Market Trend, Social Sentiment, Fear & Greed, Bitcoin Dominance, Market Breadth. Signals represent stated reasoning categories; the MVP does not compute live values for them.
Data limitations
- Provider prices are aggregates and may differ from any single exchange. Snapshot timestamps may differ from the nominal Round time by the provider’s resolution.
- Direction outcomes depend on the configured threshold; a different threshold would produce different results.
- Callscore records forecasting-game accuracy with virtual points. It does not track portfolios, execute trades, or measure returns, and past forecasting performance does not predict future results.