How is this different from what I see on reddit?
It's not, really. I was just interested in calculating it myself and wrote some simple python to do it. I also made some different different assumptions than /u/fknm1111, listed below. And some of the same ones.
There are 2 versions of the page (each one links to the other). In one, I use the previous season's Elo score for a bot as the initial score for "this" season. This may be controversial since bots can change between seasons. If a bot skips a season, his score is not carried forward and starts fresh. In the other, every bot starts "fresh" with a score of 1500.
I use a K factor of 40, only because this is the factor used by FIDE, "... for
a player new to the rating list until the completion of events with a total of
30 games and for all players until their 18th birthday, as long as their rating
remains under 2300". So, no reason I can stand behind.
The difference in output is negligible; with a smaller K factor, wins and losses don't mean AS much, so the scores are a little closer together due to rounding, and there are a few more "ties" due to scores being the same. But, the order is basically the same.
I mark both a "KO" and a unanimous decision a full win.
I mark a "split decision" win as 0.67 of a win; the losers share 0.33 of a win. Why? I just wanted to try it and see what the outcome was. I make no claim that it's better.
I only used fights that were listed on the Wikipedia page. I don't factor in any un-aired fights.
Multi-way fights (eg: more than 2 bots) are now included! Just like a 2 way fight, the winner gets a full win on a KO or UD, and the loser(s) get 0. On a SD, the winner still gets 0.67 of a win, and the loser(s) share evenly the remaining 0.33 of a win. Thanks to this site for inspiration.
This ranking sucks; it doesn't account for X, Y, or ...
Your HTML/CSS sucks. Yes, yes it does. I'm more a back-end coder. Sorry.