Cross-Stage RevOps Sales LeadershipRevOpsMarketing

Win-Loss Analysis on Evidence: A Quarterly Claude Agent That Codes Every Closed Deal

Every CRM has a loss-reason field, and in most of them 'price' wins by a mile, because it is the first option and the least embarrassing. The real reasons are on the calls. This play puts a Claude agent on every deal closed in the quarter: it reads the CRM fields, the transcripts, and the buyer interviews, codes each deal against a taxonomy you own with the buyer's quote behind every code, and quantifies the patterns by segment and competitor. The report that lands in the QBR says why you actually lost, in the buyer's words, and how often.

StageCross-Stage
Time to buildA day
DifficultyIntermediate
Best forSales Leadership, RevOps, Marketing
THE TEMPLATE

The win-loss coding template

Six loss families with sub-codes, the mirror set for wins, the evidence rules, and the eight-question buyer interview guide. Rewrite the sub-codes from your own last twenty losses, save it as taxonomy/win-loss.md, and the agent codes every closed deal against it each quarter with the buyer's quote behind every code.

Loss codes, win codes, evidence rules, and the interview guide
Loss families and sub-codes
  • price: over budget · cheaper alternative chosen · value not established · discount expected and refused
  • product gap: missing integration (name it) · missing capability (name it) · scale or performance · security or compliance requirement
  • competitor: won on product · won on price · incumbent or bundled · relationship
  • timing: budget cycle · reorg or leadership change · project deprioritized
  • champion loss: champion left · champion demoted or moved · no champion ever emerged
  • no decision: budget pulled · priority changed · evaluation stalled · economic buyer never engaged
Win codes (mirror)
  • specific capability (name it) · the integration (name it) · speed to first value · champion relationship · price or packaging · incumbent failed · security or compliance passed
Evidence rules
  • one primary code, up to two secondary; taxonomy codes only
  • every code cites a quote with its source: interview (date) > call (date, speaker) > CRM close notes
  • no evidence, no code: INSUFFICIENT EVIDENCE with what was missing; report coverage as a headline number
  • record the rep's picklist entry beside the primary code; report the gap as a table
  • note the stage lost at and days in stage; a late loss after a long evaluation is a different story from an early one
Buyer interview guide (8 questions, 25 minutes)
  • What was happening in the business that started this evaluation?
  • Who else did you look at, and what did each do well?
  • What was the moment you knew which way you would go?
  • What did we do that made your decision harder? Easier?
  • If we had changed one thing, would the outcome have changed? What?
  • How did the process feel: the pace, the people, the paperwork?
  • What did the winner do in the last two weeks that we did not?
  • What would you tell a peer evaluating us next quarter?

The 'no decision' family is the part I would defend hardest. It is usually the largest loss category, it has been absorbed into 'price' in most CRMs for years, and its sub-codes point at process fixes a RevOps team can make this quarter.

The stack

The stack

How the tools connect
What a run costs
Per quarter
one run over 100-150 deals and 300-500 transcripts, tens of dollars on a mid-tier model; cache the taxonomy
CRM + call recorder + Notion + Slack
free over MCP; interviews as notes in a folder
Setup
a day: the taxonomy with the head of sales against twenty losses, the brief, one quarter run and checked by hand
The saving
the forty hours of call reading nobody did, and the roadmap quarter spent on a discount tier the buyers never asked for
The problem

The problem

The loss-reason picklist I built had nine options. At the end of the first quarter, 71% of lost deals were 'price'. Then we read the calls on twenty of them. Price came up on seven. On the rest, the buyer had asked for an integration we did not have, or a champion had left in month two, or the evaluation had simply stopped and nobody on either side had said why. The picklist was measuring which option was at the top of the dropdown and which reason a rep could give a manager without a follow-up question.

