Employees
Employees are the foundation of your payroll. Each employee record contains personal information, employment type, payment details, statutory IDs, tax reliefs, leave balances, loan...
Employees are the foundation of your payroll. Each employee record contains personal information, employment type, payment details, statutory IDs, tax reliefs, leave balances, loans, and component assignments needed for accurate payroll calculation.
Creating an Employee
- Navigate to Employees → Create.
- Enter personal information: first name, last name, email (optional), and phone (optional).
- Set employment details: department (select from department library or enter a custom label), role title, and location.
- Select employment type:
- Full-Time — standard employment with full benefits
- Part-Time — reduced hours, may affect leave entitlement
- Contract — fixed-term engagement
- Casual — daily/intermittent worker (taxed at flat 5%)
- Configure pay basis: Salary (fixed monthly), Hourly (rate × hours), or Contract (fixed contract amount).
- Enter the base salary amount.
- Select a payment method:
- Bank — provide bank name, account name, and account number
- Mobile Money — provide mobile money number and select provider (MTN, Telecel, AirtelTigo, or Other)
- Cash — no bank or wallet details needed; uses signed pay sheet acknowledgement
- Enter statutory IDs: Tax Identification Number (TIN), SSNIT number, and Tier 2 pension number.
- Configure Tier 3 voluntary pension (optional): set employee and employer percentage rates, and the scheme name. The combined employee + employer rate cannot exceed 16.5% of basic salary.
- Set tax category: Resident, Non-Resident (flat 25% tax), Temporary Worker, or Casual Worker (flat 5% tax).
- Set the hire date and optionally a termination date.
- Configure leave entitlement: annual leave days (default 15 per Ghana Labour Act) and any carried-forward days from prior employment.
- Configure meta fields: pay group (defaults to "Main payroll") and cost center.
- Add any internal notes about the employee (optional).
- Assign components — attach reusable pay components with optional amount/percentage overrides.
- Click Save.
Employees with mobile money as their payment method must have their provider set if the "Require explicit mobile money provider" policy is enabled in Settings.
Employee Status Lifecycle
| Status | Description | Payroll Impact |
|---|---|---|
| Active | Currently employed and paid | Included in pay runs |
| Hold | Temporarily suspended from payroll | Visible in runs but marked on-hold (excluded from totals by default) |
| Inactive | Not currently being paid | Excluded from new pay runs |
| Terminated | Employment ended | Excluded from new pay runs; triggers leave encashment |
Editing an Employee
Navigate to Employees → [Employee Name] → Edit. Update any fields and save. Changes take effect in the next payroll calculation — already-posted runs are unaffected.
Archiving and Restoring
- Archive: Soft-removes an employee from the active list. Archived employees are hidden from the default employee grid but their payroll history is preserved. Navigate to the employee profile and click Archive.
- Restore: Brings an archived employee back to active status. Switch the employees grid to "Archived" view, find the employee, and click Restore.
Employees with payroll run history cannot be permanently deleted — they must be archived instead.
Employee Profile
The employee profile page shows:
- Personal summary — name, department, role, status badge, employment type
- Payment method — bank, mobile money, or cash details with readiness indicator
- Assigned components — list of earnings and deductions with amounts/percentages
- Run history — participation in recent payroll runs with net amounts
- Statutory tracking — TIN, SSNIT, and Tier 2 numbers
- Leave balances — annual, sick, maternity, and compassionate leave accrual and usage
- Active loans — outstanding loan balances and installment amounts
- Tax reliefs — approved relief claims with annual amounts
Bulk Employee Import
For onboarding multiple employees at once:
- Navigate to Employees → Import & Templates.
- Download the CSV template — it includes all required columns with headers.
- Fill in employee data following the template format (first_name, last_name, email, department, base_salary, payment_method, etc.).
- Upload the completed CSV file.
- The system validates each row and reports errors (missing required fields, duplicate employee numbers, invalid values).
- Confirm the import to create all valid employee records.
Imported employees are auto-assigned default components marked as "Is Default" in the component library.
Tax Reliefs
Ghana tax law provides several relief categories that reduce an employee's PAYE liability. Reliefs are configured per employee under the Approved Relief Claims section on the employee create/edit form.
| Relief Code | Type | Default Amount |
|---|---|---|
| Marriage Responsibility | Fixed annual | GHS 1,200/year |
| Child Education | Fixed annual | GHS 600/year (per child, max 3) |
| Old Age | Fixed annual | GHS 1,500/year |
| Aged Dependent | Fixed annual | GHS 1,000/year (max 2 dependents) |
| Education | Fixed annual | GHS 2,000/year |
| Mortgage Interest | Fixed annual | Configurable |
| Disability | % of income | 25% of taxable income |
Each relief has:
- Type: Fixed annual amount or percentage of income
- Effective dates: When the relief starts and ends
- Approval status: Approved, Pending, or Expired
- Reference number: GRA approval reference (if applicable)
Reliefs are converted to monthly amounts (annual ÷ 12) and deducted from taxable income before PAYE calculation.
Employee Loans
Employee loans follow the controlled lifecycle Draft → Approve → Disburse → Recover. Creating a loan records proposed terms only; it does not create a receivable, move cash, or start payroll deductions.
- Open the employee profile and create a New Loan Draft with the principal, installment, first-deduction date, and optional term.
- An authorized reviewer records an approval reason. A non-owner creator cannot approve their own loan.
- An authorized disburser records the actual payment date, reference, and the Cash & Money Account used to pay the employee. Future payment dates are rejected.
- When Accounting is enabled, disbursement posts exactly one acquisition journal: DR Employee Loan Receivable and CR the selected cash, bank, or other eligible money account. The loan becomes active only after this succeeds.
- Each posted payroll run withholds the lesser of the installment amount or the outstanding balance and posts CR Employee Loan Receivable. The installment is already included in the employee's deductions and net pay, so Payroll does not debit Net Salary Payable a second time.
- The loan is marked completed when its balance reaches zero. Voiding a posted payroll run restores the employee-loan balance and reverses the receivable recovery journal.
Employee-loan recovery is a balance-sheet settlement and does not reduce PAYE-taxable earnings. Payroll-only businesses record a reviewed external disbursement reference and keep the loan subledger without creating an Accounting journal.
Accounting-linked employee loans use the tenant base currency, and the selected money account must use that same currency. This keeps the loan subledger, disbursement journal, money-account outflow, and later payroll recoveries directly reconcilable without an unsupported FX recovery path.
Before the first Accounting-linked disbursement, map a dedicated active current-asset Employee Loan Receivable account in Payroll Settings → Accounting. Generic assets, money accounts, control accounts, inactive accounts, and archived accounts are rejected.
Run php artisan payroll:audit-employee-loans {business} for a read-only review of legacy loans, missing disbursement journals, invalid mappings, and subledger-to-GL variances. The audit never guesses an opening source or rewrites posted history; reviewed correction journals or evidence-backed opening balances are required for legacy differences.
Leave Management
The module tracks four leave types per the Ghana Labour Act:
| Leave Type | Statutory Entitlement |
|---|---|
| Annual Leave | 15 working days per year (minimum) |
| Sick Leave | Per company policy (commonly up to 36 days with medical certificate) |
| Maternity Leave | 12 weeks (84 days) with full pay |
| Compassionate Leave | Per company policy |
Leave accrual happens automatically for annual leave when a payroll run is posted — each employee accrues their annual entitlement ÷ 12 per month. Mid-period joiners receive pro-rata accrual based on their hire date relative to the pay period.
Recording leave usage: Navigate to the employee profile → Leave & Loans → choose the leave type, add a usage or adjustment record, then enter the number of days and the transaction date. The employee profile shows per-type leave balances so HR can track annual, sick, maternity, and compassionate leave separately.
Leave encashment on termination: When an employee is terminated, unused annual leave is automatically calculated for encashment at their daily rate (base salary ÷ 22 working days). The encashment creates a leave transaction and can be included as an earning in the final payroll run.
Departments
Departments organise employees for cost allocation and reporting:
- Navigate to Departments to view all departments.
- Click Create to add a new department with a name and optional description.
- Assign employees to departments from the employee create/edit form.
- Departments can be archived (soft-removed) and restored.
- The Department Summary report shows payroll cost breakdown by department.