How a timesheet question gets answered
A validator that sends five separate emails about one week has not saved anybody anything; it has moved the tedium from a payroll clerk to twenty-two people. So the asker batches, waits a few minutes for a sheet to settle, and sends one message with every question about that week in it. This post is about the shape of that message and about what happens when it is ignored.
Key takeaways
- One message per sheet per week, never one per finding.
- Sent a few minutes after submission, so it lands while the person is still at work.
- Every finding has a one-tap answer, and the common answer is first.
- Answering a question re-runs the checks, so a fix can reveal the next thing cleanly.
- An unanswered week escalates to a manager and is carried forward, never silently dropped.
One message, all the questions
- App integration
- Management
- Analytics
- People
Why it waits
Somebody filling in a form will often submit, realise Wednesday is wrong, and resubmit ninety seconds later. Sending a question in between is how a system teaches people to ignore it. So the batcher holds a submitted sheet for a few minutes, and a resubmission inside that window replaces the draft and resets the timer. The message that eventually goes out is about the sheet as it finally stands.
What the message looks like
One card per finding, and nothing else
- Thursday 9 July is blank. The roster had you on the Aldershot job. → I worked, here are the hours · I was off
- Tuesday has no job. Three jobs ran that day. → J-4471 · J-4480 · J-4492 · Something else
- Monday shows 9 hours with a 15-minute break. The rule is 30 after six. → The break was 30 · It really was 15
- Nothing else in the message. No sheet total, no policy text, no link to a portal, and no sentence beginning “Please be advised”.
The order of the answers matters. “I worked, here are the hours” is first because it is right about eight times out of ten, and a person scanning on a phone taps the first plausible button. Putting “I was off” first would produce a measurable number of people accidentally giving away a day’s pay, which is the kind of bug that does not show up in testing.
Answering re-runs the checks
Filling in Thursday can create a new finding — the week now crosses the overtime threshold, or Thursday itself has no job. So an answer does not close a finding; it updates the rows and re-runs the comparer. If new findings appear, they are batched and sent as a second message, which is the one case where somebody gets two messages about one week and it is unavoidable.
When a week is never answered
- App integration
- Machine learning
- Management
- People
That last step is the one worth arguing about, and the argument is short. A blank Thursday at payroll cut-off has two possible meanings: the person did not work, or the person did not answer an email. Paying zero assumes the first. Carrying it assumes nothing, pays the twenty-eight hours that are not in dispute, and leaves a visible item that somebody will resolve in the first week of the next month — by which point the roster, the job log and a colleague’s memory are all still available.
Next: what a closed week actually produces, and the one report worth reading.
All posts