Way4Tech
๐Ÿ—๏ธ

Odoo for Construction & Real Estate Dev

Project costing, subcontractors, progress billing.

Construction project management with BOQs, subcontractor ledgers, progress billing, retention, and site equipment tracking.

Odoo has no construction app. No version between 17 and 19 holds a bill of quantities, a payment certificate, a retention balance or a variation register. A contracting system is assembled from parts that do exist. The site becomes a project and an analytic account, the priced BOQ becomes order lines, an interim valuation becomes delivered quantity, and every subcontract package becomes a purchase order coded to the same site.

The value of the build sits in committed cost. Posted cost tells a contractor what happened last month. What sinks a job is what has been ordered against a package and not yet invoiced. Purchase order lines carry an analytic distribution, so ordered value can be read beside actual cost and the allowance on one report. A package that has eaten its budget then shows in week six rather than at final account.

Community reaches further than most buyers assume. Project, Timesheets, analytic plans, distribution models, Sales, purchase agreements, multi step transfers, landed costs, Maintenance and Fleet are all there. The split is in finance. Community ships Invoicing, so journals, taxes and analytic coding work, while a profit and loss read per site, the bank reconciliation screen and asset management belong to the Enterprise Accounting app. Gantt, Planning, Field Service, Documents, Sign, Approvals, Studio and the clearance style e-invoicing localisations are Enterprise only.

Who this fits

  • → Main contractors and subcontractors on measured or fixed price work, where site cost has to land on the job rather than on the company.
  • → Developers accumulating land, construction and finance cost against a plot long before the first unit is handed over.
  • → MEP, civils and fit out specialists billing measured work and carrying retention through a defects liability period.
  • → Contracting arms of a group already on Odoo that still build interim applications in a spreadsheet outside the ledger.
  • → Not for a two person jobbing builder, where Project and Invoicing alone are enough and a coding structure is overhead nobody will maintain.
  • → Not for design work, because Odoo is a commercial and cost system and will not replace what your engineers draw in.

Core features

  • ✓ Project BOQ & costing
  • ✓ Subcontractor ledgers
  • ✓ Progress billing & retention
  • ✓ Site equipment tracking
  • ✓ Material reconciliation
  • ✓ Safety & HSE
  • ✓ Drawings & RFIs
  • ✓ Subcontractor payroll

How Odoo covers Construction & Real Estate Dev

The site as a project and an analytic account

Each site gets a project for the work and an analytic account for the money. A second analytic plan carries the cost code or work package, a third the funding partner on joint ventures. One journal item splits across all three by percentage. Analytic distribution models apply that split automatically from the vendor, the product category or an account prefix, which stops a buyer typing a code on every line.

A bill of quantities as priced order lines

The priced BOQ imports as sale order lines, a section per element, with quantity, unit and rate on each line. Odoo holds no measurement sheet, so take off stays with the estimator and only the priced summary comes across. Set service lines to invoice on delivered quantity, and the delivered figure becomes what the surveyor has measured this month. Provisional sums stay as their own lines.

Valuations, milestones and the certificate

Billing runs on delivered quantity. The surveyor updates the measured amount per line, the invoice picks up the difference, and cumulative certified value stays on the order instead of in a parallel workbook. Milestone invoicing suits lump sum stages where nothing is remeasured. Odoo prints a tax invoice, not the certificate an employer signs, so that layout is a report you commission. Advances are where standard behaviour diverges. The Odoo down payment is deducted in full on the final invoice, while a contract recovers an advance a slice at a time, so each application carries its own recovery line and the balance outstanding sits in its own account.

Retention as accounts, not as a field

There is no retention field anywhere in Odoo. The pattern that works is a retention line on each application at the contract percentage, posted to a retention receivable account rather than trade debtors, so money held is visible apart from money overdue. Release is a separate invoice at practical completion and another at the end of the defects period. Retention held from subcontractors mirrors it and never shares the same account.

Subcontract packages, and what Odoo means by subcontracting

The subcontracting feature in Odoo belongs to Manufacturing and means sending components out to be assembled. It is not a civils or MEP package. A package is a purchase order against the site with its own allowance, valued as work is certified, with back charges, retention and material issued to the trade netted off the payment. Purchase agreements hold the rates let before anything is called off.

Plant, site stores and unfixed material

Owned plant belongs in Fleet when the cost matters, because Fleet carries the odometer, the service history, contracts and running cost per vehicle. Maintenance carries equipment and the preventive and corrective work orders against it. Neither has an internal hire engine, and the Rental app prices equipment out to a customer rather than to your own site, so charging a machine to the job that used it is a rate card plus a periodic analytic entry somebody owns. Material bought for a site is a transfer to a site location, not a cost, so unfixed material stays an asset until it is issued. Landed costs put freight, duty and clearance onto the receipt value.

How the rollout runs

Agree the cost code structure before anything is configured

