Skip to main content

Timesheet Reports

Hours logged by person, overtime for payroll, and unbilled time - the three timesheet reports and how they connect labour cost to unbilled revenue.

Written by Nick Stanisavljevic

Overview

Timesheet Reports cover the hours your team logged - who worked what, how much overtime accrued, where each timesheet sits in approval, and which hours haven't been billed to a customer yet.

Between them they cover payroll prep and finding revenue you've earned but not invoiced.

Available in the Web App. See Reports: Overview and Where to Find What for the shared controls.


When to Use This Group

  • It's payroll day and you need hours per person.

  • You want to know how much overtime you're paying and where it's coming from.

  • You want to confirm all timesheets are approved before the pay run.

  • Cash is tight and you're looking for work you've done but not billed.

  • You want to see the split between work, break, and drive time.


Employee Timesheet Summary

Breakdown hours logged by employee.

Hours per person over your chosen period, broken into work, break, and drive time.

The split is the useful part. A tech with high drive time relative to work time is spending their day in the truck, which is a routing and scheduling problem rather than a performance one. Grouping jobs by service area usually fixes it.

This report shows hours logged, not hours you'll pay for. Whether break and drive time are payable depends on your business settings, so the totals here can exceed your payroll hours.


Payroll Timesheets

Overtime hours logged and by whom.

This is the report you run before paying people. Regular, overtime, and double overtime hours appear separately, according to the overtime rules you've configured.

Overtime is the line to watch. Consistent overtime for the same person usually means either understaffing or uneven work distribution - both worth fixing, since overtime hours cost more per hour of the same work.

Export it for your payroll provider rather than retyping figures. See Overtime Settings & Tracking for how the rules are set.


Logged Time by Approval Status

A Logged Time view totals the period's time by where each timesheet sits in approval:

  • Ongoing - timers still running.

  • Pending Approval - logged, not yet approved.

  • Approved - reviewed and locked.

This is your pre-payroll checkpoint. A clean pay run has everything in Approved: Ongoing means someone's timer is still running - forgotten timers inflate hours - and Pending Approval means hours nobody has reviewed yet.

Check it the day before payroll, chase the two non-approved buckets to zero, and the pay run holds no surprises. Approval itself can be done from the web or in the field - see Managing Your Team's Timesheets from the Mobile App.


Uninvoiced Timesheets

Timesheets not linked to any invoice.

Hours your team logged that no customer has been billed for. On hourly and cost-plus work, this is money you've earned and not asked for.

Of every report in MotionOps, this is usually the fastest route to recovering revenue. Unlike chasing an overdue invoice, nobody has to agree to anything - you just have to send it.

Run it monthly. Every entry is either time to bill or time that shouldn't have been logged against that job, and both are worth resolving.

Not everything here is billable. On fixed-price work, hours aren't invoiced individually, so time on a fixed job appearing here is expected rather than a problem.

It also matters for closing jobs - uninvoiced timesheets block a work order from closing when that rule is on. See Guided Work Order Closing.

The same unbilled hours can be viewed per technician in Technician Performance's Logged-to-Billed gap. See Team Reports.


Reading the Group Together

Two of these look at cost and one looks at revenue:

  • Employee Timesheet Summary and Payroll Timesheets tell you what your labour costs.

  • Uninvoiced Timesheets tells you what labour you haven't charged for.

If your payroll hours are high and your uninvoiced list is long, you're paying for work you haven't billed. That combination explains a lot of profitable-looking businesses with no cash.


Tips & Best Practices

  • Check Logged Time the day before payroll. Ongoing and Pending Approval at zero means a pay run with no surprises.

  • Run Uninvoiced Timesheets before month end, not after. Billing last month's hours in the same month keeps your cash cycle tight.

  • Chase forgotten timers first. An Ongoing total that persists overnight is almost always a timer nobody stopped, and it inflates hours until it's fixed.

  • Watch drive time as a share of the day. High drive time is a scheduling fix, and Employee Timesheet Summary is where you spot it.

  • Investigate recurring overtime by person. If it's always the same name, the work isn't distributed evenly.

  • Match the date range to your pay period. Default presets rarely line up with a twice-monthly or two-week cycle.


Things to Know

  • Employee Timesheet Summary splits time into work, break, and drive.

  • Whether break and drive time are payable is a business setting, so logged hours and payroll hours can differ.

  • Regular, overtime, and double overtime are reported separately based on your configured overtime rules.

  • Logged Time groups the period's hours by Ongoing, Pending Approval, and Approved.

  • Time logged on fixed-price jobs will appear in Uninvoiced Timesheets and usually shouldn't be billed separately.

  • Uninvoiced timesheets can block work order closing when that closing rule is enabled.

  • Team members who have since been deleted still appear, so historical periods stay accurate.

  • All reports here export to CSV, XLS, and XLSX.


Troubleshooting

Payroll hours don't match the hours in Employee Timesheet Summary.
Expected if break or drive time is set as unpaid. The summary shows all logged time; payroll shows what's payable.

The Ongoing total isn't zero and nobody's working.
A timer was never stopped. Find it and stop it from the web before it distorts the person's hours further.

Uninvoiced Timesheets is full of fixed-price jobs.
Normal. Fixed-price work is billed at its agreed total rather than by hour, so those timesheets are never attached to an invoice individually.

Someone's overtime looks wrong.
Check your overtime rules - weekly, daily, and daily double thresholds all interact, and the period view you've chosen affects how hours are grouped.

A former employee's hours are still showing.
Intentional. Deleted team members remain in these reports so past periods don't change retroactively.

A tech's hours are on the wrong job.
Edit the timesheet and change the work order. Note that changing the work order clears the linked appointment, since the appointment belonged to the old job.

I can't see other people's timesheets.
Your role may only permit viewing your own. Time tracking permissions run from clock-in-only up to full access.


Have questions? Reach out via the support chat or email support@motionops.com.

Did this answer your question?