Greenleaf Manufacturing has 412 people across 6 plants in Telangana and Karnataka. When they came to us, their HR team was spending 3 days a month running payroll — chasing attendance sheets, reconciling shift differentials, manually exporting to bank advice files.
Every error meant late salaries, which meant attrition. Their voluntary exit rate had crept up to 19% per year, costing roughly ₹2.4 Cr annually in replacement hiring.
This is the story of the rebuild.
What was broken (the 3-day payroll)
The legacy "HRMS" was Tally + 11 Google Sheets + WhatsApp. Each plant manager submitted attendance separately, in their own format. The central HR team had to:
- Reconcile inconsistent formats (Day 1)
- Compute overtime, night-shift differential, statutory deductions (Day 2)
- Cross-check with bank account numbers, generate NEFT advice, send to bank (Day 3)
The biggest single time-sink was shift-differential rules — 7 different shift patterns across 6 plants, each with its own night-shift multiplier and overtime cap.
What we built
A custom HRMS with three deliberate constraints:
1. Attendance had to work offline
Plant floor managers don't have desk computers. We built a React Native mobile app that lets shift supervisors mark attendance from their phone, even with no signal — syncing when they're back online.
2. Payroll rules had to be configurable, not coded
Every shift-differential rule, every statutory deduction, every overtime cap is a configuration row in the database, not a line of code. HR can change rules themselves without filing an engineering ticket.
This was the most controversial design decision — engineers always want to encode the rules. We pushed back. Six months in, HR has changed payroll rules 14 times without involving us once.
3. The final NEFT advice had to be one click
Once attendance is in and rules are applied, generating the bank advice file is a single button. No CSV cleanup, no manual reconciliation.
The architecture
| Layer | Stack |
|---|---|
| Frontend (web, for HR team) | Next.js 14 + TanStack Query |
| Mobile (for shift supervisors) | React Native + Expo, offline-first SQLite |
| Backend | Node.js + Fastify, Postgres |
| Statutory exports (PF/ESI/PT) | Server-side PDF/CSV generation |
| Auth | Single-sign-on with Microsoft 365 (Greenleaf's existing tenant) |
| Hosting | AWS Mumbai (data residency requirement) |
Results after 4 months
- Payroll cycle: 3 days → 4 hours
- Voluntary attrition: 19% → 14.5% (mostly because salaries are now on time)
- HR team headcount: kept the same, but they're now running engagement initiatives instead of chasing attendance sheets
- Net savings: ₹64L/year (mostly avoided attrition cost)
What the playbook is
For mid-sized manufacturers (300–800 employees) running their HR on spreadsheets, the playbook is roughly:
- Don't buy a generic HRMS. Generic HRMSes assume office workers. Manufacturing has plant-floor realities (shifts, no desktop) that off-the-shelf software handles badly.
- Mobile-first for floor staff, web for HR. Two surfaces, two design languages.
- Make payroll rules configurable, not coded. It's the single highest-leverage decision in the entire build.
- Statutory compliance modules (PF, ESI, PT, TDS) are non-negotiable from day one. Don't ship a "v1" without them.
When this fits you
- You have 200–1000 employees, mostly non-desk workers
- Payroll is taking more than a day per month
- You're getting compliance scares (late filings, deduction errors)
- Spreadsheets are your current "system of record"
If that's you, book a 30-min HRMS audit — we'll send a written gap analysis in 48 hours, no obligation.