Oman Labour Law — the articles AuditPro implements
Quick-reference of the key articles wired directly into M13's logic. Royal Decree 35/2003 with subsequent amendments. The articles you will be cited if you misapply leave or EOSB.
Article 39 — End of Service Benefit (EOSB)
"For each year of service, the employer shall pay the worker:
- For the first three years: 15 days of basic wage per year
- For each subsequent year: 30 days of basic wage per year
- Pro-rated daily for fractional years"
Daily rate: basic salary ÷ 30 (configurable in AuditPro per m13.eosb.daily_rate_divisor; some firms use 30, others use working-days-only).
Implemented in: CompensationService::computeEosb() + monthly snapshot cron.
Article 61 — Annual leave
"Workers shall be entitled to annual paid leave of 30 days for each year of service, after completing six months."
Implemented: leave_type "annual" with default_days_per_year=30, minimum_service_days=180, counts_weekends=0, counts_holidays=0.
Article 62 — Sick leave
"Workers are entitled to sick leave of 70 days per year, with split payment:
- Days 1-14: 100% of basic wage
- Days 15-42: 75% of basic wage
- Days 43-70: 50% of basic wage
Medical certificate required."
Implemented: leave_type "sick" with 3-band pay_percent + requires_attachment=1.
Article 67 — Hajj leave
"Muslim workers are entitled to 15 days paid leave to perform the pilgrimage, once during their service, after completing one year."
Implemented: leave_type "hajj" with applies_to="muslim", minimum_service_days=365, once-per-service guard in LeaveService::apply().
Article 68 — Other special leave
Bereavement (close family) · marriage (once) · paternity. AuditPro implements all three with firm-policy days.
Article 83 — Maternity
"Female workers are entitled to maternity leave of 50 days, of which at least 30 days are after delivery, with full pay."
Implemented: leave_type "maternity" with default_days_per_year=50, applies_to="female".
Articles on working hours + overtime
Standard week: Sun-Thu, 45 hours. Fri-Sat = weekend.
Overtime: 25% premium on regular days, 50% premium on weekend / holidays. Implemented in payroll computation as hourly_rate × 1.25 (Sun-Thu OT) or × 1.50 (Fri-Sat OT).
PASI — Public Authority for Social Insurance
Per Social Security Law (Royal Decree 72/91 as amended):
- Employer: 11.5% of basic + housing allowance (Omani only)
- Employee: 7% of basic + housing (Omani only, deducted from salary)
- Expat: not subject to PASI
Monthly submission via PASI portal.
WPS — Wage Protection System
MOLP-mandated system requiring all salaries to be deposited via Oman-licensed banks in a structured Salary Information File (SIF):
- EDR (employer detail record) — header
- EFR (employee fund record) — one per employee with net pay
- END trailer
Implemented as exportable file from /hr/wps-sif. Submitted to client's salary bank for mass transfer.
Dhamani — mandatory health insurance
Royal Decree 32/2023 made health insurance mandatory for all employees + dependents from Sept 2023.
Tracked in M13 → Insurance tab as policy_type=health, with sum_insured + coverage period + dependents covered.
Visa quota — Omanisation
MOLP sets quota per firm based on Omanisation requirements (% of Omani workforce). Each sponsored expat visa consumes one slot.
Reported via ExpatService::quotaReport().
This is a primer, not legal advice. Articles are quoted in summary form. For ambiguous situations, refer to the official Royal Decree text + consult a qualified Omani labour lawyer. Don't customise the M13 leave / EOSB logic without legal review — defaults follow the Royal Decree.
Oman labour rules change. Check OAAA + MOLP communications quarterly + update system_settings if any base figures change. The system separates law-derived defaults (settings) from operational data (rows) so a setting change doesn't restate history.