Skip to content
faceela

Payroll Is the Module Everyone Does Last, and Regrets

· 12 min read · Faceela

In most mid-market UAE companies, payroll runs in a spreadsheet that one person maintains, and the bank file is produced by copying figures into a portal or a template downloaded from the bank's website. The spreadsheet has been in service for years. It works. It has formulas nobody has audited since the person who wrote them left.

Meanwhile the ERP holds an employee master with names and a few fields, because the implementation team created it to make the purchase approval matrix work and then stopped. The gratuity liability appears in the accounts once a year as a single journal produced by the auditor's schedule. Labour cost reaches the projects as a monthly allocation based on a percentage somebody agreed in 2021.

Every one of those is a decision to defer, and each was reasonable on the day it was taken. Together they are the reason the company cannot tell you what a completed job actually cost, cannot tell you what it owes its workforce if everyone resigned tomorrow, and now has a statutory payment date with an enforcement ladder attached to it.

This piece is about what UAE payroll actually demands of a system, and why the sequencing instinct — do the money first, do the people later — is usually wrong.

Why payroll gets deferred, and why each reason is weaker than it looks

"It works, so leave it." Payroll is the one process in most companies that already runs on time every month. That reliability is real, and it is produced by a person rather than a system. It survives until that person is on leave, or leaves.

"It is sensitive." Salaries are confidential, and putting them into a system other people use feels like a leak waiting to happen. It is a genuine concern with a genuine answer — record rules and field-level access — and it is the concern that most often results in payroll being carved out entirely rather than configured properly. That carve-out is itself an access control decision, just an unexamined one.

"HR is not ready." Frequently true. Employee data here is scattered across a PRO's folder, an HR spreadsheet, the visa file and a WhatsApp thread. Bringing it into a system means confronting how incomplete it is, which is exactly the argument for doing it early.

"Phase two." The honest one. Payroll has no revenue attached and no customer complaining, so it loses every prioritisation argument against sales, purchasing and stock.

The WPS file is a hard interface with a statutory date on it

The Wage Protection System is not a report. It is a fixed-format file — the Salary Information File — transmitted through an agent bank or exchange house, carrying the establishment's identifiers, each employee's labour card number and bank details, and the pay components for the period. The format is defined externally: your system either produces it correctly or produces something that gets rejected. Three characteristics make it different from other files your ERP generates.

It is complete or it is a violation. Everybody on the establishment has to appear. A person on unpaid leave, a person who joined mid-month, a person whose bank account is being changed — each is an edge case handled inside the file rather than by omitting the row. Partial submission is treated as partial payment.

The identifiers are external. The labour card number and the establishment number come from the Ministry, not from you. They have to be on the employee record, correct, and maintained when a card is renewed or a person moves between establishments in the same group. If your employee master does not carry them as validated fields, somebody is retyping them monthly, and retyping has an error rate.

Deductions now need explanation. The direction of travel is towards coded reasons for deductions rather than a net figure. If your payroll deducts for absence, for a salary advance, for a loan repayment and for a fine under the same "other deductions" line, that has to be broken into typed components. Confirm the current coding requirements with your agent bank and the Ministry, because this area is updated by circular rather than by legislation.

What changed in mid-2026

The Ministry of Human Resources and Emiratisation issued a new Wage Protection System resolution — Ministerial Resolution No. 340 of 2026 — which came into force on 1 June 2026 and replaced the previous framework. The change that matters operationally is the removal of the old grace period in favour of a single unified due date: the first day of each Gregorian month, for the preceding month's wages. Payment after that date is a delay.

There is a compliance tolerance expressed as a proportion of total wages transferred by the due date, and an escalation ladder running from notification through work permit restrictions to more serious enforcement as the delay lengthens. Confirm the current tolerance percentage and the enforcement steps directly with MoHRE, because these are the parameters most likely to be adjusted and the summaries circulating online disagree with each other.

