The Number Most Operators Never Look At
You know what you billed last month. You probably know what you paid for gas, equipment, and supplies. But do you know what you actually paid your crew versus what those jobs brought in? That gap — revenue minus labor — is your labor margin. And for a lot of operators, it's a lot thinner than they think.
Here's a scenario that plays out constantly: a crew of two guys runs 8 jobs in a day. You collect $1,100. They each made $18/hour and worked 9 hours. That's $324 in labor alone — before fuel, equipment wear, or your own time. Now factor in one job that ran long because the gate was locked and they had to hand-trim around it, and another where a customer flagged them down to ask about a mulch job. Suddenly that $1,100 day looks a lot different.
The problem isn't the crew. The problem is not having numbers that show you where the time is actually going.
Why Labor Is Different From Every Other Cost
Fertilizer costs the same whether a job takes 20 minutes or an hour. Labor doesn't. When a job runs long — bad directions, extra cleanup, a difficult property — your material cost stays fixed but your labor cost climbs. And if you're quoting flat rates without tracking actual time per job, you have no idea which jobs are eating your margin.
The other thing that makes labor tricky: it's not always obvious when a job is unprofitable. If you're charging $65 for a mow and the crew does it in 25 minutes, you're in great shape. If that same job consistently takes 45 minutes because the yard has a hill, a dog run, and tight side gates — you're losing money on it every single visit. You're just not seeing it because the invoice gets paid.
This is why experienced operators talk about job profitability, not just job revenue. A full schedule doesn't mean a profitable schedule.
A full calendar isn't the same as a profitable one. You can be busy and broke at the same time.
The Real Cost of Guessing on Job Time
When you quote a job without knowing your actual average time for that service type, you're guessing. Sometimes you guess right. Sometimes you underprice a job and run it at a loss for two years before you notice. That's not hypothetical — it's how lawn care businesses quietly bleed.
Say you have 15 biweekly mow customers at $55 each. That's $825 every two weeks, or roughly $1,650/month from that group. Sounds solid. But if five of those properties are taking your crew 45 minutes instead of the 25 minutes you estimated, you're eating an extra 100 crew-minutes per visit. At $18/hour, that's $30 per visit in unplanned labor cost. Across 15 visits per month for those five accounts, you're losing around $450/month — almost invisible in your bank account, but real.
The fix isn't complicated. It's tracking time per job and comparing it to what you estimated. Once you can see which jobs are running long, you can adjust your pricing, adjust your quoting, or have a conversation with the customer.
What Good Labor Tracking Actually Looks Like
You don't need a complicated system. You need three things: when the crew started, when they finished, and which jobs they completed. Everything else — payroll cost, revenue per hour, labor margin — you can calculate from those three data points.
If you're running a crew field app, you should be capturing check-in and check-out times per job. If you're not, start there. Even a basic spreadsheet where your crew texts you start/end times is better than nothing. The goal is to connect time worked to jobs completed so you can do the math.
Once you have that data for 30 days, sort your jobs by time-per-job against what you quoted. The outliers — jobs taking 50% longer than expected — are your problem accounts. You'll usually find they share something: a property feature you underestimated, a customer who delays the crew, or a service type your guys are slower at than average.
- •Crew check-in and check-out time per job (not just per day)
- •Total hours worked vs. jobs completed per crew member
- •Revenue generated per crew member per day
- •Your crew's hourly wage × hours worked = actual labor cost per job
How to Calculate Your Labor Margin (Do This Today)
Pull your last 30 days of data. Add up total revenue from completed jobs. Then add up total hours your crew worked and multiply by their hourly rate. The difference is your gross labor margin. Divide that by revenue and you've got your labor margin percentage.
As a rough benchmark: healthy lawn care operations typically run labor at 25–35% of revenue. If you're above 40%, your pricing is too low, your jobs are running long, or both. If you're under 25%, you're either pricing well or your crew is moving fast — but check that your prices aren't driving away customers.
Example: $8,000 in revenue, 180 crew hours at $18/hour = $3,240 in labor. That's a 40.5% labor rate. Tight. You'd want to figure out which jobs are driving that up before adding more clients at the same pricing.
Quick formula: (Total Crew Hours × Hourly Rate) ÷ Total Revenue = Labor Rate %. Anything above 40% is worth investigating.
Common Reasons Labor Gets Out of Hand
The first one is windshield time — time your crew spends driving between jobs that you're still paying for. If your routes aren't tight, you can have two guys burning 30–40 minutes between stops and it adds up to hundreds of dollars a week in paid drive time with zero revenue attached. Route optimization isn't just about fuel — it's about controlling your largest cost.
The second is scope creep on the job. A customer asks your crew to blow out a flower bed, pull a few weeds, or trim a shrub while they're there. Your guys say yes because they're trying to be helpful. That 5-minute favor turns into 20 minutes, and it never shows up on an invoice. Train your crew to tell customers 'we can add that to your next quote' and make it easy for customers to actually request add-ons.
The third — and this one's sneaky — is jobs that have genuinely gotten harder over time. A lawn you've been mowing for two years has grown in, the hedges got bigger, or the customer added a garden bed. The job you quoted in year one isn't the same job you're doing now.
- •Long drives between jobs eating into paid crew time
- •Untracked scope creep ('while you're here' requests)
- •Properties that have changed since you originally quoted them
- •Slower crew members always assigned to the same underpriced accounts
- •Jobs where setup and breakdown time isn't counted in your estimate
Using Reports to Catch Problems Before They Compound
If you're running a crew, you should be looking at two numbers every week: revenue per crew member and hours worked per crew member. If one crew member is generating significantly less revenue per hour than another, you have a question to answer — is it their speed, their assigned jobs, or their route?
Lawnager's crew and payroll reports show you exactly this: hours worked, jobs completed, revenue generated, and labor cost per crew member — all in one view. You can export it as a CSV for payroll or just use it to spot who's running efficient and who's running behind. If crew member A is doing $420 in revenue per day and crew member B is doing $280, that's worth understanding.
These reports also show you labor margin across the business, which is the number that tells you whether your pricing is keeping up with your labor costs. If that number is trending the wrong direction month over month, you know before it becomes a crisis.
What to Actually Do When You Find a Problem Account
First, verify it's real. Pull the last 3–5 visits for that property and check if the long times are consistent or a one-off. If it's consistent, you have a pricing problem, not a bad day.
Second, figure out the right number. If the job is taking 45 minutes instead of 30, and you're paying $18/hour in labor, you need roughly $13 more per visit just to break even on labor — before fuel or equipment. That probably means raising the price by $15–20 to actually make it worth running.
Third, have the conversation with the customer. Most customers understand price increases when you explain it honestly — 'This property takes us longer than a standard lot our same size, and we want to make sure we're giving it the time it needs.' You'll lose some customers. The ones you lose were probably your worst-margin accounts anyway. The ones who stay are worth keeping. If you're unsure how to frame that conversation, it helps to have a strategy for raising prices without losing customers.
Raising prices on two or three underpriced accounts can do more for your monthly profit than adding three new customers at your current rates.
Ready to run your lawn care business smarter?
Join operators who traded spreadsheets for a platform that keeps up with them.
Start for free