How a timesheet gets compared
None of these five checks is interesting on its own. Any of them could be done by a careful person with the roster open, and that is precisely the point — they are exactly the checks nobody does, on every sheet, every week, because doing them properly is twenty minutes of tedium per person. What matters is which of them the submitter can settle and which of them require somebody with authority.
Key takeaways
- Five checks: missing day, unmatched job, break rule, day length, overtime threshold.
- Three are closable by the submitter. Two need a manager, because they cost money or carry risk.
- Every check reads a rule from the sheet, so changing a threshold is an edit, not a deploy.
- A day past the maximum is always a manager question, even when the person confirms it.
- The comparer never edits. Its entire output is a state and a list of questions.
The five checks
- App integration
- Machine learning
- Management
- Analytics
- People
Missing days
The roster says who was expected. A rostered day with no row is the single most common finding and the single easiest to fix, provided you ask on Friday. It is also the check most likely to be wrong, because people swap shifts and the roster is often a week behind reality. So it is phrased as a question and never as a correction: “Thursday is blank and the roster had you on — hours, or were you off?”
Unmatched jobs
Every day with hours should point at something: a job, a site, a cost code, or an explicit reason like training or holiday. This is the check that pays for the system in businesses that bill time, because an unmatched day is an hour that was worked and will never be invoiced. The pick list comes from the jobs that actually ran that day, which is usually three or four options rather than a search.
Breaks, and why they are a rule and not a policy
The break rule is somewhere between a legal obligation and a house rule depending on where you are, and it changes. It lives in the sheet as two numbers — after how many hours, and how long — and the check is a subtraction. Getting it wrong is not a rounding error; in several jurisdictions it is a fine, which is why it is worth checking on every day of every sheet rather than on the ones somebody happens to look at.
The two that need authority
The split between what the submitter can close and what a manager must see is the most consequential decision in this design, and it is not about trust.
A missing Thursday, an unmatched job and a short break are all questions about what happened. The person who was there knows, nobody else does, and their answer is the correct one. Routing those to a manager adds a day of delay and produces a worse answer, because the manager will just ask them.
A fourteen-hour day and an undeclared overtime week are different in kind. The person confirming “yes, I worked fourteen hours” does not settle anything — it confirms the number and raises the actual question, which is whether that should have happened and who is paying for it. Those two carry a cost or a liability, so they need somebody who can accept one.
What the comparer never does
- It never edits an hour. Its entire output is a sheet state and a list of questions.
- It never applies a rounding rule silently. If your rules tab rounds to the nearest quarter hour, the rounded and unrounded values are both stored and both visible.
- It never compares one person’s week with another’s. A long week is a fact about a week, not evidence about a person.
- It never treats a roster mismatch as an error. Shifts get swapped constantly and the roster is usually the thing that is out of date.
Next: what the question to the submitter looks like, and how a week gets closed.
All posts