The system consequence is severe. A payroll process that takes eight working days — because timesheets arrive late from sites, because overtime is approved by email, because one manager always signs off after the deadline — no longer fits between the end of a month and the first day of the next. It never really did; the grace period absorbed it. Remove the grace period and every weak link upstream becomes a compliance event.

That is the real reason to bring payroll into the ERP: not the file, which is a technical exercise, but the fact that the file's deadline now sits upstream of a process living in email.

The obligations, and what each one demands of the system

ObligationWhat the system has to holdWhere it usually breaks
WPS transfer by the due dateLabour card and establishment numbers, IBANs, typed pay componentsIdentifiers held as free text and retyped each month
End-of-service gratuityContinuous service dates, basic wage history, reason for leavingCalculated once a year from a schedule, never carried as a liability
Annual leaveAccrual by service length, balance, carry-forward rulesLeave tracked in a separate spreadsheet with no link to payroll
Leave encashmentTwo different wage bases depending on when it is paidA single "salary" field with no basic/allowance split
Sick leaveEntitlement bands at full, half and nil payHandled manually, applied inconsistently
Labour cost to jobsHours by employee against a project or work orderA monthly allocation percentage nobody has revisited
Cost of employmentEverything above, plus visa, insurance, ticket, accommodationSits in overhead, never reaches the job cost

The pattern across that table is the same in every row: the obligation depends on a fact about an employee over time, and most employee masters record only the current state.

Gratuity is a liability that accrues, not a payment that happens

Under the current UAE labour law, an employee who has completed at least one year of continuous service is entitled to end-of-service gratuity calculated as twenty-one days of basic wage for each of the first five years and thirty days of basic wage for each year after that, with the total capped at two years' wage. Verify the specifics for your own workforce — the treatment of part-time and flexible arrangements, and the position for employees enrolled in the voluntary savings scheme, follows separate instruments.

Three things follow, and only the first is widely understood.

It is based on basic wage, not total wage. So your payroll structure has to genuinely split basic from allowances, and the split has to be the one in the employment contract rather than a convenient reverse-engineering. Companies that pay a consolidated figure and notionally treat some share of it as basic are carrying an assumption that will be tested at the worst moment.

It accrues monthly, whether you book it or not. The obligation exists from the thirteenth month of service and grows every month. A company that recognises it once a year in an audit journal runs for eleven months with a liability that is not in its numbers. In a growing workforce that is material, and in a business that prices jobs on cost it systematically under-costs every quotation.

It is a step function, not a straight line. The rate changes after five years. A workforce with a cluster of employees approaching that anniversary has a liability about to accelerate, and no single-line accrual will show it. A system that holds join dates and computes the accrual per employee will.

The savings scheme changes the shape, not the requirement

Since Cabinet Resolution No. 96 of 2023, employers may opt into a voluntary alternative scheme, making monthly contributions to an approved fund instead of paying a lump sum at the end. The contribution is expressed as a percentage of basic salary that steps up after five years of service.

For an ERP this is arguably simpler — a monthly contribution is an ordinary payroll payment — but it does not remove the underlying data requirement. You still need accurate service dates and an accurate basic wage, because both determine the contribution rate. And during any transition you are running two populations with different treatments, which is precisely the sort of thing a spreadsheet handles by having two tabs and no reconciliation between them.

Leave: two accruals, two wage bases, one common error

Annual leave entitlement in the private sector is thirty days a year once a year of service is complete, accruing at two days a month between six and twelve months. Employees can carry forward a portion, and unused leave is settled on termination.

The trap is that leave paid during employment is generally calculated on full wage — basic plus the regular allowances — while leave encashed on termination is generally calculated on basic wage only. Two different bases for what feels like the same entitlement. A spreadsheet that holds one salary figure per employee will get one of the two wrong, permanently, and nobody will notice until a settlement is disputed.

Sick leave has its own band structure — a period at full pay, a longer period at half pay, and a further period unpaid, within an annual entitlement that begins after probation. Applied manually, it is applied inconsistently, and the inconsistency shows up as either overpayment nobody reclaims or an argument in a labour case.

