Appearance
Production Operator Payroll
This guide explains how a tenant should set up garment-production operators, collect production labour from completed operation lines, run weekly operator payroll, post the payroll accrual, and pay the employees without double-counting production cost.
Use it when operators are paid from actual production work instead of a normal monthly salary.
What The Process Does
Production records who worked on each operation and how much labour cost belongs to the production order. HR Payroll turns that approved production labour into employee earnings for the correct payroll period.
The same person can have more than one payroll setup over time. For example:
| Employee Type | Frequency | Base Amount | Typical Use |
|---|---|---|---|
| Monthly office or salaried staff | Monthly | Positive monthly salary | Normal payroll run for salary, allowances, deductions, and statutory items. |
| Weekly production operator | Weekly | 0 | Pay comes from posted production labour lines, not from a fixed base salary. |
The zero base amount is intentional for production-only weekly operators. The payroll setup still needs one HR_BASIC_SALARY line because the payroll engine expects one basic salary component for every payroll employee. For production labour, that line is allowed to calculate at 0 while the payable amount comes from HR_PRODUCTION_LABOUR lines linked to operation completion events.
Employee And Employment Setup
Before an operator can be assigned to a production order, set up the person in HR.
- Open HR -> Operations -> Employee Management.
- Create or review the employee.
- Confirm the employee is active and approved.
- Create the employment record or contract.
- Assign a position, job, grade, department, and business-unit context where those are required by the tenant.
- Confirm the employment is current for the dates when production work will happen.
- Add payment details if the tenant will create payroll payment batches.
The production operator lookup should only show payroll-ready employees. A valid production operator must have:
- active employee status
- approved employee record
- active/current employment
- approved payroll enrollment
- a pay structure with
HR_BASIC_SALARY - a pay structure with
HR_PRODUCTION_LABOUR - matching currency
- matching pay frequency for the payroll period
- no blocking onboarding or employment readiness issue
The frontend filter is a convenience. The backend must enforce the same rule, so an ineligible employee cannot be forced into payroll by bypassing the UI.
Pay Structure Setup
Create a weekly production labour pay structure for operators whose earnings come from production work.
The structure should include at least:
| Component | Amount | Why It Exists |
|---|---|---|
HR_BASIC_SALARY | 0 | Required base component for payroll consistency. It does not pay the operator in a production-only weekly run. |
HR_PRODUCTION_LABOUR | From production evidence | Pays posted operation labour by employee, production order, operation, minutes, piece quantity, rate, and amount. |
Monthly staff should remain on their monthly pay structures. Do not move salaried staff to the weekly operator structure unless they are truly paid that way.
It is acceptable for one employee to have a future monthly setup and a current weekly production setup as long as effective dates and frequencies are correct. Payroll selects the setup by frequency, service scope, approval, active flag, and effective dates.
Payroll Period Setup
Production operators paid weekly need weekly payroll periods. Monthly employees need monthly periods.
Example:
| Payroll Population | Period Frequency | Example Period |
|---|---|---|
| Production operators | Weekly | 2026-09-14 to 2026-09-21 |
| Office staff | Monthly | 2026-09-01 to 2026-09-30 |
Payroll generation uses the selected period frequency. A weekly run will only pick employees enrolled with weekly payroll setup. A monthly run will only pick monthly employees.
The payroll period must be OPEN to generate a normal regular payroll run. After a run is generated, the period moves into processing-type states. If the user tries to generate another regular run for the same September period, the system can show:
text
Payroll period must be OPEN to generate a run, except production labour supplementary runs for a closed period.That message means the chosen period is not open for that run type. The user should not keep clicking Generate. They should either:
- choose an open weekly period
- create the next weekly period
- reverse or correct the existing generated run if it was wrong
- use the supported correction path for approved or posted runs
Do not change period dates just to force a payroll run through.
Production Setup Before Payroll
Before payroll can collect production labour:
- Create the production order.
- Assign payroll-ready operators to each operation line.
- Start the operation and select the operators actually starting now.
- Complete the operation line.
- Book labour per operator.
- Confirm each labour booking has a positive labour amount when the employee is to be paid.
- Confirm the operation event is posted.
The operation line is the manufacturing milestone. Operator rows explain which employee earned which part of the cost.
Production completion is not payroll payment. It only creates labour evidence and production cost evidence.
Running Payroll
Open HR -> Operations -> Payroll Processing -> Payroll Runs.
- Use the same active business unit context as the payroll actor.
- Select the open payroll period with the correct frequency.
- Choose Regular for the normal payroll run.
- Generate or preview the run.
- Open the detail drawer.
- Confirm each operator appears.
- Confirm production labour lines show the production order and operation.
- Validate the run.
- Approve the run.
- Confirm the payroll accrual posts to GL.
- Create and complete the payment batch.
Do not create a separate production supplementary run for normal current-period production labour. The normal payroll run should collect posted production labour automatically.
Idempotency And Duplicate Protection
When production labour is included in a payroll run, each operation completion event is linked to that payroll run.
After the link exists, the same production labour event is no longer available for another payroll run. This prevents paying the same operator work twice.
If the run is wrong before posting or payment, correct it through the supported payroll reversal or correction process. Do not create another run hoping it will ignore or replace the old one automatically.
For the verified staging example:
| Check | Result |
|---|---|
| Production order | PRO-000016 |
| Payroll run | HPR-0032 |
| Period | HPP-0019, weekly, 2026-09-14 to 2026-09-21 |
| Operators | 5 |
| Linked operation completion events | 15 |
| Gross payroll amount | UGX 106,250 |
| Unlinked production labour left in the same period | 0 |
Each operator had one zero HR_BASIC_SALARY line and three HR_PRODUCTION_LABOUR lines from the production order operations:
| Operation | Amount Per Operator |
|---|---|
| Cut Fabric and Kit Hoodie Panels | UGX 6,000 |
| Sew Hoodie Body, Hood, Ribbing, and Sleeves | UGX 11,916.67 |
| Inspect, Finish, and Pack Hoodie | UGX 3,333.33 |
| Total per operator | UGX 21,250 |
That is why the detail drawer shows Base Amount UGX 0.00 but Gross Pay UGX 21,250.00 for each operator.
Accounting Chain
Production labour should not be expensed twice. Use a clearing pattern.
| Event | Debit | Credit |
|---|---|---|
| Production operation completion | WIP or production cost | Production labour absorption clearing |
| HR payroll accrual for production labour | Production labour absorption clearing | Payroll payable or employee payable |
| Payroll payment batch settlement | Payroll payable or employee payable | Cash, bank, mobile money, or payment clearing |
In this pattern:
- Production records the cost on the production order.
- HR records the amount owed to employees.
- Payroll payment clears the employee payable.
- The labour absorption clearing account should net down when payroll is accrued.
When reviewing journals after payroll posting, check that the run references the payroll run and production labour source. For a production-only weekly operator run, expected payroll accrual legs are:
| Leg | Expected Account Role |
|---|---|
| Debit | Production labour absorption clearing |
| Credit | Payroll net payable or employee payable |
If deductions or employer contributions exist, additional payable and expense legs may appear according to the tenant's HR payroll setup.
If the journal debits normal payroll expense for production labour that was already absorbed into production cost, stop and review the GL posting rule binding before paying.
Tenant Controls
Use these controls in tenant training:
- Operators must be assigned from payroll-ready employees only.
- Payroll periods must match the operator pay frequency.
- Normal weekly production payroll should be run once per open weekly period.
- Posted production labour is linked after generation and cannot be picked up again.
- Validation proves the run can proceed, but it is not payment.
- Approval and posting create payroll accrual accounting.
- Payment batch completion is the employee payout step.
- Customer invoice payment does not prove operators have been paid.
Troubleshooting
| Symptom | Likely Cause | What To Do |
|---|---|---|
| Operator is missing from assignment lookup | Employee is not payroll-ready for production labour. | Check active employee, current employment, payroll setup, pay frequency, HR_PRODUCTION_LABOUR, approval, and payment readiness. |
| Base amount is zero | Operator is on production-only weekly payroll. | Confirm gross pay comes from production labour lines. This is expected. |
| Gross pay is zero | No posted payable production labour matched the employee and period. | Review operation completion, labour amount, event date, employee assignment, period dates, and existing payroll links. |
| Period must be OPEN error | Selected period is closed, locked, approved, or already processing. | Use an open period, correction/reversal path, or next period. |
| No unlinked production labour events | The work was already linked to a payroll run, or no matching posted work exists. | Inspect the production labour link table/report and the payroll run detail. |
| Production amount appears twice in expenses | Clearing account pattern is not configured correctly. | Review production cost absorption and HR payroll accrual posting rules before payment. |
QA Checklist
- Employee is active and approved.
- Employment/position is current for the production work dates.
- Payroll enrollment is approved, active, and effective.
- Weekly operator setup has base salary 0 and
HR_PRODUCTION_LABOUR. - Monthly staff remain on monthly payroll setup.
- Weekly period is open before generation.
- Production operation completion has per-operator labour booking.
- Payroll run detail shows the production order and operation per earning line.
- Validation changes the run to validated.
- Approval posts or queues the payroll accrual.
- GL journal debits production labour clearing and credits payroll payable.
- Payment batch clears payroll payable through the configured payment channel.
- Reports can trace employee, production order, operation, payroll run, payment batch, and GL journal.
