Skip to content
faceela

Construction ERP for UAE Contractors: What It Has to Do Before It Is Worth Buying

· 12 min read · Faceela

Ask a contracting company what it made on a project and the honest answer is usually a date. "We will know at the end of the month." Sometimes: "We will know when the QS finishes the reconciliation."

That is the problem. Not the margin — nobody has seen the margin yet. The problem is that the number arrives after the decisions that depended on it. You already priced the next tender. You already agreed to the acceleration. You already released a subcontractor's retention. Whatever the reconciliation says now, it is history.

Almost every contractor in the UAE arrives at ERP through this door. Not because the accounting is wrong — the accounting is usually fine — but because the accounting is a month behind the site, and the gap between them is where the money is either made or quietly lost.

The software industry's answer to this is to sell you a system. The useful question is narrower: what does a system have to do before it is worth the disruption of putting it in?

The four numbers a contractor's system exists to produce

Strip away the module list and there are four numbers. Everything else in a construction ERP is machinery for producing them.

Certified to date, by contract. What the client has accepted, in value, against what you have executed. Not what you invoiced — what was certified. Those are different numbers and the difference is your dispute register.

Cost to date, by contract, at the cost-code level. Labour, materials, subcontract, plant, preliminaries. Committed as well as incurred, because a purchase order raised is money spent whatever the ledger says.

Cost to complete. The forecast, updated by people who have been on site this week. This is the only forward-looking number in the set and it is the one most often produced in a spreadsheet by someone who will be on leave when it matters.

Cash position against the contract. Retention held, advance outstanding, certified-but-unpaid, and how long each of those has been sitting there.

A system that produces all four, weekly, without a reconciliation exercise, has paid for itself. A system that produces beautiful general ledger reports and cannot tell you cost to complete has not. That distinction is worth holding onto through every demo you sit in, because ERP projects tend to die from the mundane parts — the cost codes, the opening balances, the item master — rather than from the parts vendors present.

Why the standard order-to-cash model breaks

Generic ERP is built around a transaction shape: quote, order, deliver, invoice, collect. It is a good model. It describes a trading company almost perfectly. It describes a contractor almost not at all.

You do not invoice. You apply, and someone else decides

A contractor submits a payment application. A consultant or engineer assesses it. What comes back is an interim payment certificate (IPC) for a value that may not be the value you applied for, on a FIDIC-shaped cycle where the certification date, not the application date, starts the payment clock.

So the revenue event is external. It happens in someone else's office, to a document you do not control, and the difference between applied and certified is a business fact that has to survive in the system rather than in an email chain. A system that treats your application as an invoice cannot represent the most common event in your month: a partial certification.

Retention is a balance sheet item with a life of its own

Retention is deducted from every certificate, accumulates against a limit, and is released in stages — typically part at practical completion, the balance at the end of the defects liability period. Against you, the client holds it. In the other direction, you hold it from your subcontractors on different percentages, different limits and different release triggers.

Model it as a discount line and it disappears from the balance sheet. Model it as a manual journal and you get a retention ledger that lives in one finance file and is reconciled by hand once a quarter. Ask your finance lead what your total retention receivable is today, by contract, with release dates. The time it takes to get that answer tells you more about your systems than any gap analysis.

The advance is a loan you repay in kind

An advance payment against a bank guarantee is recovered by deduction from subsequent certificates — often at a fixed percentage, often with a threshold before recovery starts, sometimes accelerated late in the contract. It is a recovery schedule, not a credit note. If it is calculated by hand on each application, the error only shows up when the guarantee expiry and the outstanding balance disagree.

Variation orders are a chain, not a line item

A variation begins as an instruction, becomes a quotation, becomes an approved value, and then becomes a quantity in a payment application. At any moment a contractor of reasonable size is carrying variations at every stage of that chain simultaneously. Two questions decide whether your system is doing its job: what is instructed but not yet priced, and what is approved but not yet in an application. If either one is a spreadsheet, the spreadsheet is your revenue recognition system.

What generic ERP assumesWhat the contract actually does
You issue the invoice and set the valueThe engineer certifies a value, which may be lower than applied
Revenue is recognised on deliveryRevenue follows measurement and certification, on a monthly cycle
Discounts reduce the invoice permanentlyRetention is withheld, carried, and released against milestones
A prepayment is a customer balanceThe advance is recovered by formula from each certificate
A change order is a new sales orderA variation moves through instruction, pricing, approval, then measurement
Cost is a purchase invoiceCost is committed at PO, incurred at GRN, and forecast to completion
Margin is known at invoiceMargin is a forecast until the final account is settled

