Match autopsy

DOTA
AUTOPSY

Paste a match ID and get the whole game taken apart: every death on the map, every item that never got used, and an honest verdict on all ten players.

Find the ID in your Dota 2 match history, or in any Dotabuff link.Free, no account needed — just paste the ID.

What you get

Death map

Every kill, ward and rune where it actually happened — with the hero portrait and the minute.

Teamfights

Who started it, who showed up, and who was farming a jungle camp instead.

Build audit

Gold spent on items that sat in the bag, and the actives that were never pressed.

Hero percentiles

Not "low farm" — "GPM below 78% of players on this hero".

A verdict on each player

Decided by fixed rules in our engine, not by a model's mood.

AI breakdown on demand

The model gets the finished numbers and explains what to do about them.

How it works

  1. 1

    Paste the ID

    Any public match. Parsed replays give more — deaths, wards and fights on the map.

  2. 2

    Open the tabs

    Overview, players, map, fights, team report. All of it free and instant.

  3. 3

    Order the analysis

    Pick a player and let the model turn the numbers into a plan for the next game.

Dota 2 — match 9018256284 breakdown

Winner: Dire. Score 42:60, duration 56:21. Below is a verdict on each of the ten players, a breakdown of the decisive fight and the main mistakes, computed from match data.

Radiant

  • Techies — Combat.unit: 1/15/21, 16,062 net worth, 393 GPM. Played poorly Anti-Mage killed you 8 times — that is a read pattern, not bad luck: change position or hold a counter for that hero.
  • Dawnbreaker — Cloud: 8/11/19, 21,964 net worth, 470 GPM. Played well Axe killed you 5 times — that is a read pattern, not bad luck: change position or hold a counter for that hero.
  • Lifestealer — trvs: 8/11/15, 21,538 net worth, 479 GPM. Played well The enemy had Invoker, and you bought no sentry or dust all game.
  • Broodmother — Nose: 15/8/9, 28,823 net worth, 653 GPM. Played well The enemy had Invoker, and you bought no sentry or dust all game.
  • Rubick — Belowme: 9/15/12, 18,827 net worth, 416 GPM. Played poorly Lane efficiency 37% of par for your role — you left the lane already behind.

Dire

  • Invoker — Manz_No_Deadinside: 12/7/28, 24,827 net worth, 541 GPM. Played well The enemy had Broodmother, and you bought no sentry or dust all game.
  • Axe — qWeno: 10/11/27, 23,126 net worth, 519 GPM. Played well Rubick killed you 5 times — that is a read pattern, not bad luck: change position or hold a counter for that hero.
  • Anti-Mage — Bonzo: 19/6/20, 41,571 net worth, 770 GPM. Carried the game The enemy had Broodmother, and you bought no sentry or dust all game.
  • Winter Wyvern — Hide: 11/6/31, 25,380 net worth, 552 GPM. Support MVP Lane efficiency 32% of par for your role — you left the lane already behind.
  • Disruptor — buhbye-U-detective: 5/12/36, 16,826 net worth, 337 GPM. Played poorly Lane efficiency 38% of par for your role — you left the lane already behind.

The fight that decided it — 54:29, Mid

Winning side: dire. Deaths in the fight: 7, gold swing 4,423.

  • Broodmother: 7,428 damage, killed Invoker, Disruptor. Cast: Spawn Spiderlings, Spin Web, Insatiable Hunger. Buybacks: 1
  • Techies: 7,685 damage. Cast: Proximity Mines, Sticky Bomb, Reactive Tazer, Detonate Tazer, Blast Off!. Buybacks: 1
  • Lifestealer: 1,911 damage. Cast: Rage. Ultimate never cast
  • Anti-Mage: 8,362 damage, killed Techies, Techies. Cast: Mana Void, Blink, Counterspell
  • Invoker: 2,627 damage, killed Lifestealer. Cast: Invoke, Exort, Wex, Quas, Sun Strike, Tornado, Chaos Meteor
  • Winter Wyvern: 4,456 damage, killed Broodmother. Cast: Winter's Curse, Splinter Blast, Cold Embrace, Arctic Burn
  • Axe: 3,903 damage. Cast: Battle Hunger, Berserker's Call. Ultimate never cast. Buybacks: 1
  • Disruptor: 1,591 damage. Cast: Static Storm, Kinetic Field, Thunder Strike
DuelsRewardsMarketBlogProfile