I have implemented ELO rating for match making, similar to the implementation of BoardGameArena. This works great, matching players with about the same rating.

However the system is vulnerable to abuse. This is because in my games players play with virtual coins, they choose how much to bid on each game. Bids varying from 1 coin up to 1000. Thus, a player can intentionally lose games at low bids to reduce his rating, then move to play for high bids with easier matching.

How can I fix this vulnerability?

  1. record ELO rating for buckets of bid sizes.
  2. use K = f(coins), which mean that the ELO change at the game's end depends on how many coins were played.

enter image description here

  • 2
    Why not include how much ELO you gain/ loose in relation to how many coins were bet?
    – Zibelas
    May 19 at 10:22
  • 1
    @Cohensius Well, make K = f(coins) where f is a monotonically increasing function; it doesn't necessarily have to be a straight equality. May 19 at 11:40
  • 1
    @JoeW Depends if the bid selection is made before or after knowing your opponent? May 19 at 16:15
  • 2
    I would just hid the ELO of the opponent till after the bid are made
    – Styxsksu
    May 19 at 17:30
  • 2
    Maybe I am reading your question wrong but you seem to think that there is a problem because players could throw low value matches to slightly lower their rating. My concern is that when you give players a way to manipulate the system they will do so in ways that you likely won't think of when designing it.
    – Joe W
    May 19 at 18:15

1 Answer 1


Rather than using a standard ELO, use the net number of coins a player has won as the measure of their skill.

If the goal is to prevent players from artificially lowering their ranking to gain coins, then tie their ranking to the number of coins they have. While abuse is still possible to a limited extent, it's capped at the number of coins you can earn in a single game, because as soon as they start to have any success with their plan, their ranking rises. It's a self-correcting system, just like a good ELO system.

If you want to aggressively encourage players to pair against people of the same skill level, then set up a ratio system in the bidding, so that one coin from a player who has very few coins matches ten coins from a player with many coins when bidding - this discourages players from playing against those with significantly fewer coins (because the rewards are less and the risks are higher), and means the players who do well against higher-ranked players will advance quickly. This mimics the ELO system of scaling rating changes based on opponent's strength.

Coins gained from alternative methods (buying coins with real-world money, promotions, etc) shouldn't be factored into the ranking, only coins "earned" during play.

  • 1
    Love your answer. I think that it fits best to my scenario because I care more about the coins economy and less about exactly ranking the players by skill.
    – Cohensius
    Jun 12 at 21:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .