Total Dungeon Value (TDV)

Total Dungeon Value (TDV)

what it is, how it scores, and where it goes next

LythianLythianUpdated June 12, 2026

TDV: Total Dungeon Value

Podcast briefing: what it is, how it scores, and where it goes next

Mythic Dungeon League · mythicdungeonleague.win/tdv · engine 2.0.2


The question TDV answers

Every Mythic+ group argues about it in Discord: who actually carried that key?

Damage meters answer "who did the most DPS." TDV answers something harder: how valuable was each player's whole contribution? Damage, healing, interrupts, dispels, staying alive. Measured not against the four people who happened to be in your group, but against everyone in the league who plays your role. One number, 0–100, where 50 is the league median.

Every timed key any member runs feeds the system. The more the league plays, the sharper everyone's number gets.


How a run becomes a score

  • You play a key. WoW writes everything to your combat log file, every hit, heal, kick, and death.
  • The TDV helper app watches that file. The moment the key ends, it scores the run locally. The log never leaves your machine; only the scored summary is uploaded.
  • You're signed in with Discord (one-time link), so the run lands on the leaderboard attributed to you and your group-mates' characters too.
  • The website is the referee. It re-verifies the math on every upload, then recomputes the entire league's percentiles. Your run both gets scored and moves the bar for everyone else.
  • You can also just drag a log file onto the website. Same scores, same leaderboard.


    How the score is actually calculated

    Each player gets four component scores, each a percentile against the league population for their role. Then they're blended with role weights.

    Component 1: Damage

    • What it measures: DPS over the run
    • Compared against: same role, similar key level
    Component 2: Healing

    • What it measures: healers get healing per unit of group damage taken (demand-adjusted). Everyone else gets raw HPS.
    • Compared against: league healers / same role
    Component 3: Utility

    • What it measures: interrupts + dispels per minute
    • Compared against: same role, league-wide
    Component 4: Survival

    • What it measures: deaths. Absolute, not relative: 100 minus 25 per death
    • Compared against: nobody. Dying is just bad.
    Role weights say what each job is for:

    • DPS: 60% damage · 5% healing · 15% utility · 20% survival
    • Healer: 55% healing · 10% damage · 18% utility · 17% survival
    • Tank: 35% damage · 5% healing · 25% utility · 35% survival


    Three design decisions worth explaining

    Percentiles, not "percent of the top guy."

    Early TDV anchored you to the best performer in your own run, which meant a lone healer literally scored 100 by definition, every run. Now your healing is ranked against every healer performance the league has recorded. 50 = median. A 95 means something.

    Healers are judged on demand, not spam.

    Healing per unit of group damage taken. A healer in a clean run isn't punished for having nothing to heal, and one who keeps a wipe-fest alive gets credit for it.

    The skill floor protects small samples.

    With only a handful of runs in a bracket, scores shrink toward 50 instead of pretending tiny samples are precise. As the league uploads more, the shrinkage fades naturally.


    The receipts behind the number

    On top of the four components, every run card shows Blizzard's own per-run rating (pulled straight from the log), full score breakdowns, what each player kicked, what they got hit by, and damage into the skull target.


    How we leverage it

    • League nights with stakes. Every key anyone runs, pug or premade, feeds the same board. MVP of the week, best healer percentile, most improved: all queryable.
    • Identity built in. Runs attribute to Discord accounts, characters link to league profiles. The board is people, not anonymous logs.
    • Content. Run pages are receipts. "You say you carried, the kick count says otherwise" is a podcast segment that writes itself. Weekly board reviews, call-outs, trash talk with citations.
    • Zero-friction onboarding. Sign in with Discord once, link the helper once. After that, finishing a key is uploading it.


    How it grows

    The flywheel: every upload sharpens the percentiles for everyone, which makes the board more credible, which attracts more uploads. Small leagues get fuzzy-but-fair scores (shrinkage); big leagues get razor-sharp ones. Same system, no retuning.

    Engine 2.1: "awareness" scoring (designed, not yet built): beyond how much, measure how well. Interrupt opportunities converted vs missed, tank mitigation skill (Brewmaster purify efficiency is now measurable, that's the right home for the Stagger data), death timing cost (a death at the last boss ≠ a death on trash), curated avoidable-damage lists per dungeon.

    Finer brackets as data grows: key-level bands and per-spec comparisons get narrower automatically as the population fills in.

    Season story-telling: percentile history per character, season resets, "most improved" arcs. The data model already keeps everything needed.

    Beyond the league: the engine is a self-contained module; any community could run the same stack. The integrity layer (verified uploads, versioned scoring, self-healing runs) is the differentiator, not the arithmetic.


    The honest part

    • Small leagues will feel fuzzy at first. The shrinkage model handles it, but if you've got 30 people and two of them play Brewmaster, those percentiles won't mean much yet. That's the tradeoff of percentile-anchoring over raw scores.
    • The Midnight addon change is a real constraint, not a selling point we invented. If Blizzard restores combat log access later, the desktop helper still works fine. But we should be honest that the architecture was partly forced by a design change we didn't control.
    • Awareness scoring (2.1) is designed on paper but not built. The Stagger fix proved the engine can differentiate skill from volume. The awareness scoring is the natural next step, but it's a quarter of real engineering, not a config change.


    Quick numbers

    • Score range 0–100, median pinned at 50
    • 4 components × 3 role-weight profiles, percentile-anchored
    • Death penalty: −25 survival per death, no curve, no excuses
    • The log never leaves your machine. Only scores upload.
    • Engine 2.0.2. Every stored score stamped with the engine that produced it, and the system knows which old numbers not to trust.

    Related Guides