This is how win-loss analysis fails inside most companies. The data that exists (a required field set under deadline, by the person least able to be objective) is treated as the truth, and the data that would correct it (a quarter of recorded calls and the buyers themselves) is never read, because reading it is forty hours of work nobody has. So product hears 'price' and cuts a discount tier, marketing hears 'price' and writes a value-based messaging deck, and the integration gap that lost eleven deals stays off every roadmap.

The outsourced version, a research firm interviewing a dozen buyers a quarter, is genuinely valuable and structurally too small. Twelve interviews describe twelve deals. The other ninety closed deals stay uncoded, and the report arrives eight weeks after the quarter ends, once the pattern it describes is already a quarter old.

A Claude agent does what a research team with unlimited time would do: read every deal closed in the quarter, the CRM fields and the stage history, every call transcript, and the interview notes where they exist, and code each deal against a taxonomy your team wrote, with the buyer's own words as the evidence for every code. Then count. Losses by primary reason, by segment, by competitor, by stage lost at, with the quotes that show it. Wins the same way, because knowing why you win is the half of win-loss everyone skips. The rep's picklist entry becomes one input among several, and the report reads like a case built by someone who listened to all of it.

How it works

How it works

The workflow, end to end
  1. 01 Fire week one Claude Code (scheduled)every deal closed last quarter
  2. 02 Read the deals HubSpot (MCP)stage history, competitor, picklist, notes
  3. 03 Read the calls Gong / Fireflies (MCP)the buyer's reason, said once
  4. 04 Read the interviews Notes in the folderwhat buyers never tell the rep
  5. 05 Code Claudetaxonomy, quote per code, picklist gap
  6. 06 Count + write Claudeby segment, competitor, stage; five findings
  7. 07 Publish Notion + Slack (MCP)report to Notion, findings to leadership
  • A scheduled Claude Code job runs in the first week of each quarter and pulls every deal closed-won or closed-lost in the prior quarter from the CRM over MCP: amount, segment, source, stage history, competitor field, the rep's loss reason, and the activity log
  • For each deal it reads the call transcripts over MCP and any buyer interview notes in the folder, looking for the buyer's stated reasons, the objections that recurred, and the moment the deal turned
  • It codes each deal against your taxonomy: one primary reason, up to two secondary, each backed by a quote with its source (call date and speaker, interview, or CRM note), and notes where the rep's picklist entry disagrees with the evidence
  • It quantifies: losses and wins by primary reason, by segment, by competitor, by stage lost at, by rep, and by source, with the picklist-vs-evidence gap called out
  • It writes the quarterly report: the five findings that matter with quotes, the competitor view, the segment view, what changed from last quarter, and a recommendations section marked for leadership to decide
  • It publishes the report to Notion, posts the summary to the leadership channel, and writes the coded deal table back to a file so the next quarter's run can show movement
See it run

See it run

zsh
$# First Monday of the quarter: code every closed deal from Q3 against the taxonomy, quantify, write the report (read-only sources)
$claude -p "$(cat briefs/win-loss.md)" --allowedTools mcp__hubspot__search_deals,mcp__hubspot__get_deal,mcp__hubspot__get_activities,mcp__gong__list_calls,mcp__gong__get_transcript,mcp__notion__create_page,mcp__slack__post_message,Read,Write
Q3 closed: 118 deals · won 41 ($2.31M) · lost 77 ($3.96M) · win rate 34.7%
Read 412 calls (Gong) · 11 interview notes · coverage: 104 of 118 deals with quotable evidence (88%)
Coded 118 · losses primary: no decision 24 · missing integration 17 · competitor 15 · price 14 · champion lost 5 · timing 2
Picklist gap: CRM says price 55 of 77 (71%) · evidence says price 14 (18%)
Report written: reports/2026-Q3/win-loss.md · published to Notion · 5 findings posted to #leadership · coded table: data/2026-Q3-coded.csv
$
The playbook

The playbook

Write the taxonomy your losses actually fall into

Start with twenty lost deals from last quarter and read the last two calls on each with the head of sales. Write down the real reason in a sentence, then group the sentences. The groups are your taxonomy, and they are almost always more specific than the picklist: 'product gap' splits into 'missing integration' and 'missing capability'; 'competitor' splits by which one and whether they won on product, price, or incumbency; 'no decision' turns out to be the largest category nobody had a dropdown option for.

