How the attendance–payroll link works
Octal HR uses a closed-loop architecture: attendance records feed a shared attendance ledger that payroll reads at run time. There is no manual export from attendance or import into payroll.
- Attendance records are built from biometric punches, manual entries, and Excel imports
- When you run payroll for a month, Octal HR reads the attendance ledger for all working days in that month
- The present, absent, and half-day counts drive loss-of-pay (LOP): absent days and half-days reduce pay for the month
Data pipeline: punch → payslip
Punch captured
Employee punches at a biometric device (ZKTeco, Anviz, Hikvision, eSSL). The device syncs to the Octal HR server.
Status derived from the shift
Octal HR evaluates each biometric punch against the employee's assigned shift and derives the status: Late if the check-in is after the shift start plus grace period; Absent if worked hours are below the shift's half-day hours; Half Day if below twice that; otherwise Present. Overnight shifts are handled across midnight. On Leave and Holiday come from leave and holiday records and are never overwritten by punches.
HR-set records kept as-is
Records entered manually or via Excel import keep the status HR selected — they are not re-derived from the shift. A permission-gated correction to any record updates the ledger that payroll reads.
Attendance aggregated
When HR runs payroll (Payroll → Run Payroll → [Month]), Octal HR reads the attendance ledger and computes present days, absent days, and half-days for loss-of-pay. These feed directly into the payroll calculation.
Deductions on payslip
Attendance-driven loss-of-pay appears as line items on each employee's payslip — absent deduction and half-day deduction — with the source count (e.g., "2 absent days").
What attendance data flows into payroll
| Attendance element | Payroll effect | Payslip line item |
|---|---|---|
| Present | No deduction; paid as normal | Not shown |
| Late | No pay effect on its own | Not shown |
| Absent days | Deduction: per-day rate × absent days | Absent Deduction (N days) |
| Half Day | Deduction: per-day rate × 0.5 per half day | Half Day Deduction (N days) |
| OT hours | Addition: OT rate per hour × OT hours | Overtime Pay (N hrs) |
| On Leave (approved paid leave) | No deduction; leave balance reduced | Not shown |
| Holiday | No deduction; paid as normal | Not shown |
Attendance on the payslip
Absent days and half-days are converted to a loss-of-pay amount using the employee's per-day rate, then shown as deduction line items:
Per-day rate (from monthly basic): PKR 2,308
2 absent days → Absent deduction: 2,308 × 2 = PKR 4,615
1 half day → Half-day deduction: 2,308 × 0.5 = PKR 1,154
A payslip for an employee with attendance deductions looks like this:
Attendance cut-off date
When you initiate a payroll run, Octal HR locks attendance data up to the cut-off date. This prevents attendance changes from affecting an in-progress payroll calculation.
Important: Correct any wrong or missing attendance records before running payroll. A day left as Absent will generate a deduction that is difficult to reverse once payroll is finalized and bank files are generated.
Month-end attendance checklist
Run through this before initiating payroll each month:
- ☐ All wrong or missing attendance records corrected
- ☐ OT hours reviewed
- ☐ Public holidays for the month loaded in the holiday calendar
- ☐ Any new employees added with the correct shift and effective-from date
- ☐ Monthly Attendance Summary shared with department heads for review