Lesson 3 — The two wage bases, and the misconfiguration that halves your ceiling
If you take one operational point from this course, take this one. It is the highest-value configuration setting in the module and the one most often left wrong.
Article 51 uses two different wage figures, and the module keeps them apart because the law does. The gratuity itself is computed on the basic wage. The cap is expressed in terms of the full wage. These are different numbers about the same person, they live in two different fields, and they are meant to differ.
| Field | Statutory basis | What to enter |
|---|---|---|
| Accrual Wage Fields | Art. 51(2) — the gratuity is computed on the basic wage, excluding allowances and benefits in kind | Normally just wage |
| Cap Wage Fields | Art. 51(6) — the total gratuity may not exceed two years' wage, meaning the full wage rather than the basic | Typically the whole package: wage,hra,travel_allowance,da,meal_allowance,medical_allowance,other_allowance |
Both fields take a comma-separated list of employee-version fields, which are summed. They are read independently of each other.
Why leaving the cap at the bare basic wage is so costly. Express the cap in days and the arithmetic becomes obvious. Two years of wage, at the Days per Month divisor of 30, is 720 days of whatever wage the cap field names. The entitlement itself is 105 days plus 30 days for each year beyond the fifth, priced on the basic wage. If the cap field names only the basic wage, the wage cancels out of both sides and the ceiling bites at a fixed length of service — regardless of how much anyone is paid.
| What the cap field is set to | Ceiling expressed in days of basic wage | Service at which the cap starts to bite |
|---|---|---|
| The full package, worth twice the basic wage | 1,440 days | 49 years and 6 months |
| The bare basic wage alone | 720 days | 25 years and 6 months |
The worked example. Marco joined on 1 January 1998 and is still employed at 31 August 2026, which is 28 years and 8 months of continuous service. His basic wage is AED 9,000 and his full package is AED 18,000, so his daily rate is AED 300. His entitlement is 105 days plus 710 days, or 815 days, which comes to AED 244,500.
| Figure | Cap Wage Fields set to the full package | Cap Wage Fields left at wage |
|---|---|---|
| Statutory cap, two years' wage | AED 432,000 | AED 216,000 |
| Entitlement before cap | AED 244,500 | AED 244,500 |
| Cumulative provision carried | AED 244,500 | AED 216,000 |
| Capped flag on his line | No | Yes |
The misconfiguration understates Marco's liability by AED 28,500 and reports a statutory cap that the law does not impose on him. Nothing errors, nothing is highlighted in red, and the number looks entirely plausible on a report.
The opposite error costs you in the other direction. Adding allowances to the accrual field overstates the liability by the whole allowance stack. In Rania's case that would compute her gratuity on AED 24,000 instead of AED 12,000 and double it, to AED 144,000. Both fields are wrong in the same way — each names a wage the Article did not name for that purpose.
The failure mode, and its exact symptom. Everyone's accrual looks too small and a lot of rows are flagged Capped. That combination is almost always the Cap Wage Fields setting. If it names only the basic wage, the ceiling is roughly half where it should be. Set it to the full package and recompute. A related message worth recognising: if you mistype a field name, the module refuses to save it and tells you the field does not exist on an employee version — because a misspelled field name would otherwise surface as a silent zero accrual rather than as an error.