Skip to Content
Retour aux modules
Accounting

Progress Invoicing & Retention Guarantee

Invoice construction work by progress statements (situations de travaux), withhold and release the retention guarantee, deduct down payments pro rata.

20.0 19.0 18.0 17.0 16.0
Progress Invoicing & Retention Guarantee
Progress Invoicing & Retention Guarantee

Présentation du module

Nalios
Odoo Gold Partner · Belgium

/ Odoo 20 · Invoicing

Progress invoicing & retention guarantee

Built for contractors, joiners, HVAC and electrical installers. Each month you enter how far each line of the contract is done; Odoo invoices only the difference, withholds the retention guarantee and tells you when to release it.

Situations / états d'avancement Retention guarantee Down payments pro rata Statement PDF in FR & EN Community & Enterprise

What it does

Invoice the work done, not the order

Tick Progress invoicing on a sales order. The standard invoicing buttons make way for New Progress Statement: a numbered statement (n°1, n°2...) with one line per order line.

Cumulative progress, per line

Enter the progress to date as a percentage or as a quantity, whichever your site manager reports. Each new statement starts from the previous one.

Only the delta is invoiced

Validation creates the customer invoice for the difference with the previous statements. Invoice lines are linked to the order lines, so invoiced quantities stay right in Odoo.

Corrections become credit notes

Lower a percentage and the statement deducts it; when its total is negative, a credit note is issued instead, retention included. Above 100 % is refused unless you tick Extra work on the line.

Amounts you can check

Per line: contract amount, previous %, cumulative %, cumulative amount and this statement. Totals: down payment deduction, VAT, retention and total due.

Draft progress statement: cumulative percentage per line, amounts of this statement and totals

The invoice

A normal Odoo invoice, with the right deductions

No parallel ledger: the statement produces a standard customer invoice (or credit note) that you post, send and reconcile as usual.

Retention guarantee

A separate negative line, without VAT, posted to the retention account you choose. Rate from the customer, else from the company (5 % by default), computed on the amount excl. or incl. tax.

Down payments

Down payments made with Odoo's standard wizard are deducted pro rata of the cumulative progress on every statement, or in full on the statement reaching 100 %.

Bank guarantee instead

Tick Replaced by a bank guarantee and store its reference: nothing is withheld, the release date is still tracked.

Multi-currency

The invoice uses the currency of the order; retention and deductions are rounded in that currency.

Invoice created from statement n°2: delta lines, pro rata down payment deduction and retention guarantee line

Printed statement

The recap table your customer expects

A Progress statement PDF per statement: contract, previous %, cumulative %, cumulative, previous and this statement per line, then contract total, cumulative to date, previous statements, down payment deduction, VAT, retention and total due. Printed in the customer's language: English and French included.

Printed progress statement n°2 with the recap table and totals

How it works

From the quote to the release

1

Set up the order

Tick Progress invoicing, check the retention rate, confirm. Ask for a down payment if needed.

2

Invoice each month

New Progress Statement, enter the cumulative %, Validate & Invoice. Print the statement for your customer.

3

Release the retention

Enter the reception date: the release date and a reminder follow. Release Retention creates the invoice for the total retained.

Sales order Progress Invoicing tab: cumulative progress, retention settings, retained amount and statements

Retention guarantees

Never forget a retained amount

Release date and reminder

Reception date plus the warranty period (12 months by default) gives the release date. An activity is scheduled for the salesperson 30 days before (configurable).

Released once, with a clear trail

One release invoice for the whole retained amount, with one line per invoice it was withheld on. A second release is refused. On a reconcilable account, the amounts are matched when you post it.

One list for the whole company

Retention Guarantees, in Sales and in Invoicing > Customers: retained amount, reception and release dates, bank guarantees. Overdue releases show in red.

Settings in one place

Sales > Configuration > Settings > Progress Invoicing: default rate, base (excl./incl. tax), retention account, warranty period, reminder delay. Customers can have their own rate.

Retention Guarantees list: retained amounts, reception and release dates, bank guarantee

Under the hood

Precise details

Dependenciessale_management and account. Works on Community and Enterprise, Odoo.sh and on premise.
StatementsNumbered per order, chatter, states Draft → Validated (draft invoice) → Invoiced (posted). One draft at a time; reset to draft cancels the draft invoice.
Previously invoicedSum of the validated and invoiced statements. If an invoice is cancelled, its progress is invoiced again by the next statement.
QuantitiesA percentage is converted into a quantity of the order line, rounded to the decimal accuracy of quantities.
AccountingRetention: negative line without tax on the retention account (current asset). Release: positive line on the same account, without tax. Revenue and VAT stay on the full amount.
Standard invoicingBlocked on progress orders (Create Invoice and invoiceable lines). The down payment wizard stays available.
AccessSalespeople see the statements of their orders (all orders with the "All Documents" right), billing users all of them. Multi-company rules included.
LanguagesEnglish and French (also used for Belgian French).

Lump-sum lines and percentages

Progress is stored as a quantity of the order line. With Odoo's default accuracy (2 decimals), a lump-sum line of quantity 1 moves in steps of 1 %: 33.33 % becomes 33 %. Need finer steps? Raise the decimal accuracy of Product Unit (Settings > Technical > Decimal Accuracy, developer mode). Pro rata down payment deductions follow the same accuracy, and the down payment is always deducted in full at 100 %.

FAQ

Good to know

Can I mix progress invoicing with regular invoices on the same order?

No. Progress invoicing is enabled per order and cannot be switched on once regular invoices exist (down payments are fine). Other orders keep the standard invoicing.

Which account should hold the retention?

A dedicated current asset account, for example 4117 Clients - retenues de garantie. Receivable-type accounts are not offered, so the retained amount is never proposed when you register the customer payment.

Can the retention be computed on the amount incl. VAT?

Yes: choose Amount incl. tax in the settings or on the order (common in France). The default is the amount excl. tax.

What about extra work and amendments?

Add the lines to the order: the next statement includes them. To invoice more than the ordered quantity on a line, tick Extra work on that statement line.

Can I customise the PDF?

It uses your company document layout. The template report_progress_statement_document can be adapted with Studio (Enterprise) or a small module.

A question? A problem? Talk to the people who built it.

We will get back to you within 8 business hours.

Contact us

Email us directly at

[email protected]

Published by

Nalios — Odoo Gold Partner, Belgium — nalios.be