---
title: "Introduction"
space: "NL Piece Rate Pay"
url: "https://docs.navari.co.ke/nl-piece-rate-pay/introduction"
updated: "2026-06-02"
---

> 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.