Appearance
Labor Efficiency
Last updated
License feature: Labor EfficiencyMonitor > Labor Efficiency opens Labor Efficiency ("Operator time tracking and efficiency reports"), with tabs Time Entries, Standards and Reports. It compares the hours an operator was clocked in against the hours "earned" by the parts on their work order.
It needs the Labor Efficiency license feature. Earned hours also need Work Orders switched on, since they come from a work order's completed quantity.
The calculation
text
Order earned = Standard Hours per Part × work order completed quantity
Entry earned = Order earned × (entry hours ÷ hours of all closed entries on the order)
Hours worked = Clock Out − Clock In
Efficiency % = Earned hours / Hours worked × 100- The standard is looked up by the work order's Part Number and the entry's Device; if no device-specific standard exists, the "any device" standard is used; if none, earned hours are 0.
- A work order's completed quantity is earned once. It is shared among the order's closed entries in proportion to the hours each was clocked in, so two operators on one order split its parts rather than both earning all of them.
- Earned hours are recalculated whenever they are shown, so parts completed after clock-out, or another entry closing on the same order, change the split. An entry still clocked in earns nothing until it clocks out.
Example. Standard for part BRKT-220 on "Press 4": 0.02 hours per part (72 s). Maria clocks in at 06:00 on WO-24117 and clocks out at 14:00; the work order shows 420 completed.
- Order earned = 0.02 × 420 = 8.40 h. Maria is the only entry, so she earns 8.40 h in 8.00 h worked = 105 % (green).
If Jon also worked the same order from 10:00 to 14:00, the order's 12 clocked hours split the 8.40 h: Maria 8 ÷ 12 × 8.40 = 5.60 h (70 %), Jon 4 ÷ 12 × 8.40 = 2.80 h (70 %).
Colors: green at 100 % or more, yellow at 80 % or more, red below 80 %.
Standards tab
- Click New Standard.
- Enter Part Number (required, e.g. PART-001), optionally a Device (optional) ("-- Any Device --"), Standard Hours per Part (required; step 0.001, minimum 0) and Description.
- Click Create. Edit with the pencil (Edit Standard, Save); delete with the trash icon.
- Creating and editing needs editor; deleting needs admin.
- A standard is unique per part number and device, including "any device"; creating it again updates the existing one. Editing a standard onto a part number and device that already has one is refused.
- Convert seconds to hours: 72 s ÷ 3600 = 0.02.
Time Entries tab
Clock in
- Click Clock In.
- Operator: "-- Current User --" or any active user.
- Device and Work Order (optional; "-- None --").
- Notes, then Clock In.
Currently open entries appear under Active (Clocked In) with the device, work order and start time; they refresh every 10 seconds. Click Clock Out on a card to close it.
Entries table: filter by Operator, From and To; columns Operator, Device, Work Order, Clock In, Clock Out, Hours, Earned, Eff % and Actions (delete, admin only, with "Delete this entry?"). The latest 50 entries are shown. There is no edit screen (PUT /api/labor-efficiency/entries/:id, editor, is API-only).
The Work Order list offers the active and pending work orders, so the entry earns hours against the job it is for.
Other behavior:
- Any operator can clock out any open entry, and can clock in another user through the API.
- Nothing stops one person having several open entries.
- Clock In and Clock Out times are shown in your browser's local time.
Reports tab
Pick From and To (both required) and optionally Operator. Shows Total Hours Worked, Total Earned Hours and Overall Efficiency, then a table per operator: Operator, Entries, Hours Worked, Earned Hours, Efficiency and a bar.
- Only closed entries count, grouped by operator, by the local date they clocked in.
- From and To are both included: the default range, a week ago to today, includes today's entries. The same applies to the From and To filter on Time Entries.
- Figures are rounded to 2 decimals.
Dashboard widget
Labor Efficiency (Display category) lists who is clocked in now; its only setting is Refresh (ms) (30000).
REST endpoints
| Method | Path | Purpose | Role |
|---|---|---|---|
| GET | /api/labor-efficiency/entries | List; operatorId, deviceId, from, to, limit (50), offset | viewer |
| GET | /api/labor-efficiency/entries/active | Open entries; optional operatorId | viewer |
| POST | /api/labor-efficiency/entries/clock-in | operatorId (default: you), deviceId, workOrderId, shiftId, notes | operator |
| POST | /api/labor-efficiency/entries/:id/clock-out | Close and calculate earned hours | operator |
| PUT | /api/labor-efficiency/entries/:id | Edit clockIn, clockOut, earnedHours, notes, deviceId, workOrderId | editor |
| DELETE | /api/labor-efficiency/entries/:id | Delete | admin |
| GET | /api/labor-efficiency/operators | Active users' id and name, for operator pickers | viewer |
| GET | /api/labor-efficiency/standards | List standards | viewer |
| POST | /api/labor-efficiency/standards | Create/update: partNumber, standardHoursPerPart required | editor |
| PUT | /api/labor-efficiency/standards/:id | Update | editor |
| DELETE | /api/labor-efficiency/standards/:id | Delete | admin |
| GET | /api/labor-efficiency/report | from and to (YYYY-MM-DD, both included) required, optional operatorId | viewer |
Clock in on a work order from a script or custom page:
http
POST /api/labor-efficiency/entries/clock-in
{ "deviceId": 4, "workOrderId": 12, "notes": "Press 4, first shift" }Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Earned shows "—" and Eff % 0 | No work order on the entry, no matching standard, or the work order's completed count is 0 | Link the work order (API), add the standard, update the work order's counts. |
| "Already clocked out" | The entry was already closed | Refresh the page. |
| "Entry not found" | Deleted or wrong id | Refresh. |
| "partNumber and standardHoursPerPart are required" | Missing fields on a standard | Fill both. |
| "from and to date parameters are required" | Report called without dates | Pass both. |
| Earned hours changed after clock-out | Another entry on the same work order closed, or its completed quantity changed | Expected — the order's parts are shared among its entries. |