All posts
Integrator8 min read

Odoo Sales Analytics: Pipeline KPIs and Built-in Reports

Use Odoo built-in sales reporting to track team performance, product revenue, customer ranking, invoice aging, and monthly trends - with pivot tables, graph views, and dashboard KPIs configured without custom development.

Odoo Sales Analytics: Pipeline KPIs and Built-in Reports#

Where to Find Sales Reports#

Sales → Reporting contains the main analytics views:

ReportWhat It Shows
SalesConfirmed order revenue by product, customer, salesperson, month
InvoicedAmounts invoiced and due, with payment status
CRM PipelineOpportunity 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:

  1. Apply your filters and group-by settings.
  2. Click the Favorites → Save as Favorite button.
  3. Check Use as Default and Share with all users (if needed).
  4. 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

MeasureUse Case
Invoiced AmountTotal billed revenue
ResidualOutstanding balance unpaid
Days to PayAverage 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:

  1. Click the Download button (top right of pivot).
  2. 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):

  1. Data refreshes on demand.
  2. Add your own formulas and charts.
  3. 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

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free