Methodology
How the Arena 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.
If the provider is unavailable the interface shows “Data temporarily unavailable” rather than a fabricated value.
Price snapshot rules
- Start price is captured when the Battle opens (
opens_at), from the provider’s historical price closest to that instant. - Reference price is stored on every prediction 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 Battle stores a neutral_threshold_percent (default 0.5% for a 24-hour Battle).
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
- Predictions 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 Battles once
now ≥ ends_at. The Battle moves tosettling, which acts as a lock against concurrent runs, then tosettled. - Settlement is idempotent: a settled Battle is never settled twice, and XP is written through a ledger keyed by (user, Battle, reason) so replays cannot double-award.
- Correct direction = 100 Battle 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 Battle. Void Battles award no score and no XP, do not affect streaks, and are excluded from accuracy, ratings and leaderboards. Settled Battles cannot be voided; they can only be archived.
AI profile methodology
The three AI analysts are deterministic, rule-based simulations built for the Arena. 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:
- ORACLE — balanced multi-signal synthesis; cites market-trend, momentum, volume; strategy version
oracle-v1.0.0. - VECTOR — momentum and directional trend; cites momentum, market-trend, volatility; strategy version
vector-v1.0.0. - ECHO — crowd and narrative analysis; cites social-sentiment, volume, market-breadth; strategy version
echo-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 Signal is the percentage of locked human predictions by direction. AI forecasts are never included. Exact percentages are revealed to a viewer only after they lock their own prediction or once the Battle is no longer accepting predictions; visitors see an obscured teaser.
Accuracy calculation
accuracy = correct_settled_predictions / valid_settled_predictions
Open, pending and void predictions are excluded. The 7-day and 30-day views filter by the Battle’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 Battles 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 prediction: +10 XP · Correct prediction: +100 XP · Three-correct streak: +25 XP · Five-correct streak: +50 XP · Seven valid Daily Battles 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.
Signal DNA
Signal DNA summarises a user’s forecasting-game history: most-used signal, best-performing signal (minimum 3 settled uses), best asset (minimum 3 Battles), accuracy by direction, confidence calibration and a market-style label. It is computed only once a user has 5 valid settled Battles; before that the profile shows “Building your Signal DNA”. Signal DNA 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 Battle time by the provider’s resolution.
- Direction outcomes depend on the configured threshold; a different threshold would produce different results.
- The Arena 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.