Scoring Mechanism

How Alpha Rewards Are Calculated

Almanac rewards users based on how much truthful information they bring into the market. You still earn trading profits from Polymarket, but on top of that, Almanac pays Alpha Tokens for statistically accurate predictions.

This page explains how those Alpha rewards are computed behind the scenes.

Almanac uses a convex optimization system to measure signal quality and allocate rewards fairly and efficiently.


The Goal of Scoring

Almanac’s scoring mechanism answers a single question:

“How much true predictive value did this trader provide today?”

To measure that, we track every trader’s:

  • Qualified Volume (how much volume they traded correctly)

  • ROI (how profitable their predictions were)

  • Consistency (performance over the last 60 days)

  • Conviction (how large their positions were)

These metrics feed into a two-phase mathematical program that determines:

  1. Who is eligible to earn rewards, and

  2. How much Alpha each trader receives


Step 1 — Turning Trades Into Metrics

Each trade that settles generates raw data:

Metric
Meaning

volume

USD value of your position

is_correct

whether the prediction was right

pnl

your profit or loss

fee

1% fee applied to every trade

date_settled

determines which epoch it counts for

When a market resolves, Almanac attributes your volume to:

  • Qualified volume (if the trade was correct)

  • Unqualified volume (if the trade was wrong)

For example:

Trade
Volume
Outcome
Contribution

Buy YES @ 0.70

$200

Correct

+$198 qualified

Sell NO @ 0.20

$400

Wrong

+$400 unqualified


Step 2 — 60-Day Rolling History

Almanac looks at your last 60 days of settled trades:

We compute:

  • Total volume

  • Total qualified volume

  • Total profit

  • ROI

  • Number of trades

  • Number of active epochs

This ensures the system rewards true skill, not lucky one-off bets.


Step 3 — Eligibility Checks

To prevent Sybil/spam gaming, traders must meet minimum requirements:

Build-Up Requirements

(from constants.py)

  • At least 2 active epochs

  • At least 2 trades in total

ROI & Volume Requirements

  • ROI ≥ ROI_MIN (0% by default)

  • Historical volume ≥ VOLUME_MIN (10 USD)

Users failing any requirement receive no Alpha rewards for the day.


Step 4 — Decaying Volume Memory (“Conviction Score”)

Volume isn’t treated equally: recent activity is more meaningful.

Almanac uses a decay model:

v_memory(t) = 0.9 × v_memory(t-1) + volume_today

Then blends:

v_eff = α × volume_today + (1 - α) × v_memory

This captures:

  • Long-term consistency

  • Recent predictive strength

  • Continued activity


Step 5 — Two-Phase Optimization

This is where the intelligence happens.

The scoring engine performs two convex optimization passes.


Phase 1 — Maximize Truthful Signal

Objective:

Fund as much qualified volume as possible, given the Alpha budget.

Each trader gets a “gate” x[i] between 0 and 1:

  • x = 1 means fully funded

  • x = 0 means no rewards

We choose the best configuration of gates such that:

Constraints:

  1. Budget cap: kappa × Σ(v_eff[i] × x[i]) ≤ Budget

  2. Eligibility: x[i] ≤ eligible[i]

  3. Diversity cap (no monopolies): v_eff[i] × x[i] ≤ rho_cap × T*

  4. Smoothness (optional): |x[i] - x_prev[i]| ≤ RAMP

Output of Phase 1:

  • x* — the optimal resource allocation

  • T* — maximum truthful volume supported

  • A preliminary payout

This phase ensures truthful flow is maximized, without overspending.


Phase 2 — Reward Higher Skill (ROI)

Phase 2 redistributes the payout from Phase 1 toward the most statistically accurate traders.

Objective:

Shift allocation from low-ROI traders → high-ROI traders while staying close to Phase 1’s allocation.

Mathematically:

maximize    (ROI - kappa) · x  -  λ ||x - x1||²
subject to  payouts ≤ Phase1_payout

This means:

  • Traders with ROI > kappa gain allocation

  • Traders with ROI ≤ kappa lose allocation

  • Allocation changes are smooth, not abrupt

This phase guarantees:

  • High performers are fairly rewarded

  • Even high-volume traders must be accurate, not just loud


Step 6 — From Scores to Tokens

Once the optimal gates x** are found:

  1. Compute raw scores:

    score[i] = x[i] × (kappa × v_eff[i])
  2. Normalize so all scores sum to 100% of the payout:

    normalized = score / Σscore
  3. Multiply by the pool budget to get Alpha Tokens:

    α_i = normalized[i] × epoch_payout

This creates a fair, proportional reward distribution.


Step 7 — Continuous Tournament Logic

Every day:

  • All stats roll forward

  • Decay is applied

  • New trades update memory

  • Optimization runs again

  • Allocations shift based on updated skill

This reinforces:

  • Adaptability

  • Meritocracy

  • Signal concentration


Summary Table

Component
Meaning

Qualified Volume

How much correct volume you traded

ROI

Profit efficiency

v_eff

Memory-weighted conviction score

κ (kappa)

Token-per-signal conversion rate

x[i]

Allocation gate for trader i

Phase 1

Maximize truthful volume

Phase 2

Reward highest ROI traders

Alpha tokens

Your share of the daily prize pool


Final Result

The most accurate, consistent predictors earn the most Alpha.

This aligns incentives:

  • Users provide truthful information

  • Markets become more accurate

  • Skilled traders earn more Alpha

  • No one can spam, brute force, or game the system

Almanac’s scoring mechanism is the first on-chain, proof-of-signal reward system designed specifically for prediction markets.

Last updated