A contracting business in the UAE runs on a sequence that almost never lives in one system: an enquiry, a site visit, a quotation, an LPO, the work itself, variations nobody wrote down properly, an invoice, retention, and a long wait to be paid.
Each step usually happens somewhere different. The quotation is in Excel. The LPO is a PDF in an inbox. The job is on WhatsApp. The invoice is in the accounting system, typed again from the quotation. Retention is in somebody’s head.
This post is about where that sequence actually leaks, and which parts are worth automating. The answer is not all of them.
Leak one: the quotation gets typed twice
The quotation is built carefully, line by line, with quantities and rates. It is approved. Then, weeks later, somebody opens the accounting system and types those same lines in again to raise the invoice.
Two problems follow. The obvious one is the time. The quieter one is that the invoice and the quotation drift, because the retyping happens from whichever version was nearest, and on a job with three revisions that is a coin toss.
The fix is not clever. The quotation and the invoice should be the same record at different stages, not two documents that happen to resemble each other. In a system like Odoo that is how it works by default: the quotation becomes the order, the order becomes the invoice, and the lines carry through. Most of the saving here comes from configuration rather than from automation, which is worth saying plainly because configuration is cheaper.
Leak two: variations
This is where contracting money disappears, and no software fixes it on its own.
The client asks for something extra on site. The foreman agrees, because saying no to a client on site is hard. The work is done. Nobody raises a variation, and at the end of the job there is an argument about whether it was in scope.
The useful automation here is small and unglamorous: make raising a variation take thirty seconds from a phone, and make the absence of one visible. A foreman photographs the instruction, picks the job, adds a line, and it lands against that job as a pending variation needing approval. A weekly list shows every job where site hours or materials have moved but no variation exists.
That does not stop the problem. It makes it visible while it can still be billed, which is the most any system can honestly offer.
Leak three: nobody knows which jobs are profitable until they are finished
Costs land in different places at different times. Labour is in a timesheet, or in nothing. Materials are on a supplier bill that arrives three weeks later. Subcontractors invoice when they feel like it.
So the job margin is knowable only in hindsight, which is exactly when it is useless.
Two automations help. Supplier bills coded to the job at the point of entry rather than at month end, which is the same mechanism as automating supplier invoice entry, with the job reference added as a field. And a simple alert when committed cost on a job passes a percentage of its quoted value, so the conversation happens while the job is still running.
The alert is three lines of logic and it is usually worth more than anything else on this list.
Leak four: getting paid
Payment terms in this market are long, often sixty or ninety days, and retention sits on top of that at five or ten percent for a year or more after completion.
Retention is the one people lose. It is a real receivable, it is often not tracked separately from the main invoice, and a year later nobody remembers to ask for it. If you do nothing else from this post, give retention its own line in your books with its own due date, and set a reminder against it.
For the rest, a reminder schedule that runs on its own is straightforward: a message a few days before due, one on the day, then at intervals after. In the UAE those reminders land far better on WhatsApp than by email.
Keep the tone factual and keep the negotiating human. State the invoice number, the amount and the date. The moment a client replies with a reason, that is a person’s conversation, not a sequence’s.
Leak five: the LPO arrives as a PDF
Client purchase orders arrive by email as PDFs and get read by a person, who checks that the value matches the quotation and that the scope is the scope that was agreed.
That check is worth keeping human, because a mismatch between an LPO and a quotation is exactly the kind of thing you want somebody to notice properly. What is worth automating is the filing: the PDF attached to the right job automatically, with its number and value extracted, so that six months later nobody is searching an inbox for it.
What we would not automate here
Pricing a job. Rates depend on access, site conditions, how difficult the client was last time and how much you want the work. That is judgement, and a model guessing at it will be confidently wrong on the jobs that matter.
Approving a variation. It should be fast to raise and easy to see. Approving it is a commercial decision.
Scheduling crews. On paper it is an optimisation problem. In practice it depends on who works well together, who has the licence for that site and who called in sick, and most contractors do it faster in their head than any system we could build would.
A sensible order
If you are starting from spreadsheets and WhatsApp, do it in this order.
First, get quotation, order and invoice onto one record so nothing is typed twice. That is configuration, it is quick, and it removes the most visible waste.
Second, code costs to jobs as they arrive, so margin is visible during the work.
Third, automate the payment and retention reminders, because that is cash rather than time.
Fourth, and only once the first three are habits, add the smaller pieces: variation capture from a phone, LPO filing, the committed cost alert.
Running them in that order means each step is useful on its own. Running them all at once means a six month project that nobody can evaluate. The method for choosing is set out in what to automate first.
Common questions
Do we need a specialist construction system?
Usually not at small and mid size. A general ERP configured for jobs, with cost coded to the job and retention tracked properly, covers most contracting businesses in this market. Specialist systems earn their place when you are running genuine multi year projects with progress claims and certified valuations.
How is retention handled correctly?
As its own receivable with its own due date, separate from the main invoice, so it appears in your aged list rather than vanishing into a paid balance. The VAT treatment follows your invoicing, so it is worth agreeing that with your accountant once and then configuring it rather than deciding it per job.
Our foremen will not use software on site.
Then the thing you give them has to be a photograph and two taps, and nothing more. Every extra field is a reason to go back to WhatsApp. If a step needs training, it is too big for site use.
Where does e-invoicing fit for a contractor?
The same as for everyone else, and the timing is worth knowing because contracting invoices tend to be complicated. Phased amounts, retention and variations all have to come out as structured data rather than as a PDF somebody assembled. The groundwork is in UAE e-invoicing.