If you have problems with the website please email: webhost[at]fordebating.com
© 2020 ForDebating.com LLC


You must be 18 years of age to use ForDebating.com. We uses non-essential cookies to collect analytic data. As an example we collect data on how often a page is view. You can view aggregated data in various places around the website.


Learn More



Elo page


I have played a lot of games in my life and debating seemed most like chess to me. There are some differences of course, and the most important one is arbitrary winning. Chess has clear winning and losing situation, the rules are simple and clean, but for debating that’s not the case, even so I feel like there should be a system in place that gives some indicator of the strength of FD users, so I’ve implemented an ELO system.


As the site owner I would prefer more debates as that creates more interest and more traffic. I’ve run into players in various games who don’t play because they want to protect their Elo, and I also don’t like how Elo systems force players to play within a tiny bracket of players because of the risk factor. So I’ve increased the range from 0-3000 in chess to 0-10,000, and I’ve tried to setup the Elo system to allow for players within a 2k range to be viable. With everyone starting at 5k that should allow for the bulk of the users to debate without too much worry about ELO differences, but still prevent highly skilled debaters from “noob sniping”.


I’ve seen people get to the top of the leaderboard and just sit there forever and not play. A decay system has been implemented to automatically lower users ELO if they don’t debate on a regular basis.



To summarize my goals for this Elo system:

  1. Have an indicator of users debate skill
  2. Allow opponents in a big range
  3. Punish those who don’t debate
  4. Prevent noob sniping

If you don’t want to talk about math you might want to stop reading now because it’s about to get all about the math. Last chance…


To correct the #2 I changed from a 3,000-point system to a 10,000-point system. (a little bit more than three times as many points) Chess starts you out at 1,500, I start you out at 5,000. That means I need to change the rest of the chess numbers by at least a factor of 3. An alternate way to show Elo strength is 10^current Elo/400, this is what’s used in standard chess Elo calculations. My increase from 3,000 to 10,000 should increase to 10^currently Elo/1300 but I wanted a bigger opponent range, so I dropped it from 10 to 3 and increased it to 1,500.

The second variable in calculation Elo is K factor. In chess K factor is 32 for new players, then goes down to 24 at some arbitrary point. The higher the K factor the more dynamic the changes in the score. My system should have a K factor baseline of 80. I just wasn’t happy with this when I looked at the numbers. I read an article or two about the pros and cons of increasing the K factor and several suggested 32 was a better gauge than 24. But when I tried 110 it just wasn’t quite where I wanted the numbers to be. I settled with 150 baseline K factor.

To address new player’s K factor difference of +8 that in my system should be +27 in my system. I added a K factor bonus of 60 for the first 25 games, and 30 for games 26 through 50. It’s a bit higher to start out with, but then backs off. The problem I found was a new player shooting up the Elo. So, on the high end and low in I created a K factor minus:


9001 – 10000 – minus k80
8001 – 9000 – minus k50
7001 – 8000 – minus k20
2001 – 3000 – minus k20
1001 – 2000 minus k50
0 - 1000 minus K80



This way the far ends of the Elo system aren’t as dynamic as the middle section. Hopefully this will create more diversity and keep everyone who debates regularly from clumping up around 5,000.

Another factor is decision. This is taken directly from chess with a win =1, draw = .5 (half a win), and a loss = 0. (this changes when calculating tournaments because there are more grades of winning and losing but more on that in a bit)

Lastly, I added a 20% bonus to winning Elo changes. This is the carrot to the decay stick. So, if you don’t debate in a style your Elo will decay. The further from 5,000 you are the more strongly you will be pulled back toward the middle. This will prevent top debaters from gaining a rank, and then just sitting there, and to help to bring back people who did badly when they first started debating.



The decay is applied at 3am daily as follows:


9501 – 10k = minus 300 points
9001 – 9500 = minus 270 points
8501 – 9000 = minus 240 points
8001 – 8500 = minus 200 points
7001 – 8000 = minus 150 points
6001 – 7000 = minus 100 points
5001 – 5999 = minus 50 points
5000 = No decay
4001 – 4999 = plus 50 points
3001 – 4000 = plus 100 points
2001 – 3000 = plus 150 points
1501 – 2000 = plus 200 points
1001 – 1500 = plus 240 points
501 – 1000 = plus 270 points
0 – 500 = plus 300 points



Here are some examples Elo changes so you can see the system at work:


Example A:

Creator current Elo of 5,000 new player, Contender Elo of 5,000
Creator Str = 3^5,000/1500 = 39, and Contender Str = 3^5,000/1,500 = 39
Creator K factors = 150 + 60 = 210
Match Strength = 5,000 / (5,000 + 5,000) = .5
Match change win= (210(1-.5)) *1.2 = 126
Match change draw = (210(.5-.5)) = 0
Match change loss = (210(0-.5)) = -105
So the Creator goes to 5,126 for a win, stays at 5,000 for a draw, and goes to 4895 with a loss.


Example B:

Creator current Elo of 6,000 with 100 debates in style, Contender Elo of 5,000
Creator Str = 3^6,000/1500 = 81, and Contender Str = 3^5,000/1,500 = 39
Creator K factors = 150
Match Strength = 6,000 / (5,000 + 6,000) = .675
Match change win= (150(1-.675)) * 1.2 = 58.5
Match change draw = (150(.5-.675)) = -26
Match change loss = (150(0-.675)) = -101.3
So the Creator goes to 6,059 for a win, goes to 5,974 for a draw, and goes to 5,899 with a loss.


