Advanced Sales Analysis · Odoo 17.0 · Sales reporting
Three cash measures inside your Odoo Sales Analysis report.
Answering “was this paid?” means leaving Sales Analysis for Invoicing. Now it means ticking Amount Received, Waiting for Payment or Amount To Invoice.
No new menu, no new screen, no setting to configure. Install it and the measures are in the Measures list.
The standard Sales Analysis pivot on a live Odoo 17 database — one new measure column per click.
Overview
Nothing new to learn. The report you already open, with three more measures.
Three stored measures on the Odoo Sales Analysis report your team already uses — no second dashboard to keep in sync, no data to re-enter, no new screen to learn.
|
|
STEP 1
Install itAdd the module to your Odoo 17 database from Apps. No menu, no wizard, no settings page — and every sales order you already have is counted during the install.
|
|
STEP 2
Tick three measuresOpen Sales → Reporting → Sales Analysis, click Measures, and switch on Amount Received, Waiting for Payment and Amount To Invoice.
|
|
STEP 3
Read the cashThe pivot fills in at once. Group by salesperson, customer, product or month and your sales report finally answers the only question that matters: was it paid?
What each measure counts
The share of each sales order line that has been invoiced and paid. Money in the bank, not a promise on a quotation.
Invoiced, posted, and still unpaid. Your receivable, sitting on the sales report, without anyone opening Accounting to find it.
Value you have committed to and not billed yet. Revenue you have already earned and not asked for — the line most companies forget to chase.
Amount Received
+
Waiting for Payment
+
Amount To Invoice
= the line’s untaxed total
So every row reconciles. Part-paid invoices, down payments and credit notes are all handled, which is the part a spreadsheet built by hand always gets wrong.
All three are ordinary stored measures on the Sales Analysis report, so Group By, the date filters, comparison periods, the Graph view and the spreadsheet export work on them exactly as they already do on Untaxed Total.
Before you install it
Get a straight answer about this module
Ask whether it fits your Odoo, what the three measures would show on your own data, or whether the arithmetic matches your accounting rules. A real person replies.
|
|
Book a consultation
See the measures running on your own Odoo data.
Scan a code with your phone. The address printed under each code is the address the code contains, so you can type it in instead.
Features
Twelve things it does, stated plainly
The module adds three measures and the arithmetic behind them. That is the whole scope — and the awkward cases are the reason it exists.
Amount Received
The part of the order line that has been invoiced and paid. Cash that actually arrived, not value that was billed.
Waiting for Payment
Invoiced and posted, but the money has not landed. Your receivable gap, next to the order it came from.
Amount To Invoice
Order value that has not been billed at all yet. The invoicing backlog, in money rather than in quantities.
Part-paid invoices split in two
An invoice paid halfway contributes to Amount Received and to Waiting for Payment at the same time, in proportion.
Down payments handled
An advance invoice lands in Amount Received without counting the same money twice against the order lines.
Credit notes subtract
A customer credit note reduces Amount Received instead of being quietly left out of the total.
Converted line by line
Each invoice line is converted into the currency of the sales order line before it is added up.
Follows the invoicing policy
Orders invoiced on delivered quantity use the delivered figure, the same rule Odoo applies to its own amounts.
Line discounts respected
Where an invoice line carries a different discount from the order line, the remainder is worked out from the invoice.
Behaves like a standard measure
Group, filter, compare periods, drill into a cell, export — the three measures do all of it, because they are ordinary measures.
Pivot and graph, both
List, pivot and graph views all accept them. Nothing is limited to one view or one grouping.
Nothing leaves your database
No external service, no outbound call, no telemetry. The figures are computed inside your own Odoo.
Use cases
Four questions it answers without leaving the report
These are not features. They are the questions people actually ask on a Monday morning, and the clicks that answer them.
“How much did we actually collect this quarter?”
Group the pivot by salesperson, then take Amount Received as the only measure. Two clicks, and the number on the row is cash collected, not commitments made.
Cash collected per salesperson
“Who owes us money right now?”
Group by customer and measure Waiting for Payment. The customers with a figure in that column are your chase list, built from the sales report rather than from Accounting.
The receivable chase list
“What have we delivered but not billed?”
Group by product category, measure Amount To Invoice. Anything sitting in that column is revenue you have earned and not asked for yet.
The invoicing backlog
“What does the cash timeline look like?”
Group the date by week or month and put all three measures on. Collected, awaiting payment and not yet billed, side by side, period by period.
Cash, week by week
The obvious question
“Odoo already has a Sales Analysis report. Why buy this?”
A fair question, and the honest answer is narrow: the standard report is missing one dimension, and this adds exactly that one.
Odoo 17 already gives you Untaxed Amount Invoiced and Untaxed Amount To Invoice. Neither of them knows whether the money arrived.
Answering “was it paid?” today means leaving the report, opening Invoicing, and matching invoices to orders by hand.
Amount Received is the part that was paid. Waiting for Payment is the part that was not. That distinction does not exist anywhere in the standard report.
It is line value minus what was received minus what is awaiting payment — so Received + Waiting + To Invoice returns the line total.
Side by side
Measure for measure
| What the report can tell you | Standard Sales Analysis | + Advanced Sales Analysis |
|---|---|---|
| Untaxed order value | ✓ | ✓ |
| Value already invoiced | ✓ | ✓ |
| Value not yet invoiced | ✓ | ✓ |
| Cash actually received | ✗ | ✓ |
| Invoiced but still unpaid | ✗ | ✓ |
| Part-paid invoice split across both | ✗ | ✓ |
| Down-payment aware | ✗ | ✓ |
| Credit-note aware | ✗ | ✓ |
| Something new for your team to learn | ✗ | ✗ |
Both columns are a cross on the last row, on purpose. Adding a menu would have been the easy way to make this module look bigger, and it would also have given your team a new screen to learn. It adds neither.
Requirements
What it needs, and what it does not
Including the parts that are limitations. You should know them before you install it, not after.
Odoo 17.0, Community or Enterprise. You do not need an Enterprise licence. If you are on 16 or 18, ask us and we will tell you where that build stands.
Sales, Invoicing and Sales Management — all standard Odoo. Nothing external, nothing to buy alongside it.
None. Install it from Apps like any other module. No command line, no extra software, no developer.
None at all. There is no settings page, no menu and no wizard. Open Sales Analysis and the measures are in the list.
Counted too. The figures are computed and stored, so your history is filled in during installation, not just new orders.
Each invoice line is converted into the currency of the sales order line. These three columns are not passed through the report's own company-currency conversion, so read them as order-currency figures.
Advance invoices are recognised through Odoo's standard “Down payment” product name. If your database renames that product or runs in another language, tell us and we will adapt it for you.
Anyone who can already open Sales Analysis can use the measures. No new groups, no new permissions to hand out.
Nothing leaves your Odoo. No external service, no outbound call, no telemetry. There is nothing in the module that talks to the internet.
The figures are stored on the sales order line, so the report itself stays as quick as it is now. The one-off computation at install time is worth running out of hours on a very large database.
The module adds measure labels only, in English. There is no user interface to translate.
Uninstalling takes away the three measures and the stored fields behind them. Your orders, invoices and payments are untouched.
Specifications
| Licence | LGPL-3 — open source, source included |
| Odoo version | 17.0 |
| Category | Sales |
| Technical name | advanced_sales_analysis |
| Author and maintainer | Doodex |
| Depends on | base, sale, account, sale_management |
What happens after you buy
Support here means defects, not a subscription. If the module does something this page says it should not, tell us and we fix it.
|
|
|
FAQ
Twelve real questions
The ones we are actually asked, answered without marketing language.
Where exactly do the three measures
appear?
In Sales → Reporting → Sales Analysis. Open the Measures dropdown and Amount Received, Waiting for Payment and Amount To Invoice are in the list beside the standard ones. The module adds no menu and no screen of its own.
Odoo already has “Untaxed Amount
To Invoice”. How is this
different?
The standard measure works from what has been invoiced. This module works from what has been paid. It splits invoiced value into Amount Received and Waiting for Payment, and then defines Amount To Invoice so the three add back up to the line. The payment split is the part that does not exist in the standard report.
Is this a one-time purchase or a
subscription?
One time, for one database. There is no per-user fee, no per-order fee and nothing to renew or cancel.
Do I need Odoo Enterprise?
No. It only uses parts of Odoo that every Community install already has: Sales, Invoicing and Sales Management.
Does it replace the standard Sales
Analysis report?
No, and that is deliberate. It extends the report you already use, so your saved filters, favourites and groupings keep working exactly as they do today.
Will it count orders I already have, or
only new ones?
Existing ones too. The figures are computed and stored during installation, so your history is filled in. On a very large database it is worth installing outside business hours.
What happens with a down payment?
The advance is counted once, in the right column, instead of being double counted against the order lines. Down-payment invoices are recognised through Odoo's standard “Down payment” product name — if yours is renamed or in another language, tell us and we will adapt it.
What about credit notes and partly paid
invoices?
A customer credit note reduces Amount Received rather than being left out. A partly paid invoice contributes to Amount Received and to Waiting for Payment at the same time, in proportion to what has been settled.
Does it work with more than one
currency?
Yes. Each invoice line is converted into the currency of the sales order line before it is added up. Note that these three columns are not passed through the report's own company-currency conversion, so read them as order-currency figures.
Is any of my data sent anywhere?
No. There is no external service, no outbound call and no telemetry. Everything is computed inside your own Odoo, from records you already have.
Which Odoo versions are supported?
This is the Odoo 17.0 edition, and this page describes that build. If you run 16 or 18, write to us and we will tell you honestly where those builds stand rather than sell you the wrong one.
Do I need a developer, and what if I
uninstall it?
No developer: install it from Apps like any other module, with nothing to configure afterwards. If you uninstall it, the three measures and the stored fields behind them go away and your orders, invoices and payments are untouched.
Changelog
Public release history
Every release is listed here with what changed. If a version is not on this list, it does not exist.
- Amount Received, Waiting for Payment and Amount To Invoice added as measures on the Sales Analysis report
- Payment split computed and stored on the sales order line, so the report stays fast
- Down-payment, credit-note and part-payment handling
- Per-line currency conversion into the sales order line's currency
- 37 automated tests, run against a vanilla Odoo 17.0 database
Works great with
Other Doodex modules, built the same way
Different problems, same approach: narrow scope, a one-time price and the limits stated up front. Each one installs on its own.
Five CRM and marketing modules that do share one another’s data: BizScan AI, Campaign Manager, Smart Dashboards, User Roles and Email Sync+. Sold as one suite.
Open on the Apps Store →Publish conditional surveys and forms straight from Odoo and keep every answer in your own database.
Open on the Apps Store →The drag-and-drop editor for those surveys: 25 question types, slide branching and full theming.
Open on the Apps Store →Ready when you are
Put the payment side into your sales report
Install it, open Sales Analysis and tick three measures — there is no settings page and nothing to configure. If you would rather see it first, book the consultation and we will run it on your own data.
|
|
Book a consultation
See the measures running on your own Odoo data.
Scan a code with your phone. The address printed under each code is the address the code contains, so you can type it in instead.
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Sales (sale_management) • Discuss (mail) |
| Lines of code | 188 |
| Technical Name |
advanced_sales_analysis |
| License | LGPL-3 |
| Website | https://www.doodex.net/ |
Please log in to comment on this module
This module is particularly useful for businesses looking to gain deeper insights into their sales performance.
Powerful Sales Analysis Tool
This module has been a game-changer for our sales reporting. It provides in-depth insights and customizable dashboards that help us make informed decisions quickly. The integration was seamless, and the module is both user-friendly and highly effective.
Re: Powerful Sales Analysis Tool
Thank you so much for your kind words, Miranda! We're thrilled to hear that the "Advanced Sales Analysis" module has made such a positive impact on your sales reporting. it's great to know it's doing just that for your team. If you have any suggestions or need further assistance, feel free to reach out. We’re here to help
the additional collums for monitoring waiting payment is very effective, this small change made a big impact on how I manage my task!
I discovered three additional columns that were not previously available, which have proven to be highly beneficial in tracking the amount received