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 ⭐ (PRIMARY
METRIC):
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 player_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 ⭐ Primary Metric
- Mythic bosses (M1, M2) count 2x as much as
Legendary bosses
- Best for: Recognizing that guild progression depends on Mythic
performance
- Why we weight this way: Mythic bosses are
progression gates. A relatively high damage hit into mythic is not easy
to replace, but into L1 it is.
- We can tailor the weights to our preferences. This table treats
Mythic as x2 weight.
- 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.)
Recommendation: Use Tier-Weighted Z
as the primary ranking metric, with the others providing additional
context.
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: 13 × 5
## user rank_unwtd rank_tier_wtd tier_vs_unwtd mythic_tokens
## <chr> <int> <int> <int> <int>
## 1 aeneas 14 11 -3 8
## 2 smokey 7 5 -2 13
## 3 dmbrandonfanboy 4 3 -1 6
## 4 olwhiskeyboots 5 4 -1 9
## 5 rubberduck99 8 7 -1 9
## 6 varjj 9 8 -1 6
## 7 magicbit 11 10 -1 3
## 8 atincan 15 14 -1 4
## 9 ulysseys 17 16 -1 11
## 10 fragxy 20 19 -1 1
## # ℹ 3 more rows
##
## Biggest Losers (hurt by mythic weighting):
## # A tibble: 8 × 5
## user rank_unwtd rank_tier_wtd tier_vs_unwtd mythic_tokens
## <chr> <int> <int> <int> <int>
## 1 vick427 3 9 6 4
## 2 roguemodron 12 15 3 4
## 3 fettfan13 10 12 2 6
## 4 zez 16 17 1 2
## 5 deathwing⌜sl⌟ 19 20 1 11
## 6 catupiroska 21 22 1 2
## 7 irae 23 24 1 6
## 8 addywhatson 25 26 1 1
##
## === DAMAGE-WEIGHTED VS UNWEIGHTED ===
##
## Biggest Gainers (benefit from high-damage tiers):
## # A tibble: 9 × 5
## user rank_unwtd rank_dam_wtd dam_vs_unwtd total_damage
## <chr> <int> <int> <int> <dbl>
## 1 addywhatson 25 13 -12 13133696
## 2 zez 16 9 -7 21480946
## 3 yavin 28 21 -7 15208096
## 4 varjj 9 3 -6 24355768
## 5 smokey 7 4 -3 28641974
## 6 ulysseys 17 14 -3 21003262
## 7 aeneas 14 12 -2 18026963
## 8 smagmata 18 16 -2 25034739
## 9 farsight 27 25 -2 16526726
##
## Biggest Losers (hurt by damage weighting):
## # A tibble: 14 × 5
## user rank_unwtd rank_dam_wtd dam_vs_unwtd total_damage
## <chr> <int> <int> <int> <dbl>
## 1 fettfan13 10 18 8 17108650
## 2 ttoobii 13 19 6 21102608
## 3 dmbrandonfanboy 4 8 4 18220532
## 4 justpie 24 28 4 8276959
## 5 irae 23 27 4 12757697
## 6 roguemodron 12 15 3 15559321
## 7 catupiroska 21 24 3 8802686
## 8 olwhiskeyboots 5 7 2 27410486
## 9 rubberduck99 8 10 2 24499435
## 10 vick427 3 5 2 14113637
## # ℹ 4 more rows