Geofenced punch-in
Verified at the job site.
iOS checks the device is within the job-site radius before the shift counts. Per-site, owner-toggled, server-validated. No more punching from the parking lot.
Trust the punch.
Punch is a geofencing time clock for small field teams: the simplest version of an honest answer to a real question — how do you know your team was at the job site when they punched in? You set a radius around each site — measured in meters, configured per-site — and iOS checks the device’s GPS coordinates against that radius at the moment of punch-in. If it’s inside, the punch is accepted. If it’s outside, the punch is rejected with an explanation.
The check runs on the server, not the client. A trigger on the time_entries table validates the coordinates against the assigned job_site row using a haversine distance calculation. The client can’t lie about the distance; only the GPS chip can lie about the coordinates, and iOS makes that hard. The lat / lng of every punch-in is recorded alongside the timestamp so you can audit any shift that looks suspicious months later.
Geofencing is a per-org toggle. When you create your org you decide whether iOS punches need to verify; you can flip it later from Account → Organization. The companion toggle “Allow web punch-in” gates web punches independently — disable it if you want strict iOS-only enforcement, leave it on if you trust web punches for office staff. Both flags are owner-set; neither is hidden in a sub-menu.
What geofencing does.
Per-site radius
Configure the radius (in meters) for each job site. Tight for office buildings, loose for construction zones. No global one-size-fits.
Server-validated
Distance check runs in the database trigger, not the client. The phone can't lie about the math; only the GPS chip can lie about the coordinates.
iOS-only enforcement
GPS comes from the device's hardware, gated by iOS permissions. Web doesn't enforce — browser geolocation is too unreliable to trust.
Owner toggle
On or off per-org. Off = punches accepted without a location check. The setting lives in Account → Organization, not buried in a developer menu.
Audit on every punch
lat / lng stored on the time_entries row. Visible to owners and managers; never shown to other employees. Recorded only at punch-in, not continuously.
Pairs with web-punch toggle
A separate Allow web punch-in switch lets owners disable web entirely — the strictest setting for teams who only ever punch from the field.
Where geofencing pays off.
Multi-site contractors
Three job sites, three radii. An employee at site A can't punch into site B by accident — the assigned site's radius keeps it honest.
Cleaning crews
When the work is at a customer's home, the radius confirms the punch-in happened on the doorstep, not in the truck a block away.
Restaurant / retail
Tight radius around the storefront. Catches the 'punched in from the bus' problem before it reaches Friday's payroll.
FAQ
Questions, answered.
- How does the geofence check work?
- When an iOS employee taps Punch in, the device sends its current GPS coordinates with the request. A server-side trigger checks whether the lat / lng falls within the configured radius of the assigned job site. If it does, the punch is accepted; if it doesn't, the punch is rejected and the employee sees an error explaining why.
- What's the radius?
- Set per-job-site, defaulted at the org level. Typical values are 50-200 meters for office buildings, 200-500 meters for construction zones, and bigger for sprawling sites. There's no minimum or maximum — pick whatever matches the site's footprint and how forgiving you want to be on GPS jitter.
- What about web punches?
- Web punches don't get distance-checked. Browser geolocation is unreliable on desktop, easy to spoof through developer tools, and confusing to enable for a one-off office user. We don't pretend to enforce geofencing where we can't enforce it. Owners who want strict rules can disable web punching entirely with a toggle in the org settings.
- Is the location stored anywhere?
- The lat/lng of the punch-in event is recorded on the time-entry row alongside the timestamp. It's only visible to owners and managers of that org, and only to verify the geofence at audit time. We don't track location continuously or in the background — only the moment of punch-in.
- Can I turn geofencing off entirely?
- Yes. Owners toggle it on or off from Account → Organization. When off, employees can punch in without a location check (still on iOS or web). The web-punch-in toggle is a separate switch — you can enforce iOS while disabling web, or allow both, or require iOS-only with geofencing on.
Keep going.
Shift Approval Software for Small Businesses
Review punch times, lunch, payout, and employee notes in one queue. Approve in one tap or reject with a reason that lands in the employee's inbox.
Learn moreEmployee Time Tracking Dashboard for Owners
See pending approvals, who's on shift, hours this week, and team size in one place. A real-time team dashboard built for small field teams.
Learn more
Set up in a minute.
Create an org. Share the join code. Your team punches in today.