Example C:

Creator current Elo of 4,000 with 100 debates in style, Contender Elo of 5,000
Creator Str = 3^4,000/1500 = 19, and Contender Str = 3^5,000/1,500 = 39
Creator K factors = 130
Match Strength = 4,000 / (5,000 + 4,000) = .325
Match change win= (150(1-.325)) *1.2 = 121.5
Match change draw = (150(.5-.325)) = 26.3
Match change loss = (150(0-.325)) = -48.8
The Creator goes to 4,122 for a win, goes to 4,026 for a draw, and goes to 3,951 with a loss.


I think Example B and C show how my system makes a debate with an Elo difference of 1,000 reasonable and encourages more debating.



Random matches

Any match that has a random Elo change also has a style Elo change. The random Elo is calculated the same way as above, but because not all debates in a style will be random, and not all random debates will be in the same style there could be situations where you lose style Elo but gain random Elo, or vice versa.



Two headed giant matches

The only difference in 2HG is that contender strength is the average of both debaters on the opposing team, all other calculations from that point forward are the same.



Tournaments

Well now things get interesting with the decisions part of the calculating Elo. There is a range from 1 to 0 when it comes to tournements, but dealing with two users having the same postion in the tournment causes a problem. To address this even if you have the same number of wins and losses in the tournment you won't tie as far as the tournment is concerned. How tournment postions is decided is below.



To choose the rankings in a tournament we use the following priority chart:

  1. Most wins
  2. Highest total number of vote points awarded in this tournament
  3. Highest number of debates in this style
  4. Highest total number of debates
  5. Old user creation date
  6. Randomly chosen (In scenarios where a tournament starts with multiple empty slots)
Example A:

No one wins any rounds (B first -style-, A second -points-, C third -total debates-, D fourth)
UserA 4 points against UserB, 10 style, 50 total, 6-1-2017 creation date
UserB 4 points against A, 20 style, 80 total, 6-3-2017 creation date
UserC 0 points, 0 in style, 40 total, 6-4-2017 creation date
UserD 0 points, 0 in style, 30 total, 6-5-2017 creation date
R1 A and B (tie) – No wins, points tie, B wins style (B moves on)
R1 C and D (tie) – No wins, no points, no style, C wins total debates (C moves on)
Finals B and C (tie)
Even though C goes to final, A has points so A is second


Example B:

A wins first, rest are ties (A first -win-, D second -style-, B third -total-, C fourth)
UserA 1 win, 4 points against B, 10 in style, 50 total, 6-1-2017 creation date
UserB 0 wins, 0 points against A, 0 in style, 80 total, 6-3-2017 creation date
UserC 0 wins, 0 points, 0 in style, 40 total, 6-4-2017 creation date
UserD 0 wins, 0 points, 5 in style, 30 total, 6-5-2017 creation date
R1 A and B (A win) – A has win (A moves on)
R1 C and D (tie)– D moves one because of style
Finals A and D (tie)


In bigger tournaments, this is just expanded to decide placement in worst case scenarios. The preferred method to choose placement is by wins, if wins are a tie then total points for the debate, and so on. This is done so that the number and rank of debaters at the end of the tournament doesn’t change. If it’s a four-man tournament there WILL be four different places every tournament. Otherwise the values of the decisions would fluctuate and require a complex algorithm to expand and contract as the number of debater’s changes (empty spots) or ties happen changing the number of decision points. As I showed above in a 1v1 debate you can get a win, a draw, or a loss. These are represented mathematically by 1, .5, and 0.



For tournament we have the following mathematical representations:


4 man = First = 1, Second = .6666, Third = .3333, Fourth = 0

8 man = First = 1, Second = .8572, Third = .7144, Fourth = .5716, Fifth = .4288, Sixth = .286, Seventh = .1432, Eighth = 0

16 man = First = 1, Second = .9334, Third = .8668, Fourth = .8002, Fifth = .7336, Sixth = .667, Seventh = .6004, Eighth = .5338, Ninth = .4672, Tenth = .4006, Eleventh = .334, Twelfth = .2674, Thirteenth = .2008, Fourteenth = .1342, Fifteenth = .0676, Sixteenth = 0


You notice that First is always 1 and last is always zero, and the difference between the middle places gets smaller as the tournament gets bigger. This means you still “win” in a 16 man if you come in Eighth. (because you are over .5 which is a draw in 1v1) The numbers are split to the 4th decimal to make them as exact as possible, but there are remainders which hurt last the most.

The baseline K factor for tournaments is also increased from 150 to 200 because of the longer time requirements for tournaments. This always for more dynamic changes in your tournament Elo than any other Elo.



In closing


I would be remiss to not have a section on cheating. I hold no illusions about my ability to create a system that has no loopholes or the possibility of creating a system that is impossible to cheat. I have used several methods to deter cheating but I feel like I need to add another. You are unable to vote on debates until you reputation is high enough, and the more reputation you have the more points your vote is worth. This both rewards faithful users, and makes it harder for people to use fake accounts to pad their ELOs. Completing a debate with the same user within 7 days of completing another debate with the same user will not provide any Elo change for either user.


I have attempted to be very transparent with this site. Hopefully this system makes people want to debate more, debate a wider range of opponents, and have fun. I feel like my system will achieved all the goals I set out for it, I hope you are as happy with it, but if you aren't let me know and it can evolve as time goes on. I hope you enjoy this site built for debating, and happy debating!

Mark