A Frappe HR application by Navari Ltd for managing periodic payments to piece-rate ("casual") workers — built on top of ERPNext and Frappe HR.
What this app is for
In a lot of Kenyan businesses i,e warehouses, fish processors, construction sites, agricultural depots and a large part of the workforce isn't on a fixed monthly salary. These are casual workers who are paid for what they actually do on a given day: bags loaded, nets washed, crates packed, sacks offloaded. Their pay is a function of piece work, not hours clocked or a flat salary.
Standard ERPNext/Frappe HR payroll is built around the opposite assumption that is a salaried employee with a stable monthly base and a recurring payroll cycle. Trying to force casual, output-based pay through that machinery by hand is slow, error-prone, and almost impossible to audit at the end of a week when you've got dozens of workers and several activity types.
NL Piece Rate Pay closes that gap. It gives the business a structured way to:
- Define the kinds of work casual workers do and what each unit of that work is worth.
- Record, day by day, how much work was done and who was present to do it.
- Convert that daily activity into a per-worker amount.
- Roll those daily amounts up over a pay period (typically a week) and feed the result back into the standard Frappe HR payroll engine as a normal Salary Structure Assignment so that statutory deductions like NSSF still flow through the official payroll run.
The result is that casual pay becomes a first-class, auditable part of the same payroll system as everyone else, rather than a spreadsheet living on someone's laptop.
Core concepts and terminology
Before the workflow makes sense, four ideas need to be clear:
Activity Type: A category of casual work. "Loading", "Offloading", "Washing", "Packing". This is a standard ERPNext doctype (the same one used in Projects/Timesheets), which the app reuses rather than reinventing.
Piece / Item rate: The amount of money a single unit of an activity is worth. Loading one 50 kg bag of cement might be worth KSh 100; washing one fishing net might be worth KSh 150. The unit of work is always tied to an Item, so the rate is defined per activity + item pair.
Shift-based attendance: The app works out who was present to earn the day's money by reading the existing Frappe HR Attendance records, filtered by Shift Type and date. The strong recommendation (and effectively a requirement) is that casual workers are placed on their own dedicated shift, so the day's payout pool is split only among genuine casuals and not accidentally among salaried staff who happened to clock in that day.
Pay period roll-up: Daily payouts are aggregated over a date range to produce one figure per worker for the period. That figure becomes the base of a normal Salary Structure Assignment, which is how the money finally reaches the payslip and how deductions are applied.