Skip to content

Time Tracking

Time Tracking gives owners and dispatchers full visibility into technician working hours, break time, overtime, and punctuality — all from the Performance Dashboard's Time & Attendance tab. Technicians clock in and out with a single tap in the mobile app; the system handles everything else.

Pro feature

Time Tracking is available on Pro and Enterprise plans. Compare plans to upgrade.


Overview

Time Tracking captures every status transition a technician makes throughout the day — Available, On Break, Off Duty, Lunch, and Vacation. These transitions are logged with precise timestamps, forming the basis for timesheets, attendance analytics, and workforce reporting.

Capabilities by role

Capability Owner Dispatcher Technician
Clock in/out via mobile app
View team timesheets
View KPI Time & Attendance tab
Review individual technician profiles
Configure technician schedules

How Technicians Clock In

Technicians manage their availability status from the FSM Navigator mobile app:

  1. Open the mobile app and tap the availability toggle
  2. Select a status:
    • Available — On shift and ready for work (clock in)
    • On Break / Lunch — Temporarily unavailable
    • Off Duty — Shift ended (clock out)
    • Vacation — Extended leave
  3. Device authentication ensures each status change is tied to the logged-in technician's mobile session
  4. Offline support — If the device has no connectivity, status changes are cached locally and synced when the connection is restored

One-tap workflow

The most common flow is: Off Duty → Available → Lunch → Available → Off Duty. Each tap takes less than a second.


Status Transitions

The system tracks five availability statuses. Each transition is logged as a separate record with start time, end time, duration, and closing method.

Valid transitions

From To Trigger
Off Duty Available Technician taps "Available" (clock in)
Available Lunch Technician taps "Lunch"
Available On Break Technician taps "On Break"
Available Off Duty Technician taps "Off Duty" (clock out)
Lunch Available Technician taps "Available"
On Break Available Technician taps "Available"
Any status Off Duty EOD auto-reset (system closes open entries)
Off Duty Vacation Owner sets vacation status
Vacation Off Duty Owner ends vacation

Closing methods

Each time entry records how it was closed:

Method Description
user Technician changed their status manually
admin Owner or admin changed the technician's status
scheduled End-of-day auto-reset closed the entry
system System closed the entry (e.g., session timeout)

State diagram

stateDiagram-v2
    direction LR
    [*] --> OffDuty
    OffDuty --> Available : Clock In
    Available --> Lunch : Start Lunch
    Available --> OnBreak : Start Break
    Available --> OffDuty : Clock Out
    Lunch --> Available : End Lunch
    OnBreak --> Available : End Break
    OffDuty --> Vacation : Set Vacation
    Vacation --> OffDuty : End Vacation
    Available --> OffDuty : EOD reset (from Available)
    Lunch --> OffDuty : EOD reset (from Lunch)
    OnBreak --> OffDuty : EOD reset (from OnBreak)

Time & Attendance Dashboard

Time tracking data is surfaced on the Performance Dashboard → Time & Attendance tab. This tab provides team-wide and individual analytics.

Accessing the dashboard

Navigate to Dashboard → Performance Dashboard and select the Time & Attendance tab. The tab appears for the Owner role on Pro and Enterprise plans.

Summary metric cards

Card What it shows How it's calculated
Hours Worked Total working hours tracked Sum of all active working status durations
Avg Hours/Day Average daily hours per technician Total working hours ÷ (number of techs × working days)
Punctuality Average on-time rate Compare first clock-in vs. scheduled shift start (15-min grace)
Overtime Total overtime hours Hours worked beyond scheduled shift length
Tech Count Active technicians tracked Distinct technicians with time entries in the period

Charts

Chart Type Description
Daily Trend Line chart Hours worked + break hours plotted per day over the selected period
Time Distribution by Status Doughnut chart Proportion of scheduled hours spent in each status (Available, Lunch, Off Duty, Vacation, Unaccounted) using technician schedule as denominator

Schedule-aware distribution

The Time Distribution chart uses each technician's configured schedule (or company operating hours as fallback) to calculate the denominator. This means weekends, holidays, and after-hours time are automatically excluded — giving you an accurate picture of how scheduled hours are spent.

Leaderboard

The Top Performers leaderboard ranks technicians by total hours worked in the selected period. Use this to identify your highest-output team members and spot potential overwork.


Individual Technician Timesheets

Click on any technician in the leaderboard to view their individual timesheet profile:

Profile details

Section Content
Summary cards Total hours, average hours/day, punctuality score, overtime hours for the selected period
Daily breakdown Table showing each day: date, first clock-in, last clock-out, total hours worked, break time, net hours
Status timeline Visual timeline of status transitions throughout each day

Date range

The individual timesheet respects the global date range selector. Change the date range at the top of the Performance Dashboard to adjust the period shown.


Configuration

Technician schedules

Time tracking calculations (punctuality, overtime, schedule-aware distribution) rely on technician schedules:

  1. Navigate to the technician's profile
  2. Set their shift schedule for each day of the week:
    • Shift start and shift end times
    • Working day flag (on/off for each day)
    • Lunch duration (in minutes)
    • Max overtime (in minutes, 0 = no overtime allowed)

Schedule fallback chain

If a technician doesn't have a personal schedule configured, the system falls back to:

  1. Company operation hours (Settings → Company Info → Operating Hours)
  2. Default schedule — Monday through Friday, 8:00 AM to 5:00 PM

End-of-day auto-reset

A scheduled process runs at the end of each day to:

  • Close open time entries — Any technician still clocked in has their entry automatically closed
  • Calculate duration — The system computes the total duration for the closed entry
  • Flag for review — Entries closed automatically are flagged so dispatchers can identify forgotten clock-outs

Integration with auto-assignment

The Auto-Assignment Engine respects technician availability status:

  • Available technicians are eligible for new job assignments
  • Off Duty, On Break, Lunch, Vacation technicians are excluded from the assignment pool
  • This ensures jobs are only dispatched to technicians who are actively working

FAQ

What if a technician forgets to clock out?

The End-of-Day auto-reset automatically closes open entries. These entries are flagged as automatically closed so dispatchers can identify and review them.

Can I edit time entries manually?

Time entries are system-generated and cannot be edited directly. If a correction is needed, an admin can change a technician's status, which creates a new corrective entry flagged as an admin edit.

Does time tracking work offline?

Yes. The mobile app caches status changes locally and syncs them when connectivity is restored. No hours are lost due to poor signal.

How does break time get calculated?

Break time is the sum of all Lunch and On Break status durations within the selected period. The system tracks each break individually with start and end timestamps.

How does overtime get calculated?

Overtime is calculated by comparing actual hours worked against the technician's scheduled shift length. Any hours beyond the scheduled shift contribute to overtime. The schedule fallback chain (personal schedule → company hours → default 8-5) determines the baseline.

How far back can I see time data?

Time tracking data is retained for 13 months, supporting the full 1-year date range available in the Performance Dashboard plus a safety buffer.

How does the Time Distribution chart work?

The chart shows what proportion of scheduled hours were spent in each status. It uses each technician's configured schedule as the denominator, so weekends and non-working days are automatically excluded. "Unaccounted" time represents scheduled hours where no status was logged.