TPL-PAY — Payroll (monthly recurring)
Monthly payroll computation per Oman Labour Law. Process basic + allowances − deductions, compute PASI (11.5% employer + 7% employee on Omani salaries), generate WPS SIF (Wage Protection System), distribute payslips. Recurring monthly · ~12 jobs per year per client.
Template metadata
| code | TPL-PAY |
| requires_workpapers | 0 |
| est_total_hours | 3-15 per month (employee count driven) |
| typical duration | 5-7 days per cycle (must complete before salary date) |
| deliverables | Payroll register · individual payslips · WPS SIF · PASI working · bank-transfer file |
| frequency | 12 jobs per year per client |
The monthly cycle
| planning | Open monthly job · client confirms attendance, leave, new joiners, leavers |
| fieldwork | Compute basic × days worked · add allowances (housing, transport, fuel) · deduct deductions (loans, advances, fines) · compute PASI · compute net pay |
| reporting | Payroll register · individual payslips (PDF) · WPS SIF (CSV) · PASI working · bank-transfer instruction |
| review | Senior reviews · partner approval (especially for variable items) |
| admin | Send WPS SIF to bank · email payslips · file in vault · log PASI submission |
The Oman payroll formula
For each employee:
Basic salary = monthly_basic × (days_worked / total_days)
+ Housing allowance = housing_amount (if not provided in kind)
+ Transport allowance = transport_amount
+ Other allowances = sum of active monthly allowances
+ Overtime = hourly_rate × 1.25 × overtime_hours (Sun-Thu)
= hourly_rate × 1.50 × overtime_hours (Fri-Sat)
+ Bonuses / one-offs = approved by manager
= GROSS PAY
- Loan repayment = monthly installment from active loans
- Advance recovery = installment if active
- Penalties = approved disciplinary deductions
- Income tax (Omani) = 0 (no personal income tax in Oman)
- PASI employee = 7% × (basic + housing) [Omani only]
= NET PAY
Employer cost adds:
+ PASI employer = 11.5% × (basic + housing) [Omani only]
+ EOSB monthly accrual = (basic / 30) × accrual_days [expat — IAS 19]
Step-by-step
Get attendance + variations
Day 1 of new month: client sends attendance file (or system pull from biometric/HRIS) + new joiners + leavers + variable items (overtime, bonuses).
Compute per employee
Apply the formula. M13 Compensation tab on each employee record holds the active allowances + deductions; payroll service reads them automatically.
Pro-rate joiners + leavers
New joiner 15-Jul → 17 days × (basic / 31). Leaver 20-Jul → 20 days × (basic / 31) + EOSB final settlement (M13 lifecycle module).
Generate WPS SIF
Wage Protection System file — bank-uploaded CSV per MOLP spec. EDR header + EFR per employee + END trailer. Net pay column drives the bank transfer.
PASI working
11.5% employer + 7% employee on Omani salaries (basic + housing only). Submit on PASI portal monthly.
Distribute payslips
Branded PDF per employee · email via M17. Self-service: employee can view in their portal under My Profile.
Bank instruction
Send WPS SIF to client's salary bank by their cut-off (typically 5-7 days before salary date). Bank executes mass transfer.
Open M13 → Employees → pick any employee → Compensation tab. Notice the active allowances + deductions are flagged "monthly". Now click HR → WPS SIF for the current period. The service auto-pulls everything; a typical 50-employee payroll takes ~30 seconds from open to download.
WPS late submission triggers MOLP penalties + can prevent the firm from sponsoring new visas. Get the file to the bank well before payment due date. Auto-reminders in M17 should be set at T-3 and T-1 days.
For expat employees, accrue EOSB monthly via the M13 EOSB cron — first 3 years × 15 days basic / year, thereafter × 30 days basic / year (Oman Labour Law Art. 39). The accrual is a payroll cost expense + provision liability. Audit firms that don't accrue monthly get a lumpy P&L hit at year-end.