None of this is exotic. It is the ordinary week of every contractor in the country. It is simply not what the standard product was built to represent — which is why the honest reading of the gap matters more than the feature list, and why we published the five things standard Odoo cannot do for a contractor despite being an Odoo partner.

Main contractor or subcontractor: not the same buyer

These two get sold the same software and they should not be.

A main contractor carries the client-facing certification chain and a large subcontract ledger underneath it. The hard problem is back-to-back: certifying subcontractor work in a way that reconciles to what the client certified to you, so that a subcontractor is not paid for a quantity the consultant rejected. The system has to hold both directions of the same measurement and reconcile them.

A subcontractor has a smaller certification chain and a harder cash problem. The main contractor's payment terms may be pay-when-paid in substance if not in wording, and your entire working capital question is the age of certified-but-uncollected value plus retention held against you. Cost-to-complete accuracy matters more here, not less, because there is no margin cushion to absorb a wrong forecast.

A specialist or MEP subcontractor adds a third shape: significant procurement with long lead times, and often fabrication that behaves like manufacturing. If a meaningful part of your cost is made rather than bought, read the manufacturing side of the same question as well, because a BOQ line and a bill of material are different objects and a system that conflates them will misvalue both.

Ask any vendor which of the three they have configured most recently. The answer is more useful than the reference list.

The cost side is where most systems are quietly wrong

Certification gets the attention because it is the money coming in. The cost side is where the margin actually leaks, and it leaks in two specific places.

Subcontractor back-charges

You supplied the concrete. You cleaned up after them. You covered the crane time. Every one of those is a back-charge, and back-charges are the single most commonly ungoverned transaction in construction. They are agreed verbally on site, recorded in someone's notebook, and applied — or forgotten — at final account.

The system requirement is unglamorous: raise the back-charge as a document at the moment it happens, against the subcontract, with the site person who authorised it named, so that it appears automatically as a deduction on the next certification rather than as an argument eighteen months later. This is the sort of thing that lives in WhatsApp in most companies, which is exactly the pathology that moving approvals out of chat threads and into the system is meant to fix.

Plant and equipment

Owned plant is a cost centre that has to charge projects. If your excavator is on a project for three weeks, that project should carry an internal hire cost, and the plant department should carry the recovery. Without it, plant looks like a pure overhead, projects look more profitable than they are, and your tender rates are built on the wrong basis.

Two decisions matter and both are business decisions rather than software ones. What is the internal hire rate, and does it include operator, fuel and maintenance? And who records movement — because if a machine's location is recorded weekly by an administrator from memory, the charge is fiction. Systems make this possible; they do not make it true.

WIP, cost to complete, and the number that is really a judgement

Work in progress on a construction contract is the difference between what you have earned and what has been certified. It is the most subjective figure on your balance sheet and it depends entirely on cost to complete — which is a forecast made by human beings.

The temptation is to derive it: percentage of cost incurred against budget, multiplied by contract value. Do that and you get a number that is arithmetically clean and frequently wrong, because it assumes the remaining work costs what the budget said it would. On a contract with a known problem — a delayed approval, a rate that was underpriced, a subcontractor in difficulty — the forecast has to be entered by the person who knows, not calculated from history.

So the real system requirement is a discipline, not a feature: a monthly cost-to-complete entry per cost code, owned by a named quantity surveyor, with the previous month's figure visible next to it. The movement between the two is the early warning. A contract whose cost to complete rises quietly for three consecutive months is telling you something no dashboard threshold will.

This is also where reporting flatters people. A margin report that recalculates from a stale forecast looks authoritative and says nothing, which is the general case of why the number on your dashboard can be confidently wrong. Put the forecast date on the report. If the forecast is six weeks old, the margin is six weeks old.

The compliance deadline that lands inside your payment application

UAE e-invoicing arrives on a published timetable. The regime is voluntary from 1 July 2026. Businesses with annual revenue of AED 50 million or more must appoint an Accredited Service Provider by 30 October 2026 and go live on 1 January 2027. Below that threshold, appointment is due by 31 March 2027 and go-live on 1 July 2027. Government entities follow on 1 October 2027. Failure to appoint or implement on time carries a penalty of AED 5,000 per month. B2B and B2G transactions are in scope; B2C sits outside it.

