About
How Ratings Work
Ratings use a DUPR-style Elo algorithm that considers score differential, not just win/loss. A close loss hurts less than a blowout; a dominant win helps more than squeaking by.
Status Badges
Status reflects how reliable the rating number is.
Last Played Colors
The Last Played pill on the leaderboard shows how many days ago a player's most recent match in the selected category was, with a colour for activity at a glance.
Win Rate (~Win%)
Win rate shows how often you win, but raw percentages can be misleading when you've only played a few matches. Someone who went 5W / 0L looks like a 100% winner β but that's only 5 games. We can't yet tell whether they're genuinely dominant or just got lucky early.
To make the number fairer, we add a small imaginary record of 2 wins and 2 losses to everyone's tally before calculating the percentage. Think of it as the system saying "let's assume you're roughly average until proven otherwise."
Categories
Ratings are tracked independently per category. UN matches are excluded from ratings.
Algorithm Changes
v1.0.0 β v1.2.0
βΌ
Notable behavioural changes since the rating engine first shipped (v1.0.0). A higher number means the math affecting your displayed rating has changed.
- Recency half-life shortened to 90 days. Older matches now fade twice as fast (was 180 days). Recent active play has a stronger pull on your rating, and a player who stops showing up will see their rating drift back toward the middle of the range over a few months instead of staying frozen for nearly a year.
- New Last Played column. Each leaderboard row now shows how many days ago that player's most recent match in the selected category was, as a colour-coded pill β green within 10 days, teal within 20, amber within 40, orange within 90, grey beyond. The colour meanings are also shown in a legend at the bottom of the leaderboard.
- Inactive threshold tightened to 90 days. The Inactive Status badge now applies after 90 days of no matches in a category (was 270 days), so long-absent players drop to the bottom of the leaderboard much sooner. The Status badge itself still reflects rating reliability: Full, Provisional, or Inactive.
- Per-category K-factor decay. Rating stability now grows with matches played in that category, not your total across all categories. Your MD rating no longer "borrows" stability from XD experience and vice-versa β each pool stands on its own evidence.
- Unrated match type. Practice/casual matches can be marked Unrated; they're tracked for analytics but excluded from public ratings.
- Stricter ingestion guards. Empty (0β0) results, scores outside 0β30, and unrecognised match types are now rejected or downgraded to Unrated instead of silently feeding the math.
First release: DUPR-style Elo with score-differential perf-gap, K-factor decay, 180-day recency half-life, match-type weights, provisional/inactive flags, and per-category isolation.