He marked attendance every day and the report missed him
A depot report showed nothing for an employee with 404 attendance records. A join that dropped anyone without a depot entry hid his whole history.
A depot manager tells you one of his field staff marks attendance every day, and the depot attendance report does not show him. The employee says he has been using the app properly. The manager says the report must be wrong.
Neither of them was wrong, exactly. All 404 of his attendance records had been invisible to the depot report for his entire history. The report had never been able to see him at all.
What was actually going on
The ordering app Aries Agro runs for its field staff holds attendance on the employee. The depot report does not look there for the depot. It finds which depot a person belongs to only through a separate list that pairs staff with depots, and it leaves out anyone who is not on that list.
This man was not on it. An administrator had added him that same morning, which is exactly why the client said the data was “visible until 19 August”: that was simply all the data he had, appearing for the first time.
The reason he vanished is a classic database trap. The report asked for every person’s attendance and optionally their depot, which would have kept him in. It then filtered on the depot, and a filter on the optional side quietly turns “optionally” into “required”.
We then checked the second half of the complaint and proved from 355,866 audit events that the app had never tried to start a shift for him after 19 August. He had been signed out for a few days and had not tapped Start Shift again. Both causes were real and independent.
How big it was
Our first estimate was alarming: 312 active employees had no depot entry. Measured properly, only one of them had ever marked attendance. The real exposure was one or two field staff, not 312. We corrected our own figure before giving it to the client.
What we changed
No code changed on this item. We wrote a reusable read-only diagnostic that identifies the employee, proves attendance exists, replays the report’s logic for each depot, and counts how many staff are hidden the same way.
What it did not fix
The report still drops anyone without a depot entry, and it does so silently. We also found that the depot column on attendance records is never filled in, so it cannot serve as a fallback. A depot entry is created for a new employee only if somebody picks a depot. And when an employee record is edited, the old depot pairing is deleted outright, with no trail of who did it.
The pattern, for anyone reading attendance by depot
If a report finds people through a list, ask what it does with someone who is not on the list. A quiet omission looks identical to “no data”.
Then check your own blast radius before you alarm anybody. The number that matters is how many people were affected, and ours fell from 312 to one or two.
Where this ends up
Sazinga Field reports attendance by depot and team, and this case is a reminder that a report is only as complete as the list it finds people through.