[ HR_OPERATIONS ]

Geofenced Attendance System

2026Learning, Hiring & HRCapability

What it is

Staff clock in from their phone, but only when they are actually at the office.

Client work is shown without identifying imagery

[ THE_PROBLEM ]

Why this existed

Biometric attendance machines cost money per site and break. Honour-system spreadsheets do not survive contact with shift work across multiple locations.

[ WHAT_WE_BUILT ]

What we built

A punch form that reads browser GPS and validates the distance to a stored office location by Haversine calculation against a configurable radius, with an admin panel to set the geofence coordinates and radius and export attendance to CSV.

  • Punch form reading browser GPS
  • Haversine distance validation against a stored office location
  • Configurable geofence radius per site
  • Admin panel to set coordinates and radius
  • CSV export of attendance for payroll

[ HOW_IT_IS_USED ]

How a company uses it

A business with field or shift staff replaces a biometric machine and a spreadsheet. Site managers set the geofence per location; payroll exports the CSV.

Built with

ViteReactExpressNeon Postgres

[ COMMON_QUESTIONS ]

Questions clients ask

How accurate is browser GPS for this?

Accurate to tens of metres in the open, worse indoors and in dense urban areas. That is why the radius is configurable — set it too tight and legitimate staff cannot clock in. It is a deterrent against clocking in from home, not a precision instrument.

Can it be spoofed?

Location can be spoofed by a determined user with the right tools. This raises the effort well above "clock in from bed", which is the realistic threat. If you need certainty, you need hardware.

What about staff without smartphones?

They need a fallback — a supervisor-marked entry or a shared device at the site. Any attendance system that assumes universal smartphone access will exclude someone, and that gap should be designed for rather than discovered.

Is this close to your problem?

Most engagements start with a version of something on this page. Tell us what is different about yours and we will tell you what it changes.

Start a conversation