Your day lives on the Route tab
Open the technician mobile app (iOS and Android) and the Route tab shows your route for the day. Your day is a route session: tap Start Route to begin (with an optional odometer reading), run your stops with GPS navigation and job checklists, pause when you take a break, and tap Finish when you're done. Time and mileage are tracked across the session — the header shows "Route Active" with your elapsed time and stop progress all day.
The app works offline and syncs when you're back online. Some features need the server — those are called out below, and their buttons dim with a "Requires internet connection" note when your phone is offline.
The Routes tab — the whole team's day at a glance
The Routes tab is a date-first overview of the whole team's day. A date selector sits at the top: tap the ‹ › arrows to step one day at a time, or tap the date to open a calendar and jump to any day. Below it, every technician with a route scheduled that day gets a card, and the cards are grouped by status — in progress first, then not-yet-started, then finished.
Each card leads with the technician's name and a status tag — In progress, Scheduled, or Completed — and shows different details for each:
- In progress — the next stop, a stops-done bar (e.g. "4 of 9 stops"), how long it's been running and when it started, the estimated finish (which now includes the drive back to the route's end location), and miles so far / miles to go. When the technician's phone has reported a GPS location in the last 10 minutes, the estimated finish and miles-to-go are measured from where they actually are — the drive to the next stop uses their live position, so a tech mid-drive shows a shorter leg than the plan. Without a fresh location, both fall back to the planned route. Skipped stops are shown separately (e.g. "· 1 skipped") and leave the stop count and the estimates entirely — the estimated finish, miles to go, and expected figures reflect only the stops still being run.
- Scheduled (not started) — the stop count, the first stop, the planned start → estimated finish with expected length, and the expected miles.
- Completed — stops done (and any skipped), the actual time frame and duration, and miles driven — each shown next to the expected figure (e.g. "6h 41m (est ~6h 10m)", "56.3 mi driven (est ~52 mi)") so you can see how the day compared to plan.
- Tap a card to open that route's day — your own or a teammate's (view-only for theirs) — with the full stop list, per-stop arrival estimates, and the day tools described below.
- Map button (on each card) opens the route on a map: the planned path for an upcoming day, and once a route is running or finished, the actual route the technician drove (GPS breadcrumb trail) with the stops — the same actual-vs-planned view the web dashboard shows.
Everyone can browse every technician's routes and maps here, on any date. The list, stop counts, next stop, actual times and miles-driven work offline once you've opened that day; the estimates (estimated finish, miles-to-go, expected figures) and the map need a connection. Editing another tech's day still needs the "Edit routes" permission.
Start your route
Before you start, the Route tab shows a "Today's Route" summary card: expected start time, stop count, total time at stops, total expected drive time, total miles, and the combined Total Route Time — plus a preview of your first stop and any custom stops pinned to the day.
- 1Tap Start Route. (The button needs location permission — a red "Location Access Required" banner with an Open Settings button appears if the app doesn't have it.)
- 2The Odometer Reading modal opens: enter your Odometer (miles), optionally snap a photo of the odometer (Camera or Gallery), and pick your Vehicle — the list marks your default, and admins can add a vehicle right here.
- 3Tap Start Route to confirm, or Skip to start without a reading (it asks you to confirm the skip). If the number you type is lower than the vehicle's last known reading, a warning shows so you can double-check.
The odometer is optional but worth the five seconds — it feeds mileage tracking, payroll mileage, and per-route profitability. Admins can review odometer photos on the web.
Pause, finish, and reopen the route
- While running, the header shows "Route Active" with elapsed time and "X of Y stops completed". Tap Pause for lunch or a personal errand — the clock stops and the header switches to "Route Paused" — then Resume to continue.
- An Optimize pill in the top-right corner of the "Route Active" header optimizes your remaining stops from your current location. An Optimize Remaining Stops sheet explains what will happen before anything moves: your current GPS position becomes the new starting point, only the remaining stops are reordered into the shortest drive, completed and skipped stops stay put, and the route still ends at its configured end location (or your home address). Confirm with Optimize Route or cancel. The pill only appears while the route is running with at least 2 remaining stops.
- Tap Finish when you're done. If every stop is handled, you go straight to the end-of-day Odometer Reading modal (reading + optional photo, or Skip) and the route completes.
If stops remain, a Finish Route sheet asks what to do with them:
- Move to Another Day — "Reschedule remaining stops to a different day." Pick which of the remaining jobs (all pre-selected, with Select All/Deselect All), choose a date from the next two weeks, and tap Move & Finish Route.
- Transfer to Another Tech — admins and owners only: "Assign remaining stops to a different technician." Pick the jobs, the technician, and optionally a date (defaults to "Same day (today)"), then Transfer & Finish Route.
- Skip & Finish — "Skip remaining stops and end the route." The leftover stops are marked skipped.
Unplanned (ad-hoc) stops can't be moved or transferred from this sheet — the sheet notes "Ad-hoc stops cannot be transferred and will be skipped." Move and transfer also need an internet connection; offline, only Skip & Finish is available.
Finished too early? The completed-route screen has a Reopen Route button ("Reopen to add more stops or jobs") — confirm, and the route is running again so you can add and complete more stops today.
Forgot to tap Finish? No problem — a route left running is closed out automatically overnight. If you completed at least one stop, it's marked Completed as of your last stop (not midnight), any stops you didn't reach are skipped, and no alert goes out. If you completed no stops at all, it's marked Abandoned and your office is notified. Either way, still tap Finish when you can — it records your ending odometer and keeps your times accurate.
The actions list
Everything you can start from the field lives in the Actions list at the bottom of the Route tab, grouped under headings:
- This Route — Create Route, Add Existing Job (schedule an existing job onto a chosen day, with a live preview of that day's route; picking a different technician needs the "Edit routes" permission, and creating a route for a day that has none needs "Create routes"), Add Unplanned Stop, Unplanned Stops, Log Trip / End Trip.
- Customers — search the company directory (needs the Browse customer directory permission; built-in technicians do not have it). See add and manage customers.
- Sales — Leads, Create Quote. See invoices and leads on mobile.
- Billing — Invoices, Create Invoice.
- Create — Work Order, Maintenance Job, Customer, Service Location, Body of Water, Add Vehicle.
- Issues — Report an Issue, Technician Alerts.
Each row is permission-gated, and a heading only appears when at least one of its rows does — so a plain technician sees a much shorter list than an owner. Rows that need the server (creating things, Leads, Invoices) dim and say "Requires internet connection" when the phone is offline. Customers stays available offline — it opens the saved on-device directory.
Reorder your stops
- 1Open the Stops tab. Remaining stops are numbered, and each card has a drag handle (⠿) on its right edge.
- 2Press and drag the handle to reorder. This works before the route is started, while it's running, and on future dates (select "Upcoming" and pick a date) — the route does not need to be started first.
- 3A drag done before the route starts (or on a future date) saves that day's custom order, which the route picks up when it's started.
- Future routes can also be reordered from the Routes tab: pick the date, tap a technician's route card to open its day, then drag stops by the handle. Drag handles only appear there for days that haven't been started yet — for a running route, reorder from the Stops tab instead.
- Make Next on a stop card jumps that stop to the front of the remaining order (only while the route is running); Skip opens the Skip Stop sheet — skip it for today or move it to another day (see "Skip a stop" below).
- Optimize (top right of the list) reorders stops by drive time using Google Maps, after a confirmation sheet spells out exactly what will happen. While the route is running it reorders only the remaining stops, starting from your current GPS location; before the route starts it reorders the whole day from the route's starting point. The same mid-route optimize is also available from the Optimize pill on the Route tab's "Route Active" header.
- Completed and skipped stops appear below under Done and can't be reordered; the View button on any card opens its details.
Skip a stop — or push it to another day
Tapping Skip on a scheduled stop (Route tab or Stops tab, while the route is running) opens a Skip Stop sheet with three choices:
- Skip & Do Tomorrow — one tap moves the stop onto your own route tomorrow. If you don't have a route that day, one is created for the day.
- Skip & Pick Another Day — choose any day in the next two weeks instead.
- Just Skip — skip it for today without rescheduling (this is the only option that works offline).
Choosing Just Skip asks "Why are you skipping?" — tap a quick reason (Customer not home, Gate locked, Dog in yard, Weather, Ran out of time) or type your own, then confirm with Skip Stop. The reason is optional, but it travels with the stop: it shows on the skipped stop card in the app, on the route views in the web dashboard, and in the "Job Skipped" notification your office receives.
Every technician can do this for their own stops — no admin permission needed, because the stop stays on your own schedule. A rescheduled stop is marked as moved on today's route and appears on the chosen day, and it won't show up as a missed stop on the web dashboard.
- Changed your mind? Tap Unskip on the rescheduled stop — it comes back onto today's route and is removed from the day it was moved to, so the pool is never scheduled twice.
- Already scheduled that day? If the pool's regular schedule already puts it on the day you pick, the app tells you and nothing is moved — you can just skip today's visit instead.
Rescheduling needs an internet connection — offline, only Just Skip is available. Unplanned (ad-hoc) stops can't be rescheduled, only skipped. To hand a stop to a different technician instead, use the transfer tools below (admins and owners).
Catch up on missed stops
Stops that fell through anyway — skipped without a reschedule, left behind when a route auto-closed overnight, or on a route that never started — don't just disappear. When stops from yesterday went unserviced, the Route tab shows an amber "N stops were missed yesterday" banner: before you start your day and while a route is running (it stays out of the way on the Route Complete screen). Only yesterday counts: today's skips are handled by the skip and finish-route flows, and older misses deliberately don't pile up on the phone — anything further back is rescued from the web dashboard.
- 1Tap Reschedule on the banner to open the Reschedule Missed Stops sheet.
- 2The missed stops are listed grouped by day, all pre-selected — tap a row to deselect any.
- 3Under Move to, pick a day (Today, Tomorrow, or any day in the next two weeks).
- 4Tap Reschedule N stops to move them onto your route for that day.
Moving missed stops onto your own route needs no special permission. Users with the transfer permission also get an Assign to picker in the sheet to send the stops to a different technician instead. Rescheduling to Today while your route is running adds the stops straight onto the route in progress. Rescheduling needs an internet connection.
Not ready to deal with them? Tap the × on the banner to dismiss it — the dismissal is per phone, and the banner returns only if new stops go missed. Dismissing doesn't mark anything handled: admins still see the misses on the web dashboard.
Admins see the same misses on the web dashboard — an amber banner on any closed route day with unserviced stops. Rescuing a stop on either surface clears it from both. See reschedule missed stops.
Per-stop arrival times
Each remaining stop card on the Stops tab shows an estimated arrival-to-departure window, like "Est. 11:20 – 11:50 AM". It's chained from the route's start time, Google drive times between stops, and the expected time at each stop — based on the job's real service history when it has one, otherwise its configured minutes. The window replaces the old "{X} min" duration tag whenever an estimate is available, and reordering or optimizing changes the estimates.
Real service history kicks in once a job has 3 or more timed visits in the last 6 months. The estimate uses the typical (median) on-site time from those visits, ignoring obvious outliers — a visit completed in under 2 minutes (e.g. tapping Start and Complete back-to-back) or one wildly longer or shorter than that job's norm doesn't count. With 3–4 visits the history is blended with the job's configured minutes; at 5+ visits the real history takes over fully. Time on site is measured from Start Job to Complete, minus any paused time, and admin timing corrections on the Field Operations page are respected.
- Once the route is running, estimates re-anchor to reality: finishing a stop late (or early) shifts every remaining stop's estimate.
- The stop you're currently servicing shows "Arrived 9:14 AM"; completed stops show the actual window, like "9:14 – 9:41 AM".
- The Upcoming tab shows estimated arrival times for future dates the same way (that day's route start time plus drive times). The Routes tab does too: pick a date and tap a technician's route card to open its day — on today's route the cards also show live actuals, and remaining estimates re-anchor to your real progress.
- The Routes tab's day view — your own day or any teammate's — also shows a totals strip at the top (time at stops · drive time and miles · total day length), a per-stop drive chip ("12 min · 4.1 mi est"), the real minutes on site for completed stops, the reason a stop was skipped, and the location's access notes (gate codes and the like) on every stop card. A + button in the day header adds a job to that day (your own day always; another tech's needs "Edit routes").
- Admins see the same thing on the web: expand a live route card on the Field Operations page for each stop's estimated window (re-anchored to your actual progress), and every route's detail page under Route Schedule shows the same "Est." window per stop, switching to actual times once a stop is worked.
These are estimates for planning, not promised appointment windows. Estimates need an internet connection and a route with a start location (or your home address on file) — they don't show offline. Actual arrived/departed times always show.
Per-stop pause, the location check, and "On the Way" texts
- Each stop can be paused individually: while a stop is in progress its card shows Pause, and a paused stop shows a "Paused" badge plus a Resume button. You have to resume before the Service (complete) button comes back.
- When you resume a paused stop, the app checks your GPS position. If you're more than about 50 meters from the pool, it asks: "Not at Stop Location" — "You appear to be X away from the stop location…" — with Cancel and Continue Anyway. It's a guardrail, not a hard block.
- Stop cards can also show an On the Way button — tap it and the customer immediately gets a heads-up text; the button then reads SMS Sent. It only appears when on-the-way texts are on for that stop (the On the way switch on Communication → Phone → Automated texts, minus any per-customer exception from that customer's Texts pill, minus a job that was switched off with the On the way texts row on its job page on the web — that per-job switch can only turn a job off, not on), company SMS is on, and there's someone to text: the customer with a phone number and texting consent, and/or an on-site contact at the location with the Receive "on the way" texts toggle on (e.g. a tenant at a rental property) — see texting and on-site contacts.
- The app can also detect that you've left one stop and send a push — "Send On the Way?" — that opens a confirm screen: "Send an 'on the way' SMS to {customer}?" with a Send SMS button. Either way, only one on-the-way text goes out per customer per route (opted-in on-site contacts are texted in the same send).
Stops from other techs, and moving stops around
- Add to My Route — on the Stops tab, a stop that belongs to another technician's route shows this button. Confirming adds the job to your route for that day and marks it skipped on theirs — handy when you're covering a teammate's pool.
- Move to My Route — on the Routes tab's day view, any pending stop that isn't already on your route today (a teammate's stop, or your own on another day) shows this button. It asks "Just for today" (a one-day move onto today's route) or "Permanently" (the job joins your recurring route for today's weekday and leaves the old one). Just-for-today works for every technician; Permanently needs a route today, and — when the stop is on another tech's route — the "Edit routes" permission.
- Add back to today — if you moved one of your own stops to another day and change your mind, the transferred-out card shows this to reclaim it onto today.
- Transfer Stops sheet — open a route day on the Routes tab and tap the transfer icon in the header (available to admins on any route, and to you on your own). Pick stops and send them to Another Day; admins also get a technician tab to reassign them. Works on any day, not just today.
- Move Remaining Stops (N) — while a route is in progress, the same day view shows this button at the bottom, pre-scoped to just the stops that are left.
Only real jobs can be transferred — unplanned stops stay put. For the office-side view of all this, see transfer and move jobs.
What the badges on stop cards mean
- UNPLANNED STOP — an ad-hoc stop, not a scheduled job; WORK ORDER — a one-time job; ADDED — a job added to this specific day rather than the recurring schedule.
- From {tech} — a stop transferred onto your route; To {tech} (or "Transferred out") — one you sent away.
- Status tags: the numbered chip is the stop's position, "Est. 11:20 – 11:50 AM" is the arrival estimate, "Arrived 9:14 AM" shows while you're on site, the green time range shows actuals once done, and Skipped / Paused mark those states.
The Map tab
- The Map tab shows the selected day's route: numbered stop markers, a Start marker (teal), an End marker (red), and the driving path drawn one color per leg — each leg matches its destination stop's color, and the final leg back to the end location is green.
- For today's date the drawn path begins at your live GPS position (the blue dot); for other days it begins at the route's start location.
- Tap the Start or End marker to open a Route Locations sheet, where you can search a new address and Save to change your own route's start or end location — no admin permission needed for your own route. Admins can also edit any route's start/end from that route's detail page on the web dashboard.
Log a trip without a route
Supply runs, oil changes, and parts pickups aren't route stops, but the miles still count. When no route is running, the actions list shows Log Trip ('Track a non-route trip'; needs the mileage-trips permission). The screen has two modes:
- Log Completed — "Enter both start and end odometer for a trip already taken." Pick the date (today or any past day — no future dates), the vehicle, a purpose, and both readings, then tap Log Trip.
- Start Live Trip — "Start tracking now. You'll enter the end odometer when you're done." Tap Start Trip; an Active Trip card then sits on the Route tab showing the purpose, vehicle, and start time, with a Complete Trip button that asks for the end odometer. The actions-list row also flips to End Trip while a trip is live.
- Purpose is one tap: Store Run, Oil Change, Parts Pickup, or Other (with a free-text field).
- Start and end odometer photos are optional, and a reading lower than the vehicle's last known one shows a warning — it flags typos without blocking you.
- Logging trips needs an internet connection. Trip miles flow into payroll mileage and vehicle history — see employees, time, and payroll.
Working offline
The app is built for dead zones. The status badge in the header tells you where you stand: "Offline (N)" with a count of changes saved locally, "No Internet", "Syncing", or "Sync Error". Tap it for the Connection Status sheet: "Your data is safe — completed jobs are stored on this device until they sync," a pending-changes count, and a recheck countdown.
- What works offline: viewing your route and job details, completing job checklists and taking photos, logging water chemistry, adding and completing unplanned stops (including picking an existing service location), browsing and searching the customer directory (the app keeps a saved copy of every customer's name, phone, addresses, gate notes, and on-site contacts — so you can still call a tenant with no signal), viewing service location pages you've opened before, and reporting issues. Everything queues and syncs automatically when signal returns.
- What needs the internet: starting and finishing a route, moving or transferring stops, creating things (routes, jobs, customers, quotes), invoices and leads, and the AI features (voice fill, dictation, test-strip scanning, George). Those rows dim with a "Requires internet connection" note, and blocked actions show a "No Internet" alert.
- If a queued change fails to sync — say an admin removed the job while you were offline — a "Changes Need Attention" review opens from the header badge. Each item explains what happened, shows your preserved work (notes, dates, chemicals), and offers Retry, a button to view the preserved notes, and Dismiss. Nothing you typed is silently lost.
- When your app version falls behind the minimum, an "Update Available" prompt appears with Update Now (opens the app store) and Later.
Completions sync to the dashboard in real time once online, and the customer gets a service report email after each visit (when the company has that turned on).
Frequently asked questions
Do I have to enter an odometer reading to start my route?
No — tap Skip on the Odometer Reading modal and the route starts without one. It's worth entering when you can: readings (and optional photos) feed mileage tracking, payroll mileage, and route profitability.
What happens to stops I don't get to?
Tapping Finish with stops remaining opens the Finish Route sheet: Move to Another Day (pick a date in the next two weeks), Transfer to Another Tech (admins and owners), or Skip & Finish. Moving and transferring need an internet connection; unplanned stops can only be skipped.
Can I reschedule a stop instead of skipping it?
Yes. Tapping Skip on a scheduled stop opens the Skip Stop sheet: Skip & Do Tomorrow moves it to your route tomorrow in one tap, Skip & Pick Another Day lets you choose any day in the next two weeks, and Just Skip skips it for today. Any technician can reschedule their own stops — no admin permission needed. Rescheduling requires an internet connection, and unplanned (ad-hoc) stops can only be skipped.
Can I reorder stops before I start the route?
Yes. Drag stops on the Stops tab before starting, or on any future date from the Upcoming tab or the Routes tab. The drag saves that day's custom order, and the route uses it when started.
Are the "Est." arrival windows promises to the customer?
No — they're planning estimates, not appointment windows. They re-anchor to your real progress as the day unfolds, so running late at one stop pushes every later stop's estimate.
Why don't I see arrival estimates?
Estimates need an internet connection and a route with a start location (or your home address on file). Actual arrived and departed times always show, even offline.
Why is my actions list shorter than my boss's?
Every row in the actions list is permission-gated, and a heading only appears when at least one of its rows does. Owners and admins see more rows than a plain technician role.