home products documents terms contact shop (coming soon!)

ELO Rating System

Your skill, quantified. Beat the best, climb the fastest.

How Ratings Work

CobbleRanked uses a proven rating system that rewards skill:

  • Beat a stronger player → Big ELO gain
  • Beat a weaker player → Small ELO gain
  • Lose to a stronger player → Small ELO loss
  • Lose to a weaker player → Big ELO loss

The system finds your true skill level fast. Upsets are rewarded. Playing it safe yields less.

Rating Systems

CobbleRanked supports two rating algorithms:

Pokemon Showdown (Default)

The same system used by Pokemon Showdown. Features dynamic K-factors based on your rating and experience level.

Glicko-2

A more advanced system that tracks rating uncertainty. Better for servers with irregular play patterns.

Rank Tiers

ELOTier
2100+Cherish Ball
1900-2099Beast Ball
1700-1899Master Ball
1500-1699Ultra Ball
1300-1499Great Ball
Below 1300Poke Ball

New players start at 1000 ELO — right in the middle. Win your way up or fall trying.

K-Factor Bands

The K-factor controls how much your rating changes per match. CobbleRanked uses dynamic K-factors:

ELO RangeK-FactorEffect
New players (first 10 games)35Fast calibration
Below 110030Larger swings
1100-129925Moderate changes
1300-159920Balanced
1600-199916Stable ratings
2000+12Very stable

Higher K-factor means bigger rating changes. New players calibrate quickly, while established players have stable ratings.

Win Streak Bonus

Consecutive wins reward your momentum with a small K-factor boost:

Win StreakK-Factor BonusExample Effect
3+ wins+3Base K=25 → Effective K=28 (+12% Elo gain)
5+ wins+5Base K=25 → Effective K=30 (+20% Elo gain)

This bonus is automatically applied to winners and helps faster progression during hot streaks. Losing resets your streak.

The Math (Simplified)

New Rating = Old Rating + K × (Result - Expected)

Example: Even Match

Two 1500-rated players face off. 50/50 odds.

  • Winner: 1500 → 1510 (+10, K=20)
  • Loser: 1500 → 1490 (-10)

Example: Upset Victory

A 1400 player beats a 1600 player. Big reward for the underdog.

  • Underdog: 1400 → 1424 (+24)
  • Favorite: 1600 → 1592 (-8)

Example: Expected Win

A 1700 player beats a 1400 player. Small gains for the favorite.

  • Favorite: 1700 → 1704 (+4)
  • Underdog: 1400 → 1392 (-8)

Configuration

# elo.yaml
ratingSystem: POKEMON_SHOWDOWN  # or GLICKO2

startingElo: 1000
floorElo: 0

pokemonShowdown:
  newPlayerGames: 10
  newPlayerKFactor: 35
  kFactorBands:
    - maxElo: 1100
      kFactor: 30
    - maxElo: 1300
      kFactor: 25
    - maxElo: 1600
      kFactor: 20
    - maxElo: 2000
      kFactor: 16
    - maxElo: 999999
      kFactor: 12
  streakBonus:
    enabled: true
    threshold3Wins: 3
    threshold5Wins: 5

glicko2:
  startingRD: 150.0
  startingVolatility: 0.06
  systemConstant: 0.5
  rdDecayDays: 30
  maxRatingChange: 100

rankTiers:
  - name: "POKEBALL"
    displayName: "Poké Ball"
    minElo: 0
  - name: "GREATBALL"
    displayName: "Great Ball"
    minElo: 1300
  - name: "ULTRABALL"
    displayName: "Ultra Ball"
    minElo: 1500
  - name: "MASTERBALL"
    displayName: "Master Ball"
    minElo: 1700
  - name: "BEASTBALL"
    displayName: "Beast Ball"
    minElo: 1900
  - name: "CHERISH"
    displayName: "Cherish Ball"
    minElo: 2100

Key Settings

SettingDefaultDescription
startingElo1000Starting rating for new players
floorElo0Minimum possible rating (set to prevent dropping below a threshold)
newPlayerGames10Games before K-factor normalizes (industry standard: 10 placement matches)
newPlayerKFactor35K-factor for new players (balanced for fairer matchmaking)
streakBonus.enabledtrueEnable win streak K-factor bonus

Season Resets

Optionally reset ratings when a new season starts:

# season.yaml
onSeasonEnd:
  resetElo: false        # Hard reset to starting ELO
  softResetElo: true     # Partial reset
  softResetFactor: 0.5   # How much to reset (0.5 = halfway to starting)

Soft reset example: A 1800 player with factor 0.5 resets to 1650 (halfway between 1800 and 1500).

Check Your Rating

Open /ranked and view your stats. See your ELO, win rate, and ranking across all formats.


Related: Ranked Battles | Leaderboards | Seasons