Clashes and approvals: the gate before hours go live

5 min read · Updated 3 Jun 2026

Approval is the gate: hours only reach the live WBS once a foreman signs them off. WBSync auto-flags duplicate submissions and anyone over the 16-hour daily cap, and blocks approval until the clash is resolved — so bad data never lands on your dashboard.

The four states of a labour entry

Every entry — whether a foreman typed it into the crew log or a clock-in pushed it through the API — moves through the same lifecycle. Only approved hours change your % complete, S/E or CPI.

Draft Submitted Approved Rejected ↑ hours go live here rejected entries bounce back to be fixed and re-submitted

Who can approve

Approval is payroll-grade, so it's gated on the labour.approve permission. Out of the box that's held by Owners and Admins and by anyone whose role is PM, Supervisor or Foreman. One rule always holds: you can't approve your own entry — the submitter and approver must be different people (superusers aside). It's separation of duties, baked in.

What a clash is

When two facts about the same worker on the same day don't line up, WBSync raises a clash and freezes approval for those entries until someone decides what's right. There are two kinds:

  • Duplicate submitter — the same operative was logged for the same date by two different people (e.g. two foremen both claimed the same gang member, or a manual entry overlaps a clock-in feed).
  • Hours over daily cap — the operative's total across all entries for the day exceeds 16 hours. That's almost always a typo (80 instead of 8) or a missed clock-out — the cap catches it before it inflates your earned hours.
Clash detection runs automatically every time an entry is created or edited. Rejected entries are excluded from the maths, so rejecting the wrong row can clear a clash on its own.

Resolve a clash

1
Open the entry the approval queue flagged

Try to approve a clashing entry and WBSync stops you with the reason and a link to the clash. Open it.

2
Pick which entries win

Tick the entries that are correct and keep them open. Choose whether to reject the rest in the same action, and add a one-line reason so the audit trail explains the call.

3
Approve as normal

With the clash resolved, the kept entries go back through the standard approval gate. The resolution — who, when, and the note — is stamped on the clash row.

Approve a whole crew-day at once

You rarely approve one row at a time. Bulk-approve takes a whole crew-day in one tap. It's race-safe and forgiving: any row that's already approved, still has an unresolved clash, or has no cost code yet is quietly skipped and reported back, rather than failing the whole batch. Bulk-reject works the same way and auto-clears any clash whose condition no longer holds.

Every transition — submit, approve, reject, edit, resolve — writes an immutable audit-log row with a before/after snapshot. You always have the paper trail for payroll and client variations.

What next?

Approved hours feed the numbers. See what they build: Reports & dashboards →

Frequently asked

Why can't I approve my own hours?

Separation of duties. The submitter and the approver must be different people, so a single person can't both log and sign off the same hours. Superusers (our support staff) are the only exception.

What exactly triggers a clash?

Two things: the same operative logged for the same day by two different people (duplicate submitter), or an operative's total hours for a day going over 16 (the daily cap). Both freeze approval until resolved.

What happens to hours that are never approved?

Nothing — they sit as draft or submitted and never affect your dashboard, % complete or KPIs. Only approved hours change the live WBS.

Can I undo an approval?

Open the entry and reject it; it returns to the queue with your note, and the original is preserved in the audit log. Editing an already-approved entry is restricted to Owners and Admins.

Related