Payroll is the one process where a small mistake gets personal fast. Underpay someone by a few hundred rupees and they notice that afternoon. Miss an EOBI contribution and an auditor notices later. Most businesses run the whole thing out of one heroic Excel file that grows a new column every month, and it works right up until the day someone asks why their deduction changed and nobody can answer.
The good news is that none of this is genuinely hard. It's just fiddly, repetitive, and unforgiving of small errors, which is exactly the kind of work software should be doing instead of a person.
Why Pakistani payroll gets complicated
A salary here is rarely one number. There's basic pay, house rent allowance, medical and conveyance allowances, and then overtime, bonuses, and commissions that move around every month. On the other side sit the statutory deductions, EOBI, PESSI in Punjab where it applies, and income tax, each with its own rules. Absent days have to come out of pay, but different leave types treat absence differently. And every employee is legally entitled to a payslip that actually explains all of it.
Pile that into a spreadsheet and it holds for a while. Then an employee queries a deduction and the trail goes cold, or the EOBI auditor turns up and the calculation can't be reconstructed. The information was all there; it just wasn't structured.
Get the HR structure right first
Payroll only behaves itself if the HR underneath it is set up properly, so it's worth a little upfront effort.
Start with departments, Operations, Finance, HR, IT, Site Management for construction firms, and put every employee in one. That structure quietly powers a lot: attendance reporting by department, leave approvals routed to the right manager, and payroll reports broken down by cost centre.
Each employee record should hold the things you'll inevitably need later: personal details including CNIC and an emergency contact, employment details like join date, designation, and employment type, the salary structure they're on, their leave policy, and the bank account their salary lands in.
Then define salary structures once, as templates, and assign them to groups rather than rebuilding them per person. A permanent staff structure might set basic salary at 60% of CTC, HRA at 25% of basic, a fixed medical allowance of 2,000 rupees and conveyance of 1,500, with deductions for EOBI at 1%, PESSI where it applies, and income tax by slab. Site labour usually works differently, a daily rate multiplied by days worked, overtime at 1.5 times the daily rate, and an EOBI deduction. Once those are defined, you never type them again; every payroll run just applies them.
Attendance, where payroll really begins
For office staff, attendance gets marked in the system, present, absent, late, half-day, or on leave. For site teams, a supervisor can bulk-mark the whole crew at once instead of going name by name. If you already run biometric devices, most HR systems sync with them over an API or a CSV export, so the punch records become attendance records on their own.
The reason this matters is that attendance flows straight into pay. If someone is absent three days without approved leave, those three days come off the monthly salary automatically, no separate calculation, no argument about the maths.
Leave sits right alongside it. Set up your types, annual, sick, casual, maternity and paternity, emergency, and configure the things that actually vary: the annual entitlement (say 14 days of annual leave), whether your leave year runs January to December or July to June, and how many unused days carry forward. Employees request leave in the system or HR enters it, managers approve or reject online, and the balance decrements itself when approved leave is taken. One thing worth getting right: your leave policies should line up with the Employment Ordinance requirements for your province, not a generic default.
Running the month
When month-end comes, the sequence is simple and worth following in order. Freeze attendance so the records are final. Finalise all the approved and rejected leave. Run payroll, which calculates gross pay, applies the deductions, and works out net. Have the accountant review the payroll register for anything that looks off. Approve and post, at which point the payroll journal entry lands in accounting on its own. Then generate the payslips as PDFs to send or print. The first four steps used to swallow two or three days; with everything connected they take under an hour.
EOBI, done automatically
EOBI is mandatory for any company with five or more employees, and the maths is fixed: the employer contributes 5% of the minimum wage, currently 37,000 rupees, which works out to 1,850 rupees per employee per month, while the employee contributes 1% of wages. The system should calculate both and produce the monthly EOBI challan you can pay at any HBL branch, rather than leaving anyone to work it out by hand.
Income tax without the slab gymnastics
For salaried staff, income tax comes off monthly based on the annual salary slab. The system should hold the current FBR tax slabs and compute the monthly withholding automatically, then generate the annual withholding statement employees need for their tax returns. It's the kind of calculation that's easy to get subtly wrong in a spreadsheet and easy to forget to update when the slabs change.
A proper payslip pulls all of this together: the employee's name, CNIC, designation, and department; the month and year; days worked against days in the month; the earnings breakdown of basic and allowances; the deductions for EOBI, income tax, absences, and any advances; and the net pay. When someone queries a deduction, HR pulls up that month's payslip in seconds instead of reverse-engineering a formula.
What GridX ERP handles for you
GridX ERP's HR and payroll module runs the full employee lifecycle, and because it shares the same books as the rest of the system, payroll posts to accounting without anyone re-keying it.
It keeps full employee profiles with CNIC, designation, and department, plus contract and probation tracking and emergency and health records. Attendance covers daily marking, bulk entry for site teams, and monthly reports per employee. Leave management handles all the standard types with per-employee balances, an approval workflow with manager notifications, and policy templates you can tailor by designation.
Salary structures are defined once, basic, HRA, medical, transport, as fixed amounts or percentages, with deduction rules for EOBI and the tax slabs, then assigned to groups. The payroll run itself is a single click: it applies deductions based on attendance and leave, computes EOBI and income tax, produces a register to review before approval, posts the journal entry on approval, and generates payslips in bulk. The reporting then gives you a monthly payroll summary by department, the EOBI challan detail, attendance and leave-balance reports, and an annual salary register for audit.
The mistakes that catch people out
A few errors come up again and again, and all of them are avoidable. Don't pay salaries before attendance is finalised, close the attendance month first or you'll pay for days nobody worked. Keep leave balances current, because when an employee leaves, unpaid or excess leave directly affects their final settlement. Don't skip EOBI for low-paid workers; it applies to every employee regardless of salary. Keep at least five years of payslips for audit and legal cover. And define overtime rates inside the salary structure rather than recalculating them in Excel every month.
Get the structure right and payroll stops being the dreaded end-of-month scramble. The run takes under an hour, EOBI and tax compute themselves, leave balances keep their own count, and the payslip is one click away when someone asks.