Actors
- System: Cruits scheduling and timesheet engine.
- Client: Approves and corrects hours.
- Worker: Reviews or disputes hours.
- Payroll: Weekly payment batch processor.
Key Principles
-
Payroll is not blocked by review: client submission
drives the payout.
-
Worker approval means reviewed: it confirms review but
does not gate payment.
-
Disputes create corrections: if resolved after payroll,
a correction is applied in the next batch (unless dispute is settled before payroll gate).
Status Model
- Suggested: System-generated hours based on the offer.
- Awaiting review: Client submitted hours for payroll.
- Disputed: Worker disputes the hours.
- Approved: Worker marked the timesheet as reviewed.
Dispute stages: Open, Client proposed update, Client rejected.
Tags (Flags)
-
mutation: Indicates the client changed one or more days
compared to the suggested hours. Applied when a timesheet is edited.
-
absence: A day is marked as absence (e.g., sick, leave,
no-show). Applied when the client marks absence in the drawer.
-
disputed: The worker submitted a dispute. Applied when a
dispute is opened or reopened.
-
auto-approved: The system submitted the hours after the
client deadline. Applied on auto-submission or auto-approval.
-
paid: Indicates the payroll batch has run for the
timesheet. Applied after payout; the worker can access a payslip.
-
dispute-rejected: The client rejected the dispute and
provided a message. Applied when a rejection is sent.
-
dispute-approved: The worker accepted the proposed
update or accepted a rejection decision. Applied when the dispute is
settled by the worker.
-
correction: A post-payroll correction is needed. Applied
when a dispute or approved timesheet is corrected after payroll.
Tags are informational and can stack; they do not block payroll.
Sequence Diagram
sequenceDiagram
autonumber
participant System
participant Client
participant Worker
participant Payroll
Note over System: Week ends Sunday
System->>System: Generate Suggested hours on Monday 00:00
System->>Client: Show Suggested timesheets in "To review"
alt Client submits in time
Client->>System: Submit for payroll (by deadline)
System->>Worker: Timesheet set to Awaiting review
else Auto-submit (deadline passed)
System->>System: Auto-submit Suggested hours
System->>Worker: Timesheet set to Awaiting review
end
par Payroll batch
Payroll->>Payroll: Process weekly batch (Thu 15:00)
and Worker review
Worker->>System: Confirm reviewed
System->>System: Status becomes Approved
end
alt Worker disputes
Worker->>System: Submit dispute with note
System->>Client: Dispute appears in Issues
System->>System: Status Disputed (Open)
alt Client proposes update
Client->>System: Update timesheet
System->>Worker: Update proposed
System->>System: Dispute stage = Client proposed update
alt Worker accepts update
Worker->>System: Accept update
System->>System: Status Approved, Dispute closed
System->>Payroll: If after batch, queue correction
else Worker still incorrect
Worker->>System: Still incorrect (new details)
System->>Client: Dispute reopened
System->>System: Dispute stage = Open
end
else Client rejects dispute
Client->>System: Reject dispute + message
System->>Worker: Rejection notice
System->>System: Dispute stage = Client rejected
alt Worker accepts decision
Worker->>System: Accept decision
System->>System: Status Approved, Dispute closed
else Worker resubmits dispute
Worker->>System: Resubmit dispute with updated details
System->>Client: Dispute reopened
System->>System: Dispute stage = Open
end
end
end
Note over Client,Payroll: Corrections apply after payroll if dispute settled late.
Flow (Verbal)
After a workweek ends, the system generates Suggested
hours based on the offer. The client reviews these in the “To review”
tab and submits them for payroll before the deadline. If the client
misses the deadline, the system auto-submits. In both cases, the
timesheet moves to Awaiting review for the worker.
The worker can confirm they reviewed the timesheet (which marks it
Approved) or open a dispute. A dispute places the
timesheet in the client Issues tab with stage
Open.
The client can resolve a dispute by proposing an update (editing the
timesheet) or by rejecting the dispute with an explanation. If an
update is proposed, the worker can accept the update (closing the
dispute) or resubmit with new details. If the dispute is rejected, the
worker can accept the decision (closing the dispute) or resubmit with
updated details. This keeps resolution between client and worker and
allows repeated clarification until resolved.
Payroll runs on the weekly cutoff regardless of review status. If a
dispute is resolved after payroll has run, the system marks a
correction to be applied in the next batch. Paid
timesheets show the paid tag and include a payslip link
in the worker view. When the client corrects a timesheet, the worker is
informed and the corrected days are highlighted in their week view.
Corrections can only be applied while the financial year is open. If the
financial year is closed, corrections require a separate finance process
and are no longer handled automatically in the next payroll batch.
Behavior Summary
- Client: Submit for payroll, update disputed timesheets,
reject disputes, or correct approved timesheets.
- Worker: Confirm reviewed or dispute. After a rejection,
the worker can accept or resubmit the dispute.
- Corrections: If resolved after payroll, a correction is
processed in the next batch.
- Payout visibility: Paid timesheets show the
paid tag and a payslip link in the worker view.