skills/wins-losses/SKILL.md
Analyze won and lost deals for win/loss patterns, insights, and actionable learnings — as inline text analysis or a visual HTML report with CSS charts. Use when user says "win/loss analysis", "win/loss report", "why did we lose", "win themes", "deal report", or asks about deal outcome trends. Do NOT use for aggregate conversation trends unrelated to deal outcomes — use /octave:insights instead.
npx skillsauth add octavehq/lfgtm wins-lossesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Analyze your won and lost deals to understand what's working, why you're losing, and how to improve win rates. Surface patterns, competitor intelligence, and actionable recommendations.
One analysis pipeline, two output formats:
--format report) — a self-contained visual HTML report with CSS-based charts, progress indicators, comparison bars, and metric cards — built for leadership reviews, team retrospectives, and strategic planning./octave:wins-losses [--status won|lost|both] [--period <time-range>] [--format text|report]
--status <status> - Focus on won, lost, or both (default: both)--period <range> - Time range (month, quarter, year, custom)--competitor <name> - Filter by competitor involvement--segment <name> - Filter by segment--min-amount <amount> - Minimum deal size--company <domain> - Analyze specific deal--format text|report - Inline text analysis (default) or visual HTML report--style <preset> - Style preset for the HTML report/octave:wins-losses # Overview of recent wins/losses
/octave:wins-losses --status lost --period quarter # Lost deals this quarter
/octave:wins-losses --competitor "Salesforce" # Deals involving Salesforce
/octave:wins-losses --segment "Enterprise" # Enterprise deals analysis
/octave:wins-losses --company acme.com # Deep dive on Acme deal
/octave:wins-losses --format report --period "Q4 2025" # Visual HTML report
/octave:wins-losses --format report --competitor "Acme" --style paper-minimal
When the user runs /octave:wins-losses:
If no options provided, show overview:
What would you like to analyze?
1. Full Analysis - Compare wins and losses
2. Win Analysis - What's working, why we win
3. Loss Analysis - Why we're losing, patterns
4. Competitor Analysis - Win/loss by competitor
5. Deal Deep Dive - Analyze specific deal
Your choice:
Output format. Default is text. Switch to the HTML report when the user passes --format report or asks for a "win/loss report", "deal report", or something visual for leadership. The report format covers the full analysis, win analysis, loss analysis, and competitor analysis; the deal deep dive is text-first — offer to spotlight the deal inside a full report if the user wants a document.
Call shapes: list_events takes event-type and entity filters inside filters; list_findings requires a natural-language query and takes the same filters inside eventFilters. The single full tool table — core deal data, conversation intelligence, library context, competitor-focused, and deep-dive queries — is in tool-reference.md.
For Overview:
# Get won deals
list_events({
startDate: "<period start>",
endDate: "<today>",
filters: { eventTypes: ["DEAL_WON"] },
limit: 50
})
# Get lost deals
list_events({
startDate: "<period start>",
endDate: "<today>",
filters: { eventTypes: ["DEAL_LOST"] },
limit: 50
})
# Get findings from won deals
list_findings({
query: "objections raised, value props presented, proof points cited, competitors mentioned",
startDate: "<period start>",
endDate: "<today>",
eventFilters: { outcomeFilters: ["WON"] },
limit: 100
})
# Get findings from lost deals
list_findings({
query: "objections raised, value props presented, competitors mentioned, loss reasons",
startDate: "<period start>",
endDate: "<today>",
eventFilters: { outcomeFilters: ["LOST"] },
limit: 100
})
For Competitor Analysis:
list_findings({
query: "<competitor name> mentions, comparisons, and competitive objections",
startDate: "<period start>",
endDate: "<today>",
eventFilters: {
competitors: ["<competitor_oId>"]
}
})
For Deal Deep Dive:
list_events({
startDate: "<lookback>",
filters: {
eventTypes: ["DEAL_WON", "DEAL_LOST", "CALL_TRANSCRIPT", "EMAIL_SENT", "EMAIL_REPLY_RECEIVED"],
companyDomains: ["<domain>"]
}
})
list_findings({
query: "objections, pain points, decision criteria, competitors, commitments",
eventFilters: {
companyDomains: ["<domain>"]
}
})
get_event_detail({
eventOId: "<event_oId>",
includeTranscript: true
})
Bucket the returned findings yourself — group by theme (objection types, value props, competitors, loss reasons), then compare the won-deal buckets against the lost-deal buckets. For each theme, track: frequency in wins vs losses, associated deal value, and representative quotes. This won/lost contrast is the core of the analysis; supplement with get_event_detail on the 3-5 most instructive deals.
See full-win-loss-report.md for the full win/loss analysis template.
See loss-analysis.md for the loss analysis template.
See deal-deep-dive.md for the deal deep dive template.
When the format is report, run the same data gathering and pattern analysis (Steps 2-3), then:
paper-minimal, soft-light) suit data-heavy reports; skip the prompt if --style was provided..octave-reports/
└── win-loss-<YYYY-MM-DD>/
└── win-loss-report.html
The .octave-reports/ directory is gitignored — nothing here gets committed.--skip-review or "skip review". Tell the user at intake that you'll review before finishing.bash "${CLAUDE_PLUGIN_ROOT:-.}"/scripts/export-pdf.sh <path-to-html> — or Cmd+P / Ctrl+P → Save as PDF.Step 6 (recommendations and library updates) applies to both formats — after delivering a report, offer to apply its recommendations to the library in the conversation.
Based on analysis, offer actionable next steps:
Based on this analysis, I recommend:
IMMEDIATE ACTIONS
-----------------
1. Create Competitor A TCO battlecard section
→ /octave:battlecard --competitor "Competitor A"
2. Update Motion ICP discovery guidance with budget qualification
→ update_motion_playbook with new methodology/objection content for the relevant Motion ICP cell
3. Review current pipeline for similar patterns
→ /octave:research --for pipeline-review
STRATEGIC RECOMMENDATIONS
-------------------------
1. Consider pricing/packaging review for competitive segment
2. Create "pilot program" offer for price-sensitive deals
3. Develop CFO-specific value story
Would you like me to execute any of these?
Apply approved library updates via update_entity (competitors, personas, segments) and update_motion_playbook (Motion ICP narrative sections).
list_events - Deal outcomes and activity (event types via filters.eventTypes)list_findings - Conversation findings (natural-language query + eventFilters)get_event_detail - Detailed event info with transcript/contentget_entity - Competitor, persona detailslist_all_entities / list_entities - Competitor, segment, persona, proof point inventorieslist_motions - List Motions in the workspacelist_motion_icps - List Motion ICP cells under a Motionfind_motion_icp - Motion ICP narrative + Learning Loop learningssearch_knowledge_base - Find related contentsearch_resources - Uploaded CRM exports, deal data filesupdate_entity - Apply recommendations to libraryupdate_motion_playbook - Edit Motion Playbook narrative sections based on win/loss findingsNo Deals Found:
No won/lost deals found for this period.
This could mean:
- CRM integration isn't syncing deal outcomes
- Date range has no closed deals
- Filters are too restrictive
Check your Octave CRM integration settings, or expand the date range.
Insufficient Data (Fewer Than 5 Deals):
Only [N] deals found for [period]. Win/loss analysis is most useful with 5+ deals.
Options:
- Proceed anyway — I'll analyze what's there (patterns may be unreliable)
- Expand the time period to capture more deals
- Remove filters to include all segments/competitors
Missing Deal Data:
Deal found but limited conversation data.
For better analysis, ensure:
- Calls are being recorded and synced
- Emails are connected
- Findings extraction is enabled
Octave Connection Failed:
Could not connect to your Octave workspace.
Win/loss analysis requires deal data from Octave. Check your MCP configuration or run
/octave:workspace status.
/octave:insights - Broader findings across all events/octave:analyzer - Deep dive on specific conversations/octave:battlecard - Competitive battlecards from win/loss data (text or HTML doc)/octave:research - Research for current pipeline deals/octave:icp-refine - Refine ICP definitions from deal patterns/octave:pipeline - Current pipeline coaching and deal strategy/octave:deck - Present win/loss findings to leadership as a slide deck/octave:enablement - Turn win/loss learnings into training materialsdevelopment
Turn one or more Octave GTM Explorer / Beats reports into a branded, shareable digest with selectable insight scope, evidence depth, and output format. Use when the user asks for a report digest, weekly or monthly insight recap, executive intelligence brief, magazine-style insight story, report deck, or a recurring published summary of Octave insights.
content-media
Product and feature launch planning with full content kit generation across channels and audiences. Use when user says "launch plan", "product launch", "feature announcement", "GTM plan for launch", "launch content kit", or mentions launching something new.
development
A dense internal deal room a rep hands to a champion so they can run the buying-committee sell without you in the room. Quantified business case, stakeholder map with per-seat ammo, objection handling, and a path to yes, rendered as self-contained HTML. Use when user says "champion deal room", "arm my champion", "help my champion sell internally", "internal business case for [deal]", or wants a champion enablement doc. For a customer-facing top-of-funnel page use /octave:microsite; for the formal closing proposal use /octave:proposal.
data-ai
Analyze email threads, call transcripts, and conversations for resonance, adherence to messaging, and competitive differentiation. Use when user says "analyze this call", "how did the email land", "score this thread", "conversation analysis", or pastes conversation content to evaluate.