Most Odoo projects in construction companies don't fail because of Odoo. They fail because the contractor arrived at the first workshop without the information the implementer needed, agreed a scope based on a demo, and discovered three months in that the system bills like a shop while the company bills like a contractor.
This checklist is the preparation we would want from any Saudi contractor before an Odoo implementation starts — what to gather, what to decide, and what to ask. Work through it before you sign, and the project starts from your contracts instead of from a template.
1. Decide what Odoo is replacing — and what it isn't
Write down every system and spreadsheet the company uses today, and next to each one, whether Odoo replaces it, connects to it, or leaves it alone. Typical entries for a contractor:
- Accounting software (usually replaced)
- The BOQ and progress-claim workbooks (replaced — this is the core of the project)
- Procurement and site-store spreadsheets (replaced)
- Payroll and attendance (replaced or connected, depending on what you run today)
- Planning tools such as Primavera or MS Project (usually kept and connected, not replaced)
- Document control and drawings (often kept)
This list sets the scope. A vague scope is the most common reason an Odoo project for construction runs long.
2. Collect one real contract per contract type
Bring the actual documents, not a description of them:
- The signed BOQ, including how items are grouped and coded
- Two or three recent progress claims (IPCs) and the certificates the consultant returned
- The retention and advance-payment clauses
- A variation order and how it changed the BOQ
- A subcontract and one subcontractor certificate
If you run lump-sum, re-measured and cost-plus contracts, bring one of each. These documents decide how the system models your billing — and billing is where standard Odoo usually needs extending for contractors.
3. Agree your cost structure before anyone configures anything
Odoo tracks costs against projects through analytic accounts. Decide up front:
- Cost codes — the categories you report cost against (materials, labour, equipment, subcontract, overheads), and whether they map to BOQ sections
- What counts as a project — one contract, one site, or one phase
- Where overheads go — allocated to projects monthly, or held at company level
Changing the cost structure after go-live means restating history. Changing it in a workshop costs an afternoon.
4. Map the claim cycle step by step
For one real claim, write down who does what and when:
- Who measures progress on site, and how it reaches the office
- Who prepares the claim and from which file
- How the consultant's certified figure differs from what you claimed — and where the difference is recorded
- When retention, advance recovery and other deductions are applied
- When the tax invoice is issued — before or after certification
- How payment is matched to the certificate
This map becomes the specification for the custom part of the system. It also shows where ZATCA e-invoicing has to sit: the invoice should come from the certified amount, not be retyped.
5. List your reports — the real ones
Collect the reports management actually reads today: project cost reports, cash-flow forecasts, subcontractor balances, retention outstanding, WIP. Mark which ones are produced by hand. These become the acceptance test: if Odoo can't produce them on day one, the project isn't finished.
6. Prepare the data you will migrate
Start cleaning early; it always takes longer than expected.
- Customers, suppliers and subcontractors (with VAT numbers)
- Item and material lists, with units of measure
- Open projects with BOQs and certified-to-date quantities
- Retention held and advances outstanding per contract
- Opening balances at a clean cut-off date — ideally a month end
- Employees, if payroll moves too
The rule that saves the most pain: move running projects at a claim boundary, so the first claim in Odoo starts from a certified figure everyone agrees on.
7. Decide hosting and licensing before the build
Ask early, and get the answer in writing:
- Which Odoo apps the scope needs, and what that means for licensing
- Where the system will be hosted, and whether any client or sector requires data to stay in the Kingdom
- Who owns the custom modules' source code once the project ends
8. Check ZATCA and Saudi setup on your own invoices
Odoo's Saudi localization supports ZATCA e-invoicing, but your invoice types are what matter. Test, before go-live:
- A tax invoice issued from a certified progress claim
- A credit note after a certificate is revised
- An invoice that includes retention or advance recovery lines
- Arabic and English on every document
9. Ask your implementer these questions
- Which parts of our claim cycle will standard Odoo handle, and which need custom modules?
- Can you show a progress claim built from cumulative BOQ quantities?
- How will variation orders change the BOQ without losing the original?
- How are subcontractor certificates linked to the BOQ lines we bill the client for?
- What does the first month after go-live look like, and who supports us?
- Who owns the code you write for us?
A good answer to the first question is specific. "Odoo does everything" is not.
10. Plan the rollout, not just the go-live
The safest pattern for contractors:
- Configure standard Odoo — accounting, purchasing, inventory, projects — and run the company on it.
- Build and test the contracting modules on one live project.
- Start new projects in Odoo; move running projects at their next claim.
- Retire the old workbooks only when two claim cycles have closed cleanly.
Work with us: see how we build Odoo for construction companies — standard Odoo for projects, purchasing and accounting, plus BOQ, progress-claim, retention and subcontractor modules — or read our guide to progress billing (IPC) for Saudi contractors.
FAQ
How long does an Odoo implementation take for a contractor? It depends mostly on how much of the claim cycle needs custom modules and how clean your data is. Agree a phased plan with dates after the workshop on your real contracts, not before.
Can we start with accounting and add construction features later? Yes. Many contractors start with standard Odoo for accounting, purchasing and inventory, then add BOQ and progress-claim modules as a second phase — as long as the cost structure is designed for both from the start.
Do we have to stop using Primavera or MS Project? Usually not. Planning tools are often kept for scheduling, with progress and cost brought into Odoo.
What is the most common mistake? Agreeing the scope from a demo instead of from your own contracts. The demo shows a sales order; your business runs on certified quantities.

