End-of-service gratuity is one of the largest liabilities on a GCC company's balance sheet, yet many businesses still calculate it in a spreadsheet on the employee's last day. In Odoo 19 you can keep the inputs on the contract, accrue the provision every month through payroll, and pay the gratuity in a final settlement payslip that posts cleanly to accounting. This guide walks through a practical setup using an example company, Al Noor Trading LLC.
Step 1: Get the Contract Data Right
Gratuity depends on two numbers: the employee's service period and the wage it is based on (usually the basic salary). Both must be reliable before any formula is written.
- Open Employees › Employees, select the employee and check the contract: start date, contract type (limited or unlimited where relevant), and the wage.
- Keep allowances (housing, transport) separate from basic salary so the gratuity rule can pick up basic only.
- Record unpaid leave properly through Time Off, because many labour laws exclude unpaid absence from the service period.
- For employees migrated from a legacy system, keep the original joining date — not the Odoo go-live date.
Step 2: Activate Payroll and Your Country Localisation
Go to Payroll › Configuration › Settings and make sure accounting integration is enabled so posted payslips create journal entries. Odoo provides payroll localisations for several GCC countries (for example the UAE and Saudi Arabia) that include salary structures and rules relevant to end-of-service. Install the one that matches your company and review what it already covers before you build anything custom.
Payroll settings: localisation, provision rule and accounting integration switched on.
Step 3: Define the Gratuity Formula in Salary Rules
Under Payroll › Configuration › Rules, review or create the end-of-service rule and attach it to the right structure in Payroll › Configuration › Structures. Typical inputs are the daily basic wage, years of service and the reason for leaving. The table below shows commonly cited reference formulas — always confirm against current law and your contracts.
| Country (example) | First 5 years | After 5 years | Notes |
|---|---|---|---|
| UAE (private sector) | 21 days' basic wage per year | 30 days' basic wage per year | Minimum one year of continuous service; total capped at two years' wage |
| Saudi Arabia | Half a month's wage per year | One month's wage per year | Reduced entitlement on resignation depending on length of service |
| Other GCC / free zones | Varies — check local law, free-zone rules or pension schemes | Some nationals are covered by social insurance instead | |
Step 4: Accrue the Provision Every Month
Paying gratuity only on exit hides a growing liability. Instead, add a company-contribution style rule that calculates the monthly provision on each regular payslip and posts it to an expense account and an "End of Service Provision" liability account. Set the accounts on the rule and check them in Accounting › Configuration › Chart of Accounts. Each month-end, compare the liability balance with a full recalculation for all active employees and true it up if salaries changed.
The gratuity lifecycle: the provision builds monthly and is released on final settlement.
Step 5: Record the Departure
When an employee leaves, archive them from the employee form and choose a departure reason and date. Configure reasons such as Resigned, Terminated and Retired in Employees › Configuration › Departure Reasons, because the reason often changes the entitlement. Close the contract with the correct end date so the service period is calculated precisely.
Step 6: Run the Final Settlement Payslip
Create the last payslip from Payroll › Payslips using a final-settlement structure. A well-designed structure brings everything together on one document: the last month's salary, leave encashment, gratuity, and deductions such as outstanding loan balances or advances.
Example final settlement: 7 years 8 months of service, AED 6,000 basic, daily wage AED 197.26.
When the payslip is confirmed and posted, the gratuity line should be charged against the provision liability rather than hitting expenses a second time. Any difference between the accrued balance and the actual payout is posted as an adjustment.
Step 7: Reconcile, Report and Audit
Before closing the month, run through this checklist:
- ☐ Provision liability balance matches a recalculation for all active employees.
- ☐ Every leaver has a departure reason, end date and posted final payslip.
- ☐ Gratuity payments are reconciled with the bank in Accounting.
- ☐ Payslip analysis in Payroll › Reporting shows gratuity by department or company.
- ☐ Rule changes are documented with an effective date.
With this in place, Al Noor Trading's finance team sees the true end-of-service liability every month, and HR can produce an accurate settlement within minutes of an exit being approved.
OUR EXPERTISE
How Techdocxies Helps with End-of-Service Gratuity
Techdocxies Info Solutions has delivered 50+ Odoo projects for trading, distribution and service businesses across the GCC and beyond. We don't just switch modules on — we map your real processes first, then configure, customise, migrate, train and back you with 24/7 support.
- Gratuity salary rules built and tested for UAE, KSA and other GCC labour laws
- Monthly end-of-service provisioning posted automatically to your chart of accounts
- Final settlement structures combining salary, leave encashment, gratuity and loan recovery
- Migration of historical joining dates and opening gratuity balances from legacy payroll
- Liability reconciliation reports and annual rule reviews for auditors