
October 3, 2026 · Mitt Patel · 5 min read
It's the third week of the month, payroll just ran, and the number looks fine at the bottom. But you still can't say whether the crew spent four hours or seven at the Tuesday office park, or whether that account has been quietly running long since spring. If you can't answer that in thirty seconds, this one's for you.
Why this happens
Most landscaping payroll gets tracked by day and by crew, not by job. A crew clocks in at 7 a.m., works five properties, and clocks out at 3 p.m. The hours get paid correctly, but they land in one lump. Nobody records that the third stop, the office park, ate two and a half hours instead of the ninety minutes it was quoted at.
This isn't laziness. It's just how time tracking naturally defaults when nobody sets it up differently. Crews are focused on finishing the route, not logging minutes per address. And the owner is focused on making payroll, not auditing it property by property.
The cost shows up slowly. You keep bidding new accounts using a gut sense of "about what we charge similar properties," but that gut sense was built on jobs that may already be underpriced. A crew that's slower on one property because of drainage issues, tricky access, or a customer who adds requests on the fly looks the same on paper as a fast, easy account. Without labor tracked by customer, you're pricing next year's work on guesses instead of what the last twelve months actually cost you.
A worked example
Say you have one crew of three workers, each paid $22 an hour, and on a given day they service four properties:
- Property A: 1 hour
- Property B: 1.5 hours
- Property C: 3 hours
- Property D: 1 hour
That's 6.5 hours per worker. Three workers at $22 an hour makes $429 in labor for the day.
If you only look at the day total, $429 seems reasonable against whatever you billed across four stops. But look at Property C. That one property alone used 3 hours per worker, or 9 worker-hours, which is $198 of the day's labor, nearly half the crew's cost, for one account.
If Property C is billed at a flat monthly rate that assumed a 1.5-hour visit, it's probably losing money every single week, and the other three properties are effectively subsidizing it. You won't see that if the $429 just gets coded to "landscaping labor" for the day. You only see it when the 3 hours gets tied to Property C specifically.
How to set it up
- Pick a time-tracking method your crews will actually use. This could be the time-tracking feature inside QuickBooks Online, or a separate time app that syncs to it. Either way, it needs to be simple enough that a crew leader can tap a job name from a phone in the truck.
- Build a customer list that matches your actual accounts, not just "commercial" or "residential" categories. Each property should be its own customer or sub-customer in QuickBooks, even if several properties bill to the same management company.
- Have crews clock in and out by property, not just by day. This usually means clocking out of one job and into the next as the crew moves through the route, rather than one clock-in for the whole day.
- Sync the time entries to QuickBooks Online so each hour is tied to both an employee and a customer. This is usually a built-in integration if you're using a supported time app; if you're not sure yours connects, that's worth checking before payroll season gets busy.
- Run payroll as usual, but make sure the labor cost lands against the job, not just against a general labor expense account. This is what lets the numbers show up per customer instead of just per pay period.
- Pull a profit-by-customer report in QuickBooks Online on a regular basis, monthly at minimum. This report shows revenue and cost side by side for each customer, so labor-heavy accounts stand out.
What undoes it
- Crews batch-clock at the end of the day. If a crew leader logs "8 hours, four properties" all at once from memory, the split between jobs is a guess, and the report is only as good as that guess.
- New properties don't get set up as customers before the crew starts. If a job runs for a few weeks coded to "miscellaneous" before someone creates the customer record, that early labor never gets reallocated.
- Change orders and add-on work aren't logged separately. If a customer asks for extra edging or a one-time cleanup mid-visit, and that time doesn't get flagged, it gets absorbed into the regular visit and makes the account look slower than it actually runs on a normal day.
- Owners look at the report once and never again. A property that was profitable in April can slide by August as it gets overgrown, understaffed, or handed to a slower crew. The report only helps if it's a habit.
Monthly checklist
- Confirm every active property has its own customer record in QuickBooks Online.
- Spot-check that crew time entries are clocked by job, not batched by day.
- Run the profit-by-customer report and flag any account where labor cost looks high against what it bills.
- Compare flagged accounts to their original quote or contract to see if the scope has changed.
- Note any accounts that need a price conversation before the next renewal.
Common questions
What if a crew visits five properties in a route and the drive time is hard to separate?
Drive time between stops usually gets assigned to the property they're heading to, or split evenly across the route, depending on how your time app handles it. The exact method matters less than being consistent, so one property doesn't unfairly absorb every commute.
Do I need a separate time app, or can QuickBooks Online handle this alone?
QuickBooks Online has built-in time tracking that can work for smaller crews. Larger operations often use a dedicated field-service or time app that syncs over, mainly because it's easier for crews to use from a phone in the field. Which setup fits depends on your crew size and how many properties you run in a day.
How far back do I need data before this report tells me anything useful?
A single day or week won't tell you much, since one slow visit could be a fluke. A full month gives a more honest picture, and a full season is better still, especially for properties where workload changes with weather or growth cycles.
What do I do once I find an underpriced account?
That depends on the account, the contract terms, and the relationship. Some owners renegotiate at renewal, some adjust the scope of work, and some decide the account isn't worth keeping. The report tells you where to look; the decision about what to do is a business call only you can make.
North Hudson Bookkeeping sets up job costing like this for landscaping clients and keeps it accurate month to month, so the numbers are ready when you need to make a pricing decision. The first call is free.
