Skip to content
callscore

Methodology

How Callscore keeps score

Every rule that turns a forecast into a verified result, published so anyone can audit the 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_at from the provider’s historical price closest to the end time.
  • Snapshots are appended to a price_snapshots table 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 to settling, which acts as a lock against concurrent runs, then to settled.
  • 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:

  • ATLASweighs trend, momentum and volume; cites market-trend, momentum, volume; strategy version atlas-v1.0.0.
  • PULSErides short-term momentum; cites momentum, market-trend, volatility; strategy version pulse-v1.0.0.
  • DRIFTreads 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.

About the product and its principles →