Cross-game skill normalization model mapping three distinct ladder systems onto a unified 0–100 scale for each.
This project addresses the challenge of comparing competitve performance across games with entirely different ladder systems, lifetime stats, and completion metrics (e.g. Clash of Clans, Clash Royale, and League of Legends).
Architectural Highlights
- Tiered Read Cache: Clash of Clans lookups check Redis first, fall through to MongoDB on a miss, and only reach Supercell's rate-limited API when the stored document is past 24 hours. Fresh results are written back to Redis on the way out, so repeat lookups collapse to a single in-memory read.
- Unified 0–100 Metric: Each game gets its own weighted normalization onto a shared scale. League maps tiers against a real population distribution, so a score reflects how rare a rank is rather than how many tiers sit beneath it; Clash of Clans and Clash Royale cap their grindable stats so playtime can't dominate.
- Schema-Drift Tolerant Mappers: A mapping layer accepts any payload shape (including null) and always returns a complete document, absorbing drift already in the data such as fields that arrive as objects from the live API but sit as bare strings on older persisted document.