Odoo Sales Analytics: Pipeline KPIs and Built-in Reports#
Where to Find Sales Reports#
Sales → Reporting contains the main analytics views:
| Report | What It Shows |
|---|---|
| Sales | Confirmed order revenue by product, customer, salesperson, month |
| Invoiced | Amounts invoiced and due, with payment status |
| CRM Pipeline | Opportunity funnel, win rates, forecast revenue |
Switch between Pivot, Graph, and List views using the icons in the top right.
Key Sales KPIs to Track#
1. Revenue by Salesperson (month)
Sales → Reporting → Sales → Group By: Salesperson, then Month
Measure: Untaxed Amount. Add a filter for Order Date: this quarter.
2. Top Products by Revenue
Sales → Reporting → Sales → Group By: Product
Sort descending by Untaxed Amount. Add Filters → Last 12 months to see annual product performance.
3. Customer Ranking
Sales → Reporting → Sales → Group By: Customer
Shows which customers generate the most revenue. Combine with Invoiced report to see payment reliability.
4. Month-over-Month Growth
Sales → Reporting → Sales → Group By: Order Date (Month)
Switch to Graph view → Line chart. This shows revenue trend over time.
5. Average Order Value
In Pivot view: Measure → add Count (Orders) alongside Untaxed Amount. Divide total revenue by count to get AOV - or use the Dashboard to see it pre-calculated per salesperson.
Building a Sales Dashboard#
Home (main menu) → Add a section → New Block → Sales
Or from any report:
- Apply your filters and group-by settings.
- Click the Favorites → Save as Favorite button.
- Check Use as Default and Share with all users (if needed).
- Optionally click the star () to add to the home dashboard.
Pivot Table: Product × Customer Matrix#
Sales → Reporting → Sales → Pivot view
- Row Group By: Customer
- Column Group By: Product
- Measure: Untaxed Amount
This creates a cross-tab showing which customers buy which products - useful for cross-sell analysis.
Invoiced Report and Payment Performance#
Sales → Reporting → Invoiced
| Measure | Use Case |
|---|---|
| Invoiced Amount | Total billed revenue |
| Residual | Outstanding balance unpaid |
| Days to Pay | Average payment lead time |
Filter by Invoice Date: this month to track invoicing velocity. Group by Customer to identify slow payers.
Export to Excel / Google Sheets#
From any pivot or list view:
- Click the Download button (top right of pivot).
- Opens in Excel with the same grouping and measure layout.
Sales Team Performance Report#
Sales → Configuration → Sales Teams → [Team] → Reporting
Each team has its own pipeline view. For a team overview:
Sales → Reporting → Sales → Group By: Sales Team
Track revenue contribution per team and set team-level targets.
Using Odoo Spreadsheet for Custom Dashboards#
Sales → Reporting → Sales → Pivot → Insert in Spreadsheet
This creates a live-connected spreadsheet (similar to Google Sheets with live Odoo data):
- Data refreshes on demand.
- Add your own formulas and charts.
- Share with management without granting full Odoo access.
Spreadsheets: Documents → New → Spreadsheet → Insert Pivot
Setting Sales Targets#
Sales → Configuration → Sales Teams → [Team] → Targets
Set a monthly revenue target per team. The dashboard shows progress as a percentage against target.
Common Mistakes#
- Mixing Order Date and Invoice Date - Sales report uses Order Date (when confirmed); use the Invoiced report for cash/invoice basis analysis
- Including draft orders - filter by Status = Sale Order (not Draft or Cancelled) for accurate revenue figures
- Not filtering by date - large datasets without date filters make reports slow and hard to read; always apply a date range
- Confusing Untaxed vs. Total amount - use Untaxed Amount for revenue comparison (taxes vary by region); use Total Amount only for cash flow analysis
- Ignoring return orders - credit notes reduce invoiced amounts; make sure the Invoiced report shows net amounts by including credit notes in the filter

