Overtime in the portal comes from two places: detected OT, which the system proposes from the clock, and filed OT requests, which an employee submits in advance. Both land on HR → Approvals → Overtime and nothing is paid until an approver says yes.
How detected OT is computed
Every path that records a completed day — a clock-out on the POS or Telegram, the automatic clock-out, an HR manual entry, an AI timecard, an approved attendance correction, or the Auto Compute OT scan — runs the same rule:
- Threshold. The store's Daily Overtime Threshold (HR Settings → Overtime Rules), or the employee's own required hours per day when they are marked flexible.
- Break. If the employee has a shift on the roster that day, the shift template's break minutes are deducted. The roster is matched by employee and date, so the break is deducted even when the punch was not linked to the shift.
- Over the threshold. Work minutes (total minus break) above the threshold are the raw OT.
- Scheduled-day cap. On a day with a roster shift, raw OT is capped at the minutes worked after the shift's end time. Clocking in early does not create overtime. See the setting below.
- Rounding and minimum. Raw OT is rounded down to the OT Rounding Increment (per minute, 15, 30 or per hour) and dropped if it is under OT Minimum Minutes.
Worked example, with a 2 PM to 11 PM shift that has a 60-minute break, an 8-hour threshold and per-hour rounding: the employee scans in at 1:41 PM and out at 11:01 PM. Total is 9h 20m, minus the break is 8h 20m, so 20 minutes over the threshold. The cap is 1 minute past shift end, which rounds down to nothing. No OT is filed. Before this rule the same day produced an hour of pending OT.
OT on Scheduled Days (HR Settings → OT Approval)
- Only time worked past the scheduled shift end (default, recommended) — the cap in step 4 applies.
- Total hours over the daily threshold, including early clock-in — the older behaviour, for stores that genuinely pay pre-shift time.
Unscheduled days ("Extra day" on the approvals list) are never capped: there is no shift to measure against, so total hours over the threshold count.
Filed OT requests
When OT Filing Mode is Manual, or when an employee wants OT approved before working it, they file a request on My Workplace with the date, the planned minutes and a reason. Planned minutes are rounded down to the same increment and must meet the minimum. The request is approved or rejected like any other item, and the approver can trim the approved minutes.
What approvers see
Every row on HR → Approvals → Overtime shows the Schedule for that day (the shift on the roster, "No shift scheduled", or "Extra day") and the day's Attendance: every punch as clock-in to clock-out with hours, whether the employee is still clocked in or never clocked out, automatic clock-outs, HR-entered or correction-sourced punches, and how long they stayed past shift end. Detected rows show the OT minutes over the hours worked. Filed requests compare the hours asked for against what the clock shows past shift end and turn red when the clock supports noticeably less; a future date reads "Not yet worked".
"Punch not linked to shift" on a detected row means the clock-in was recorded without a link to that day's assignment — usually because the shift was put on the roster after the punch, or the employee scanned in well before it. The break and the cap still apply because the roster is matched by date.
Re-scanning a period
Auto Compute OT on the Overtime tab scans completed attendance in a cutoff period and flags OT on days that have none yet. It never touches days already pending, approved or rejected unless you tick Re-scan rejected. Changing the settings above does not rewrite OT that was already detected; approve or reject those items as usual.