The cost breakdown decides every report the business will run and it is not a setting you revisit. Two analytic plans are easy to live with, one for the site and one for the work package. Five become an entry burden that site staff quietly skip. Keep the pick list short enough for a foreman on a phone. Recoding a year of posted entries is work nobody budgets for.

Cut over open contracts at one date

There is no clean way to import a half built job. Take each live contract at a single date with contract value, approved variations, value certified, amounts invoiced, retention held and cost to date as an opening analytic balance. Reconcile that to the last certificate the employer signed before anything posts. Replaying two years of applications into a new system buys nothing.

Decide how labour reaches the job

Labour decides whether a job made money and it is the hardest cost to collect. The Community timesheet is a form, which office staff will fill in and a steel fixer will not. The Enterprise grid is quicker for a supervisor entering a crew at once. The kiosk in Attendances captures who was on site, but attendance hours do not become project cost on their own, so that bridge is built rather than switched on. Pick one route and fund it. A project with no labour cost is a report nobody believes.

Treat variations as documents in their own right

A variation is not an edit to the original order. Give it a reference, an approval and a status, so contract value reads as original plus approved variations plus instructions still pending. The pending figure is what a commercial manager argues from, so it has to be visible before it is agreed. Merging variations back into the original order destroys the trail the employer will eventually ask to see.

Settle the retention and work in progress accounts with the accountant

Retention receivable, retention payable, work in progress and the account holding uncertified cost are agreed during design, not after go live. Odoo has no percentage of completion engine, so revenue recognised over time is a monthly journal built from the analytic report and one named person owns it. Agreeing this early avoids the audit question where the honest answer is a spreadsheet.

Where these projects go wrong

One analytic account called head office

The quickest configuration puts every cost on a single account and removes the reason for the project. Cost per site, per package and per trade collapse back into the number the owner already had. It usually starts with orders raised by an office that does not know the site code. The fix is a default distribution on the vendor and the product category, plus a rule that an uncoded order is not approved.

Committed cost read only after the bill posts

A contractor watching posted cost is several weeks behind. A package is exposed the moment the order is issued. The analytic entries behind a cost report come from posted journal items, so an order nobody has billed yet appears on none of them. Committed value has to be read from the purchase order lines, which carry the same analytic distribution, and that report is asked for during scoping or it never exists. Without it, a package that has already spent its allowance still reads as healthy.

Material expensed on the day it is bought

Posting steel, block and cable to cost as soon as the vendor bill lands makes early months look expensive and late months look profitable, and job margin is wrong throughout. Material bought for a site is stock until it is fixed. Receive it into a site location, issue it against the work, and accept the extra transactions rather than a monthly count nobody has time for.

Retention chased only when somebody remembers

Retention released two years late is the most common free money left behind in this industry. Held inside trade debtors it cannot be told apart from an overdue invoice, and the collections report turns into noise. Give it its own account, hold each release date as a scheduled activity on the contract, and make one person responsible for the two dates per job.

Site screens designed for office staff

Rollouts fail on site, not in the finance office. A foreman with a phone in a dusty pocket will not complete a form with fourteen required fields. Cut the site facing screens to what somebody can finish standing up, three fields and a photograph, and let the office correct the coding later. No amount of reporting configuration repairs an adoption problem.

What it works with

  • + Project and Timesheets, for the programme, the task structure and labour against a site
  • + Accounting, for analytic distribution, retention accounts, landed costs and the month end accrual
  • + Purchase, with agreements holding the rates let for a package before it is awarded
  • + Inventory, with a stock location per site so unfixed material stays an asset rather than a cost
  • + Sales, carrying contract value, the BOQ sections and the rates each application bills from
  • + Fleet and Maintenance, so plant hours, servicing and fuel land on the site that used them
  • + Documents, Sign and Field Service in Enterprise, for drawings, signed instructions and snagging

Country considerations

Saudi Arabia (KSA)

ZATCA Phase 2 clears every standard invoice through Fatoora before it reaches the buyer, so an application is not a draft you quietly correct after the consultant argues it down. A wrong valuation is settled with a cleared credit note, which is why the measure is agreed before the invoice is issued. VAT is 15 percent. The Saudi e-invoicing integration is an Enterprise localisation, site wages leave through WPS files, and Saudization quotas make the trade mix a compliance number as well as a cost.

United Arab Emirates

On a continuous supply the tax point is the earliest of the invoice, the payment or twelve months from the work, so retention held for years still becomes taxable. VAT is 5 percent and corporate tax 9 percent above the threshold, and e-invoicing is moving to a Peppol model in phases. A mainland licence and a free zone licence are two companies in the database, not one with a tag.

Qatar

Final payments to a contractor are commonly held until a tax clearance certificate is issued, so retention release runs on the authority timetable rather than yours. Returns are filed through Dhareeba, there is no VAT in force, and withholding applies to payments made to non resident designers and specialist trades. Public sector employers certify on their own form, so price that report against the real template.

Pakistan

