Methodology

Glicko-2 Rating System

RankHub uses the Glicko-2 rating system, developed by Mark E. Glickman as an improvement over the Elo rating system. Glicko-2 introduces a "rating deviation" (RD) that measures the reliability of a rating, and a "volatility" that captures the consistency of performance.

How Votes Work

Each vote is a head-to-head matchup between two items. When you vote, the system:

  1. Calculates expected scores based on current ratings and RDs
  2. Updates both items' ratings (winner goes up, loser goes down)
  3. Adjusts RDs (they decrease with more games, increase with inactivity)
  4. Updates volatility to reflect performance consistency

Why Not Simple Vote Counting?

Simple vote counting is vulnerable to:

  • Recency bias (newer items get fewer votes)
  • Selection bias (matchup pairing affects outcomes)
  • No uncertainty measure (can't tell if rankings are reliable)

Glicko-2 solves all three: inactive items' RDs grow (uncertainty increases), matchup selection is randomized, and every rating has a confidence interval.

Integer Math Storage

For cross-isolate determinism, all Glicko-2 metrics are stored as integers:

  • Rating: display_value * 100 (e.g., 1500.00 stored as 150000)
  • RD: display_value * 100 (e.g., 350.00 stored as 35000)
  • Volatility: display_value * 10^6 (e.g., 0.06 stored as 60000)

This ensures identical results across different runtime environments (JavaScript, Rust, WASM) without floating-point precision issues.

Further Reading