Construction job costing in Odoo: see the site's margin before handover.
Every sector has one process that generic ERP handles badly. You find out a site lost money at the final reconciliation. We start there, because fixing that is what makes the rest of the rollout worth doing.
—— Where it hurts
What usually breaks first.
Progress claims and retention live in a spreadsheet
Each interim payment application certifies a percentage of work done, minus the 5–10% retention held until the defects liability period ends. When claims sit in Excel and invoices in the accounting system, certified-but-unbilled work and unreleased retention pile up where nobody sees them. In Odoo the progress invoice comes off the project itself, and retention sits in its own account, visible until release.
Committed cost invisible until the supplier invoice lands
A purchase order signed at the site office is committed money that day, but it only reaches most ledgers weeks later when the supplier bill arrives. Until then, every budget-versus-actual report flatters the job. Coding each PO to the project's analytic account puts committed cost next to actual cost while there is still time to react.
Variation orders that never reach the contract value
Site instructions and VOs get agreed on paper or over the phone, and the final account becomes an argument about what was approved. When each variation is a priced revision on the project's order, the approved contract value, claimed-to-date and cost-to-date stay in one record. The final reconciliation stops producing surprises because there is nothing left to reconcile.
—— Where you start
Three starting points we see most.
Where you start · 01
From spreadsheets
Orders, stock and costing live in files only one person understands. We move the highest-risk sheet first, so value lands in weeks, not quarters.
Where you start · 02
From a legacy system
The old ERP still runs, but nobody dares change it. We migrate in validated batches while it keeps trading, with a rollback point at every step.
Where you start · 03
Adding a site or a company
Growth broke the single-database assumption. We restructure for multi-company, multi-warehouse and consolidated books without stopping operations.
—— Modules
The modules this sector actually starts with.
- Project
- Timesheets
- Purchase
- Accounting
—— How the rollout runs
A sector template, tuned to how you actually work.
Walk the process
We follow one real order end to end — quote to cash, or purchase to pay — before touching a configuration screen.
Configure the sector baseline
The modules this sector starts with go in first, configured against your master data rather than demo records.
Pilot with one team
One site, one team, one month. The pilot decides what scales, and its objections reshape the template before anything else ships.
Scale and hand over
Remaining sites onboard on a fixed rhythm, each with documentation and a trained super-user of its own.
—— Related
Explore what else we do.
—— FAQ
Questions teams ask about this service.
How does job costing work in Odoo for a construction company?
Each project gets an analytic account, and every timesheet, purchase order, subcontractor bill and material issue posts against it. You see cost-to-date and margin per site while the job is running, not after handover. Work-in-progress entries at month-end are handled in Accounting, so the P&L and the project view tell the same story.
Can Odoo handle retention money and withholding tax on subcontractors?
Retention is not a standard Odoo field, so we configure it: a deduction line on each progress invoice posting to a dedicated retention account, so unreleased retention stays visible per project until the defects liability period ends. In Thailand, withholding tax on subcontractor services is covered by the Thai localisation, including the certificates your accountant files. Both are set out in the fixed written scope before we build anything.
We plan in Primavera or MS Project and keep our BOQ in Excel. Does Odoo replace those?
Not the scheduler. Odoo is not a CPM planning tool, and pretending otherwise wastes your money — keep Primavera or MS Project for the programme. The BOQ imports into Odoo as order lines or project tasks, and Odoo takes over from there: purchasing, subcontractor bills, progress claims and cost tracking against those BOQ lines.
Let's find out whether Odoo actually fits your business.
A short call, an honest answer. If it isn't the right system for you, we'll say so.