Milestone Billing & WIP R
Bill projects on milestones with a live WIP / unbilled revenue report
Service businesses bill in stages, but native Odoo makes work-in-progress (WIP) and unbilled revenue almost invisible. This module adds a proper milestone billing workflow on projects and a live WIP report, so finance always knows what has been earned but not yet invoiced — supporting FRS-102 style long-term contract reporting.
Key Features
Project Milestones
Define billing milestones with a planned amount, percentage of contract, planned date and status, linked to the project, customer and sale order.
Guarded Lifecycle
Draft → reached → invoiced → paid, with a reached-on date and guard rails so milestones are billed in the right order.
One-Click Invoicing
Mark a milestone reached and generate its customer invoice in one click, individually or in batch, against the linked sale order.
Live WIP Balance
Each project tracks contract value, planned, reached, invoiced and earned revenue, computing the WIP / unbilled balance automatically.
Revenue Method
Recognise revenue as-invoiced or by percentage-of-completion, with a completion percentage driving earned revenue.
Accrual Posting
A WIP accrual helper posts earned-but-unbilled revenue to chosen WIP and revenue accounts and can reverse it on the next period date.
WIP Made Visible
Native WIP reporting is thin. This surfaces earned vs billed vs WIP per project in a dedicated report finance can actually rely on.
FRS-102 Friendly
Percentage-of-completion and accrual posting support long-term contract revenue recognition in line with FRS-102 expectations.
Screenshots
Billing Milestones
Wip Accruals
Why Choose This Module
Consultancies, agencies, engineering and construction firms, and any project-based business that invoices on milestones and must report work-in-progress.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: project, sale_management, account
- Support: support@pokutsoft.com
Update date: 2026-07-02