
The gap between a timesheet and a payroll file is where most of the administrative pain in a shift operation lives. The hours exist. The rates exist. And somehow the fortnight still ends with somebody exporting to a spreadsheet, patching it by hand, and hoping. Closing that gap is mostly a matter of deciding things earlier.
Decide the rules once, not every period
Most of the manual work at period close is re-litigating decisions that were never written down. Does a punch two minutes early count as early? What happens to a shift where somebody forgot to clock out? Are unpaid breaks deducted automatically, or only when they're actually taken?
- Rounding, if you round at all, and in whose favour
- How breaks are treated when nobody records them
- What counts towards overtime, and over what period
- Which premiums apply, and what triggers each one
Written down, each of these takes a minute to answer and then never needs answering again. Left implicit, they get answered slightly differently every period by whoever happens to be doing the close, which is both slow and, more importantly, inconsistent in a way that eventually surfaces as a pay query.
Handle exceptions when they happen
A missed punch is trivial to resolve on the day, because the person is standing there and remembers. The same missed punch is genuinely difficult eleven days later, because it has become an archaeology problem. Yet the default in most operations is to collect exceptions silently and deal with them all at the end, at the worst possible moment.
Surface them immediately instead. The employee sees that the punch is incomplete and can request a correction with an explanation attached. The manager approves or amends it while the context is free. By period close there's nothing to investigate, because the investigating already happened, in seconds, spread across a fortnight.
Approve once, and mean it
Approval should be a real boundary rather than a formality. Once a period is approved it should stop moving, and any later change should be a visible, recorded amendment rather than a silent edit. This sounds bureaucratic and is in fact the thing that makes the export trustworthy: if the file can be regenerated and come out different from the one you sent, you have no way of knowing which version payroll actually used.
It also settles who is allowed to do what. Approving your own timesheet is the most common control weakness in a small operation, and it's almost always an accident of convenience rather than a decision anybody made deliberately. Separating the person who records the hours from the person who approves them costs nothing at the point you set it up, and is awkward to retrofit once everyone is used to the shortcut.
Export the format payroll actually wants
The last mile is unglamorous and worth getting right. A file that needs manual reshaping before it can be imported isn't an export, it's a draft. Match the identifiers your payroll system keys on, produce the columns it expects, and keep that mapping in one place so it survives a change of whoever runs the close.
What one pass actually looks like
Punches arrive with the rules already applied. Exceptions get resolved on the day they occur. At the end of the period a manager reviews what's genuinely unusual, approves the period, and exports it. There's no spreadsheet stage, because nothing was left undecided long enough to need one.
“Period close should be a review, not an investigation. Everything that makes it an investigation happened weeks earlier.”