Docs / Team & commissions / Time tracking & timesheets

Time tracking & timesheets

How shift clock-in/out and per-visit time entries work together. Reading the timesheet report.

Servicio tracks two kinds of time: shift (the employee is on the clock generally) and visit (the employee is on a specific visit). Both live in the same time_entries table with a kind discriminator.

How shift time is captured

Tech taps "Clock in" on their home screen at the start of the day. A kind=shift time entry opens. Tech taps "Clock out" at the end of the day; entry closes with minutes computed.

The tech app shows a live counter when on-the-clock, so they can see their running total.

How visit time is captured

The visit lifecycle auto-opens and auto-closes a kind=visit time entry:

  1. On en_route: open a time entry (catches drive time).
  2. If en-route was skipped, open on arrive as fallback.
  3. On complete or skip: close the entry and compute minutes.

The visit's labor_minutes column caches the computed minutes so reports do not have to recompute on every page load.

The timesheet report

Owner → Team → Employees → click an employee → "Timesheet." Shows:

  • Shift minutes. Total on-the-clock time.
  • Visit minutes. Time spent on visits.
  • Idle minutes. Shift minutes − visit minutes. Highlighted red when shift is >2× visit minutes (indicating a lot of paid-but-idle time).
  • Labor cost. Minutes × hourly rate. Used in margin reports.
💡
Some idle time is normal (driving between properties, lunch, breaks). When idle crosses 35-40% of shift time, either the routes are too spread out (see Route density) or there is a productivity issue worth a conversation.
If a tech forgets to clock out, the shift entry stays open. The next morning, either they clock out explicitly (which backdates to the real end) or the owner adjusts via the timesheet editor (coming Q3). Until then, contact support to fix open shifts.

Was this article helpful?

Contact support