The coding template below is the taxonomy I start from: six primary families with sub-codes, a rule that every deal gets one primary and up to two secondary codes, and a rule that every code needs a quote. Write a one-line definition for each sub-code so the agent codes consistently across a hundred deals, which is the thing no team of humans reading calls on different afternoons has ever managed.

Code the wins too, with a mirror taxonomy: why they bought (a specific capability, the integration, the champion, speed, price, the relationship). A win-loss report with only losses tells product what to fix and tells marketing nothing about what to say. The wins are where the message is.

💡

TipGive 'no decision' its own family with sub-codes (budget pulled, priority changed, evaluation stalled, champion lost). It is usually the largest category, and 'price' has been absorbing it for years.

Connect the CRM and the call recorder, and gather the interviews

Connect HubSpot or Salesforce over MCP and confirm the agent can pull the quarter's closed deals with the fields that matter: amount, segment, lead source, stage history with dates, the competitor field, the rep's loss reason and notes, and the activity log. The stage history is more useful than it looks; a deal lost after four weeks in Evaluation is a different story from one lost the week after the pricing call.

Connect Gong or Fireflies so the agent can read every call on each deal. The buyer's real reason is usually on the second-to-last call, said once, in passing, and the rep's picklist entry was written three weeks later. The MCP directory covers what each recorder exposes.

Keep doing buyer interviews, eight to twelve a quarter, and drop the notes or transcripts in the run's folder. Buyers tell an interviewer things they will never say to the rep, especially about the rep, and the agent should weight an interview quote above a call quote when they disagree. The interviews get smaller in cost and bigger in value when the agent is coding the other ninety deals around them.

  • Reads: every deal closed in the quarter: amount, segment, source, stage history, competitor, loss reason, notes, activity log
  • Reads: every call on each deal: date, attendees, transcript; plus interview notes and transcripts in the folder
  • Reads: the taxonomy file and last quarter's coded deal table, for movement
  • Writes: the coded deal table, the report in Notion, a Slack summary. Never a CRM field, never a message to a buyer or a rep

Write the brief so every code carries a quote

The brief is the taxonomy turned into a run, plus the rule that keeps the report honest: every code cites the buyer's words with a source, and a deal with no quotable evidence is coded 'insufficient evidence' rather than guessed. When the agent codes a loss as 'missing integration', the report shows the buyer saying 'if it talked to Workday we would be signing today' on the call of August 14. Product can argue with the priority. Nobody can argue with the quote.

Ask it to record the rep's picklist entry beside its own code for every deal and to report the gap. The gap is the finding most teams have never seen: 71% 'price' in the CRM against 23% price on the evidence. That single table changes how leadership reads the CRM field forever, and it makes the case for the agent better than any explanation.

Tell it to count before it narrates. Primary reason by segment, by competitor, by stage lost at, by source, by rep, wins and losses separately, then the five findings that matter, each stated as a sentence with the number and two quotes. Recommendations go in a separate section marked 'for leadership to decide', because the agent knows what the buyers said and does not know what the roadmap can bear.

The quarterly win-loss brief
In the first week of each quarter, run the win-loss review for {{PRIOR_QUARTER}}.

Read from {{CRM}}: every deal closed-won or closed-lost in the quarter. For each: amount, segment, lead source, owner, stage history with dates, competitor field, the rep's loss reason and close notes, activity log.

For each deal read every call via {{CALL_RECORDER}} (date, attendees, transcript) and any interview notes in files/interviews/ that name the account.

Code each deal against taxonomy/win-loss.md:
- One primary code and up to two secondary codes, from the taxonomy only.
- Every code cites evidence: a quote with its source (call date and speaker, interview date, or CRM note). Interview quotes outweigh call quotes; call quotes outweigh the rep's notes.
- If no evidence supports any code, mark INSUFFICIENT EVIDENCE and say what was missing (no calls recorded, no close notes).
- Record the rep's picklist entry beside your primary code and flag disagreement.
- Note the stage the deal was lost at and the number of days in that stage.

