Payroll
Payroll runs the pay cycle end to end: build the run, check it, approve it, pay it, and post it to the books — with statutory deductions, advances and recoveries handled automatically.
Before your first run
Open Payroll → Settings and set:
- PAYE rate — income tax withheld, entered in basis points (100 bps = 1%).
- Employee and employer pension — also in basis points, in line with your country's scheme (NSSF and equivalents).
- Local service tax — where it applies.
- Daily pay divisor — how a monthly salary converts to a day's pay. This drives unpaid leave and part-month joiners, so get it right.
Each employee needs a payout rail — the mobile money number or bank account they are actually paid into. Employees without one show as missing payout rail and will block their payment later.
Rates are yours to set
SBB does not assume a country's tax tables. Confirm current rates with your accountant or revenue authority — and revisit them when budgets change them.
The monthly cycle
1. Create the run
Create current month run builds a draft from your roster: each active employee, their salary, and their standing deductions.
2. Enter period inputs
Anything that varies this month:
- Overtime amount
- Unpaid leave days — converted using the daily pay divisor
- Variable deductions — one-off adjustments
Each input takes a note explaining why. Three months later, that note is the difference between a clean answer and an argument.
3. Check readiness
Check payment readiness flags problems before they become failed payments:
- Employees with a missing payout rail
- A funding shortfall — not enough in the money location to cover the run
- Lines still awaiting approval
Fix these before approving. Half-paid payroll is painful to unwind.
4. Approve
Runs move draft → awaiting approval → approved → paid. Approval is a deliberate step by someone with the right permission, and it is recorded on the audit trail.
5. Pay and post
Approved runs move to awaiting payout. As payments go out, mark lines paid — or mark unpaid lines paid in bulk once a batch has cleared. Overdue payouts are highlighted so nobody is quietly left unpaid.
Posting writes the expense to your ledger against the money location that actually paid, so cash drops by what really left.
6. Payslips
Export payslips produces a slip per employee showing gross, each deduction, recoveries and net. Staff with self-service access can see their own.
Advances, loans and recoveries
Staff need money early sometimes. SBB tracks it properly instead of leaving it on a scrap of paper.
| Type | Use for |
|---|---|
| Salary advance | Part of this month's pay, early |
| Employee loan | A larger amount repaid over several months |
| Emergency advance | Urgent, outside the normal pattern |
Each gets a recovery schedule — how much is deducted each cycle — and is then withheld automatically until cleared. Open recoveries shows every outstanding balance across the team.
Recording an advance as a plain expense instead is the classic payroll mistake: it never gets recovered, and it quietly becomes a gift.
Approvals from elsewhere
Payroll items can be raised in the HR workspace and land in payroll already approved, or be rejected back with a reason. Statuses show where each came from — approved from payroll workspace, rejected from HR workspace — so the history is legible.
Common problems
Funding shortfall. The money location does not hold enough. Move money in, or pay from a different location.
Missing payout rail. No number or account on file. Add it to the employee record.
Run does not match last month. Check period inputs first — overtime and unpaid leave are the usual cause — then look for joiners and leavers.
Net looks too low. Check open recoveries. An advance being recovered is the most common surprise.
Related
- HR overview — the wider module
- Employees & structure — the roster payroll reads
- Leave & attendance — where unpaid leave days come from
- Reports — payroll cost over time