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

Winner: Dire. Score 17:48, duration 29:04. 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

  • Shadow Shaman — YOO: 0/13/13, 5,030 net worth, 246 GPM. Played poorly Lane efficiency 40% of par for your role — you left the lane already behind.
  • Phantom Lancer — 孤傲无双Keyser: 3/7/1, 10,635 net worth, 395 GPM. Played poorly The enemy had Slark, and you bought no sentry or dust all game.
  • Dazzle — Saul Goodman: 1/10/6, 4,559 net worth, 192 GPM. Played poorly Lane efficiency 32% of par for your role — you left the lane already behind.
  • Pangolier — Shub: 5/6/2, 9,958 net worth, 360 GPM. Played poorly
  • Riki — 7Mahdi7: 8/12/0, 8,552 net worth, 336 GPM. Played poorly Omniknight killed you 8 times — that is a read pattern, not bad luck: change position or hold a counter for that hero.

Dire

  • Lion — ✪MartinLooterKing✪: 2/7/14, 8,528 net worth, 314 GPM. Played poorly Lane efficiency 32% of par for your role — you left the lane already behind.
  • Omniknight — Raf: 22/0/16, 23,540 net worth, 798 GPM. Carried the game Only 1 teleports in 29 min: you rarely made it to another lane in time.
  • Dragon Knight — ALWAYSWANNAKNOW: 6/3/11, 15,903 net worth, 550 GPM. Played well 28% of all damage you took came from one source — Poison Touch. That is what the build should have answered.
  • Winter Wyvern — MyaHue: 6/3/23, 9,777 net worth, 359 GPM. Played well Lane efficiency 39% of par for your role — you left the lane already behind.
  • Slark — 電次くん: 11/4/12, 15,385 net worth, 537 GPM. Played well 28% of all damage you took came from one source — Swashbuckle. That is what the build should have answered.

The fight that decided it — 13:07, Bot

Winning side: dire. Deaths in the fight: 3, gold swing 1,973.

  • Phantom Lancer: 586 damage. Cast: Spirit Lance, Doppelganger
  • Dazzle: 96 damage. Cast: Poison Touch, Shallow Grave. Ultimate never cast
  • Shadow Shaman: 0 damage. Cast: Ether Shock. Ultimate never cast
  • Pangolier: 0 damage. Cast: Swashbuckle, Shield Crash. Ultimate never cast
  • Riki: 0 damage. Cast: Blink Strike
  • Omniknight: 815 damage, killed Phantom Lancer. Cast: Purification
  • Winter Wyvern: 537 damage, killed Dazzle. Cast: Arctic Burn, Splinter Blast. Ultimate never cast
  • Dragon Knight: 415 damage, killed Shadow Shaman. Cast: Dragon Tail, Breathe Fire. Ultimate never cast
  • Lion: 447 damage. Cast: Finger of Death, Earth Spike, Hex, Mana Drain
  • Slark: 380 damage. Cast: Pounce, Dark Pact, twin_gate_portal_warp. Ultimate never cast
DuelsRewardsMarketBlogProfile