How to Compare Two Mythic+ Logs Pull by Pull
Your group depleted a key that another group timed with minutes to spare. The overview page on Warcraft Logs tells you their DPS was higher. That is true and it is nearly useless, because a slower run lowers everyone's DPS by construction. The question worth answering is where the minutes went, and that takes a different method.
This is the method. It is what Keystone Delta does automatically, but every step can be done by hand from the Warcraft Logs report pages if you would rather.
Step 1: Pick an Opponent You Could Actually Be
The top run in the world for your dungeon tells you very little. It was done on better gear, with a composition built for it, by people who have run that route fifty times. Comparing against it produces a list of things you cannot do next week.
A useful opponent, in the order that matters:
- Same key level. Enemy health scales with the level, so damage numbers across levels are not comparable.
- Similar group. Three of your five specs is enough. A run with a completely different composition wins with tools you do not have.
- Similar gear. Within about six item levels. Beyond that, a good part of any damage gap is loot.
- Timed, but barely. A group that beat the timer by ten seconds is the smallest change from your run that still counts. That is the target, not the world record.
What this changed for us
Against a top +2 reference, our Altar of Fangs boss damage looked 21% slow. Against a group on our gear that timed the key by five seconds, our bosses were 55 seconds faster than theirs and the entire loss was trash time plus standing still. Same run, opposite conclusion, and only the second one is actionable.
Step 2: Use the Right Clock
The keystone timer is Blizzard's clock and starts when the key is activated. The Warcraft Logs fight window starts at the first combat event and is 20 to 40 seconds shorter. Use the keystone time for anything about the timer (how far over, whether +2 was in reach) and the fight window for anything per second. Mixing them produces a gap that does not exist.
Step 3: Split the Time Gap Before Judging Anyone
Take the difference between the two keystone times and account for it in buckets. Each bucket has a different fix.
| Bucket | How to get it | What it means |
|---|---|---|
| Bosses | Sum of boss fight durations, yours minus theirs | Raw throughput. Bosses have fixed health and everyone has full uptime, so this is the only bucket that is honestly about damage. |
| Trash in combat | Sum of trash pull durations, yours minus theirs | Mostly pull size. Bigger pulls die faster per mob because cleave and AoE scale with targets. |
| Not in combat | Keystone time minus all combat time, yours minus theirs | Walking, waiting, regrouping. Usually the biggest bucket in a depleted key and the cheapest to fix. |
| Overpull | Enemy forces you killed above 100%, priced at your own trash damage rate | Time spent killing mobs the key did not ask for. |
Do not add overlapping buckets together. If the other group chained two packs you pulled separately, the walk between your two pulls is already inside the "chain these" saving. Counting it again under "not in combat" sells the same seconds twice. Take the larger of the two, then add overpull.
Step 4: Line the Pulls Up
List each run's pulls in order with the mobs in each one. Then find the places where one group's single pull contains the mobs of two of the other group's pulls. Those are the packs they chained and you did not, and each one is a concrete, repeatable instruction for next week: pull these together.
Two cautions. Match on the mobs, not on the pull number, because one extra split early shifts every number after it. And when the dungeon has three identical packs in a row, a merged pull matches all of them, so only trust a match that is unique in the other run.
Step 5: Count Mobs by Their Deaths
The enemy forces bar in game is the number that matters, and the log does not hand it to you per pull. The pull list in the log gives instance ranges that overlap between pulls and overshoots badly. The honest count is the death events with hostility set to enemies, bucketed by timestamp into pulls. That names every mob and prices each pull against the count bar.
Step 6: Check What Got Through
Interrupts are the second place time hides. For each enemy spell, the log records how many casts began, how many were stopped and by whom, and how many completed. The completed ones are the heals that undid your damage and the fears that stopped it. Note that "began" does not equal "stopped plus completed": a cast also ends when the caster or its target dies, so do not expect the columns to add up.
Warcraft Logs files stuns and knockbacks in the same table as real kicks. Separate them, because "you let this heal through" and "you stunned it instead of kicking it" are different corrections.
Step 7: Only Then, Look at Players
With the route and the standing-still time accounted for, whatever gap is left is about play. Match players on spec where both groups brought it, otherwise on role and damage rank. Use DPS over each player's own active time, not the whole-run number.
When two players of the same spec differ, the interesting question is usually which buttons, not how many. Two
Arcane Mages in our logs cast at 42.5 and 41.7 casts a minute; the difference was one used
Arcane Orb 42 times and the other 24. One warning if you pull cast tables by hand: the party-wide cast table only returns the top few abilities per player, and a truncated list does not look truncated. Fetch each player's casts separately.
What the tool adds on top of the method
The seven steps are the fair comparison. The log holds four more layers that nobody has time to do by hand, and a key is lost in them as often as in the route: interrupts that can carry a pull, a healer who can keep everyone alive through it, deaths, and the big cooldowns. Keystone Delta prices each of them and tags every "chain these packs" suggestion with whether your kicks and your healing could carry the merged pull. Its route map draws both runs' pulls on the dungeon floor. Per player it reads what hit them and how much of it was avoidable, which defensives were ready when they died, and how often the big buttons went against how often they could have. Every section is explained here; the interrupt and avoidable-damage layers have their own guides.
Every step above, in one paste
Keystone Delta takes your Warcraft Logs link, finds runs of the same dungeon at your key level and gear if you have no opponent in mind, and produces the time budget, the pull alignment, the casts you let through and the player matchups. Every comparison gets a link you can paste into your guild's Discord.
Open Keystone DeltaSummary
Pick an opponent on your key level, your gear and your composition who barely timed it. Use the keystone clock for the timer and the log's clock for rates. Split the gap into bosses, trash, standing still and overpull, without double counting. Line the pulls up by mobs to find the packs to chain. Count mobs by deaths, separate kicks from stuns, and only then compare players on active-time DPS and on which abilities they used.