A dynamic clock-out calculator for people whose shifts don't run on fixed alarms.
Off Clock solves one problem: if your clock-in time moves every day, a fixed 5:00 alarm is useless. It continuously recomputes your clock-out time from the moment you clock in, your target hours, and a payroll rule that only forgives the first 30 minutes of break — every minute past that pushes your clock-out back one-for-one.
The first 30 minutes of break are free — standard for a lot of hourly payroll systems. Every minute beyond that pushes the clock-out time back one-for-one, live. The Open Break screen recalculates this every second, so the moment you cross the 30-minute mark, the estimated clock-out visibly starts climbing.
An ActivityKit Live Activity keeps the running timer and clock-out estimate visible without unlocking the phone — compact pill, expanded view, and lock screen widget all driven from one shared timeline.
No timer ever stores an accumulating delta. Every displayed duration is recomputed from stored Date values on each foreground/tick, so a force-quit or hours in the background can't drift the numbers.
Forgot to log a break? Every entry in the day's timeline — clock-in, breaks, clock-out — is retroactively editable inline, with overlap and ordering guards so edits can't corrupt the running calculation.