Project app for Odoo
Construction Management
Job costing, BOQ contracts and payment certificates with retention and variations. Subcontractor orders and material issuance on one dashboard.

Overview
Construction Management.
Run a construction contract end to end in Odoo. Estimate the job, sign a BOQ contract, approve a cost budget, then measure progress into interim payment certificates that calculate retention and advance recovery for you. Site work orders, subcontractor accounts and material requisitions post real stock transfers and real cost, so the dashboard shows budget, committed cost, forecast and certified revenue against each other on one screen.
New to Odoo Project? Read our practical guide to how it works
How it works
Built around what you actually do.
Every screen below is the module running in Odoo, not a mockup.
01
Cost breakdown structure with rollup and leaf cost codes, so a job partitions cleanly and nothing is double counted
- Cost budgets with an approval step, budget versus actual, committed cost and forecast at completion
- BOQ contracts with rates, quantities, ordered value and over measure control
- Interim payment certificates measured cumulatively, with the delta and the money derived for you
- Retention calculated as a monotonic ratchet against a percentage and a contract cap
- Advance payment recovery that recovers on certification and never over recovers

02
Variations that adjust ordered quantities and contract value with a full audit trail
- Retention release with its own journal entries and a guard that release can never exceed what is held
- Certificates post to the accounts, raise the customer invoice and reverse cleanly on cancellation
- Subcontractor accounts and site work orders with their own states and authorisation
- Material requisitions that raise a real stock transfer for the storeman, with partial issue support
- Cost value reconciliation, mapping BOQ revenue against the cost codes that earn it

03
Construction dashboard as the app landing screen: budget, cost to date, committed, forecast and variance
- Contract band showing certified to date, awaiting certification, retention held and advance outstanding
- Per project table with a project filter, worst variance first, and drill through to the underlying records
- Separate cost and contract security groups, so a quantity surveyor tracking spend need not see certified revenue

Every screen
The whole module, screen by screen.
The captures the walkthrough above did not use, in the order you meet them in the product.








What it does
Construction Management runs a construction contract from estimate to final account inside Odoo, without the spreadsheet that usually sits beside it. You estimate the job, sign a contract carrying its bill of quantities, approve a cost budget against a cost breakdown structure, and then measure work into interim payment certificates. The certificate does the arithmetic you would otherwise do by hand: the period delta from cumulative measurement, the gross for the period, retention against its cap, and advance recovery.
Underneath, the site keeps working. Subcontractor work orders, timesheets, purchase orders and material requisitions book real cost to real cost codes, and a material issue creates a genuine stock transfer rather than a note. That is what makes the landing dashboard trustworthy: budget, cost to date, committed cost, forecast at completion and variance sit next to certified revenue, retention held and money awaiting certification, for every job at once.
Who it's for
Contractors, subcontractors, civil and MEP firms, fit out companies and developers who work to a bill of quantities and bill by interim certificate. It suits any business that has to answer two questions at once, what has this job cost and what has it earned, and is currently answering them in two different places.
Questions
About Construction Management.
How do I do job costing for a construction project in Odoo?
Build a cost breakdown structure of rollup and leaf cost codes under the project, approve a cost budget against those codes, and let purchase orders, timesheets and material issues book cost to them. The dashboard then shows budget, cost to date, committed cost, forecast at completion and variance for every job, sorted worst variance first.
Can Odoo handle a bill of quantities and interim payment certificates?
Yes. A contract carries its BOQ with rates and quantities. Each certificate is measured cumulatively per BOQ item, and the module derives the period delta, the gross for the period, retention and advance recovery from it. Certifying posts the journal entries and can raise the customer invoice.
How is retention money calculated and released?
Retention is a percentage of cumulative certified value, capped at a percentage of the contract value, and it is a ratchet: each certificate holds only the difference between the new target and what is already held, so it can never go backwards. Release is a separate action with its own journal entries, and released value can never exceed value held.
Does it recover advance payments automatically?
Yes. Set the advance amount and a recovery percentage on the contract. Each certificate recovers against cumulative certified value up to the advance, and the arithmetic is floored so the job can never over recover.
How are contract variations handled?
A variation adjusts ordered quantities and therefore contract value, including omissions. The effective ordered quantity is what over measure control checks against, so a certificate cannot quietly measure more than the varied contract allows unless you explicitly permit it.
Does material issuance move real stock?
Yes. A material requisition creates a genuine stock transfer for the storeman rather than a note, and it supports partial issue when the store cannot fulfil the whole request. Short stock is not blocked, because site reality is that a partial issue still needs recording.
Can I stop cost staff from seeing certified revenue?
Yes. Cost and contract access are separate security groups. A quantity surveyor with cost rights sees the full cost dashboard and no contract figures at all, rather than a row of zeros. The contract band and its columns are withheld server side, not hidden in the browser.
Does it need Odoo Enterprise?
No. It runs on Odoo Community and Odoo Enterprise alike. It does require Inventory, because material issuance creates a real stock transfer, and Accounting, because certificates post real journal entries.
On the Odoo Store
Get Construction Management on the Odoo Store.
Pick your Odoo version and install it in a click, with free updates and real support behind it.
Get it on the Odoo StoreReady to make Odoo work the way your business does?
Book a free callCODEerts is a team of certified Odoo partners and full-stack engineers. We implement, customise and support Odoo ERP, then build the software around it.