People — HR and payroll
HR holds the people and their contracts, tracks attendance and leave, and runs payroll. The country pack brings the rules that differ by country — the UAE's end-of-service gratuity and the Wage Protection System among them — so the arithmetic is Tamra's job, not yours.
Employees
An employee record: name and contact details, department, position, hire date, manager, identifiers, and a status:
| Status | Meaning |
|---|---|
| Active | Working. |
| Probation | New; probation end date tracked. |
| On leave | Away on approved leave. |
| Notice period | Leaving on a known date. |
| Terminated | Left; record kept for history and end-of-service. |
| Suspended | Not working, not left. |
Employees who also use Tamra are linked to their user, so expense claims, leave requests and timesheets know who they are. Linking a sign-in needs Users & Roles. A person's ID numbers, bank details, birth date and personal contacts are seen by HR editors, payroll and the person themselves; everyone else sees name, work contacts, department, position, manager and dates. Departments and Positions are simple lists you maintain; Holidays is the public-holiday calendar that attendance and leave respect.
Contracts
A contract is the employment terms with dates: type, start and end, base salary, working hours, probation. Statuses run Draft → Active → Expired or Terminated, and a new contract supersedes the old one, keeping history. Payroll reads the active contract.
Attendance
Daily records per employee — present, absent, on leave, holiday, weekend, half day, remote — your own, or anyone's with Attendance edit — entered by hand, imported from a time clock, or filled from approved leave and the holiday calendar. Attendance feeds unpaid-leave deductions and overtime where your components use them. A day covered by an approved (or taken) leave request reads On leave in the register — today's and the month's — never Absent, paid or unpaid alike; payroll alone tells those apart.
Hours and overtime. At check-out Tamra works the day out: the time from check-in to check-out, less the break, against the day's hours — the active contract's, or, for someone without a contract, Monday to Friday, 8 hours a day. The break isn't working time: under UAE law nobody works more than five hours in a row without at least an hour's break, so a day past five hours has up to an hour off (a longer break given counts as given). Only time past the day's hours is overtime; on a day that isn't a working day, all of it is. Attendance recorded before 1.94 keeps the overtime it was given.
Leave
Leave types (annual, sick, unpaid, maternity, and whatever your policy has) with entitlements per year and whether they're paid. An employee raises a leave request — type, dates, days, reason:
| Status | Meaning |
|---|---|
| Draft → Submitted | Waiting for approval. |
| Approved / Rejected | Decided by the manager, with a reason if rejected. |
| Taken | The dates have passed. |
| Cancelled | Withdrawn. |
Approvals appear in the manager's queue on the phone as well as here. Balances show on the employee record and on the request. Nobody approves or rejects their own leave, and the approver recorded is whoever decides. You can cancel your own request while it waits; once decided, an approver cancels it, and leave that has started can't be cancelled. A request over days already approved or waiting is refused, naming the other request: change or cancel that one first. Each unpaid day comes off the pay once.
Balances that accrue. A balance accrues from the hire date: the type's days for the year to someone employed since the year before, else a twelfth a month for each completed month of service. A new year's balance starts with what was left of the old one, up to the type's carry-over limit. The days on a request are counted by Tamra — calendar days, a half day as half — and a type that applies after some days of service is refused before them.
Payroll
Under Payroll, five things set up once, then a run each period.
- Pay cycles — how often (monthly is usual), the pay day of month or an offset after period end.
- Salary components — each earning or deduction with a code, a calculation method (fixed amount, percentage of basic, percentage of gross, overtime, formula) and, for an earning, whether it is fixed or variable pay in the WPS file. An earning may name an expense account instead of the company's Salary Expense; a deduction must name the account it goes to — a loan repayment back to Employee Receivables, an absence back to Salaries & Wages, a fine or an insurance share to the liability it is owed to — and Approve refuses one without. Basic salary, housing, transport, overtime, loan deductions, social contributions.
- Salary structures — a named bundle of components applied to a group of employees.
- Employee salaries — per employee: basic salary, the structure or cycle, and each component's amount, effective from and to — so a raise is a new line, not an overwrite.
- Payroll runs — the period, the pay date, the employees.
Who a run pays. Anyone whose last working day (Employment tab) is on or after the period's start, up to that day, whatever their status today — someone whose last day was 10 October is paid all of September in a run made after they left — and, with no last working day, everyone still employed: status Active, Probation, On leave or Notice period, with Currently employed ticked on their record. People who left before the period, and people Suspended with no last working day, are not paid. The Payroll screen counts and previews the same people the run pays, and names anyone with a salary in the period whom the run leaves out, with the reason (last working day 30 Aug). Two runs can't cover the same days.
Paid for the days each salary covers. A joiner, a leaver or a raise mid-period is paid for the calendar days each salary record covers, out of the period's days — someone hired on the 10th of a 30-day month gets 21/30. A raise saved in Salaries closes the old record the day before the new one starts, and a change of salary structure in the period pays each structure's lines for its own days, as the basic is. Approved unpaid leave comes off at the month's working days (Payroll Settings, 22 unless you set another), and the payslip's attendance column shows the unpaid days.
Overtime. The hours in the attendance register are paid at basic ÷ 240 × 1.25 — the UAE's hourly rate plus a quarter — or at the rate set on the structure's Overtime line. Every company has an Overtime component; on a structure it sets its own rate, off it a run adds the line itself when there are hours.
Percentages. A % of basic line is worked on the basic salary; a % of gross line on the gross the other lines make (basic plus every other earning — never another % of gross line). Every line is rounded to the fils, and the payslip, on screen and printed, shows each percentage line's rate (25.0% of basic, 10.0% of gross).
Pay by attendance. With Prorate pay by attendance ticked (the Payroll Settings card), earnings follow the days present out of the working days. Approved paid leave and paid public holidays count as present; unpaid leave does not; deductions stay whole. Someone with no working day in the period is paid nothing, and the run goes on for everyone else.
A run's life
| State | Meaning |
|---|---|
| Draft | Period and employees chosen. |
| Computed | Every employee's gross, deductions and net calculated; review the lines, adjust one-offs. Recompute works every payslip out again and keeps a payslip's Returned and Voided payments. |
| Approved | Locked, by someone other than whoever computed it; the payroll journal entry posts — salary expense, each deduction to its own account, net pay owed. A payslip below zero or a deduction without an account stops it. |
| Paid | Every payslip paid: Mark Paid asks for the date, the bank the money left from (a bank or cash account in your company's own currency) and which payslips; untick one to leave it owed, and Pay the rest later. A transfer the bank sends back is marked Returned on its payslip and owed again. Paying and returning use the Salaries Payable account the run was approved to, even if Payroll Settings has changed since. Void payment works on a partly paid run too: it reverses each payment still standing, for its own amount on its own date, and a returned transfer stays returned. Unapprove reverses on the original date. |
| Cancelled | Voided before approval. |
Two people. Whoever computes a run doesn't approve it, and nobody changes their own salary or bank details or approves their own leave: someone else in payroll does. Where one person runs payroll and HR, a Super Admin can switch on One person runs payroll here in Payroll Settings, and the company's other Super Admins are told. Where nobody else could do it, the one person can anyway. Unapprove and Void payment ask for a reason, which goes on the reversing entry, and the payslips of an approved or paid run don't change. Salaries, structures, components, pay cycles and contracts need Payroll edit; when someone's bank details change, the company's Super Admins and the employee are told. A run approved, cancelled or voided by two people at the same moment is approved, cancelled or voided once.
Expense claims with the salary
An approved expense claim paid back With the salary (Expenses → Reimburse) waits for the next run that includes its employee. Compute adds it to their payslip — net pay is earnings − deductions + claims, so the salary transfer and the WPS file pay it; it isn’t salary, so it isn’t in gross and no deduction is worked on it. Approve clears what the claim owed (Dr Employee payables) in the run’s entry and marks the claim paid back; Unapprove puts it back to waiting. The run lists the claims it pays, and the payslip — on screen and printed — shows them under Expense claims paid back. If a claim changes after the run was computed (taken out of payroll, sent back or corrected), the run goes back to Draft: compute it again. See Expenses.
Paying salaries — WPS (UAE)
The UAE's Wage Protection System requires private-sector salaries to be paid through approved channels. Once a run is approved, WPS file makes the Salary Information File in the layout the UAE banks publish: one EDR line per employee — the 14-digit MOHRE person ID (UAE tab of the employee, from the labour card), the bank's 9-digit routing code, the IBAN, the period, its days, fixed pay, variable pay (overtime, bonuses, commissions) and unpaid days — and one SCR line for the employer: the 13-digit establishment ID and bank routing code from Payroll Settings, the file's date and time, the salary month, the count and the total. The file is named by the establishment ID and the moment (1234567890123261028100509.SIF). Upload it on the bank's WPS portal and the bank sends the transfers. The file pays what is still owed: payslips already paid are left out, and one paid in part is in it for the rest, so a file made after one salary came back pays that salary only. Once every payslip is paid, the file lists them all and the message says so: don't send it to the bank to pay again. The button names who is missing what before anything is made, and the (i) What is WPS, and what's the SIF file? explains it in place.
End of service — gratuity (UAE)
When an employee leaves, the EOSB calculator — it offers everyone still employed, including people serving notice — works the gratuity under Federal Decree-Law 33 of 2021: basic salary only, at least one year's service to qualify, 21 days' basic pay per year for the first five years and 30 days per year after, part years in proportion, capped at two years' wages, approved unpaid leave left out of the service. Years are counted to the day, and a year is complete on its anniversary (across a 29 February it came a day early). Basic 9,000, seven years served: daily wage 300; 5 × 21 × 300 = 31,500 plus 2 × 30 × 300 = 18,000 → 49,500. The (i) on the calculator shows the same. Other countries' rules arrive with their packs.
The provision. The End-of-service provision card on the Payroll dashboard shows what the company would owe if everyone left at a month end, person by person, and Book the provision posts the change since the last booking as End of Service Benefit Expense (6160) against Provision for End of Service (2233), the chart's own, or the accounts the company names, so the cost lands in the months the service was given. Undo last booking reverses it on its own date, with a reason, and the same date can then be booked again.
Someone who has left stays on the card — Left 10 Oct: kept until their final payslip is paid — until the payslip covering their last working day is paid; then they come off, and the next booking releases their provision. Each booking brings the provision account to what the card shows: booked before is what the account holds on the date, so an entry made on it by hand (a gratuity paid out of the provision, say) is taken in, and the card says by how much. The first booking after 1.94 does this for everything booked before.
Common questions
Who runs payroll? The Payroll role, or any role with payroll rights. Managers don't have payroll by default: give the Payroll role to a manager who runs it.
Can an employee see their own payslip? Payslips print from the run per employee; sending them by email is a click per run.
Mid-month joiner? The run prorates basic by days from the contract start; components set per day follow.
A deduction for a loan? A deduction component with a fixed amount on the employee's salary, effective until the loan is repaid.
Leave without pay? Approved unpaid leave feeds attendance; a per day deduction component reads those days in the run.
If something goes wrong
- Compute shows zero for an employee → no active contract, or no salary line effective in the period.
- The run won't approve → a negative net pay somewhere; fix the component or the one-off.
- Mark Paid doesn't offer a bank → it is kept in another currency; salaries are paid from a bank or cash account in your company's currency.
- A leave request is refused: "… already has leave on …" → the days overlap a request already approved or waiting. Change or cancel that one first, or ask for other days.
- Overtime looks too high on days before 1.94 → attendance recorded before the update keeps its overtime (someone without a contract had every hour counted). Look those days over before the run: the update doesn't change them.
- WPS file rejected by the bank → an employer or employee identifier is missing or malformed; the WPS file button names who is missing what before the file is made. The establishment ID has 13 digits, a person ID 14, a routing code 9.
- The deduction "…" has no account → open the component under Components and choose the account it goes to; the run approves after that.
- Payslip … has net pay below zero → the deductions on that payslip are more than the pay: lower the deduction or spread the loan over more months, then compute again.
- Leave balance looks wrong → the entitlement on the leave type is per year and prorated from hire date; check the type.