GPStrix

Why GPS punches drift inside warehouses, and why GPStrix flags them rather than blocking them.

An attendance punch made under a tin roof can land a few hundred metres from where the person is standing. Refusing it punishes the wrong person. Here is what goes wrong, and what we do instead.

Geo-attendance is simple in principle. The site has a geofence. When someone punches in, the phone's location is checked against it. Inside means present at the site; outside means somewhere else.

It works well in the open. It works badly in the places a lot of field and warehouse staff actually start their day: godowns, cold stores, workshops under a steel roof, basements, the back rooms of shops.

What happens to a phone's location indoors

Satellite signals are weak by the time they reach the ground. A roof, especially a metal one, cuts them further, and walls and racking reflect what is left. Three things follow, and they make each other worse:

  • Fewer satellites. The phone cannot see enough of them to fix a position, so it falls back to Wi-Fi and mobile-tower positioning. In a city that can be good to tens of metres. On an industrial estate with one tower, it can be off by hundreds.
  • Reflections. A signal that bounces off a wall or a lorry arrives late, and the phone computes a position as if it had travelled further. The result can be confidently wrong, often towards open ground or a neighbouring street.
  • Old fixes. A phone that has just walked in from outside may still be holding its last good position, or may take a minute to settle on a new one. The first location an app asks for is not always the best one the phone will produce.

Phones do report an accuracy figure with each location, a radius in metres within which the true position probably lies. GPStrix Field stores it with every punch. Indoors that figure grows, but it is an estimate too. A reflected fix can report a small radius around the wrong place.

Why refusing the punch is the wrong answer

The obvious design is to refuse a punch from outside the geofence. It feels strict. In practice, it means the storekeeper who arrived at 08:55 and pressed the button inside the godown has no record at all of having turned up. Their supervisor sees an absence. The storekeeper says they were there. Neither can prove anything, because the one piece of evidence was thrown away at the moment it was created.

So in GPStrix a punch outside the geofence is stored, flagged and never refused. The punch keeps everything it arrived with, and the supervisor sees all of it together:

Where
The location and its accuracy figure, as the phone reported them.
How far out
The distance from the geofence boundary, worked out once when the punch arrives, against the geofence the shift used that day. A geofence redrawn next month does not change last month's verdicts.
When
The time the button was pressed, and how that time was established (see below).
The photo
If your attendance setup asks for one.

A punch 40 metres outside the fence, with a 300-metre accuracy figure, a clear photo of the godown door and a time that matches the gate log is a punch from someone who was there. A punch 6 kilometres away with a 10-metre accuracy is a different conversation. Both deserve a person's judgement, and neither is helped by a system that deleted the evidence.

One more distinction is kept on purpose. If a geofence cannot be read, because its shape was saved wrongly, the verdict is "could not tell", not "outside". A supervisor must never see "we do not know" presented as "they were not there".

An agent whose punch is refused has no record at all of having turned up, and the dispute is then unwinnable in both directions.

From the design notes behind GPStrix's attendance code

The time matters as much as the place

Warehouses are also where phones lose signal. A punch made at 09:00 in a basement might not reach the server until 14:00. If the server simply used the time it received it, a punctual person would be marked five hours late.

GPStrix Field saves the punch on the phone first and sends it when it can. To work out when the button was pressed, it does not trust the phone's clock, which anyone can change in Settings. It uses the phone's uptime counter, which counts from when the phone was switched on and cannot be set by the user: the server takes the moment it received the punch and subtracts the time that passed on that counter between the press and the upload. If the phone restarted in between, that calculation is not possible, so the punch falls back to the phone's clock corrected for its measured error, and says so. Each punch carries a label for how its time was established, and the register shows the weakest one on each day.

The same principle applies: nothing is rejected because the clock looks odd. A punch with an implausible time is still a punch someone made. It is flagged, and a person decides.

Vehicles are treated differently, and for a reason

For vehicle trackers GPStrix does the opposite. A position that reports an accuracy worse than 100 metres is dropped before it reaches the map, and counted under its own reason, so a tracker whose fixes are suddenly all poor shows up as failing hardware.

The difference is what one record means. A tracker sends hundreds of positions a day, and one bad one is replaced by the next a few seconds later; plotting it would only draw a spike on the route. A punch is a single event about someone's pay. It cannot be replaced by the next one, so it is kept and judged.

Getting fewer flags in the first place

  • Draw the geofence around the whole site, including the yard, the gate and the parking, not just the outline of the building. People punch where they stand, and they often stand at the gate.
  • Look at a fortnight of flagged punches before tightening anything. If one site's punches are always 50 to 150 metres out in the same direction, the fence is in the wrong place, not the staff.
  • Ask staff to open the app before they walk inside. A phone that already has a good fix outdoors gives a better first location than one asked cold under a roof.
  • Leave the phone's location mode on high accuracy. Battery-saving modes often switch satellite positioning off and rely on towers alone.
  • Use the photo where it matters. At sites with poor signal, a photo of the entrance settles most disputes in seconds.

The goal is not a system that never flags anything. It is one where every flag is worth a supervisor's minute, and every person who turned up has the record to prove it.

Running attendance across several sites?

Tell us how many people and where they start the day. We will show you the register with flagged punches before you roll anything out.

Talk to us

Already a customer? Sign in to the console.