🔵 Why This Matters
Time Clock is a dedicated punch grid — separate from the legacy Timesheets page — built for reviewing high volumes of clock-in/clock-out data quickly.
This helps you:
✅ Catch bad time data — out-of-order punches, overlapping breaks, out-of-range times — before it reaches payroll
📊 See problems at a glance — missing, expired, and unsaved cells get their own visual treatment
🔁 Approve a whole crew in seconds with bulk save and bulk approve
📋 Keep a full audit trail — every save, approve, or edit is logged with actor, timestamp, and old/new value
📌 The Net Daily Total (Shift total minus Unpaid break) is calculated automatically and can't be typed over directly.
👥 Who Can Access This
🏢 Staffing company users — Workspace Admin, Ops Admin, Back Office, External, and Account Manager roles have full edit, save, and approve access. Recruiters (CRs) have full edit, save, and approve access for their assigned jobs.
👤 Company users — access mirrors their Timesheets access. If a company user can view or edit Timesheets for a job order, they have the same access on Time Clock.
🚫 Candidates do not have access — Time Clock is a staffing/client-side management tool only.
🔒 The lock/unlock action itself lives on the legacy Timesheets page — recruiters and company users can never flip that switch, even with edit access.
📌 Where to Find It
🧭 Dashboard — the Timesheet Actions row has a Time Clock tile.
🧭 Companies list — hover over a company row to reveal an inline action bar, then click Time Clock.
🧭 Inside a company — Time Clock sits in the top tab bar alongside Profile, Job Orders, Shift Roster, Timesheets, Pay Rates, Bill Rates, Settings, Invoicing, and Reports.
🧭 How to Use Time Clock
Step 1 — Select a job order
Nothing loads until a job order is selected. The filter bar also includes Location, Shift, Candidate, and Cost Center, alongside the week navigator.
Step 2 — Read the Week Snapshot
Once a job order is picked, seven tiles summarize the week:
Tile | What It Shows |
Workers | Distinct workers with time entries for the week |
Total Hours | Sum of all recorded hours across the week |
RT Hours | Regular-time hours, per the existing overtime policy |
OT Hours | Overtime hours, per the existing overtime policy |
Approved | Approved hours, as hours/count (e.g. "12.00h/3") |
Pending | Hours awaiting approval, same format |
Issues | Missing/Expired cells only — No-Shows are excluded |
Step 3 — Read the grid
Workers group by shift (sorted by start time; alphabetical within a shift). Each worker has three rows per day: Shift (clock-in/out), Unpaid (break in/out), and Total (calculated Net Daily Total) — shown here under the default Select Days configuration (Monday–Friday, Unpaid breaks only). If a worker has logged more than one break, the Unpaid row scrolls horizontally to show them all.
💡 Hovering the Total cell for a worker reveals a tooltip breaking the week down into Regular and Overtime hours per day, alongside the weekly total.
Cell State | What It Means |
In Progress | Clock-in recorded, shift still open |
Missing | No clock-out yet, within the 16-hour grace window |
Expired | No clock-out beyond 16 hours — needs a manual correction |
Step 4 — Edit entries
Click into a cell to edit it inline. Every save — single cell, day, row, or bulk — is checked against the same rules:
🔁 Ordering — a clock-out can't be saved without a prior clock-in, and can't precede it
⏳ Break containment — breaks must fall inside the shift and can't overlap each other
⚠️ Format — times outside 00:00–23:59, or malformed 12-hour input, are rejected
🧮 Net Daily Total — auto-calculated (Shift total minus Unpaid break); never directly editable, never negative
🚫 Approval gating — No-Show and Empty days can't be approved
💡 An unsaved edit shows a red border and a "not saved" tooltip next to a Save button, so you never lose track of what still needs a click.
Step 5 — Save and approve in bulk
Use "Select all workers" or individual checkboxes to enable bulk Save and bulk Approve for the visible week. Invalid days (No-Show/Empty) are skipped automatically, with a per-worker report of what succeeded. Saves are atomic per (worker, day) — one failure never cascades to other days or other workers.
🔍 Filtering
📆 Select Days — controls which weekday columns show, plus Paid/Unpaid break columns. The default is Monday–Friday plus Unpaid breaks (six items selected); excluded days render hatched rather than disappearing.
💾 Exporting / Downloading
📥 Download exports Weekly or Daily, respecting whatever filters are applied.
🧠 Key Points to Remember
🧮 The Net Daily Total is never directly editable — fix the underlying punch or break times and it recalculates itself.
🔒 If Save/Approve suddenly stop responding on a week that worked yesterday, check the page subtext before assuming something's broken — it likely got payroll-locked.
📌 A job order must be selected before anything loads — this is expected behavior, not an error.
🔁 Time Clock and legacy Timesheets stay in sync — approving a day on either page reflects on the other on next load.
⏰ 12-hour input converts automatically — type times naturally; the server rejects raw 12-hour strings as a safety net.
📋 The audit popup is shared — it renders identically from Time Clock or legacy Timesheets.
💡 Tips
⌨️ For fast data entry, Tab moves through each worker's fields in order (Shift In → Out → Paid Break → Unpaid Break → next day → next worker), Enter commits a cell, and Esc reverts it.
🔒 Once a week is payroll-locked, Time Clock renders it read-only automatically — filters, the audit popup, and exports remain available even then.
📊 Use the Total-cell hover tooltip to check a worker's Regular vs. Overtime split before approving a full week.
