Shift approvals

Approve every shift before it pays out.

Review the punch times, lunch, payout, and any employee note. Approve in one tap. Reject with a reason that lands in their inbox.

One queue. One decision.

Every completed shift lands in the Approvals queue with the data you need to make a call: punch-in and punch-out times, lunch breaks, the resulting net hours, the payout at the employee’s current pay rate, the source (iOS-geofenced or web), and any note the employee left. One screen, one decision.

Approve in a single tap. Reject opens a small modal that requires a reason — short or long, but not blank. The reason ends up in three places: the shift record, the audit log, and the employee’s notification inbox. They learn what went wrong without you having to type it twice.

For shifts that are wrong-but-fixable, there’s a third option. Tap Edit, change the punch-in or punch-out time, write a reason, and save. The edit records before-and-after snapshots to the audit table so the original times stay recoverable. Edits are restricted to the current work week. Older shifts can be rejected, but not silently rewritten — which keeps payroll periods clean.

What the queue gives you.

  • One screen per decision

    Punch times, lunch, net hours, payout, source, employee note. Everything you need to approve or reject without context-switching.

  • One-tap approve

    Tap Approve. Status flips to approved, the queue advances to the next pending shift, the dashboard's pending count drops by one.

  • Reject-with-reason

    Required reason field. Stored on the shift, recorded in the audit log, surfaced in the employee's notification inbox so they know what to fix.

  • Edit-in-place

    For wrong-but-fixable shifts, the Edit button rewrites punch-in / out times. Required edit reason. Recorded with before / after snapshots.

  • Current-week guardrail

    Edits are server-restricted to the current Sunday-anchored work week. Older shifts can be rejected but not silently rewritten.

  • Estimated payout per shift

    Each pending shift shows its straight-time payout at the employee's current rate, so you can sanity-check the cost before approving.

When approvals matter most.

  • High-rate workers

    When the cost-per-hour is real money, every shift wants a second look. The queue keeps the review one click away — not buried in a settings page.

  • Multi-site projects

    Different employees, different sites, different supervisors. The audit log on every approve / reject / edit means you can answer 'who decided what, when' months later.

  • Time-sensitive payroll

    If you pay weekly, the gap between Sunday close and Monday morning is when approvals happen. The queue plus mark-paid in Timesheets gets you there in 15 minutes per week.

FAQ

Questions, answered.

Is a rejection reason required?
Yes. Rejecting a shift opens a small modal asking why. The reason is stored on the time entry, recorded in the audit log, and surfaced in the employee's notification inbox so they know what to fix.
Can I edit a shift instead of rejecting it?
Yes. Inside the approvals queue, every current-week shift has an Edit button beneath Approve and Reject. Change the punch-in or punch-out time, write a reason, save. The edit records to time_entry_edits with before-and-after snapshots — full audit trail.
What happens after I approve?
The shift's status flips to approved, the queue advances to the next pending shift, and the dashboard's pending-tile count drops by one. The shift's hours and payout immediately roll into the timesheet view for that employee's week.
Can a manager approve their own shift?
Yes — the role check is per-org, not per-user. A manager who also punches in on iOS will see their own pending shifts in the queue. If you want stricter separation, demote yourself to employee in your own org and have someone else approve.
Are rejected shifts gone forever?
No, they stay on the books with a rejected status. The shift appears in the employee's history with the rejection reason, and contributes zero hours to the weekly timesheet. The audit log keeps the original punch-in / out times for compliance.

Set up in a minute.

Create an org. Share the join code. Your team punches in today.