Can v18 Partner Ledger replace OCA Partner Statements?
Summary
No it can't, not even close. In fact it is a regressive step by Odoo.
Background
Odoo v18 departs from previous versions. Follow-up letters that were the closest thing to statements have been subsumed into partner ledger. Furthermore, many localisations that had separate statements have also been subsumed.
Requirements
Lets preface this. The commercial environment where I live has the common credit terms of 20th of the month following, communicated via a monthly statement, aged by months, dated at the end of the month, sent via email, usually 2-3 days after end of month. This has significant challenges (all currently addressed by partner_statement).
The main 2 challenges are:
- Aging by months.
- Reconciliation of payments received after End of Month before statements are mailed.
However what is not addressed by partner_statement is the requirement to followup overdues, which is currently done using the Odoo followup functionality.
Comparison
The setup for this is fairly straightforward. We have a production v16 instance for comparison purposes, and a migrated v18 test instance with all modules installed. Lets get started.
So a very quick test it turns out.
Odoo Customer Statements & Followup
The new odoo statements are no replacement for the partner statement module without extensive customisation. Indeed the change is objectively worse for nearly everyone and certainly everyone using follow-up reports.
- No aging at all
- 6 figure amounts wrap unnecessarily
- The "Customer Statement" layout appears more as a report for internal use than anything presentable to a customer.
- Unnecessary currency columns when single currency.
- No concept of "Open Items" statement which these days is the standard, everything is an "Activity" statement.
- The "Customer Statements" link defaults to include payables.
- In multicompany, still has information leakage issues on the partner card.
There are 3 report formats. Ledger, Statement, Followup. Annoyingly followup has no email option. One must "Process Followups". There is no option to personalise or customise as in the past, or even skip. The email now attaches a PDF, again with an internal looking report.

No customer needs to see "Unreconciled Entries" or the affected journals. The footers are the internal layout footers. It is ludicrous and in fact is going to need a lot of work to be usable.
However there are some interesting concepts to explore. Firstly the distinction between trade and non trade. Seems like a good idea, and is implemented by a flag on the account. But like a lot of things Odoo it fails to consider all the use cases.
The primary concern here is it is mislabeled. Trade Customers should refer to customers, it does not, it refers to Journal Entries posted to a particular account, regardless of the customer. Now in most cases, this is no issue, including for me, but it seems obvious where there is a mix of trade and non trade activity on a customer, they are still a Trade Customer, and as such you would expect all transactions.
There is a nifty date widget. Genuinely good. Defaulting to Year for statements seems wrong, but nonetheless I like it.
OCA Partner Statement
OCA partner_statement and it's forerunner modules have existed for a long time. I was one of the original authors and contributors, and furthermore conducted the refactor them to their current single module form. ForgeFlow has also done significant work, far more than me in recent years, in maintaining and enhancing this module.
As for the OCA partner statements. They just worked and it would seem there is a market now for it to expand into Followups as well. Note at the time of writing partner_statement is not yet officially available for v18 and this is testing the pre-release version found here.
It should also be noted in testing, that my commercial environment is homogenous so there are some small report customisations, standard defaults, records the statements sent separate to the partner (information security) and automated actions that handle the monthly mailing via another great OCA module queue_job.
Conclusion
This Odoo change is entirely useless, a step backwards and they have significant work to do to even be viable for real commercial use. In fact the Aged Receivable report would be a better base, if only it had a monthly aging option.
If you need to send customer statements, then OCA partner statement is your only option.