Hours from a job site have three separate jobs to do, and almost every system a contractor buys only does one of them well. They have to pay people correctly, they have to survive being contradicted by somebody else's paperwork, and they have to come back to you coded in a way that makes your next quote less wrong. Buy for the first job only, which is what most owners do, and payroll gets easier while quoting stays exactly as bad as it was.
The short answer
Capture a single location stamp at clock-in and clock-out, attach every entry to a job number and a cost code drawn from your own estimate, have whoever ran the crew approve it the same day, and sync approved hours into accounting with the codes intact. Everything below is either a reason one of those five steps is harder than it sounds, or a reason to skip the whole thing.
Your crew's hours have three jobs
This is the distinction the software comparison articles skip, and it is the one that determines whether you are about to waste four months.
| The job | What the record has to survive | What it needs to contain |
|---|---|---|
| Pay | A wage claim or a payroll audit | Start, stop, breaks, daily and weekly totals, approval trail |
| Prove | A general contractor, a client, or an insurer disputing what happened | A location or arrival record, and no second record that contradicts it |
| Cost | Your own estimate on the next job like this one | Hours split by task, coded to lines you actually price from |
Payroll accuracy is the easiest to buy and the least valuable to a small shop, because you probably already pay people roughly correctly. Proving is worth real money the first time it saves an invoice. Costing is the one that compounds, and the one that asks something of the crew every single day, which is why it gets abandoned.
An owner on r/Construction laid the costing case out cleanly. He ran 15 tradesmen across five or six projects, most of it priced fixed, and wanted hours by task so he could see where he made money. His words: if every plastering job takes more hours than he allowed, either he needs to allow more time in his quoting or he needs to address it with the plasterers. That is the whole argument for task-level tracking, and it has nothing to do with catching anyone.
Rule 1: Decide what triggered this before you shop
Contractors go looking for a time tracking app after one of four things happens, and the trigger tells you what to buy.
- Payroll takes a full day and hours arrive by text. You need mobile capture and a payroll sync. Cost codes are a bonus.
- You cannot tell which job an hour belonged to. An owner on r/Construction described running multiple sites in one day and ending up guessing what time belonged to which job. You need job selection and a job switch button, and you need it before the day is over.
- A client or general contractor disputed the hours. You need an arrival record and, more importantly, you need to stop producing a competing one. See rule 5.
- The jobs are coming in over on labour. You need cost codes tied to your estimate. This is the hardest one and the only one where an app on its own will not help you.
Most vendor content collapses all four into a feature checklist. They are not the same purchase.
Rule 2: Code hours to your estimate lines, not to a taxonomy
The most useful piece of advice on this anywhere came from a commenter on r/Construction telling an owner not to make the trades write an hourly journal. His framing: it is the owner's responsibility to create phase codes the crew can put next to their hours, because the owner understands the project in that context and the crew does not. Staging 4 hours, demo 16, install 16, clean up 8. No software recommended. Just correlate the time card codes with your estimate line items, and do not overdo it.
Another commenter described doing exactly this at an employer 15 years earlier: numbered codes for wall sheathing, setting trusses, framing walls. Five minutes at the end of the day once the tools were packed. Some days one code, some days six. He saw no issue with it.
The reason this works and elaborate systems do not is that the code list is short and it is a list of things the crew did, in the words the crew uses. If your codes come from an accounting chart rather than from your estimate, the field has to translate, and translation is where fabrication starts. It is also the difference between a labour report and a usable one, which is the same problem behind QuickBooks job costing that never seems to reflect reality.
Tip
Before you configure anything, print your last three estimates and highlight every labour line. That highlighted list is your cost code list. If it has more than about a dozen entries, your estimate is more granular than your crew can report against, and you should code at the level you price at.
Rule 3: Expect the pushback and sort the real objection from the noise
Ask a construction subreddit about tracking crew hours by task and you get a wall of hostility. The top comment on one such thread was a tradesman saying, plainly, that he did not like the owner or his ideas. Another said no one will want to do this without an incentive because jobs are enough of a pain without paperwork. A third: every contractor he was personally aware of who tried to implement this had failed at it.
Two of those three objections are noise. The third is the one to take seriously, and a former CPA employee in the same thread spelled it out: it was a pain for the employees and they all just made it up anyway at the end of the week. A fabricated record is worse than no record, because a missing number makes you cautious and a fake number makes you confident.
The counter-argument in the same thread came from a general contractor who described losing his shirt for want of this data, and pointed out that even a small project has specific allowances per phase and per trade. He is right, and the way he framed it is the way to introduce it: this is project management, not employee management.
Practically, that means three things when you roll it out.
- Name the specific problem. Not "accountability." The last three jobs of this type ran over on labour, you are going to find out where, and the alternative is pricing the next one wrong.
- Do not ask a tradesman to keep an hourly journal. Day-level codes, filled in when the tools are packed.
- Route it through the foreman. Several owners in these threads converged on this: the foreman compiles and signs off, because they know the context behind a late start or a job switch while it is still fresh.
If your hours already live in three places, a phone, a paper daily and a spreadsheet the office rebuilds every Friday, a custom CRM can make the job number, the cost code and the invoice the same record instead of three that have to be reconciled. We build the workflow around how your crews actually report, not the other way round.
Rule 4: GPS creates evidence about you, not just about them
This is the risk nobody selling a time clock will raise with you.
DOL Fact Sheet #22 is unambiguous on the point that matters most to a crew that moves. Under the heading "Travel That is All in a Day's Work," it states that travel as part of an employee's principal activity, such as travel from job site to job site during the workday, is work time and must be counted as hours worked. Ordinary home-to-work travel at either end of the day is not.
Read that alongside what a geofenced app does. It records that a crew member left site A at 11:40 and arrived at site B at 12:25. If your practice has been to pay from arrival at each site, you have just generated 45 minutes a day of documented, unpaid, compensable time, per person, with a timestamp, retained for years.
The Department of Labor's Wage and Hour Division identified more than 36 million dollars in back wages owed to about 21,000 construction industry workers in fiscal year 2021 alone. Unpaid travel and off-the-clock work are routine findings in that mix.
Watch out
Do not turn on GPS before you fix your travel time policy. The correct sequence is: decide how you pay travel between sites, put it in writing, tell the crew, then switch on the tracking that will document it. Reversed, you have built the evidence file for a claim you have not resolved yet.
Rule 5: Never run two records of the same hours
The single most expensive story in this research came from a sitework contractor on r/Contractor. They ran paper dailies and cross-referenced truck GPS only when something looked far off. On a prevailing wage military base project, the crew signed in at the gate and wrote their true working time on the company ticket, roughly two hours less than the gate log. The general contractor's client noticed the mismatch and refused to pay a 50,000 dollar invoice until statements and signatures were collected to reconcile it.
Nobody was stealing anything. The two documents were measuring different things, and the mismatch alone was enough to freeze the money.
If you work under a general contractor, on prevailing wage, or on any site with its own sign-in, your record has to reconcile to theirs by construction, not by explanation. Capture gate time and working time as separate labelled fields on one record rather than as two documents that disagree, and check the variance the same week, not at close-out.
Rule 6: Geofence the punch, do not track the shift
There are two very different things sold as GPS tracking, and the distinction decides both your legal exposure and whether the crew tolerates it.
A location stamp at punch records one coordinate at clock-in and one at clock-out. It answers the only question you actually have, which is whether they were on site. Continuous tracking logs movement for the whole shift, generates the most pushback, and creates off-clock exposure if the app does not stop at clock-out.
An r/Construction commenter running an AV installation crew across multiple sites described enabling full tracking and having guys complain about battery drain and feeling watched inside a week. They moved to a stamp at clock-in and clock-out, enough to verify the crew was on site without killing the phone by 2pm. A separate owner turned GPS off entirely for the same battery reason.
On the legal side:
- Notice is the baseline everywhere. California, Connecticut, Delaware, New York and Texas each have statutes requiring disclosure before electronic monitoring begins. A written policy issued before tracking starts is the standard practice regardless of state.
- Personal phones need written consent, and tracking must terminate at clock-out.
- Union crews need bargaining, and the standard got harder in 2024. In December 2024 the NLRB decided Endurance Environmental Solutions, LLC, 373 NLRB No. 141, restoring the "clear and unmistakable waiver" standard for employer contractual defences and overruling the more employer-friendly contract coverage test from MV Transportation. The practical effect: a general management rights clause is much less likely to let you impose surveillance on a represented crew without bargaining first. Some vendor pages describe this case as making GPS a mandatory subject of bargaining. That overstates the holding, which is about the waiver standard, but the operational advice is the same.
- In Ontario, the policy itself is mandatory. Employers with 25 or more employees on January 1 of a year must have a written policy on electronic monitoring of employees under the Employment Standards Act, and must retain copies of every such policy for three years after it stops being in effect.
Rule 7: Check the boring failure modes before the feature list
Every one of these came from an operator describing a system already in use, and none of them appear in the comparison tables that rank for this search.
| Failure mode | What operators actually reported |
|---|---|
| Battery drain | Two separate owners disabled GPS for this reason alone |
| Loose geofences | Crews clocking in "from blocks away," which is worse than no fence because it looks verified |
| No signal on site | Apps that need live data log nothing. Confirm local caching and sync on reconnect |
| The office still retypes | An owner described a field-friendly app that still needed manual entry into QuickBooks weekly, trading one headache for another |
| Per-user pricing | Eight to ten dollars a head looks cheap until you run seasonal crews through it |
| Adoption by tenure | One contractor bought tablets for foremen and abandoned it because it became more hassle than benefit for long-tenured staff |
Test the first three on a real site with a real phone, not in the office on wifi.
When not to track hours at all
A genuine strategy shows up repeatedly in these threads and deserves saying out loud, because the entire category of content on this topic pretends it does not exist.
Several profitable operators do not track hours granularly at all. One pays for the day, eight hours guaranteed, replaces crews that do not meet production, and pays quarterly bonuses against expectations. Another said if they knock it out in 30 hours he pays them for 40.
That works under specific conditions. Repeatable scopes you have priced dozens of times. Small crews you can see. Fixed price work where the customer never asks for a labour breakdown. No prevailing wage, no cost-plus, no general contractor sign-in.
Break any of those conditions and the informal system fails quietly, usually by absorbing overruns into your own margin without ever showing you which job did it. If you are billing time and materials or cost-plus, you have no choice, because your invoice is the record. That is a different question from what to charge per day for a crew, but the two numbers have to agree.
By the numbers
Under the FLSA, in the absence of adequate employer records, an employee's own reasonable estimate of hours worked can carry the day. British Columbia codifies the same principle explicitly: section 28 of the Employment Standards Act says that where an employer has not kept payroll records, the Branch will consider records supplied by the employee when calculating outstanding wages. Informality is a business decision. It is not a legal defence.
What the record has to contain
Retention and content requirements differ more than most owners assume, and the Canadian rules are in some respects stricter than the American ones.
| Jurisdiction | Hours record required | Retention |
|---|---|---|
| United States, FLSA | Hours worked each workday and total hours each workweek for non-exempt employees | Payroll records three years, time cards two years |
| Ontario, ESA | Dates and times worked, plus hours worked in each day and each week | Three years after the day or week of work |
| British Columbia, ESA s.28 | Hours worked on each day for every employee, regardless of whether paid hourly, salary, flat rate, piece rate or commission | Four years from creation, kept in English at the BC place of business |
Two details catch contractors out. British Columbia requires daily hours for salaried people too, and four years rather than three.
On rounding: the federal practice commonly called the seven-minute rule is permitted only where it averages out over time so employees are paid for all time worked. Precise GPS timestamps do not outlaw rounding, but they make a systematically one-directional policy very easy to demonstrate.
A two-week rollout that sticks
- Days 1 to 2. Highlight the labour lines on your last three estimates. That is your cost code list. Cap it at a dozen.
- Day 3. Write the travel time policy. Decide what you pay between sites and put it in writing before any tracking exists.
- Day 4. Write the monitoring policy. What is captured, when it stops, who sees it. Mandatory in Ontario at 25 or more employees, sensible everywhere.
- Day 5. Brief the foremen first, alone. They compile and approve. If they are not bought in, stop here.
- Week 2, days 1 to 3. Run the new record in parallel with whatever you do now. Do not switch payroll over yet.
- Week 2, day 4. Field test the boring failures: dead zone, low battery, geofence radius from the far corner of the site.
- Week 2, day 5. Reconcile one finished job's coded hours against its estimate. If the codes cannot be compared to the estimate, you have built a payroll tool. Go back to step 1.
The step most people skip is the last one, and it is the only one that tells you whether any of this was worth the friction. Hours that never get compared to an estimate are just a more expensive way to run payroll, which is the same trap behind the evening admin load most contractors never price.
