paid_days + lop_days must equal the month's days
Give either paid_days or lop_days, or make the two add up to the days in that month.
no professional tax slab for a state
Add that state's slabs to your slabs file, or type the PT amount in the pt column.
deductions are more than earnings
Check advance recovery and TDS for that employee; split a large recovery across months.
PF in your sheet differs from 12%
Either remove the typed PF so it is worked out, or keep it if you contribute on a different basis.
Claude does not use the skill
Check it is switched on in Settings → Capabilities → Skills, then name it in your message.
The script says a column is missing
Rename your header to one of the names in README, or say the mapping in your message.
Code execution is off
Skills with scripts need code execution enabled in Claude.ai settings.
FAQ
Does it file PF or ESI returns? No. It works out the amounts and writes pf-esi-summary.csv; you or your accountant file on the EPFO and ESIC portals.
Which EPF ceiling does it use? Rs 15,000 up to August 2026, the 1-16 / 17-30 September split for September 2026, and Rs 25,000 from October 2026. You can set PF on the full basic with pf_on=actual.
What is the 50% wage test? Under the Labour Codes, if allowances outside basic, DA and retaining allowance are more than half of pay, the excess counts as wages. It flags this, or adds it to PF wages with --fifty-rule apply.
Does it calculate income tax? No. Put the TDS for the month in the tds column.
Can I use my own offer letter? Yes. Write it as text with placeholders such as {name}, {designation}, {joining_date} and {ctc_annual}; the break-up is added as Annexure A.