Step 1: Calculate Z-Index at Token Level
For each boss tier in each season:
- Calculate the mean damage across all tokens:
tier_mean_damage
- Calculate the standard deviation of damage:
tier_sd_damage
- For each token, calculate its Z-index:
\[z\_index = 50 + \frac{(damage -
tier\_mean\_damage)}{tier\_sd\_damage} \times 10\]
What this means:
- Z = 50 means you dealt average damage for that boss tier
- Z = 60 means you dealt 1 standard deviation above average
- Z = 40 means you dealt 1 standard deviation below average
Step 3: Aggregate Boss-Tiers to Season Level
For each player in each season:
Primary Metrics:
1. Unweighted Z (simple average):
\[unwtd\_z = mean(avg\_z\_index \text{
across all boss tiers})\]
2. Tier-Weighted Z:
For each boss tier:
- If boss tier is M1 or M2: weight = 2.0
- Otherwise: weight = 1.0
\[tier\_wtd\_z = \frac{\sum(avg\_z\_index
\times weight)}{\sum(weight)}\]
This is a weighted average where mythic bosses count twice as
much.
3. Damage-Weighted Z:
\[dam\_wtd\_z = \frac{\sum(avg\_z\_index
\times player\_damage)}{\sum(player\_damage)}\]
This weights each boss tier’s Z-score by how much total damage the
player dealt to that tier.
Context Metrics:
total_damage = sum of damage across all boss tiers
total_tokens = sum of player_tokens across all boss
tiers
mythic_tokens = sum of player_tokens where boss_tier is
M1 or M2
mythic_z = mean of avg_z_index where boss_tier is M1 or
M2
n_boss_tiers = count of distinct boss tiers the player
attacked
Step 4: Aggregate Multiple Seasons
For each player across all seasons:
Same formulas as Step 3, but now you’re aggregating across:
- Multiple boss tiers
- Multiple seasons
The weights still apply:
- Tier-weighted: M1/M2 get weight = 2.0, others get
weight = 1.0
- Damage-weighted: each boss-tier-season combination
weighted by total damage dealt
Aggregation Methods: Why Multiple Scores?
Boss level z-scores are great, but we need to aggregate to the
season, or multiple seasons to see our relative ranking at a glance.
Bosses differ in potential damage per token, and Legendary/Mythic tiers
have lower/higher importance. Here are three ways to look at the
aggregate Z score:
1. Unweighted Z (Simple Average)
- Treats every boss tier equally
- Best for: Measuring consistency across all content
- Doesn’t distinguish between performing well on L1 vs M2
- Limitation: Without flagging and removing low
damage finishing hits, this is overly punishing
2. Tier-Weighted Z
- Apply a multipler for tokens into higher tier bosses
- Best for: Recognizing that guild progression depends on Mythic
performance
- We can tailor the weights to our preferences. This table treats
Mythic as x1.5 weight and L4-L5 as 1.25x
- Example: A player with Z=60 on M2 and Z=50 on L5
scores higher than someone with Z=50 on M2 and Z=60 on L5
3. Damage-Weighted Z
- Weights each boss-tier’s Z-score by the total damage you dealt to
that tier
- How it works: If you dealt 10M total damage to L2
(tier Z=55) and 2M total damage to M1 (tier Z=65), your L2 performance
counts 5x as much in your season average
- Best for: Emphasizing performance on boss tiers where you made the
biggest absolute damage contribution
- Limitation: Can overvalue easier bosses where
damage-per-token is naturally higher (e.g., I hit screamer and ghaz all
season so my average damage is high, and my one bad hit into Magnus is
weighed much less. Someone else hit Cawl and Magnus and their one bad
hit into Dorn is not covered-up as well.)
4. Combined Tier + Damage Weighted Z ⭐
(PRIMARY METRIC)
\[combined\_wtd\_z =
\frac{\sum(avg\_z\_index \times player\_damage \times
tier\_multiplier)}{\sum(player\_damage \times
tier\_multiplier)}\]
Where: - Tier multiplier for M1/M2 = 1.5 - Tier multiplier for L1-L3
= 1.25 - Tier multiplier for L1-L3 = 1.0
What this captures: - ✅ Mythic performance matters
more (tier multiplier) - ✅ Damage weight - ✅ Doing high damage
ON mythic bosses matters most (multiplicative effect)
Recommendation: Use Combined Tier + Damage
Weighted Z as the primary ranking metric, with the others
providing diagnostic context.
Step 4: Aggregate Multiple Seasons
For each player across all seasons:
Same formulas as Step 3, but now you’re aggregating across:
- Multiple boss tiers
- Multiple seasons
Cumulative Player Score Across Seasons
Player rankings aggregated across both Season 96 and Season 97.
Remember, Primes are not in the data, so low token counts can indicate
high prime targeting.
Aggregation Method Rank Impact (S96)
My notes:
1. Gainers from mythic weight = not a lot of impact
2. Losers from mythic weight = admech. This is a season with Lav teams
blowing up M1 Sza
3. Gainers from damage weight = last hits. I think addy, zez, yav are
punished for some low damage finishing hits in simple average and the
damage weight fixes this.
4. Losers from damage weight = admech gamers. Same thing I described in
limitation section of this aggregation method.
## === TIER-WEIGHTED VS UNWEIGHTED ===
##
## Biggest Gainers (benefit from mythic performance):
## # A tibble: 19 × 5
## user rank_unwtd rank_tier_wtd tier_vs_unwtd mythic_tokens
## <chr> <int> <int> <int> <int>
## 1 aeneas 16 14 -2 1
## 2 decimusfelix 46 44 -2 1
## 3 olwhiskeyboots 4 3 -1 1
## 4 dmbrandonfanboy 5 4 -1 1
## 5 northlaine 6 5 -1 1
## 6 feruu 7 6 -1 1
## 7 smokey 8 7 -1 1
## 8 magicbit 14 13 -1 1
## 9 ttoobii 17 16 -1 1
## 10 atincan 18 17 -1 1
## # ℹ 9 more rows
##
## Biggest Losers (hurt by mythic weighting):
## # A tibble: 12 × 5
## user rank_unwtd rank_tier_wtd tier_vs_unwtd mythic_tokens
## <chr> <int> <int> <int> <int>
## 1 vick427 3 8 5 1
## 2 roguemodron 15 18 3 1
## 3 fettfan13 13 15 2 1
## 4 siedhe 33 35 2 1
## 5 grandmasterb 44 46 2 1
## 6 ulysseys 20 21 1 1
## 7 deathwing⌜sl⌟ 22 23 1 1
## 8 catupiroska 26 27 1 1
## 9 diablo2 30 31 1 1
## 10 nammi 36 37 1 1
## # ℹ 2 more rows
##
## === DAMAGE-WEIGHTED VS UNWEIGHTED ===
##
## Biggest Gainers (benefit from high-damage tiers):
## # A tibble: 22 × 5
## user rank_unwtd rank_dam_wtd dam_vs_unwtd total_damage
## <chr> <int> <int> <int> <dbl>
## 1 addywhatson 31 13 -18 13133696
## 2 yavin 41 25 -16 15208096
## 3 zez 19 10 -9 21480946
## 4 varjj 11 4 -7 24355768
## 5 smokey 8 3 -5 28641974
## 6 farsight 34 29 -5 16526726
## 7 cainthar 52 47 -5 5984360
## 8 spooply 21 17 -4 22305741
## 9 ulysseys 20 16 -4 21003262
## 10 smagmata 24 20 -4 25034739
## # ℹ 12 more rows
##
## Biggest Losers (hurt by damage weighting):
## # A tibble: 29 × 5
## user rank_unwtd rank_dam_wtd dam_vs_unwtd total_damage
## <chr> <int> <int> <int> <dbl>
## 1 neruxo 12 22 10 15942593
## 2 fettfan13 13 21 8 17108650
## 3 ttoobii 17 23 6 21102608
## 4 irae 28 34 6 12757697
## 5 grimscrub 32 38 6 10915571
## 6 decimusfelix 46 51 5 7173567
## 7 roguemodron 15 19 4 15559321
## 8 fragxy 23 27 4 9570915
## 9 deathwing⌜sl⌟ 22 26 4 17980702
## 10 catupiroska 26 30 4 8802686
## # ℹ 19 more rows