Most fleet tracking lives in a separate tab that nobody opens after the first month. TradesWork treats the truck's position as part of the job: it tells the dispatcher who's closest, tells the timesheet when the tech really arrived, and tells the customer when to put the dog away. The same positions feed all of it, and the same privacy rules apply everywhere.
Where positions come from
Two sources, one format. Everything above them doesn't care which one a position came from.
A plug-in tracker. OBD trackers hold their own connections in their own protocols, so they report to a gateway first. TradesWork reads from flespi, which says it handles more than 1,000 device types.1 You create a stream in flespi pointing at your TradesWork ingest link, protected by a long random token you can rotate in Settings. Batches of up to 1,000 points are accepted, and repeats are ignored.
The technician's phone. While the field app is open, the tech has accepted the current notice, isn't paused and is on shift (or on the way to or working a job), the phone records about one point a minute, buffers them, and sends them in batches. Background tracking, with the app closed, is opt-in three times over: the company turns it on, the build of the app supports it, and the tech agrees after an in-app explanation that comes before the phone's own "Always" prompt.
Google Play, for example, requires that kind of prominent in-app disclosure before the location permission prompt, plus a declaration form and a short demo video.2
The live map and the board
Each vehicle shows one of four statuses: Moving (5 km/h or faster), Idling (ignition on, not moving), Parked, or Offline (no position in 30 minutes). The side panel lists each technician with their last update time and current job.
Dispatchers with fleet access can turn on Trucks now on the dispatch board to see positions next to the schedule. Off-duty positions are never shown there, and positions older than 12 hours are left out. When the dispatcher asks for the best tech for a job, live truck positions under 30 minutes old are used as the starting point for drive time.
Route playback
Pick a vehicle and a day. Playback splits the day into trips (start, end, distance, duration, idle time) and matches each stop to a job, the shop or a supply house you've fenced. Stops that match nothing are labelled unmatched, which is where side trips and long lunches show up. A day summary sits on top.
Playback is built only from positions the office is allowed to see, so an off-duty evening doesn't appear as a trip.
Geofence arrivals
Every job address with a geocode is a fence automatically. You set the radius (50 to 1,000 m, 150 m by default) and the dwell time (30 seconds to 10 minutes, 60 seconds by default). Add fences for the shop, supply houses and other zones so those stops are recognized too.
| Setting | What happens when GPS sees an arrival |
|---|---|
| Log only | Recorded in the arrival log; the appointment doesn't change |
| Ask the tech to confirm (default) | One-tap prompt in the app; confirming uses the GPS arrival time, not the tap time |
| Mark Working automatically | Applies only after the tech tapped On my way; otherwise they're asked |
Arrival is the first point inside the fence, confirmed after the dwell time or an ignition-off inside. Departure needs the truck clearly outside (one and a half times the radius, at least 75 m beyond it) for two minutes, so GPS jitter at the curb isn't a departure. Fixes less accurate than 250 m are ignored. On departure, the app can suggest "Finish up?", but it never closes a job by itself, because the outcome, summary and required forms still apply.
The Arrivals page lists the day's arrival log and the exceptions: no GPS arrival, no geofence (with an Add a fence button), not confirmed, tech disagreed, and time mismatch.
GPS-verified timesheets
Timesheets in TradesWork are built from status taps. Fleet adds a check: each on-job segment is compared with the geofence visit for that appointment. Within the threshold (15 minutes by default, adjustable from 5 to 120) it's verified. Outside it, you get a flag: arrival time, departure time, or never at the site when positions exist but none reached the fence. No positions means no data, not a flag.
Flags show on the person's week with a map link to that day's playback, and as a count per person on the timesheets overview, right above the payroll export. The office applies the GPS time, which is recorded as a normal audited edit with the reason filled in, or keeps the status time. Both choices are recorded.
The customer's live ETA
When the tech taps On my way, the customer's job link can show a live ETA, refreshed every 30 seconds. The rules are strict on purpose:
- Only while the appointment is en route, and for at most four hours after On my way.
- Only from a position less than 10 minutes old.
- One point, snapped to a grid of about 250 m. Never an exact spot, never a trail.
- "Arriving" once the geofence sees the tech, then nothing.
The page shows the tech's first name, a photo and a short bio (up to 280 characters) the tech sets in the app. The ETA comes from a routing provider such as openrouteservice when connected,3 or a straight-line estimate shown as rough. It's a company setting, and the page works as text if map tiles aren't configured.
Privacy and notice
Tracking people is a trust question before it's a software question. TradesWork ships a plain-language notice that says what's collected, when, who sees it, that positions are never sold or used to train AI, and when they're deleted. Each tech accepts it in the app, can pause tracking, and can withdraw phone tracking at any time. Owners can edit the notice.
Notice laws vary by state. New York and Delaware, for example, require written notice before an employer monitors employees' phone, email or internet use.45 Other states have their own rules for vehicle and location tracking. Treat the built-in notice as a starting point and have it reviewed for the states you work in, especially before turning on background tracking.
What fleet doesn't do yet
ServiceTitan's Fleet Pro page lists automatic service alerts, forward-facing and dual-facing AI dashcams, and asset tracking as a separate add-on.6 TradesWork has none of those today. Maintenance from mileage and fault codes, driver scorecards, and theft and tamper alerts are planned, not shipped. If dashcams or engine diagnostics are the reason you want fleet tracking, a dedicated telematics product is the better fit today.
Footnotes
-
flespi, telematics backend (home page). https://flespi.com/ ↩
-
Google Play Console Help, "Access to device location in the background." https://support.google.com/googleplay/android-developer/answer/9799150 ↩
-
openrouteservice, routing and directions API. https://openrouteservice.org/ ↩
-
New York Civil Rights Law §52-c. https://www.nysenate.gov/legislation/laws/CVR/52-C*2 ↩
-
Delaware Code, Title 19, §705. https://delcode.delaware.gov/title19/c007/sc01/index.html ↩
-
ServiceTitan, Fleet Pro product page. https://www.servicetitan.com/features/pro/fleet ↩
