Piece Work
Track and pay piece-rate work with configurable rates.
Piece Work is for the part of your workforce that is paid by output rather than by the clock — stitching, packing, assembly, deliveries, or any task where the fair question is not how many hours were worked but how many units were produced. Each unit of work becomes an entry: an item or task, a quantity, a rate per unit and the employee who did it. The system multiplies quantity by rate, records the amount, and moves the entry through a clear approve-then-pay workflow.
The arithmetic is deliberately taken out of human hands. You never type an amount; the server computes it as quantity × rate, rounds it to two decimal places, and recomputes it whenever an entry is updated. The entry form shows a live preview of the same calculation as you type, so the person logging the work and the person approving it are always looking at the same number, derived the same way.
Around the entries sit the reference data that keeps a piece-rate operation consistent: a Piece Rates register holding the standing rate per unit for each item or task your organisation pays for, and a configurable list of the units you measure in — piece, dozen, or whatever your floor actually counts. Module settings record your payout policy choices, such as whether approval is required and whether piece-work is paid alongside payroll.
The module is built for HR administrators: they create entries, approve or reject them, and mark them paid. Access is governed by the same Role Templates permission matrix as the rest of Nexa People, and every record is scoped to your organisation from the moment it is created.
How Piece Work works
Log work as entries
A new entry takes five fields: the employee (picked from your directory), the item or task, the quantity completed, the rate per unit and the date the work was done. Quantity and rate sit side by side, and beneath them the form shows the amount they imply, updating live as you type — a running preview of the sum the server will compute and round to two decimal places as the definitive figure on save.
The employee field is optional, so you can log work first and attach the person afterwards, and the date field lets you record work on the day it happened rather than the day it was typed in. Item or task and the two numbers are marked required on the form, so whoever is logging work is prompted for the figures that give the entry its value before it is submitted.
One register, one glance
Entries land in a single register showing the item, the employee's name resolved from the directory, quantity, rate, the computed amount, the work date and a colour-coded status badge. Numbers are formatted for reading — thousands separators, the amount in bold — so a supervisor can scan a day's output down the page without opening anything.
Each row carries its own actions inline. A pending entry offers Approve and Reject; an approved entry offers Pay; a rejected or paid entry offers nothing further, because its journey is over.
Approve, then pay — in that order
Every entry starts life as pending. From there it can be approved or rejected; only an approved entry can be marked paid. These rules are enforced on the server, not just hidden in the interface — an attempt to pay an entry that was never approved, or to approve one twice, is refused outright with a message explaining which statuses the action accepts.
That server-side guard means the lifecycle holds even when requests arrive by other routes: there is no sequence of clicks or calls that produces a paid entry which skipped its approval.
Keep a rate card for your items
The Piece Rates tab is your organisation's standing rate card: each record names an item or task, its rate per unit, the unit it is measured in, and an active or inactive status. Rates can be added and edited as prices are renegotiated, marked inactive when an item is retired, or removed from the card entirely when they no longer belong on it.
Because the rate on each work entry is entered explicitly, the rate card serves as the agreed reference the person logging work reads from, and the approver checks against, rather than a hidden default nobody can see.
Settings that state your policy
Piece Work Settings records two payout policy choices for the organisation: whether approval is required, and whether piece-work is paid with payroll. Both are simple Yes/No selections, saved organisation-wide so everyone administering the module works from the same declared policy.
A second tab manages the unit list — the vocabulary of measurement your rates use. Add the units your operation counts in, from single pieces to dozens, and remove the ones you no longer use; the list is stored centrally with your organisation's other module configuration.
Scoped and gated like everything else
Piece Work is a tenant-scoped module: every API call resolves your organisation from the signed-in session, and every entry, rate and setting belongs to it alone. On the access side, the route is mapped to the Piecework module in the Role Templates catalogue, so a role granted nothing in that module simply does not reach the pages — the same permission-aware gating that protects the rest of the dashboard, applied to direct URLs as well as the visible navigation.
Features
Amounts computed, never typed
The value of an entry is always quantity × rate, calculated on the server and rounded to two decimal places. There is no amount field to mistype, and if an entry is later corrected the amount is recalculated from the new figures automatically.
Live calculation preview
As you fill in quantity and rate, the form previews the implied amount, formatted with thousands separators; on save, the server computes and rounds the definitive figure. The person logging work sees the money implication of every keystroke before saving anything.
A four-state lifecycle
Pending, approved, rejected, paid — every entry is in exactly one of these states, shown as a status badge in the register. The available actions change with the state, so the next step is always the only step on offer.
Transitions the server enforces
Only pending entries can be approved or rejected, and only approved entries can be paid. Out-of-order actions are rejected by the server with a clear conflict message, so the approval step can never be bypassed by any route into the system.
A standing piece-rate register
Maintain the agreed rate per unit for each item or task, with its unit of measurement and an active or inactive status. The rate card is the shared reference for whoever logs work and whoever approves it.
Your own units of measurement
Define the units your operation actually counts — piece, dozen, or anything else — in a simple configurable list. The list is reference vocabulary stored with your organisation's settings; each rate card records its own unit as text against the rate.
The employee is told at every step
Approving, rejecting or paying an entry raises an in-app notification naming the entry and the decision, delivered to the login account linked to the employee's email, and sends the same message by email where outgoing email is configured for your organisation.
Declared payout policy
Record organisation-wide whether approval is required for piece-work and whether it is paid together with payroll. The choices are saved as shared settings, so every administrator sees the same declared policy.
Organisation-scoped, permission-gated
Every entry, rate and setting belongs to your organisation, resolved from the signed-in session on each request. Access to the pages follows the Role Templates matrix through the Piecework module, for direct links as much as menus.
Used by: HR administrators create entries and action them.
Works with the rest of Nexa People
Piece-work entries are keyed to the same employee records the whole system runs on. The entry form picks people from the shared directory, the register resolves each row's employee name from it, and every entry carries a reference to that one profile — so the person being paid by the piece is the same person attendance, leave and the rest of Nexa People describe. If an employee record is later removed, the entries keep their history rather than disappearing with it.
Decisions flow into the shared notification engine: each approve, reject and pay raises an in-app notification in the employee's notifications feed under its own piece-work category, and a best-effort email through the organisation's configured email service. Access control and configuration also ride on shared rails — the module is gated through the Role Templates permission matrix like every other dashboard area, and its payout settings and unit list live in the same organisation-wide settings store the other modules use.
Frequently asked questions
How is the amount on an entry calculated?
Always as quantity × rate, computed on the server and rounded to two decimal places. You never enter an amount by hand — the form shows a live preview of the calculation while you type, and if an entry is updated later the amount is recomputed from the corrected quantity and rate.
What does the approval workflow look like?
Every entry is created as pending. A pending entry can be approved or rejected from its row in the register; an approved entry can then be marked paid. Rejected and paid are final states with no further actions. The server enforces this order, so an entry cannot be paid without first being approved, whatever route the request takes.
Is the employee told when their entry is actioned?
Yes. Each approval, rejection and payment raises an in-app notification to the linked employee naming the entry and the decision — for example that a particular entry was approved — and, where your organisation has outgoing email configured, the same message is sent to the employee's email address as well.
Can we keep a standard list of rates?
Yes. The Piece Rates tab holds a record per item or task with its rate per unit, its unit of measurement and an active or inactive status. It acts as your organisation's agreed rate card: the reference whoever logs an entry reads the rate from, and whoever approves it checks against. Rates can be edited as prices change or marked inactive when retired.
What units can piece-work be measured in?
Whatever your operation uses. The Units tab in Piece Work Settings is a free-form list you maintain yourself — piece and dozen are the suggested starting points, but you can add any unit name and remove ones you no longer need. The list serves as shared reference vocabulary stored with your organisation's settings, and each rate card records the unit it is measured in as text.
Does an entry have to be linked to an employee?
No. The employee field is optional, so work can be logged as soon as it is counted and attributed afterwards. When an employee is selected, the register shows their name from the shared directory, and workflow notifications reach them; entries also keep their history even if the employee record is later removed.
Who uses the module, and how is access controlled?
Piece Work is an HR administration module: administrators create entries and action them through approval and payment. It appears in the tenant dashboard navigation and is gated by the Role Templates permission matrix under the Piecework module — a role granted nothing there cannot reach the pages, even by typing the URL. Every request is also scoped to your organisation from the signed-in session.
Related modules
See Piece Work in your own setup
We'll walk you through the modules you care about and email you login credentials to try it yourself.