Competitor Battlecard & Win/Loss Analytics
Competitor battlecards, loss-reason taxonomy and win/loss rate analytics for every opportunity
Competitor Battlecard & Win/Loss Analytics
Competitor battlecards, loss-reason taxonomy and win/loss rate analytics for every opportunity
Competitor Battlecard & Win/Loss Analytics gives every sales rep the competitive intelligence they need at the exact moment a rival is flagged on a deal, and gives sales managers a clear, data-backed read on why deals are actually won or lost. A competitor library, structured battlecards with objection handling, a categorised loss-reason taxonomy and a framework-free win/loss analytics engine combine into a pivotable dashboard broken down by competitor, loss reason, team and salesperson.
Key Features
Competitor library
sales.competitor holds one record per rival with strengths, weaknesses, website and an at-a-glance count of open/won/lost opportunities flagged against it, computed live from the CRM pipeline.
Structured battlecard library
competitor.battlecard captures a positioning summary, key differentiators, pricing notes, a reusable list of objections with proven responses (competitor.battlecard.objection) and a ranked list of winning tips (competitor.battlecard.tip) per competitor.
Opportunity-level competitor flagging
Any crm.lead can flag one or more competitors; the applicable battlecards for those competitors are surfaced automatically and are one click away from the opportunity form.
Categorised win/loss reason taxonomy
win.loss.reason gives every closed deal a categorised reason (price, product gap, relationship, timing, budget, no decision, competitor, other), captured directly in the core Mark Lost wizard alongside the plain lost_reason_id.
Framework-free win/loss analytics engine
services/win_loss.py computes the overall win rate, per-competitor win rate, loss-reason distribution and a period-over-period trend from plain deal dicts, fully unit-tested without a database.
Competitor threat ranking
competitor_threat_ranking sorts rivals by loss rate and deal volume into high/medium/low threat levels, highlighting which competitor is costing the most deals so battlecard authoring effort can be prioritized.
Win/Loss dashboard backed by a SQL reporting view
competitor.win.loss.report is a dedicated SQL view unnesting the competitor many2many into one row per lead/competitor pair, feeding pivot and graph views broken down by competitor, loss reason, sales team and salesperson.
Live, never-stale competitive counters
Every competitor's and opportunity's win/loss/battlecard counts are computed on demand straight from the live crm.lead pipeline rather than stored, so they can never drift out of sync with the pipeline's real state.
Use Cases
Screenshots
01 Win Loss Dashboard Pivot
02 Competitors List
03 Battlecard Form
04 Loss Reasons List
Why Choose This Module
Competitive intelligence usually lives in scattered docs or a rep's head, and win/loss analysis usually happens as a one-off spreadsheet exercise months after the fact. This module puts the playbook one click from the deal itself and keeps the analytics live against the real pipeline, with the actual rate and ranking maths in an independently tested engine so managers can trust the numbers behind every dashboard chart.
Specifications
- Compatible: Odoo 18.0 / 19.0 / 20.0
- License: OPL-1
- Languages: 35+
- Author: Pokutsoft
- Dependencies: crm
- Support: support@pokutsoft.com
- Update date: 2026-09-26
Related modules
Customer Referral Program
Referral codes, conversion tracking and two-sided reward accrual for your customers
Sales Pipeline Weighted Forecast
Stage-probability weighted revenue forecast with period targets, rep/product breakdown and forecast-vs-actual
Upsell & Cross-sell Recommendation Engine
Frequently-bought-together and rule-based upsell/cross-sell recommendations on products and quotes