A payroll run turns everything you recorded into payslips and payments. It moves through fixed states, and each one is reversible until you finalise.
The lifecycle
Draft → Data ready → Calculating → Preview
→ In review → Approved → Finalised → Locked
Finalising is the point of no return: calculation snapshots lock and recalculation is blocked.
1. Create the period
Payroll → Payroll runs → Create payroll run. Pick the payroll period. Employees are attached in a pending state before calculation.
If no unlocked period exists, create one first. A locked period will not accept new runs.
2. Calculate
Click Run the calculation engine. Jobs are dispatched per employee and the page polls for progress.
For each employee the engine computes:
gross salary + overtime + seniority + lodging + relocation − absences
→ CNSS (employee share, capped at the ceiling)
→ ITS bracket applied to taxable pay
→ net after waqf and advances
Calculation runs on the queue. If nothing progresses, a queue worker is not running.
3. Review
The run summary shows total gross, total deductions, total net, employer cost and headcount.
Check before approving:
- Failed employees — the failure reason names the cause, usually missing salary or bank data. Fix and use Retry Failed.
- Excluded employees — anyone not calculated, and why.
- Variance vs last month — a large unexplained swing usually means a wrong input, not a wrong engine.
Per-employee history shows base, additions, deductions and net.
4. Approve
If the approval workflow is enabled, the run needs explicit approval before finalising. The approver is recorded.
Enable or disable this under company payroll settings.
5. Finalise
Finalize Run locks the calculation snapshots. You will be asked to confirm because recalculation is blocked afterwards.
Finalise only when the numbers are right. After this point corrections require a payroll adjustment, which is versioned and visible.
Common questions
Calculation is stuck at 0%. No queue worker. Payroll calculation, payslip PDFs and exports all run as queued jobs.
Can I delete a finalised run? No. That is the point of finalisation. Use an adjustment.
Can I run payroll twice for the same period? Duplicate regular runs are blocked. Use an adjustment for corrections.
An employee is missing from the run. Check they were active during the period, have a salary set, and have no termination date before the period start.
Next
Continue with Payslips and exports.