| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Sales (sale_management) • Calendar (calendar) • Contacts (contacts) • Discuss (mail) • Invoicing (account) |
| Lines of code | 504 |
| Technical Name |
xpt_loss_analysis |
| License | OPL-1 |
| Website | https://xpedyt.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Sales (sale_management) • Calendar (calendar) • Contacts (contacts) • Discuss (mail) • Invoicing (account) |
| Lines of code | 504 |
| Technical Name |
xpt_loss_analysis |
| License | OPL-1 |
| Website | https://xpedyt.com |
Loss Analysis
Understand why deals are lost — structured capture and pattern reporting for CRM and Sales.
Overview
Most sales teams mark opportunities as lost with a single click and move on. Over time the pipeline looks healthy in terms of activity, but the same deals keep slipping away for the same reasons — and no one notices because the data was never captured.
Loss Analysis fixes this at the source. The moment a CRM opportunity or sale order is marked as lost, a structured wizard prompts the salesperson for four pieces of information: the loss reason, the competitor that won the deal, the price gap, and any additional notes. That data is then aggregated in a dedicated reporting dashboard under Sales > Reporting > Loss Analysis, so managers can identify patterns, benchmark against competitors, and act on the findings.
Structured capture at the moment of loss
When a salesperson marks a CRM opportunity or sale order as lost, a wizard dialog appears before the record is closed. It captures four structured fields:
- Loss Reason — selected from a configurable list (price, timing, feature gap, no decision, etc.).
- Competitor — the company that won the deal, chosen from a managed competitor list.
- Price Gap (%) — the percentage by which the competitor's price was lower, if known.
- Notes — a free-text field for any context that does not fit the structured fields.
All fields are optional so the wizard never blocks the salesperson — but having them present as a prompt is enough to drive consistent data collection over time.
Loss reasons and competitor registry
Both the loss reason list and the competitor list are fully managed inside Odoo:
- Loss Reasons — found under Sales > Configuration > Loss Reasons. The module ships with a set of sensible defaults (Price, Timing, Features, No Decision, Other) that can be edited, archived, or extended at any time.
- Competitors — found under Sales > Configuration > Competitors. Each competitor record stores the company name and optional notes. The list grows organically as salespeople add new competitors through the wizard.
Keeping these as structured records — rather than free-text fields — is what makes the reporting dashboard meaningful. Every loss is tagged with a consistent vocabulary.
Reporting dashboard
The Loss Analysis report is accessible under Sales > Reporting > Loss Analysis. It aggregates all captured loss data into a pivot-ready view that supports grouping, filtering, and graph modes out of the box.
Key dimensions available for analysis:
- Loss Reason — which reasons appear most frequently.
- Competitor — which competitors win the most deals and the average price gap they offer.
- Salesperson — which team members lose most often to price vs. other factors.
- Period — monthly or quarterly trends to track whether win rates are improving.
- Source — whether the loss originated from a CRM opportunity or a sale order.
Works on both CRM opportunities and sale orders
Loss data is captured at two points in the sales process:
- CRM opportunity — when the opportunity is marked as lost via the standard Mark as Lost button. The structured fields are stored on the lead record and carried through to the report.
- Sale order — when a confirmed or draft sale order is cancelled or marked as lost. The same wizard fires and the data is stored on the order.
Having both entry points means that deals lost at the quotation stage (before becoming a formal opportunity) are captured just as reliably as those lost after a full CRM pipeline run.
Configuration
Module settings are available under Sales > Configuration > Settings in the Loss Analysis section.
- Enable loss wizard on CRM — show the structured wizard when a CRM opportunity is marked as lost (enabled by default).
- Enable loss wizard on Sale Orders — show the wizard when a sale order is cancelled or lost (enabled by default).
- Require loss reason — make the Loss Reason field mandatory in the wizard, preventing submission without a selection.
Requirements
- Odoo 19
- Module dependencies:
crm,sale_management
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module