The system requirement here is unremarkable and rarely met: a leave balance that is computed from service and transactions rather than maintained by hand, linked to the payroll run so that an absence changes a payslip without anyone re-keying it.

The accruals that are not payroll but belong beside it

Air fares. Visa and medical costs. Employment insurance. Accommodation and transport where provided. Each is a real cost of employing a person, each is typically paid in a lump at an irregular interval, and each sits in an overhead account rather than against the person or the job.

The consequence is a fully-loaded cost of labour the business does not know. When a contractor prices a job at a daily rate for a skilled worker, the rate is derived from the salary and a factor somebody once arrived at. Whether that factor is right is a question the accounts can answer only if the costs are attached to people rather than to a general ledger account for staff costs.

Labour cost has to reach the job, or the job cost is fiction

This is where payroll stops being an HR concern and becomes the reason your margins are unreliable.

In a fabrication business, materials are typically the largest single element of a job's cost, but labour is the element that varies most against the estimate and the one recovered as a rate rather than measured. In a contracting business, labour and subcontract together decide whether the project made money. In both cases the cost is known in aggregate at month end and unknown where decisions are taken.

Getting labour to the job needs three things, and the third is the one that fails.

A time record with a dimension on it. Hours captured against a project, a work order or a cost centre — not just a date and a total. A tablet at the workshop entrance, a supervisor's daily entry, a mobile app; the mechanism matters less than the discipline.

A rate that is defensible. Not basic salary divided by hours. The fully-loaded cost including gratuity accrual, leave accrual, visa, insurance and the other costs of employment, divided by the productive hours actually available after leave and public holidays. An unloaded rate under-costs every job by a meaningful margin.

Reconciliation back to payroll. Total labour cost allocated to jobs, plus unallocated time, has to equal total labour cost in the ledger. If it does not, one of the two is wrong, and in the absence of the check nobody knows which. This is the same control gap that produces manufacturing costs nobody can defend and it is the difference between a job costing report and a job costing story. For contractors it compounds, because cost has to tie back to a payment certificate that a client's engineer has already approved.

The four-way reconciliation nobody runs

Once payroll is inside the system, there is a monthly check worth building into the close. Four numbers, from four sources, that ought to agree:

Total wages in the payroll run. Total wages in the WPS file transmitted. Total payroll expense posted to the general ledger. Total labour cost allocated to jobs, plus unallocated.

In most companies these four figures are produced by three different people from three different places and have never been compared. When they disagree, the reasons are instructive: an employee paid outside the run, a joiner missed in the file, an allocation that excludes overtime, a cost centre that exists in one system and not the other.

Running the check monthly catches a category of error that otherwise surfaces at year end, when the audit finds it and the explanation has to be reconstructed. It is also the exact evidence you want when an authority asks your system a question about staff costs, related-party remuneration or the cost base behind an intercompany charge.

Where payroll belongs in the sequence

The instinct to do finance, sales and stock first and payroll second is not wrong in every case. In a trading business with forty office staff and no job costing, payroll genuinely can wait.

It cannot wait in three situations, and they cover most of the mid-market here. If labour is a significant component of what you sell — contracting, fabrication, facilities management, any professional services firm billing time — deferring payroll defers the ability to know what anything cost, which was the reason for the project. If your workforce is large enough that WPS timing is a real operational risk, the upstream process has to be fixed and the system is how you fix it. And if your gratuity liability is material relative to your profit, running it as an annual journal is a reporting weakness an auditor will eventually raise.

The pragmatic middle path is to bring the employee master, service dates, wage structure and time capture into the first phase even if the payroll calculation follows later. The master data is the long pole; the calculation is configuration that takes weeks once the data behind it is trustworthy.

If you want to see what the deferred version is costing before you decide, the cost of chaos assessment puts a shape on the manual effort and rework hiding in processes like this one. And if payroll is the piece you have been carrying alone in a spreadsheet, an Odoo implementation that starts with the employee master rather than ending with it is a different project from the one usually proposed.

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