Time tracking stopped recording while you were away from the Mac
· 6 min read
The day’s record has a hole in it. Two hours in the afternoon with nothing, or the record stops entirely at eleven and resumes the next morning. You were working.
Gaps have a small number of causes, and they are distinguishable in a couple of minutes.
First: was the Mac awake?
The most common answer, and the easiest to check. macOS keeps its own log of sleeping and waking:
pmset -g log | grep -E "Sleep|Wake" | tail -30
Each line has a timestamp and a reason. If a sleep event lines up with the start of your gap and a wake event lines up with the end, the Mac was asleep and the gap is correct: nothing ran, so nothing was recorded.
That happens more often than people expect on a laptop. A lid closed for a meeting, a machine that idled while you were reading on paper, a display that slept and took the system with it.
Second: was the app running?
If the Mac was awake, check whether the tracker was.
ps -Ao pid,lstart,comm | grep -i punchcard
Substitute the app name. The lstart column shows when the process started. A start time in the middle of your gap means the app was not running before then, which points at a crash and a relaunch, or at a manual restart.
Crash reports collect in a folder you can open directly:
open ~/Library/Logs/DiagnosticReports
Files named for the app with timestamps matching your gap confirm it. You do not need to read them; their presence is the answer.
Third: did it start at login?
If the gap runs from a restart to the moment you noticed, the app probably did not start.
System Settings, General, Login Items has two lists. Open at Login is what you control. Allow in the Background is where apps register themselves, and an app switched off there will not run until launched manually.
macOS sometimes resets these after a major update, which is why this appears with no apparent cause. It is worth checking after every update rather than after every gap.
Fourth: did a permission get revoked?
Less likely for a tracker that needs no permissions, and worth ruling out for one that does.
System Settings, Privacy & Security, then Accessibility and Screen Recording. macOS revokes permissions when an application is updated in certain ways, and re-granting is required. A tool depending on Accessibility to read window titles simply stops producing detail when that happens, sometimes without saying so.
This is one of the arguments for a tracker that needs no permissions: there is nothing to be revoked, so this whole category of failure does not arise. Time trackers that ask for Accessibility permission, and one that does not covers the trade.
Fifth: were you actually idle?
If the Mac was awake, the app was running, and there is still a gap, the likeliest explanation is that the tracker decided you were absent.
Most tools stop counting after a few minutes without keyboard or mouse input. If you spent two hours reading a long document, or on a phone call while looking at the screen, that reads as idle, because no input arrived.
This is a deliberate design choice rather than a fault, and it errs towards under-reporting. The alternative is counting the two hours you spent at lunch. Neither is right; the question is which direction you would rather be wrong in. Sleep, screensaver and lid close covers the states involved.
Recovering the day
Once you know the cause, the practical question is what to do about the day itself.
For a gap you can account for, note it by hand alongside the record. A receipt with a pencilled line saying “two hours, client call, phone” is a perfectly good record, and considerably better than a clean-looking day that is wrong.
Resist the urge to reconstruct the whole day from memory to replace the record. The measured part is accurate; the remembered part is not. Keeping them distinguishable is the point. How to see your workday when you forgot to track it covers reconstructing honestly, and what to do when you forget to clock out covers the related failure.
Where Punchcard sits
Punchcard records the frontmost application by name, subtracts idle time, and prints a receipt at the closing time you set. It requests no macOS permissions, so there is nothing to be revoked in an update, which removes the fourth cause above entirely.
If it is not running, it does not record, and it does not attempt to reconstruct time it did not observe. A gap in a receipt is a gap, not an estimate presented as a measurement. That is deliberate: a record that quietly filled in plausible numbers would be worse than useless, because you would trust it.
A checklist
pmset -g log | grep -E "Sleep|Wake". Does the gap match a sleep?ps -Ao pid,lstart,comm | grep -i <app>. When did it start?~/Library/Logs/DiagnosticReportsfor crash reports.- System Settings, General, Login Items.
- Privacy & Security, if the tool needs permissions.
- If all clear, it was idle detection, and the gap is a period without input.
Questions
Can I recover the data for a gap? No. If nothing was running, nothing was recorded, and there is no store to recover from. Note the gap by hand.
Why does this happen after macOS updates specifically? Updates restart the Mac, reset some login item registrations, and can revoke permissions granted to an application whose signature changed. All three produce this symptom.
The record stops at the same time every day.
Check your energy settings with pmset -g custom. A display or system sleep timer matching that hour is the likely cause.
Should I use something that fills gaps automatically? Be careful. A tool that infers activity produces a record that looks complete and is partly fiction. A visible gap you annotate yourself is more honest and more useful.