Case study
FarmWork
Workforce time, piecework, and payroll for a seasonal agricultural employer.
The customer is not named. Details that would identify them are left out. What remains is the operational problem, the software, and the result.
The operation
A commercial vegetable grower and packing operation with a large seasonal workforce. People are paid in more than one way: hourly, piecework, piecework plus hourly, or the better of the two. Production is often shared across several workers on the same task.
The employer hires through foreign and seasonal worker programs, including the Seasonal Agricultural Worker Program (SAWP), which brings program deductions and paperwork that a generic time clock does not understand.
Supervisors work in fields and packing areas where the network drops. The office has to close a pay period, apply bonuses and deductions, and send a clean file into Sage.
What was broken
Time and production did not live in one place.
- Hours lived in one process. Piece counts lived in another. Shared production lived in a third conversation, often a spreadsheet.
- Payroll had to reconstruct the week by hand: who was on which task, how many pieces, who shared a row, which SAWP lunch or program deduction applied, and which bonus rule fired.
- Re-keying the same adjustments every pay run created delay and quiet errors. A missed deduction or a double-counted row is not a small mistake when it hits a worker’s pay.
- Supervisors needed to clock a crew and enter counts where the work was happening. A browser that only works on Wi-Fi is not a field tool.
- Office staff could not see whether clocks were still open, whether counts looked off, or whether a worker had excessive hours until it was too late to fix on the floor.
- Off-the-shelf time clocks assume one pay type, one worksite, and a reliable network. They do not model shared piecework, program deductions, or a supervisor scanning a crew at the edge of a field.
What we built
FarmWork: one system for time on the clock and production in the field, with payroll that matches agricultural pay rules.
Office (web)
- Employee records, tasks, rates, crews, and permission-based access so a bookkeeper, a supervisor, and a worker do not share one god-mode login.
- Pay configuration: pay period, overtime, holiday premium, bonuses, and deductions, including time-based and monetary deductions with limits.
- Shared production: when several workers produced together, payout follows hours on that task in that period. It does not guess from a crew roster.
- Pay-period review: open clocks, unusual hours, and pieces-per-hour flags before the file goes to accounting.
- Export shaped for Sage, so the bookkeeper is not retyping earnings.
Field (native mobile, including offline)
- Supervisors clock a crew in or out against a task and location, or scan workers as they arrive.
- Piece counts can be entered on the job, with a daily history so the person counting can see what they already recorded.
- Workers can clock themselves where that is allowed.
- The iPad or phone app keeps essential field work available when the network is gone, then syncs when it returns. Field work is not blocked because a login token expired in a dead zone.
Hosting
- Each client gets their own installation, in the country they choose, or on their own premises. Workforce and payroll data are not dumped into a shared multi-tenant pile.
What changed
| Before | After |
|---|---|
| Hours, pieces, and shared production in separate lists | One record from clock-in through the pay file |
| SAWP and bonus adjustments re-keyed every run | Rules applied in the pay calculation, then reviewed |
| Field work stalled without signal | Clock and count in the field; sync when the network returns |
| Payroll reconstructed the week | Payroll reviews exceptions and exports |
| Generic time clock that ignored ag pay | Hourly, piecework, mixed, and better-of rules in one product |
The office still owns the pay period. The floor still owns the clock and the count. They finally share the same numbers.