Quantify, wins and losses separately: primary reason overall, by segment, by competitor, by lead source, by stage lost at, by rep. Report the picklist-vs-evidence gap as a table.

Write reports/{{QUARTER}}/win-loss.md:
1. Headline numbers: deals, win rate, amount won and lost, coverage (share of deals with evidence).
2. The five findings that matter, each one sentence with the number and two quotes.
3. Why we lost: primary reasons ranked, with sub-codes, segment and competitor cuts, and quotes.
4. Why we won: mirror view, with the phrases buyers used.
5. The picklist gap: CRM loss reason vs coded reason.
6. Movement from {{PREV_QUARTER}}.
7. Recommendations, marked FOR LEADERSHIP TO DECIDE, each tied to a finding.

Write the coded deal table to data/{{QUARTER}}-coded.csv. Publish the report to {{NOTION_PAGE}}. Post the headline numbers and the five findings to {{LEADERSHIP_CHANNEL}}. Write nothing to the CRM. Do not contact buyers or reps.
💡

TipPut the picklist-vs-evidence gap in the report as its own table. It is the finding that makes leadership stop trusting the dropdown and start reading the report.

Run it in week one, read it with the head of sales, ship it to the QBR

Schedule the job for the first Monday of the quarter as a scheduled Claude Code job, so the report exists before anyone has started building the QBR deck from the picklist. Read the coded deal table with the head of sales the same week: pick fifteen deals, open the quotes, and check the codes against their memory of the deal. Where they disagree, look at the evidence; usually the agent found a call the manager never heard.

Where the agent coded something the head of sales knows is wrong, the fix is usually a taxonomy definition that is too loose, or a deal where the decisive conversation happened off the recorder. Both get written down: the first as an edit to the file, the second as a coverage gap in the report, which is itself a finding about how the team sells.

Ship the five findings to the QBR with the quotes attached, and send product the 'why we lost' section and marketing the 'why we won' section directly. The report is only useful if the people who can act on a finding read the part that belongs to them, in the week the quarter closes, with the buyer's words in front of them.

Track whether the findings changed anything

The second quarter's run is where the play earns its place. The movement section shows whether 'missing Workday integration' fell from eleven losses to two after the integration shipped, whether the competitor that won on incumbency in Q2 kept winning in Q3, and whether the picklist gap narrowed once reps saw the report. A finding that appears two quarters running with no movement is the escalation list for the leadership meeting.

Watch the coverage number too. The share of deals with quotable evidence should climb as the team records more calls and writes better close notes, and a rep whose deals are consistently 'insufficient evidence' has a process problem the coaching play can pick up. Coverage below 70% means the report is describing the deals that happened to be recorded, and the report should say so.

Feed the wins back into the message. When the 'why we won' section shows buyers using the same phrase across twenty deals to describe the thing they bought, that phrase belongs on the homepage and in the first line of the cold email. Marketing rarely hears buyers' words unfiltered; this report hands them a quarter of them.

💡

TipRead the movement section for the finding that did not move. Two quarters of the same loss reason with the quotes attached is a roadmap conversation that is overdue.

Calibrate the taxonomy every two quarters

Every second quarter, look at where the codes pile up and where they are empty. A sub-code that holds 40% of losses is too broad and wants splitting; one that holds nothing for two quarters is noise and can go. The taxonomy is a file, and a team that edits it twice a year ends up with a set of reasons that describes its own market, which is worth more than any framework from a book.

Check the agent against the interviews. For the eight to twelve deals with a buyer interview, compare the code the agent gave from the calls alone with what the buyer told the interviewer. Where they diverge, you have learned something about what buyers say to reps versus what they say to a neutral party, and that pattern is a finding in itself, usually about the competitor or the rep.

