BASE SCORE CALCULATION (v0.1):
Terms & definitions:
- ER% = (likes + retweets + quotes) / impressions × 100
- SRM (Scale Rate Multiplier) = min(1, impressions / 100,000)
- SF = min(log10(smart_followers + 1), 3.0)
- IMP = sqrt(impressions)
- ENG = likes + 3·retweets + qW·quotes, with qW = 4 + 2·SRM (range 4–6)
- Observed engagement EngObs = max(ENG_raw, ER%×impressions) (robustness to under/over‑reporting)
- ER cap per reach: ER_cap = 1% + 4%·SRM (1–5%)
- EffEng = min(EngObs, impressions × ER_cap); Clamp = EffEng / EngObs (≤1)
- SENG = min(smart_engagement, 0.5 × EffEng)
- Reach‑efficiency term: QE = min(log(1 + impressions / max(followers,1)), 2.0) × SRM
- Posting multiplier: postMult = 1 + 0.02 × min(posts, 20) (max +40%)
- ER multiplier (bounded, no >1.0 boost): erMult = 0.90 + 2 × min(ER% / 100, 0.05) → ranges 0.90…1.00 (e.g., 0.5%→0.91, 2%→0.94, 2.5%→0.95, ≥5%→1.00)
Guards:
- If observed ER > 20% → finalScore = 0 (DQ).
Additional penalty:
- if ER% > 10 and impressions < 50,000 → multiply score by 0.30.
Score:
- engageBlock = ( (ENG × 0.7) × Clamp + (SENG × 150) ) × SRM^1.5
- baseScore = (SF × 500) + (IMP × 10) + engageBlock + (QE × 120)
- finalScore = baseScore × erMult × postMult
Eligibility filter:
- Row excluded from leaderboard if posts < 2 or impressions ≤ 0.
Payouts (Top‑100 only):
- Curved weighting: each winner gets share ∝ (finalScore)^α, currently α = 1.25.
- $30 CPM cap: maxPrize = (impressions / 1000) × $30.
- If capped, we redistribute excess proportionally among the uncapped Top‑100 using the same weights.
- Ranks 101–250: OG NFT (no cash).
REWARDS:
- Curved weighting: each winner gets share ∝ (finalScore)^α, currently α = 1.25.
- $30 CPM cap: maxPrize = (impressions / 1000) × $30.
- If capped, we redistribute excess proportionally among the uncapped Top‑100 using the same weights.
- Ranks 101–250: Zama OG NFT.