FBR digital invoicing pushes sales tax invoices to the board as they are issued. Sales tax on construction services is provincial, so one contractor files with SRB in Sindh and PRA in Punjab under different rates and different rules. Income tax is withheld at source on contract payments, and each deduction certificate has to be matched back to the client payment before it can be claimed.

India

A works contract is a supply of service at 18 percent GST, and input tax credit on construction of immovable property is blocked, so tax on material becomes cost and the estimate has to be priced that way. Running account bills follow measurement. E-invoicing applies above the five crore turnover threshold, every load of material to site needs an e-way bill, and TDS applies to contract payments.

Turkey

Multi year construction contracts are taxed at completion under the yillara sari rules, with withholding taken from each progress payment, so book profit and taxable profit diverge for the whole life of the job. Standard Odoo carries no e-Fatura or e-Arsiv, which means a licensed integrator, and material sent to site needs an e-irsaliye dispatch note rather than a delivery slip.

United Kingdom

Under the domestic reverse charge a subcontractor invoices without VAT and the contractor accounts for it, which is a tax configured with the right grids rather than a feature you switch on. CIS is the harder half and is absent from Odoo entirely. Twenty percent comes off the labour element for a verified subcontractor and thirty for an unverified one, materials and plant hire excluded, with a monthly return and a statement to every subcontractor. Making Tax Digital wants digital links from record to submission, and the HMRC filing bridge sits in the Enterprise accounting reports.

United States

Owners and architects expect a pay application on the G702 and G703 forms, with a continuation line per schedule of values item, which Odoo does not print. Conditional and unconditional lien waivers travel with each payment and the wording is set state by state. Federally funded work needs certified payroll on form WH-347 every week. Sales tax turns on the job site address and on whether the work counts as a capital improvement, which is past what a hand kept tax table survives, so most builds wire in an external tax engine.

Questions we get asked

Is there a construction module in Odoo?

No. Odoo ships no construction app, so anything listed as one on the app store is third party code sitting on sale orders, projects and analytic accounts. Assess it as code you will maintain. Check it is published for your exact version, read what it does to the journal entry, and ask what happens at the next release.

Can a contractor run on Odoo Community?

Most of it, and the answer turns on three things. Clearance style e-invoicing, in Saudi Arabia for example, is an Enterprise localisation. Changing a form after go live is Studio in Enterprise and a developer in Community. A profit and loss filtered per site on screen is the Enterprise Accounting app, while Community gives you an exported analytic list. Procurement, stock, projects and coding all run on Community.

How many paid users does a contractor need?

Odoo charges for internal users, not for employees. The surveyor, the buyer, the site clerk and the accountant are paid users. A subcontractor or an employer representative is not, because portal access is free and shows them their own orders, invoices and documents. On a business with a large site head count and few people posting transactions, that changes the licence maths. Count the people who type.

Can Odoo print our payment certificate?

Not as it stands. Odoo prints a tax invoice. A certificate showing cumulative value, this period, retention held, previous payments and the amount due is a report layout somebody builds, and an application on the American forms is the same job. It is small work, but it belongs in the quote, and the employer template decides its shape.

Will Odoo replace our design or BIM tools?

No, and the integration people ask for is rarely worth building. Odoo holds no model geometry, no drawing revisions and no clash detection. What it does hold is the commercial register around the model. Documents in Enterprise keeps files against a project with versioning, so issued drawings, transmittals and instructions sit as dated records. Join the two on a shared drawing number.

What happens at the annual version upgrade?

Odoo releases once a year and supports three versions at a time, so a contractor is moving version roughly every two to three years, usually mid contract. Odoo's upgrade platform converts standard data. Custom parts are not covered by it. The certificate layout, the retention posting and anything built outside Studio has to be retested and sometimes reworked. Keep the customisation list short, written down, and priced into the year the upgrade lands.

Can the site work offline?

No. The Odoo back office needs a connection, and the offline capability in the product belongs to Point of Sale, which is not what a site uses. On a job with weak signal that means a supervisor keying the day in the site office on an evening link, or paper keyed the next morning. Decide which before go live, because a site that cannot record on the day stops recording at all.

Can Odoo show cost to complete?

Not by itself. Odoo reports what has been spent and, with the committed cost report, what has been ordered. Forecast final cost is a judgement the surveyor makes package by package, and no version of Odoo asks anyone for it. The builds that hold up put a forecast figure against each package as an editable value, review it on a fixed monthly date, and read gain and loss against the allowance from there. Skip it and the cost report is history while the commercial meeting still runs off a spreadsheet.

How do we handle a joint venture or a consortium share?

Odoo has no joint venture accounting. Two patterns hold up. If the venture invoices in its own name it is a separate company in the same database, with its own ledger, its own tax registration and shared cost moving between companies as real documents. If your entity carries the work and the partner takes a share, the share becomes an analytic plan running alongside the site and the apportionment is a monthly journal built from the analytic report. Choosing after the first application has been certified is expensive.