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 9005893576 breakdown

Winner: Dire. Score 28:53, duration 37:46. 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

  • Underlord — x: 3/12/11, 10,864 net worth, 345 GPM. Played poorly Drow Ranger killed you 5 times — that is a read pattern, not bad luck: change position or hold a counter for that hero.
  • Invoker — dong abay: 8/9/8, 12,334 net worth, 389 GPM. Played well A mid who took 0 runes in 38 min hands the tempo to the enemy for free.
  • Warlock — talong: 5/11/12, 7,794 net worth, 296 GPM. Played well Dawnbreaker killed you 6 times — that is a read pattern, not bad luck: change position or hold a counter for that hero.
  • Rubick — fying: 3/10/9, 8,692 net worth, 254 GPM. Played poorly Lane efficiency 35% of par for your role — you left the lane already behind.
  • Sniper — 优势路有串子: 9/11/7, 14,094 net worth, 418 GPM. Played poorly Storm Spirit killed you 5 times — that is a read pattern, not bad luck: change position or hold a counter for that hero.

Dire

  • Storm Spirit — MR SCIENCE: 17/1/17, 26,336 net worth, 711 GPM. Carried the game
  • Snapfire — 0000: 4/11/24, 15,001 net worth, 447 GPM. Played poorly Lane efficiency 43% of par for your role — you left the lane already behind.
  • Bounty Hunter — ZTR.: 5/9/20, 14,970 net worth, 430 GPM. Played poorly Lane efficiency 56% of par for your role — you left the lane already behind.
  • Drow Ranger — クシナダ: 10/5/11, 25,457 net worth, 716 GPM. Played well 6250 gold sat in items you never activated — above all Black King Bar.
  • Dawnbreaker — Vind: 17/2/22, 25,051 net worth, 676 GPM. Played well Only 4 teleports in 38 min: you rarely made it to another lane in time.

The fight that decided it — 30:40, Mid

Winning side: dire. Deaths in the fight: 9, gold swing 5,582.

  • Warlock: 5,061 damage, killed Snapfire. Cast: Chaotic Offering, Shadow Word, Fatal Bonds, Upheaval. Buybacks: 1
  • Underlord: 1,383 damage, killed Bounty Hunter. Cast: Pit of Malice, Firestorm. Ultimate never cast. Buybacks: 1
  • Invoker: 2,991 damage. Cast: Invoke, Exort, Quas, Wex, Tornado, E.M.P., Cold Snap, Ghost Walk, Sun Strike, Chaos Meteor, Forge Spirit, Deafening Blast
  • Sniper: 457 damage. Cast: Shrapnel, Take Aim. Ultimate never cast
  • Rubick: 362 damage. Cast: Spell Steal, Track, Fade Bolt, Telekinesis
  • Storm Spirit: 8,106 damage, killed Rubick, Sniper, Underlord, Underlord. Cast: Ball Lightning, Static Remnant, Electric Vortex
  • Dawnbreaker: 4,576 damage, killed Invoker, Warlock, Warlock. Cast: Solar Guardian, Starbreaker, Celestial Hammer, Converge
  • Bounty Hunter: 1,036 damage. Cast: Track, Shuriken Toss, Shadow Walk
  • Snapfire: 1,030 damage. Cast: Firesnap Cookie, Lil' Shredder, Scatterblast. Ultimate never cast
  • Drow Ranger: 4,092 damage. Cast: Gust, Multishot, Glacier
DuelsRewardsMarketBlogProfile