Technical walkthrough

How Punchless builds a timecard.

From the moment a technician crosses a geofence boundary to the moment a manager clicks Approve - here's exactly what happens inside the system.

01

Technician opens the app and starts their shift

The Punchless mobile app activates geofence monitoring in the background. No manual clock-in required. The app registers the current state (typically: at shop) and begins listening for boundary crossings.

02

GPS detects a geofence boundary crossing

When the device enters or exits a registered job site or shop radius, the OS delivers a geofence event to the app. This is not continuous GPS polling - the phone's native geofencing API handles detection efficiently with minimal battery impact.

03

The state machine classifies the event

Each geofence event updates the technician's work state: Shop → In transit → On site → In transit → Shop (or next job). Stops outside registered locations that exceed your dwell threshold are classified as Unknown and flagged.

04

A draft timecard entry is generated

At the end of the shift (or at configurable intervals), the engine assembles all state transitions into a structured timecard: job reference, site name, clock-in time, clock-out time, and duration. The draft appears in the manager dashboard immediately.

05

Manager reviews and approves

Managers see every draft entry with its supporting GPS events. They can approve as-is, edit times or job references, add notes, or flag for follow-up. Approved entries flow directly into your payroll export.

06

Export to payroll

Approved timecards export as CSV in a format compatible with QuickBooks, ADP, Gusto, Paychex, or any payroll software that accepts standard CSV imports. Export by pay period, technician, or job.

The four work states

Every technician is always in one of four states. The engine transitions between them based on geofence events and dwell time.

At shop

Technician is within the shop geofence. Not billable time - tracked for schedule and attendance purposes.

In transit

Technician is moving between locations. Drive time is logged and can be included in payroll exports based on your policy.

On site

Technician is within a job site geofence. Billable time clock is running. Timecard entry is being built.

Unknown stop

Technician has stopped for longer than your configured threshold at a location that isn't a registered job site or shop. Flagged for manager review.

Configuring geofences

Admins create job sites in the dashboard and set a geofence radius (default: 150 metres). When a job site is registered, the geofence goes live immediately - technicians don't need to do anything.

Radius

Set per job site. Default 150 m. Increase for large sites (warehouses, construction yards). Decrease for dense urban locations.

Dwell threshold

How long a technician must be at an unknown location before it's flagged. Default: 10 minutes. Configurable per account.

Shop geofence

One shop location per account (additional shops available on Partner plan). Used to determine shift start/end and calculate total on-road time.

See it run on your own jobs.

Start a free 30-day trial. Your workspace comes pre-configured — just add your job sites and invite your crew.