Run payroll
The most stressful 90 minutes of the month, condensed to 30 minutes of clicks. PF, ESI, TDS — all handled. Payslips emailed automatically. The math is right.
The scene
It's the 27th. You promised your team payroll lands by the 1st. You haven't started. You're dreading the PF calculation, the overtime variance, the tax slab edge cases. You think this might be the month you mess up TDS.
This recipe is what gets you to the 1st without a notice from EPFO three months later.
The steps
1. Open the payroll run
HR → Payroll → New run. Pick the period (almost always previous month — May payroll runs in late May or early June for "salaries for May").
2. Prepare
thola calculates each employee's payslip based on:
- Salary structure (basic, HRA, special allowance, etc.)
- Attendance for the period (from the attendance log)
- Leave taken
- Any one-off adjustments (bonuses, reimbursements, deductions)
- Statutory deductions (PF, ESI, professional tax, TDS)
The Prepare step takes a few seconds. You see a summary:
| Employee | Gross | Deductions | Net | Status |
|---|---|---|---|---|
| Karthik | ₹68,000 | ₹14,200 | ₹53,800 | OK |
| Priya | ₹85,000 | ₹19,600 | ₹65,400 | OK |
| Ananya | ₹50,000 | ₹9,300 | ₹40,700 | Check — joined mid-month |
Click anything flagged "Check" — partial-month pro-rations and the like.
3. Preview
Tap any row to see the detailed payslip. The HR agent shows:
- Earnings (basic + HRA + allowances + variable)
- Deductions (PF + ESI + PT + TDS)
- Net pay
- The math (so you can see why the TDS is ₹4,300, not ₹4,500)
If anything's wrong, you can:
- Edit the specific component (add a bonus, fix an attendance regularisation)
- Reject the payslip (gets recalculated)
- Confirm the payslip (locks for this run)
4. Sign off the run
When every payslip is confirmed, tap Sign off run. The Playbook moves to the Pay step.
5. Pay
For each employee, either:
- Mark as paid (if you pay externally — UPI, bank transfer, cheque from your accounting tool)
- Pay via integrated payouts (where available — INR salaries can route via Razorpay X / Cashfree Payouts)
Once marked paid, the payslip is generated as a PDF, stored in the employee's record, and emailed to them automatically.
6. File statutory dues
The HR agent compiles:
- EPFO — your PF deposit + return data, formatted for the EPFO portal
- ESIC — your ESI deposit + return data
- TDS — Form 24Q quarterly statement (you'll file at quarter end, but the data is ready)
- Professional Tax — state-wise PT challan
You file each via your usual portal. We don't auto-file (regulated act, must be human-signed) but the data is ready.
The gotchas
Salary structure changes are forward-looking
If you give Ananya a raise on the 15th of May, that doesn't retroactively apply to May 1–15. Either:
- Apply the raise from June 1 (clean)
- Add a one-off "raise top-up" line for May 16–31 (messier but accurate)
We default to forward-looking. Override with a one-off adjustment if you need exact-day math.
Attendance regularisation gates payroll
If an employee has a regularisation request (forgot to check in, asks for a manual fix) that's still pending, their payslip can't finalise. The Playbook flags it: "Karthik has 1 pending regularisation — approve or reject before signing off the run."
This is good — it forces the right order of operations.
PF rules: the ₹15,000 ceiling
By default, PF is calculated on basic + DA up to a ₹15,000 ceiling (statutory). Some companies pay PF on full basic (no ceiling). Set this per-employee or per-workspace under Settings → HR → Payroll → PF rules.
Many founders accidentally set "no ceiling" because it sounds generous, then under-deposit because they didn't update the contribution rate. Check both.
TDS slabs change every fiscal year
thola updates the TDS slab table when the budget changes (typically February for the next FY). If you're running payroll in April for March (last fiscal year's data), the agent uses March's slabs. If you're running payroll in April for April (new fiscal year), the agent uses the new slabs.
You can verify the slab being used by tapping any payslip and reading the TDS line item.
Bonuses and one-offs
A Diwali bonus, a performance bonus, a referral bonus — add via One-off adjustments during prep. Each has a category (taxable / non-taxable) that drives TDS treatment. Get the category right; the math follows.
Hold a payslip without holding the run
If one employee's payslip is in dispute (let's say a salary calculation is being investigated), you can Hold that one and continue paying the rest. The held one stays open; finalise it once the dispute resolves.
A first-time-running checklist
If this is your first payroll on thola, do these one-time tasks before the run:
- Salary structures complete for every active employee
- PF rules set (with-ceiling vs without-ceiling)
- ESI applicability flag set per employee (only those earning < ₹21,000 are eligible)
- TDS regime set per employee (old vs new — they choose)
- PT state set per workspace (each state has a different slab)
- Pay date set on workspace settings (consistent date each month)
- Bank details for each employee (for integrated payouts, if using)
Spend 30 minutes on this once. Every future payroll is much smoother.
What's next
- Approve a leave request — leaves directly affect payroll math
- Onboard a new hire — gets new hires payroll-ready
- Reference → Team scoring — how salary compliance feeds the Team score
If you've never run payroll yourself before, do the first one alongside your accountant on a screen-share. After that, it's straightforward.