Then share the calibration with sales, product, and marketing together. A taxonomy tuned across four quarters, with a coverage number the team trusts and a picklist gap that has visibly narrowed, is the thing that makes 'why did we lose' a question with an evidence-backed answer instead of a debate about the dropdown.

Inside the prompt

Inside the prompt

The scoring prompt is short, but every line is there for a reason. Here is what each one is doing and why.

Why each line is in the win-loss brief
Taxonomy only"One primary code and up to two secondary codes, from the taxonomy only"
Free-text reasons cannot be counted. A fixed taxonomy with written definitions is what makes a hundred deals comparable.
Evidence hierarchy"Interview quotes outweigh call quotes; call quotes outweigh the rep's notes"
Buyers say different things to a neutral interviewer, to the rep, and via the rep's memory three weeks later. The brief ranks them.
Insufficient evidence"If no evidence supports any code, mark INSUFFICIENT EVIDENCE"
The rule that stops the agent from guessing and makes coverage a reported number instead of a hidden assumption.
The picklist beside the code"Record the rep's picklist entry beside your primary code and flag disagreement"
The single table that changes how leadership reads the CRM field. 71% versus 18% needs no commentary.
Count before narrating"Quantify, wins and losses separately ... then the five findings"
The numbers come first so the findings are sentences with counts and quotes, and the report reads like a case rather than a mood.
Leadership decides"Recommendations, marked FOR LEADERSHIP TO DECIDE"
The agent knows what buyers said. It does not know the roadmap's capacity or the pricing strategy, and the section says so.
What you get

What you get

The top of the quarterly report as it lands in Notion: the headline numbers, the picklist gap, and two of the five findings with the buyer's words attached.

Example output
WIN-LOSS · Q3 2026 · 118 deals · won 41 ($2.31M) · lost 77 ($3.96M) · win rate 34.7% (Q2: 36.1%) · coverage 88%

THE PICKLIST GAP
CRM loss reason: price 55 (71%) · competitor 9 · product 7 · other 6
Coded on evidence: no decision 24 (31%) · missing integration 17 (22%) · competitor 15 (19%) · price 14 (18%) · champion lost 5 · timing 2

FINDING 1 · Missing Workday integration was the primary reason in 17 losses ($1.02M), all in the 500+ employee segment.
'If it talked to Workday we would be signing today.' (Halden Group, call Aug 14, VP People Ops)
'We can't run two systems of record for headcount.' (Ostrava Health, interview Sep 22)
Rep picklist on these 17: price 12, product 5.

FINDING 2 · 'No decision' was the largest loss category (24), and 15 of those stalled in Evaluation for 40+ days with no economic buyer on any call.
'Honestly it just fell off the list when the reorg hit.' (Corvid Analytics, interview Sep 18)
'Let me loop in finance and get back to you.' (Bexley, call Jul 30; no further calls)
Rep picklist on these 24: price 19.

WHY WE WON (41) · primary: speed to first value 14 · the Slack approvals flow 11 · champion relationship 8 · price 5 · other 3
'We were live in a week and the other vendor was still scoping.' (Northwind, call Sep 3, Director RevOps)

FOR LEADERSHIP TO DECIDE
1. Workday integration: 17 losses, $1.02M, one segment. Product to size.
2. Economic buyer by Evaluation: 15 of 24 no-decision losses never had one on a call. Stage definition change; RevOps to propose.
...
Anatomy of one coded deal
Halden Group · closed-lost Aug 29 · $61k · 500+ segment · primary: missing integration (Workday)
primary codeproduct gap > missing integration > Workday
From the taxonomy file, three levels deep. 'Product gap' alone would have told product nothing it could build.
evidence'If it talked to Workday we would be signing today.' (call Aug 14, VP People Ops)
The buyer's words, the date, the speaker. Product can argue with the priority and not with the quote.
secondary codescompetitor: Rival (incumbent HRIS suite) · timing: budget cycle Q4
Up to two. The competitor won because they were already the system of record, which is a different problem from winning on features.
rep's picklistprice
Recorded beside the coded reason and flagged. Across the quarter this column is the report's most-read table.
stage lost atEvaluation, day 47 of 47
From the stage history. Lost late, after a long evaluation, which is the pattern of a gap discovered too late, not a price objection.
interviewnone for this account
Interview quotes outweigh call quotes when both exist. The agent says which it had, so coverage is visible per deal.
Pitfalls to avoid

