Teamratio 1. Introduction Teamratio tells how player chooses his team depending on what map is playing. More familiar term for this could be 'team whoring ratio'. Choosing easier side on every map - usually defending side - is not liked by other players. Teamratio is a value which represents players team selection. Negative teamratio tells that player usually chooses the easier side on map. Vice versa positive value means that the player plays on the side which usually loses. Players who are much on negative are usually called 'team whores'. Teamratio value tells exactly how much each player is team whoring in each map. Summing up teamratio from all maps tells overall teamratio for player. 2. Example On most servers CT is usually the easier side on dust and aztec - Terrorist side is then again easier on italy and compound. Let's say that winning ratios on these maps are as follows: * De_aztec: 54 % CT / 46 % T * De_dust: 56 % CT / 44 % T * Cs_italy: 40 % CT / 60 % T * Cs_compount: 45 % CT / 55 % T Now think about player who almost always chooses the easier side on these maps. Let's say that he chooses his sides as follows: * De_aztec: 80 % CT / 20 % T * De_dust: 76 % CT / 34 % T * Cs_italy: 33 % CT / 77 % T * Cs_compount: 30 % CT / 70 % T Most players would say that he is 'team whore'. Let's compute teamratio for him! CODE De_aztec: (0.80-0.20) * (0.46-0.54) * 100 = -4.80 De_dust: (0.76-0.34) * (0.44-0.56) * 100 = -5.04 Cs_italy: (0.33-0.77) * (0.60-0.40) * 100 = -8.00 Cs_compount: (0.30-0.70) * (0.55-0.45) * 100 = -4.00 ----------------------------------------------------- Total teamratio score = -21.84 Because player's teamratio score is very much on negative he definately selects the easier side on maps. Player who would play exactly the opposite on these maps would get +21.84 teamratio score. 3. Formula Mathematical formula for computing teamratio is quite simple. All we need in computing teamratio are: 1. Player's team selection percentage on each map 2. General winning percentage on each map As an addition we will balance maps according to how much they've been played. We will get weight value from this. 3. Amount of rounds played on each map 3.1 Simple form Formula without weighting can be written as: CODE TEAMRATIO = (TEAM1_PLR% - TEAM2_PLR%) / (TEAM2_MAP% - TEAM1_MAP%) Because values are given as percentages we want to multiply it by 100. CODE TEAMRATIO = (TEAM1_PLR% - TEAM2_PLR%) / (TEAM2_MAP% - TEAM1_MAP%) * 100 This is the value which represents how much team whoring each player does. 3.2 Weighted form Weighted form is for some special cases. One special case is when new map is installed. New map can have at first very biased team balance. Because the balance can change very quickly the other way too we want to weight maps according to how much they are actually played. First we compute what is the average amount of rounds played on maps. Let's say that average amount is AVERAGE_ROUNDS. For every map which is played more than AVERAGE_ROUNDS we will give weight 1. For maps which have been played less than AVERAGE_ROUNDS we compute weight as follows: CODE WEIGHT = AMOUNT_OF_ROUNDS_PLAYED / AVERAGE_ROUNDS To compute final teamratio value we use formula CODE TEAMRATIO = (TEAM1_PLR% - TEAM2_PLR%) / (TEAM2_MAP% - TEAM1_MAP%) * 100 * WEIGHT Player who has played for several months will have AVERAGE_ROUNDS quite high. For new maps value AMOUNT_OF_ROUNDS_PLAYED will be small. Dividing small value with high value will result in very small number - thus new maps will get small weight. When the map gets more online time it will steadily get closer to the AVERAGE_ROUNDS value when its value gets to 1. Other special case might appear if one or few maps are played much more than the others. Then the maps which are rarely played don't appear so dominant in the teamratio because they get small weight. http://img76.imageshack.us/my.php?image=teamratioweightinget2.png