skills/win-loss-report/SKILL.md
Generate visual win/loss analysis reports as self-contained HTML with CSS-based charts and data visualizations. Use when user says "win/loss report", "deal report", "visual analysis", or wants a formatted HTML version of deal outcome analysis. Do NOT use for text-based deal analysis — use /octave:wins-losses instead.
npx skillsauth add octavehq/lfgtm win-loss-reportInstall 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.
Generate beautiful, self-contained HTML win/loss analysis reports powered by your Octave deal intelligence. Unlike /octave:wins-losses which outputs text-based analysis, this skill renders structured visual reports with CSS-based charts, progress indicators, comparison bars, and metric cards -- designed for leadership reviews, team retrospectives, and strategic planning.
Uses the same CSS variable / style preset system as /octave:deck.
Before generating, decide whose brand this report should match (usually the target company; sometimes your own company). Then:
<slug> and check for a cached brand kit at ~/.octave/brands/<slug>/manifest.json.tokens.css (:root + the embedded @font-face) and get-brand-components/assets/kit_base.css into the output <style>;brand-kit.md → Signature moves, and reuse the kit's real logo, images/, and icons.json;get-brand-components/scripts/render_kit.py (hero / split / logos / pricing / cta / footer blocks)./octave:get-brand-components <domain>, then proceed.The brand kit is the strongest styling signal — when one is available, prefer it over generic
--stylepresets. See theget-brand-componentsskill for the kit format, token contract, and renderer.
After generating the asset, offer an optional review (don't force it): "Want me to run a quick review pass over this — layout, brand, narrative, groundedness, and AI-slop?" If yes, follow get-brand-components/references/asset-review.md: render/screenshot the output, inspect it across the five dimensions (render the pixels and actually look — overflow and white-on-white only show in the render), report a short scorecard of specific located findings, then fix and re-verify. Skip silently if the user declines.
/octave:win-loss-report [--period <timeframe>] [--segment <filter>] [--competitor <name>] [--style <preset>]
/octave:win-loss-report # Last 90 days, all deals
/octave:win-loss-report --period "Q4 2025" # Specific quarter
/octave:win-loss-report --competitor "Gong" # Focused on deals vs Gong
/octave:win-loss-report --segment "enterprise" # Enterprise segment only
/octave:win-loss-report --period "last 6 months" --style paper-minimal
/octave:win-loss-report --period "2025" --competitor "Salesforce" --segment "mid-market"
When the user runs /octave:win-loss-report:
If not provided via flags, ask the user interactively:
Period -- "What time range?"
What time range should this report cover?
1. Last 30 days
2. Last 60 days
3. Last 90 days (default)
4. Last 6 months
5. Specific quarter (e.g., Q4 2025)
6. Custom date range
Your choice:
Filter -- "Any specific focus?"
Do you want to filter the analysis?
1. All deals -- full cross-deal analysis
2. Specific competitor -- focus on deals involving a competitor
3. Specific segment -- filter by market segment
4. Specific rep -- filter by sales rep
5. Custom filter -- describe what you want
Your choice:
If competitor or segment is selected, use list_all_entities to show available options:
# For competitor filter
list_all_entities({ entityType: "competitor" })
# For segment filter
list_all_entities({ entityType: "segment" })
Depth -- "How detailed?"
What level of detail?
1. Executive summary -- 1-page overview with key metrics and takeaways
2. Full report -- detailed analysis with all sections and drill-downs
Your choice:
| Depth | Sections Included | Best For | |-------|-------------------|----------| | Executive summary | Header, Summary, Win Rate, Win Patterns (condensed), Loss Patterns (condensed), Recommendations | Board updates, weekly stand-ups | | Full report | All 12 sections | QBRs, strategy sessions, enablement |
Based on scope, use Octave MCP tools to gather comprehensive deal intelligence. Always tell the user what you're researching and why.
Call as many tools as needed to build a complete picture. Win/loss reports are only as good as the data behind them. Layer multiple data sources -- deal outcomes + conversation findings + library context -- to produce analysis grounded in real evidence, not speculation.
See tool-reference.md for list-vs-search guidance and the tool reference tables for core deal data, conversation intelligence, library context, and competitor-focused data.
Output of this step: Present a report outline to the user for approval before generating. See outline-template.md for the outline template.
Wait for user approval before proceeding.
Reports default to clean, data-focused light themes. Ask the user:
Which style for the report?
LIGHT THEMES (recommended for reports)
1. paper-minimal -- Off-white + black type. Editorial simplicity. (default)
2. soft-light -- Warm white + sage green. Calm and approachable.
3. swiss-modern -- White + red accent. Bauhaus minimal.
DARK THEMES
4. midnight-pro -- Dark navy, white text, blue accents.
5. executive-dark -- Charcoal + gold. Premium boardroom.
6. octave-brand -- Octave purple on dark navy.
Or provide a number/name from the full preset list (12 options in style-presets.md).
Your choice (default: paper-minimal):
Full CSS variable definitions for each preset are in style-presets.md.
Build a single, self-contained HTML file. No external dependencies except Google Fonts. Everything else inlined.
Reports go under .octave-reports/:
.octave-reports/
└── win-loss-<YYYY-MM-DD>/
└── win-loss-report.html
Example: /octave:win-loss-report --period "Q4 2025" produces .octave-reports/win-loss-2026-02-11/win-loss-report.html
The .octave-reports/ directory is in .gitignore -- nothing here gets committed.
See html-architecture.md for the HTML architecture, structural requirements, and the CSS component system (metric cards, win rate ring, bar charts, progress bars, takeaway cards, pattern cards, deal cards, recommendation cards, data tables, trend indicators).
See sections.md for the full 12-section report breakdown and the condensed executive summary variant.
After generating the HTML file:
REPORT READY
=============
File: .octave-reports/win-loss-<date>/win-loss-report.html
Period: [Date range]
Deals: [N] won, [N] lost ([N]% win rate)
Style: [Preset name]
Depth: [Executive Summary / Full Report]
Key Findings:
- Win rate: [N]% ([trend vs previous period])
- Top win factor: [Factor] ([N]% of wins)
- Top loss factor: [Factor] ([N]% of losses)
- Biggest competitor threat: [Competitor] ([N] losses)
Navigation:
- Scroll to navigate between sections
- Sidebar dots show your position
- PDF (recommended): bash "${CLAUDE_PLUGIN_ROOT:-.}"/scripts/export-pdf.sh .octave-reports/win-loss-<date>/win-loss-report.html — or Cmd+P / Ctrl+P -> Save as PDF
---
Want me to:
1. Drill into a specific competitor
2. Drill into a specific segment
3. Expand the time period
4. Add more detail to any section
5. Generate an executive summary version (or full version)
6. Export as PDF (print dialog)
7. Done
list_events - Filter by DEAL_WON, DEAL_LOST, DEAL_CREATED for deal outcomes and pipelineget_event_detail - Deep dive on notable wins and losses for deal storieslist_findings - Objections, value prop presentations, competitor mentions, feature requests, proof points cited in callslist_all_entities - Quick inventory of competitors, segments, personaslist_entities - Full entity data for proof points, referencesget_entity - Deep dive on specific competitors, personaslist_motions - List Motions in the workspacelist_motion_icps - List Motion ICP cells (persona × segment) under a Motionfind_motion_icp - Motion ICP narrative + Learning Loop learningssearch_knowledge_base - Semantic search for positioning contentsearch_resources - Uploaded CRM exports, deal data filesNo Deal Data in Period:
No won or lost deals found for [period].
This could mean:
- CRM integration isn't syncing deal outcomes
- The date range has no closed deals
- Filters are too restrictive
Try:
- Expand the date range
- Remove filters (competitor, segment)
- Check your Octave CRM integration settings
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 generate the report with available data (patterns may be unreliable)
- Expand the time period to capture more deals
- Remove filters to include all segments/competitors
No Findings Data:
Deal outcomes found, but no conversation findings available.
The report will include deal metrics and outcomes but won't have:
- Evidence quotes from calls
- Objection analysis
- Value prop effectiveness
For richer analysis, ensure calls are being recorded and findings extraction is enabled in Octave.
Octave Connection Failed:
Could not connect to your Octave workspace.
The win/loss report requires deal data from Octave. Check your MCP configuration or run
/octave:workspace status.
Missing Competitor/Segment Data:
I couldn't find a competitor named "[name]" in your library.
Available competitors:
- [List from list_all_entities]
Pick one from the list, or proceed with "all deals" and I'll break down by competitor automatically.
/octave:wins-losses - Text-based win/loss analysis (this is the visual version)/octave:insights - Conversation intelligence analysis (conversational format)/octave:battlecard-doc - Competitive deep-dive (when patterns point to a specific competitor)/octave:pipeline - Current pipeline coaching and deal strategy/octave:deck - Present win/loss findings to leadership as a slide decktools
Capture a brand's visual design system from its website and build a reusable component kit. Walks key pages on a domain (screenshots + HTML via the Octave scrape tool), derives design tokens (colors, type, spacing, radius, shadow), and produces a minimal component library (buttons, cards, headers, stats, tables, badges, hero, footer) as a self-contained HTML reference plus CSS tokens. Use when the user says "get brand components", "capture the brand", "build a component kit for <domain>", "make outputs look like <company>", or wants other skills to generate on-brand HTML for a target company.
tools
Define, run, and manage multi-step GTM workflows with human-in-the-loop execution. Use when user says "run a workflow", "show workflows", "create a workflow", "automate this process", or references workflow-based tasks.
development
Analyze won and lost deals for patterns, insights, and actionable learnings. Use when user says "win/loss analysis", "why did we lose", "deal patterns", "win themes", or asks about deal outcome trends. Do NOT use for visual HTML reports — use /octave:win-loss-report instead.
development
Practice selling with role-play simulations, knowledge quizzes, and guided learning on your GTM library. Use when user says "role-play a call", "quiz me", "practice objections", "sales training", "test my knowledge", or asks for interactive learning.