# 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.

- Skill: `sarojkjha/win-loss-analysis` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add sarojkjha/win-loss-analysis`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sarojkjha/win-loss-analysis/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: sarojkjha (https://skillmd.com/u/sarojkjha)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/sarojkjha/win-loss-analysis

---


# 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

1. **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.
2. **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).
3. **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

1. **Assemble the set.** Label each deal won/lost, segment, competitor, and the stage it was lost at.
2. **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.
3. **Rank** loss and win reasons by both frequency and revenue weight; they often differ.
4. **Cut by segment and competitor.** Patterns usually diverge (lose on price in SMB, win on depth in mid-market).
5. **Split fixable-by-us** (pitch, process, packaging) from market reality, and focus on the first.
6. **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 revenue
- `bySegment` — win rate per segment (count + revenue), sorted by revenue at stake
- `lossReasons` — Pareto by lost revenue; each with % of lost revenue and cumulative %
- `topReasonByCount` / `topReasonByRevenue` — these often differ; the revenue one is the priority
- `competitors` — head-to-head W-L, win rate, and lost revenue per named competitor
- `biggestLeak` — the single segment × reason cell bleeding the most lost revenue
- `insights` — 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

