A timesheet arrives with hours on it. Some of those hours are worth a second look and most of them are not, and the whole job of this part of ONYX1 is telling the two apart without deciding anything on your behalf.
There are 23 rules. Each one reads the shifts on a sheet and, when it matches, writes a plain-English sentence onto that sheet for whoever approves it.
Flag or note, and why the difference matters
Every rule lands in one of two tiers, and the test that sorts them is the same one every time: would a person who did everything right trigger this rule? If the answer is yes, it is a note.
- A FLAG takes the sheet out of the bulk-approve button. It is ONYX1 saying open this one and read a sentence, which is not the same as saying anything is wrong.
- A NOTE is shown on the sheet in place. It is never counted against anybody and it never holds an approval up.
- One rule, the long shift, goes either way depending on how the shift closed rather than how long it ran.
- Two rules compare a person against the rest of their crew. They are shown on the sheet, but they never keep it out of bulk approve, because one flat battery should not park a clean colleague's pay.
Applying that test honestly demoted four rules an earlier draft had as blocking flags: a properly clocked long shift, a worker's own hand-entered line, a late edit that reduces hours, and a shift crossing midnight.
None of them decide what anyone is paid
No rule docks an hour, rounds a shift down, or refuses an approval. ONYX1 reads the data and writes a sentence; the owner or admin reads the sentence and makes the call. Every decision records who made it and when.
The shift itself
How it started, how it ended, and whether it can be true as recorded.
- Never clocked out (Flag). "The system closed this shift. Nobody watched it end, so the finish time is a guess."
- Closed by a colleague (Flag). "A colleague closed this shift: “battery went flat on site”"
- Closed by the prompt (Flag). "Closed by answering the still-on-site prompt, so the finish was supplied after the fact."
- A long shift (Flag or note). "One shift of 13.4h that nobody ended. This is the runaway shape." A properly clocked long shift is a note instead: 13.4h, clocked in and out.
- Ran past midnight (Note). "This shift ran past midnight. It bills to the day it started."
- Break longer than the shift (Flag). "The recorded break is as long as the shift, so the hours cannot be right."
- Two shifts overlap (Flag). "This shift overlaps another one, so the same minutes are counted twice."
Where the shift started
The geofence measures the clock-in against the job's site pin.
- Clocked in away from the site (Flag). "Clocked in about 4.2 km from the site."
Who wrote the line
A hand-entered line is not wrong. Who typed it is worth knowing.
- Hand-entered by the worker (Note). "Hand-entered by the worker on their own timesheet."
- Hand-entered by the office (Flag). "Hand-entered onto this timesheet by somebody else."
- Not on a job, no reason (Flag). "Not on a job, and no reason given, so it cannot be costed."
- Not on a job, reason given (Note). "Not on a job: yard and vehicle maintenance."
- Entered for an earlier day (Flag). "Entered later for work done on 14 August."
What changed afterwards
Measured from when the hours changed, not from when the row was last touched.
- Hours went up late (Flag). "Changed more than a day later, and the hours went up from 7.5h to 9.0h."
- Hours went down late (Note). "Corrected later, and the hours went down from 9.0h to 7.5h."
The shape of the day
Patterns across a day or a period. All notes: none is evidence on its own.
- A long day (Note). "10.5h across the day, every shift clocked in and out."
- Split across jobs (Note). "4 separate shifts, moving between jobs."
- Break counted twice (Note). "Clocked out during the day and also recorded a break, so the break may be counted twice."
- Above their normal (Note). "48.0h this period, against a usual 40.0h."
What the rest of the crew did
The only rules triggered by somebody else's data.
- Nothing recorded, crew working (Flag). "The crew recorded hours on this job that day and this person recorded none anywhere."
- Assigned, hours went elsewhere (Note). "Assigned to this job, but the day's hours went to another one."
- The crew's times split (Crew comparison). "The crew's times on this job split: 8.0h vs 9.5h vs 6.0h. Nobody is clearly the odd one out."
- One person against the crew (Crew comparison). "6.0h on this job against the crew's 9.0h."
What happens after a flag
Open the sheet and you can record the reason in place. “Clocked in at the yard, drove out after” is a legitimate answer, and once it is recorded the flag clears and nobody is asked about it again.
At the moment of approval the exceptions are frozen against the decision, so a job renamed next month cannot make a new flag appear on a sheet that was signed off in August. The record does not drift after the fact.
Keep reading
- Your first week on ONYX1What to set up on day one, what to leave until later, and how to get the crew running real jobs without a training day.
- Connect Claude or ChatGPT to your businessA two-minute setup, what your AI can and cannot do once connected, and why that boundary is enforced in the database.