Contractors have a harder version of this than most sectors, and the reason is structural rather than technical. Your tax invoice is generated from a payment certificate that carries measured quantities, a retention deduction, an advance recovery and often a variation annexure. Turning that into a structured electronic document means the certificate has to exist as data before it can be transmitted as data. If your IPC is assembled in Excel and re-keyed into the accounting system as a single revenue line, you do not have an e-invoicing problem. You have a billing-process problem that becomes visible on a deadline.

The sequencing follows from that. Get the certification chain into the system first, in a form where every deduction is a calculated field rather than a typed one. The service provider integration is the last step, not the first.

Dates and thresholds above are from the UAE Ministry of Finance e-invoicing programme, checked on 12 August 2026.

How to test this in a demo

Vendors demonstrate what their product does well. Your job is to make the demonstration follow your contract instead of their script. Bring one live contract and ask for it to be run end to end in front of you.

  1. Load a BOQ with at least one provisional sum and one rate-only item. Watch whether the structure survives, or whether it becomes a flat list of products.
  2. Enter a measurement for a partial quantity on three lines, and produce a payment application from it.
  3. Certify it at a value lower than applied. Ask where the difference now lives and how it appears on the next application.
  4. Show the retention deduction, the retention balance and the release schedule, without a journal entry.
  5. Apply an advance recovery at a contractual percentage and show the outstanding advance afterwards.
  6. Raise a variation, price it, approve it, and include it in the next application, and then show it separately in the contract value.
  7. Certify a subcontractor for the same works, apply a back-charge, and reconcile the subcontract certification to what the client certified.
  8. Produce the project profit and loss with committed cost included and cost to complete entered manually.

Anything a vendor cannot do in front of you is either configuration you will pay for, a module you have not been quoted, or a spreadsheet with a longer lifespan than the project. There is no fourth category. Where the answer is a build, insist on the version that keeps its upgrade path intact rather than the one that becomes a single developer's private patch set.

The order to do it in

Contractors who get this right tend to sequence it the same way, and it is not the sequence vendors propose.

First, the cost code structure. One coding scheme, used by estimating, procurement, site and finance. If the estimator's codes do not match the ledger's codes, no system will produce a project profit and loss you can trust, and no amount of configuration will fix it later. This is a two-week argument that saves a two-year problem.

Second, procurement and commitments. Purchase orders and subcontracts inside the system, so committed cost is real. This is achievable quickly and it changes the conversation immediately, because for most contractors the gap between committed and incurred is the number nobody currently has.

Third, the certification chain. BOQ, measurement, application, certification, retention, advance, variation. This is the part that generic ERP does not contain and where you are choosing between a vertical product, a partner's construction module, or a build. Decide honestly which one you are buying; the failure mode is discovering in month five that you assumed a module existed.

Fourth, subcontract back-to-back and back-charges. Once the client-facing chain works, mirror it downwards.

Fifth, e-invoicing. By this point it is an integration, which is what it should have been all along.

Each phase has to be usable on its own. That constraint is the whole point of a phased ERP rollout where nobody waits for the consultant to come back — and it is doubly true in construction, where a project that started before go-live will still be running two years after it.

If Odoo is on your shortlist, the broader assessment of where Odoo fits and where it does not in the UAE covers the parts of that decision which are not construction-specific. The construction-specific part comes down to one sentence you should get in writing from whoever you appoint: name the module that produces the payment certificate, and say whether it ships with the product or is being written for you.

Neither answer disqualifies anyone. "Being written for you" is frequently the correct answer in construction, because the certificate chain genuinely does not exist in any standard product. It only becomes a problem when nobody says so — or when software written specifically for you is priced as a configuration task rather than as a component somebody has to own and upgrade for as long as you run the system.

Next step

Is this happening in your company?

If the article described your situation, the useful next move is a diagnosis rather than another article. Tell us the one thing that is not working.

Monday to Friday, 9:00 AM – 6:00 PM (GST)

Prefer we call you?

Leave your WhatsApp number and we will reach out.

We reply on WhatsApp first. Include your country code.

No newsletter, no reselling your number. We use it to reply to you — see our privacy policy.

WhatsApp us