Month-end payroll in a small business usually looks like this: export punches from the machine, copy them into Excel, cross-check leave from a separate sheet, argue about three half days, guess the overtime, then type salaries into slips. It takes days, and the result is still disputed.
The fix isn't a better spreadsheet. It's making attendance, leave and payroll the same data, so the month closes itself. Here's how that works in practice.
The three numbers payroll actually needs
For each employee, salary for the month comes down to:
- Base days — the days in the pay period.
- Payable days — base days minus loss-of-pay.
- Overtime — extra hours, if you pay for them.
Everything else — the punches, leave, holidays, late marks — exists to produce those three numbers correctly.
Step 1: Grade every day once
Each day for each employee should end up with exactly one status: present, late, half day, quarter day, absent, leave, holiday or week-off. The rules for this are simple to write down:
- Worked at least a full day's hours → Present (or Late if they came in after the grace period).
- Worked at least half a day → Half day.
- Worked at least a quarter day → Quarter day.
- Less than that, with no approved leave → Absent.
The thresholds (for example 8, 4 and 2 hours) are a policy choice. What matters is that they are applied the same way to everyone, automatically.
Step 2: Turn statuses into loss-of-pay
Loss-of-pay (LOP) days are the unpaid part of the month:
- Absent days count fully.
- Unpaid leave counts fully.
- A half day counts as half a day of LOP; a quarter day as three quarters.
- Paid leave, holidays and week-offs count as paid.
Payable days = base days − LOP days. Salary is then prorated: monthly salary × payable days ÷ base days.
Step 3: Add overtime, fairly
Overtime is where most disputes start. A fair rule is to count only time worked beyond a full shift, measured from the later of the punch-in or the shift start. That way, someone who arrives two hours late and leaves two hours late hasn't "earned" overtime, and arriving early doesn't inflate it either. We cover this in detail in how overtime is calculated.
Step 4: Review exceptions, not everything
With days graded automatically, month-end is a review. Look for the exceptions — missed punches, regularisation requests still pending, unusual overtime — and fix those. Everything else is already right.
Step 5: Export and print
The output payroll needs is short:
- A monthly attendance report — every employee's days, late marks and leave.
- A payroll register — payable days, LOP and pay for the whole team.
- Salary slips — one per employee, with the net amount in words.
Export the first two to CSV for your accountant and print the slips. That's the "one export" — because the work already happened during the month.
How Punchly handles it
Punchly grades every day from punches, approved leave, holidays and week-offs using the thresholds and grace period you set. The Reports tab has the monthly attendance report, the payroll register (with department cost totals) and printable salary slips, all filterable by unit and exportable to CSV. Salary is prorated from each employee's structure, and overtime pay is optional with a multiplier you choose. The running month is marked provisional until it ends. See attendance to payroll.