Moderator: Clan Directors
The basics seem to be right, but Icepack will confirmbigWham wrote:Hi everyone,
I am looking at moving forward with the Clan Scoreboard. As discussed with Leehar, due to the challenges involved in getting all the data input, especially with CL4, and also due to the time-window nature of clan scoring I think it makes sense to just move forward with the data we have.
So, I have been reviewing the F400 for implementation...
Once I parsed through all the graphics, adjustments, and tools to display and experiment, the basic formula seemed very simple. I want to confirm that this is the essence of it:
- Winning/Losing a Clan War wins/loses a Clan between 200 and 600 points depending on the Game Win % (200 points for 50.1% up to 600 points for 100%)
- A weight is applied to the score for each war based on its recency with a time window
- Weighted scores are averaged across time window
Nope, as you can see from this more detailed breakdown of scoring from 15 Jan: Opposition score definitely impacts on the score that the individual clan gains from a war.bigWham wrote: The surprising thing to me was that the scoring did not appear to depend on the prior record of the clans. So beating a weak clan scores as much as a strong Clan - with the exception of an adjustment for total noob clans.
Is this correct?
honestly, it is not clear to me what is going on in that table. i see a lot of ratings, weights, %s everywhere, but there's too much going on to be sure of what all the calcs are made or what they mean.Leehar wrote:The basics seem to be right, but Icepack will confirmbigWham wrote:Hi everyone,
I am looking at moving forward with the Clan Scoreboard. As discussed with Leehar, due to the challenges involved in getting all the data input, especially with CL4, and also due to the time-window nature of clan scoring I think it makes sense to just move forward with the data we have.
So, I have been reviewing the F400 for implementation...
Once I parsed through all the graphics, adjustments, and tools to display and experiment, the basic formula seemed very simple. I want to confirm that this is the essence of it:
- Winning/Losing a Clan War wins/loses a Clan between 200 and 600 points depending on the Game Win % (200 points for 50.1% up to 600 points for 100%)
- A weight is applied to the score for each war based on its recency with a time window
- Weighted scores are averaged across time windowNope, as you can see from this more detailed breakdown of scoring from 15 Jan: Opposition score definitely impacts on the score that the individual clan gains from a war.bigWham wrote: The surprising thing to me was that the scoring did not appear to depend on the prior record of the clans. So beating a weak clan scores as much as a strong Clan - with the exception of an adjustment for total noob clans.
Is this correct?
All it does is give a break-down of what score is 'earned' for each war.bigWham wrote: honestly, it is not clear to me what is going on in that table. i see a lot of ratings, weights, %s everywhere, but there's too much going on to be sure of what all the calcs are made or what they mean.
my questions is, if TOFU beats KORT, winning 51% of games, is it any different to TOFU beating some other, lesser, clan by the same amount?
or, my more general question is... can someone cut through the clutter for me and give me the actual algorithm that is used to calculate clan scores?
http://www.conquerclub.com/forum/viewto ... 0#p3078305bigWham wrote:or, my more general question is... can someone cut through the clutter for me and give me the actual algorithm that is used to calculate clan scores?
Seems like Ice is busy, but I think you received the info email from Ice, not sure how much it'll help with tabulation thoughLeehar wrote:http://www.conquerclub.com/forum/viewto ... 0#p3078305bigWham wrote:or, my more general question is... can someone cut through the clutter for me and give me the actual algorithm that is used to calculate clan scores?
It's a variant of:
Performance rating = [(Total of opponents' ratings + 400 * (Wins - Losses)) / Games].
I honestly can't tell you what tweaks have been made, if any. We'll again have to wait on Ice
Is there no way to feed off the calculator as is?>
> Greetings,
> I'm sending / attaching the tool and data that is used currently to calculate clan rankings.
> I'm happy to discuss on Skype ("uneek03") if you need some assistance.
>
> Attached are two items:
> 1) Algorithm of 400 Performance Rating Calculator; and
> 2) Notepad of all Clan Wars, Leagues, Results, and dates.
>
> It's a fairly simple system, right now the process is manually driven.
>
> Rating Calc Date: Enter the date you wish the calc to be done up to (for Nov 1st Rankings, you enter 11-01-13.
> Compare to Date: Any date prior to 11-01-13 (or whatever date you entered). This adjusts the +/- arrows, but these aren't 100% accurate so they are done manually on our current spreadsheet.
> Final Ranking - Min Total Weight Required to Include Clan: Current F400 is set @ 150 Weight Required
> Accuracy Tabulation - Min Total Weight: Enter 100 min
> Accuracy Tabulation - Min Games to include War: Enter 12 min
> Accuracy Tabulation - Rating Lead Total Intervals: Enter 16
> Accuracy Tabluation - Intervals to tabulate: Enter 5
> Min Delta Per Win / Loss: Enter 200
> Min Delta Per Win Loss: Enter 600
>
> Data Window (years): Enter 2 Years for F400
>
> Graph (if desired) in years: Standard is 2
> Graph Clans Ranked: This calculator can rank 8 at a time. 1-8, 9-16, etc
>
> Copy and Paste the notepad records into the box, click calculate ratings.
>
> It will take a min and show the graph and results below.
>
> Currently, these informations are then entered into an excel and any display errors fixed and posted for clans viewing.
>
> Let me know if I can be of further assistance.
> Thanks,
> IcePack / Jason
it is coded in javascript, and has to be converted into php. from what i can see, and i went and looked again, it does not appear to take prior record into account. maybe i am missing something glaringly obvious, and if so need to put on the right track. it is even theoretically possible that the code doesn't implement the intended algorithm. someone that knows the code or algorithm should be able to this pretty quickly.Leehar wrote:Seems like Ice is busy, but I think you received the info email from Ice, not sure how much it'll help with tabulation thoughLeehar wrote:http://www.conquerclub.com/forum/viewto ... 0#p3078305bigWham wrote:or, my more general question is... can someone cut through the clutter for me and give me the actual algorithm that is used to calculate clan scores?
It's a variant of:
Performance rating = [(Total of opponents' ratings + 400 * (Wins - Losses)) / Games].
I honestly can't tell you what tweaks have been made, if any. We'll again have to wait on Ice
Is there no way to feed off the calculator as is?>
> Greetings,
> I'm sending / attaching the tool and data that is used currently to calculate clan rankings.
> I'm happy to discuss on Skype ("uneek03") if you need some assistance.
>
> Attached are two items:
> 1) Algorithm of 400 Performance Rating Calculator; and
> 2) Notepad of all Clan Wars, Leagues, Results, and dates.
>
> It's a fairly simple system, right now the process is manually driven.
>
> Rating Calc Date: Enter the date you wish the calc to be done up to (for Nov 1st Rankings, you enter 11-01-13.
> Compare to Date: Any date prior to 11-01-13 (or whatever date you entered). This adjusts the +/- arrows, but these aren't 100% accurate so they are done manually on our current spreadsheet.
> Final Ranking - Min Total Weight Required to Include Clan: Current F400 is set @ 150 Weight Required
> Accuracy Tabulation - Min Total Weight: Enter 100 min
> Accuracy Tabulation - Min Games to include War: Enter 12 min
> Accuracy Tabulation - Rating Lead Total Intervals: Enter 16
> Accuracy Tabluation - Intervals to tabulate: Enter 5
> Min Delta Per Win / Loss: Enter 200
> Min Delta Per Win Loss: Enter 600
>
> Data Window (years): Enter 2 Years for F400
>
> Graph (if desired) in years: Standard is 2
> Graph Clans Ranked: This calculator can rank 8 at a time. 1-8, 9-16, etc
>
> Copy and Paste the notepad records into the box, click calculate ratings.
>
> It will take a min and show the graph and results below.
>
> Currently, these informations are then entered into an excel and any display errors fixed and posted for clans viewing.
>
> Let me know if I can be of further assistance.
> Thanks,
> IcePack / Jason
From what I understand It's taken into account in the total of opponents ratings?bigWham wrote:Leehar wrote:it is coded in javascript, and has to be converted into php. from what i can see, and i went and looked again, it does not appear to take prior record into account. maybe i am missing something glaringly obvious, and if so need to put on the right track. it is even theoretically possible that the code doesn't implement the intended algorithm. someone that knows the code or algorithm should be able to this pretty quickly.Leehar wrote:http://www.conquerclub.com/forum/viewto ... 0#p3078305bigWham wrote:or, my more general question is... can someone cut through the clutter for me and give me the actual algorithm that is used to calculate clan scores?
It's a variant of:
Performance rating = [(Total of opponents' ratings + 400 * (Wins - Losses)) / Games].
alternately we can just make something new up.
i am probably missing something. there is a lot of code i was sent, but most of it does not pertain to the actual calculations. here is what i think is the central calculation:Leehar wrote:From what I understand It's taken into account in the total of opponents ratings?bigWham wrote:Leehar wrote:it is coded in javascript, and has to be converted into php. from what i can see, and i went and looked again, it does not appear to take prior record into account. maybe i am missing something glaringly obvious, and if so need to put on the right track. it is even theoretically possible that the code doesn't implement the intended algorithm. someone that knows the code or algorithm should be able to this pretty quickly.Leehar wrote:http://www.conquerclub.com/forum/viewto ... 0#p3078305bigWham wrote:or, my more general question is... can someone cut through the clutter for me and give me the actual algorithm that is used to calculate clan scores?
It's a variant of:
Performance rating = [(Total of opponents' ratings + 400 * (Wins - Losses)) / Games].
alternately we can just make something new up.
I don't think it'll be feasible to make something new up because it's accepted far & wide, we've seen previously that it can otherwise be a fairly contentious issue getting a ranking otherwise
NopebigWham wrote:i am probably missing something. there is a lot of code i was sent, but most of it does not pertain to the actual calculations. here is what i think is the central calculation:Leehar wrote:From what I understand It's taken into account in the total of opponents ratings?bigWham wrote:Leehar wrote:it is coded in javascript, and has to be converted into php. from what i can see, and i went and looked again, it does not appear to take prior record into account. maybe i am missing something glaringly obvious, and if so need to put on the right track. it is even theoretically possible that the code doesn't implement the intended algorithm. someone that knows the code or algorithm should be able to this pretty quickly.Leehar wrote:http://www.conquerclub.com/forum/viewto ... 0#p3078305bigWham wrote:or, my more general question is... can someone cut through the clutter for me and give me the actual algorithm that is used to calculate clan scores?
It's a variant of:
Performance rating = [(Total of opponents' ratings + 400 * (Wins - Losses)) / Games].
alternately we can just make something new up.
I don't think it'll be feasible to make something new up because it's accepted far & wide, we've seen previously that it can otherwise be a fairly contentious issue getting a ranking otherwise
var Delta = Math.round(MinWinGain + 2*(Math.max(Clan1WinFraction,1-Clan1WinFraction) - .5) * (MaxWinGain-MinWinGain));
Delta is the points given for the war
Clan1WinFraction = % of games won in war by Clan 1
MinWinGain = 200 (default)
MaxWinGain = 600 (default)
then these delta are summed over all wars and a weighting applied for how long ago the war was.
Couldn't see anything that took into account the record of your opponent in other wars (in other words some type of measure of how good your opponent was).
Is no one who understands the calculation still around?
ok, i will revisit it when i get a chance.i am probably missing something. there is a lot of code i was sent, but most of it does not pertain to the actual calculations. here is what i think is the central calculation:
var Delta = Math.round(MinWinGain + 2*(Math.max(Clan1WinFraction,1-Clan1WinFraction) - .5) * (MaxWinGain-MinWinGain));
Delta is the points given for the war
Clan1WinFraction = % of games won in war by Clan 1
MinWinGain = 200 (default)
MaxWinGain = 600 (default)
then these delta are summed over all wars and a weighting applied for how long ago the war was.
Couldn't see anything that took into account the record of your opponent in other wars (in other words some type of measure of how good your opponent was).
Is no one who understands the calculation still around?Nope
From how it was explained previously, this is what I get for how an opponent clan's rating is included
http://www.conquerclub.com/forum/viewto ... 5#p3082232I know you don't have much time, but I would suggest flipping through that thread if possible. It has a lot of bits that were discussed as the ranking was being developed, and it can explain the technicalities better than I can second-hand.Spoiler
The way the program works, it starts at the first challenge, no matter what the Data Window value, and adds challenge by challenge, recomputing each clan's rating as it goes.
In order for this to work, every time I calculate the rating for a clan, I must pass a time parameter. The time parameter specifies what point in time I am calculating the rating. This is the date used to establish the data window that determines which challenges are counted.
Each clan war provides one data point, which is either +/- 400 of the opponent clan's rating at the time of the challenge. For ties, the opponent's rating is used unaltered. Data points are dated to the time of conclusion of the challenge.
For example, when I calculate THOTA's rating for Mar 25, 2007, it will only be looking at challenges that happened prior to that date. If Data Window is set to 1 year, the rating will be computed by games-weighted averaging the data points (i.e. results from challenges) between Mar 25, 2006 and Mar 25, 2007. However, given that one of these THOTA challenges (against Z-Nihilists) concluded on June 6, 2006, the value of that data point would be based on Z-Nihilists rating at that time (June 6, 2006), meaning it would have been computed by averaging data points of the Z-Nihilists' challenges between June 6, 2005 and June 6, 2006. If the Z-Nihilists played against Z-Beelzebubs on July 14, 2005, it would then need to calculate rating of Z-Beelzebubs on July 14, 2005. This required looking at all of Z-Beelzebubs' challenges between July 14, 2004 and July 14, 2005. And so on and so forth until the beginning of time.
One thing I can say however, is that it might not hurt to see what output you can get from utilising that formula. It would help us to be able to identify what we may need to tweak in order to get a result that accurately reflect the F400 where it is currently widely accepted.
Edit:
Ok, I've gained access to the console.
Whats happening with :
var Clan1Score = new Number(Clan1RatingObject.Rating);
var Clan2Score = new Number(Clan2RatingObject.Rating);
and how are they used?
From my understanding, for each clan war, the winner & a loser both get a score out of it. And I'm pretty sure it's not purely based on the 600-200 thing although it's a major factor. Like you though I can't isolate where the Clan 2 score is incorporated.
I'm thinking it may incorporate
( RatingRecords[RatingRecords.length] = new RatingRecord(Clan1Name,Clan2Score,Games,RecordDate,Clan2Name,Outcome1,WinLossOutcome1,Clan2RatingObject.Rating);
RatingRecords[RatingRecords.length] = new RatingRecord(Clan2Name,Clan1Score,Games,RecordDate,Clan1Name,Outcome2,WinLossOutcome2,Clan1RatingObject.Rating);)
?
i think i have worked this out. i implemented something that doesn't give me identical numbers, but similar. not sure where the differences lie as yet... one thing is i'm not sure if the data file i received with the javascript matches the database. anyway, should have something to share in the near future.bigWham wrote:ok, i will revisit it when i get a chance.i am probably missing something. there is a lot of code i was sent, but most of it does not pertain to the actual calculations. here is what i think is the central calculation:
var Delta = Math.round(MinWinGain + 2*(Math.max(Clan1WinFraction,1-Clan1WinFraction) - .5) * (MaxWinGain-MinWinGain));
Delta is the points given for the war
Clan1WinFraction = % of games won in war by Clan 1
MinWinGain = 200 (default)
MaxWinGain = 600 (default)
then these delta are summed over all wars and a weighting applied for how long ago the war was.
Couldn't see anything that took into account the record of your opponent in other wars (in other words some type of measure of how good your opponent was).
Is no one who understands the calculation still around?Nope
From how it was explained previously, this is what I get for how an opponent clan's rating is included
http://www.conquerclub.com/forum/viewto ... 5#p3082232I know you don't have much time, but I would suggest flipping through that thread if possible. It has a lot of bits that were discussed as the ranking was being developed, and it can explain the technicalities better than I can second-hand.Spoiler
The way the program works, it starts at the first challenge, no matter what the Data Window value, and adds challenge by challenge, recomputing each clan's rating as it goes.
In order for this to work, every time I calculate the rating for a clan, I must pass a time parameter. The time parameter specifies what point in time I am calculating the rating. This is the date used to establish the data window that determines which challenges are counted.
Each clan war provides one data point, which is either +/- 400 of the opponent clan's rating at the time of the challenge. For ties, the opponent's rating is used unaltered. Data points are dated to the time of conclusion of the challenge.
For example, when I calculate THOTA's rating for Mar 25, 2007, it will only be looking at challenges that happened prior to that date. If Data Window is set to 1 year, the rating will be computed by games-weighted averaging the data points (i.e. results from challenges) between Mar 25, 2006 and Mar 25, 2007. However, given that one of these THOTA challenges (against Z-Nihilists) concluded on June 6, 2006, the value of that data point would be based on Z-Nihilists rating at that time (June 6, 2006), meaning it would have been computed by averaging data points of the Z-Nihilists' challenges between June 6, 2005 and June 6, 2006. If the Z-Nihilists played against Z-Beelzebubs on July 14, 2005, it would then need to calculate rating of Z-Beelzebubs on July 14, 2005. This required looking at all of Z-Beelzebubs' challenges between July 14, 2004 and July 14, 2005. And so on and so forth until the beginning of time.
One thing I can say however, is that it might not hurt to see what output you can get from utilising that formula. It would help us to be able to identify what we may need to tweak in order to get a result that accurately reflect the F400 where it is currently widely accepted.
Edit:
Ok, I've gained access to the console.
Whats happening with :
var Clan1Score = new Number(Clan1RatingObject.Rating);
var Clan2Score = new Number(Clan2RatingObject.Rating);
and how are they used?
From my understanding, for each clan war, the winner & a loser both get a score out of it. And I'm pretty sure it's not purely based on the 600-200 thing although it's a major factor. Like you though I can't isolate where the Clan 2 score is incorporated.
I'm thinking it may incorporate
( RatingRecords[RatingRecords.length] = new RatingRecord(Clan1Name,Clan2Score,Games,RecordDate,Clan2Name,Outcome1,WinLossOutcome1,Clan2RatingObject.Rating);
RatingRecords[RatingRecords.length] = new RatingRecord(Clan2Name,Clan1Score,Games,RecordDate,Clan1Name,Outcome2,WinLossOutcome2,Clan1RatingObject.Rating);)
?
Yeah, those files are pretty old.bigWham wrote: i think i have worked this out. i implemented something that doesn't give me identical numbers, but similar. not sure where the differences lie as yet... one thing is i'm not sure if the data file i received with the javascript matches the database. anyway, should have something to share in the near future.
takes a while to load: http://beta.conquerclub.com/public.php? ... clanscoresLeehar wrote:Yeah, those files are pretty old.bigWham wrote: i think i have worked this out. i implemented something that doesn't give me identical numbers, but similar. not sure where the differences lie as yet... one thing is i'm not sure if the data file i received with the javascript matches the database. anyway, should have something to share in the near future.
The differences are most likely due to the extent at which we've included clan league matches.

Is it feeding of our database on the live site, or the older one from beta? Could be a possible reason why it may be missing some pieces of data?bigWham wrote:takes a while to load: http://beta.conquerclub.com/public.php? ... clanscoresLeehar wrote:Yeah, those files are pretty old.bigWham wrote: i think i have worked this out. i implemented something that doesn't give me identical numbers, but similar. not sure where the differences lie as yet... one thing is i'm not sure if the data file i received with the javascript matches the database. anyway, should have something to share in the near future.
The differences are most likely due to the extent at which we've included clan league matches.
It is from beta, so yes it is out of date. i can deploy something live soon, or perhaps port data over so we can see current data. does it make sense though, seem correct?Leehar wrote:Is it feeding of our database on the live site, or the older one from beta? Could be a possible reason why it may be missing some pieces of data?bigWham wrote:takes a while to load: http://beta.conquerclub.com/public.php? ... clanscoresLeehar wrote:Yeah, those files are pretty old.bigWham wrote: i think i have worked this out. i implemented something that doesn't give me identical numbers, but similar. not sure where the differences lie as yet... one thing is i'm not sure if the data file i received with the javascript matches the database. anyway, should have something to share in the near future.
The differences are most likely due to the extent at which we've included clan league matches.
Yup, I don't have any major issues with it. Obviously there's the crucial element with regards to data entry which is messing with the results, but as a base it does seem to be very much on the right track.bigWham wrote:It is from beta, so yes it is out of date. i can deploy something live soon, or perhaps port data over so we can see current data. does it make sense though, seem correct?Leehar wrote:Is it feeding of our database on the live site, or the older one from beta? Could be a possible reason why it may be missing some pieces of data?bigWham wrote:takes a while to load: http://beta.conquerclub.com/public.php? ... clanscoresLeehar wrote:Yeah, those files are pretty old.bigWham wrote: i think i have worked this out. i implemented something that doesn't give me identical numbers, but similar. not sure where the differences lie as yet... one thing is i'm not sure if the data file i received with the javascript matches the database. anyway, should have something to share in the near future.
The differences are most likely due to the extent at which we've included clan league matches.


Here it is with Leagues removed, and based on the live database: http://rc.conquerclub.com/public.php?mo ... event_id=2Keefie wrote:Guys,
Just for the purpose of testing BW's calculations can I make the following suggestion. If it's relatively easy to do then why not strip out the league results from the test data. You could then compare the output against the F41, if everything matches then we can proceed with confidence knowing that the calcs are correct.
Rgds
Keith




IcePack wrote:A few quick observations:
1) Your ranking is still listing EMP, and AoC as active clans. They have since been closed and ACE is the new clan.
Those results should still count for purposes of the clans that they faced, but need to be removed from the display / ranking.
2) It appears the rankings compared do not give the same results. I looked at Feb 2014 for example:
Scoreboard: Rank Clan Score ----- F41 Rank Clan Score
1. TOFU 1499 1. TOFU 1588
2. ACE 1409 2. ACE 1477
3. KORT 1257 3. KORT 1356
4. IA 1231 4. PACK 1330
5. AOC 1216 < Inactive 5. IA 1323
6. ATL 1190 6. ATL 1288
7. PACK 1190 7. OSA 1261
8. TSM 1167 8. TSM 1239
9. EMP 1158 < Inactive 9. MD 1207
10. AFOS 1168 10. LOW 1192
Similar order, though there were a few differences (plus the inactives). Once that is cleaned up, maybe we can get a new test top 10 and compare. But some had differences, what is the minimum weight criteria you are using to display the war only results? Or do you have no min weight restrictions? (that could explain some of it)
icePack


I am not using any weight to display. i also was not explicitly holding out wars with less than 41 games, though i was holding out leagues. i don;t know if there is a difference... however when i re-ran with wars < 41 held out the numbers are still different.IcePack wrote:Yes their results still need to be included but they still need to be removed from display.
I'm using the F400 war results list minus everything that is below 41 games (ie leagues).
While if should be pretty close to yours, there will be some dates that differ by a day or so but that's not enough to show such drastic changes.
And yes the weight is display only but that's why I'm asking, if mines set to display the same. If your not using a min weight to display then I. Need to set mine to zero.