Pitfalls to avoid

⚠️

Trusting the picklistThe loss-reason field measures which option is at the top of the dropdown and which reason a rep can give without a follow-up question. Treat it as one input and report the gap against the evidence.

⚠️

Codes without quotes'Competitor' with no buyer quote is an opinion product will argue with. Every code cites the buyer's words and the source, or the deal is marked insufficient evidence.

⚠️

Only coding the lossesLosses tell product what to fix. Wins tell marketing what to say. A report without the mirror view leaves half the value on the table.

⚠️

A taxonomy with no 'no decision' familyIt is usually the largest category, and without its own sub-codes it gets absorbed into price. Give it budget pulled, priority changed, evaluation stalled, champion lost.

⚠️

Letting the agent recommend the roadmapThe agent knows what buyers said. It does not know what engineering can bear. Recommendations are a separate section marked for leadership to decide.

⚠️

Ignoring coverageA report built on the 60% of deals that had calls recorded describes those deals. Report the coverage number and treat low coverage as a finding about process.

FAQ

Questions people ask

What is win-loss analysis?
The practice of finding out why deals were won and lost, from evidence rather than from the rep's recollection, and turning the patterns into decisions for product, marketing, and sales. Traditionally it is a dozen buyer interviews a quarter. The version on this page has a Claude agent code every closed deal from the CRM, the call transcripts, and the interviews against a taxonomy, with the buyer's quote behind every code, so the report covers the whole quarter instead of a sample.
Why is the CRM loss reason usually wrong?
Because it is filled in by the rep, under deadline, weeks after the decisive conversation, from a dropdown where 'price' is the first option and the least embarrassing. On the deals I have seen coded against the calls, price was the picklist answer on around 70% of losses and the evidence-backed reason on 15-25%. The field is not useless; it is one input, and the gap between it and the evidence is the report's most important table.
Does this replace buyer interviews?
No, it makes them count for more. Keep interviewing eight to twelve buyers a quarter; they say things to a neutral party they never say to the rep. The agent weights interview quotes above call quotes and codes the other ninety deals around them, so the interviews stop being the whole report and become its strongest evidence.
What should the taxonomy contain?
Six primary families most B2B teams recognize, price, product gap, competitor, timing, champion loss, and no decision, each with sub-codes specific enough to act on ('missing integration: Workday' rather than 'product'), plus a mirror set for wins. Write a one-line definition per sub-code. Then calibrate it every two quarters: split any code holding 40% of losses, drop any that stays empty.
How many deals can it code?
A quarter of 100-150 closed deals with 300-500 calls runs in an afternoon for tens of dollars of tokens. The constraint is coverage: deals with no recorded calls and no close notes get coded 'insufficient evidence', and the report shows the coverage rate so nobody mistakes a sample for the whole.
Who should read the report?
Sales leadership reads all of it at the QBR. Product gets the 'why we lost' section with the quotes, because a buyer saying 'if it talked to Workday we would be signing today' is a roadmap input no ticket can match. Marketing gets 'why we won', because the phrases buyers use to describe what they bought belong in the message. Reps get the picklist gap, once, which is usually enough to change how they fill the field.
How long does it take to build?
A day. A morning writing the taxonomy with the head of sales against twenty lost deals, an afternoon connecting the CRM and the call recorder and writing the brief, then one quarter run and checked by hand against fifteen deals the head of sales remembers. The second quarter's movement section is where it starts paying.
Related

Related plays

Want playbooks like this in your inbox?

A new AI use case, prompt, or teardown every couple of weeks.

Subscribe →