// diagnose
Win Loss Analysis
Use when the user wants to understand why deals are won or lost and turn it into patterns they can act on. Also use when the user mentions win/loss, win-loss analysis, why we lose deals, deal post-mortem, lost-deal reasons, competitive losses, sales feedback, or "why aren't we closing." Produces a structured win-loss summary — top win and loss reasons, patterns by segment and competitor, the no-decision rate, and prioritized fixes for product, pitch, and process.
npx skills add sarojkjha/aaj-marketing-skills --skill win-loss-analysis// when to use it
Use when the user wants to understand why deals are won or lost and turn it into patterns they can act on. Also use when the user mentions win/loss, win-loss analysis, why we lose deals, deal post-mortem, lost-deal reasons, competitive losses, sales feedback, or "why aren't we closing." Produces a structured win-loss summary — top win and loss reasons, patterns by segment and competitor, the no-decision rate, and prioritized fixes for product, pitch, and process.
// what you give
A list of recent closed deals (won and lost) with outcome, segment, competitor, and any reason notes.
// what you get
A win-loss summary — ranked win/loss reasons, patterns by segment and competitor, no-decision rate, and prioritized fixes.
Win-Loss Analysis
Turn scattered deal outcomes into the few patterns that explain most of your wins and losses — and the fixes worth making.
When to use
When deals are closing below target and the reasons aren't clear, the same kinds of deals keep slipping away, or before changing the pitch, packaging, or process — so the change targets a real pattern, not a guess.
Before you start
- Read the brand/product context first. Pull ICP, positioning, and competitors from
.agents/product-marketing.md(or.agents/aaj-brand.md). If none exists, ask the user for the essentials. - Gather inputs: a list of recent closed deals — won and lost — each with outcome, segment, competitor (if any), and the stage a lost deal died at. If reasons aren't recorded, run quick win-loss interviews (3–4 questions: why us / why not / who else / what tipped it).
- Confirm the objective: the few patterns driving outcomes, and the fixes they imply. If there aren't enough closed deals to see a pattern, say so and gather more first.
Method
Most wins and losses trace to a handful of repeated causes, not unique stories. Code outcomes into a small, consistent set of reasons, rank them by frequency and revenue weight, and separate what you can fix (pitch, process, packaging) from market reality (no budget, bad fit). Patterns usually differ by segment and competitor — read those cuts before concluding.
Workflow
- Assemble the set. Label each deal won/lost, segment, competitor, and the stage it was lost at.
- Code the reasons into a small, consistent set (price, product gap, timing, champion lost, lost to Competitor X, no decision) — don't let every deal have a unique reason.
- Rank loss and win reasons by both frequency and revenue weight; they often differ.
- Cut by segment and competitor. Patterns usually diverge (lose on price in SMB, win on depth in mid-market).
- Split fixable-by-us (pitch, process, packaging) from market reality, and focus on the first.
- Translate the top 2–3 patterns into specific fixes, each owned by product, pitch/marketing, or sales process, and present them.
Reference
This skill bundles no data files. Pull ICP, positioning, and the competitor set from .agents/product-marketing.md; everything else comes from the user's deal data.
Present the result
- Top win reasons — ranked, with frequency and revenue weight.
- Top loss reasons — ranked the same way.
- Patterns by segment and by competitor.
- No-decision rate — called out separately (losing to "nothing" is a different problem than losing to a rival).
- Prioritized fixes — each tagged product / pitch / process, with the pattern it addresses and the rough share of deals it touches.
Guardrails & common mistakes
- Code from evidence, not anecdote. Every reason must trace to real deal data; one memorable loss isn't a pattern.
- Mind the sample size. Say plainly when there aren't enough deals to conclude — flag thin samples rather than over-reading them.
- Separate competitive loss from no-decision. They have different fixes; lumping them hides the real problem.
- Tie each fix to a number. A fix should name the pattern and the share of deals it would affect, or it's just an opinion.
Related AAJ resources
- AAJ tools — https://aajconsult.com/tools/win-loss-analyzer
- AAJ Playbook - https://aajconsult.com/playbooks/win-loss-analysis
Related skills
sales-process-design · objection-handling · brand-product-context
Credits
Original AAJ skill. The Agent Skills format and the marketing-skills catalog by Corey Haines (coreyhaines31/marketingskills, MIT) were references for structure and coverage; this skill is independently written. See the repository README for the full reference list.
Quantitative engine: win-loss.js
This skill ships a deterministic engine, resources/win-loss.js, that computes the
quantitative layer of a win-loss analysis. Use it whenever you have a set of closed
deals and need the numbers — win rates, loss-reason concentration, competitive
records — before reasoning about the qualitative "why."
Input — an array of closed deals:
{ name, outcome: "won" | "lost", amount: Number, segment: String,
lossReason?: String, // lost deals only
competitor?: String } // optional, won or lost
Run it:
const { analyzeWinLoss } = require("./resources/win-loss.js");
const result = analyzeWinLoss(deals);
Returns:
summary— win rate by count and by revenue; won / lost / total revenuebySegment— win rate per segment (count + revenue), sorted by revenue at stakelossReasons— Pareto by lost revenue; each with % of lost revenue and cumulative %topReasonByCount/topReasonByRevenue— these often differ; the revenue one is the prioritycompetitors— head-to-head W-L, win rate, and lost revenue per named competitorbiggestLeak— the single segment × reason cell bleeding the most lost revenueinsights— a plain-language read-out
Verified reference — on a 14-deal example ($990K in play): win rate 42.9% by count / 38.6% by revenue; top loss reason by revenue "Missing feature" $225K (37%); competitive record 0-3 vs one competitor ($435K lost); biggest leak Enterprise × "Lost to competitor" $200K.
Scope (important): this engine computes the quantitative layer only — rates, revenue concentration, competitive records. The qualitative "why" behind losses comes from buyer interviews (covered in this skill's method), not from the calculator. Do not infer reasons the data cannot support; use the numbers to decide which deals to investigate.
Interactive version for non-agent users: https://aajconsult.com/tools/win-loss-analyzer
// faq
// install
npx skills add sarojkjha/aaj-marketing-skills --skill win-loss-analysis// run it
node .agents/skills/win-loss-analysis/resources/win-loss.js --demo// worked example
Get the worked example for win-loss-analysis
One email. The filled-in config, the output, and how to read it.
// sprint
GTM & Pipeline Launch — from $9,500, 4–8 weeks
This skill is one of the engines behind the GTM & Pipeline Launch — from $9,500, four to eight weeks.
A segment plan, launch sequence, and pipeline model — go to market with the metrics baked in.
// human in the loop
Need a human in the loop?
AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.
Skills