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 starts recording lightweight location updates in the background - no manual clock-in required. It registers the current state (typically: at shop) and begins watching for job-site and shop arrivals and departures.

02

GPS detects a geofence boundary crossing

As the technician moves, the app samples location at low frequency - about once a minute, at battery-friendly balanced accuracy - and Punchless checks each point against your registered job-site and shop boundaries. Crossing one is recorded as an arrival or departure. It's not the high-precision, every-second GPS stream that drains batteries - just enough to timestamp who was where, and when.

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 linger at an unregistered location before it's flagged as an unknown stop. Set by your Tracking sensitivity in Settings - roughly 20 min (strict) to 45 min (passive).

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.