How to Know If a Property Is Actually Profitable (Before You Renew the Contract)
Most landscaping operators price by gut feel. Here's how to calculate true per-property profit using job costs, drive time, and materials.
The Contract That Looked Fine on Paper
You’ve got a commercial property on a recurring weekly schedule. The client pays on time, never complains, and has been with you for two seasons. On the surface, it’s a good account.
But when renewal comes around, you quote roughly the same rate as last year — maybe with a small bump for fuel — and move on.
Here’s the question worth sitting with: do you actually know what that property costs you to service? Not the rough mental math. The real number — labor hours door to door, materials and chemicals consumed on-site, how many return trips you made for warranty fixes or callbacks, and what the crew had to skip at the next stop because this one ran long.
Most operators don’t know. And that gap between what a property feels like it earns and what it actually earns is where margin quietly disappears.
Why Per-Property Costing Is Hard in Practice
The mechanics of job costing aren’t complicated. Revenue minus costs equals profit. The problem is that the costs for a landscaping or irrigation business are scattered across four or five different places:
- Labor lives in a time-tracking app, a paper sign-in sheet, or someone’s memory
- Materials and chemicals are on receipts in a cupholder or a jacket pocket
- Equipment and fuel get lumped into overhead and averaged out
- Drive time is rarely counted at all
- Callbacks and warranty visits often don’t get logged as costs against the original job — they just happen
When contract renewal time comes, you’re working off an incomplete picture. You remember what you charged. You don’t remember the Saturday you sent a crew back out because the irrigation head was misting the sidewalk instead of the lawn.
Build a Simple Job Cost Sheet for Each Property
You don’t need software to start doing this better. A consistent habit is worth more than any tool you don’t actually use.
For each recurring property, track the following:
1. Actual labor hours per visit (not estimated) Time from when the crew parks to when they leave, not just active mow-and-blow time. Include loading and setup. If a stop that’s priced for 45 minutes routinely takes 65, that property is absorbing 20 minutes of margin on every visit.
2. Materials consumed on-site Fertilizer, herbicide, irrigation parts, mulch, seed — log what actually gets used at that address, not what you pulled from the truck. The difference matters when you’re servicing 12 properties in a week with the same product.
3. Return trips and callbacks Every unplanned return visit has a cost: crew time, fuel, and opportunity cost (what job didn’t happen because you went back). Even if you don’t charge the customer, log it against the property. Two callbacks per season on a mid-tier account can flip it from margin-positive to marginal.
4. Drive time and position in the route A property that adds 25 minutes of dead-head driving round trip is costing you more than one that’s on the natural flow of the route. This is easy to ignore when you’re bidding individual jobs but adds up across a full schedule.
What a Real Cost-Per-Visit Calculation Looks Like
Say you have a residential maintenance account at $280/month for four visits.
- Average visit time on-site: 70 minutes (you estimated 50 when you priced it)
- Crew of two at a blended labor cost of $28/hour: $65.33 in labor per visit
- Fertilizer and herbicide applied: $18/visit average
- Drive time each way (10 minutes per crew member): $18.67
- Annualized callback cost spread across visits: $7/visit
Total cost per visit: ~$109 Revenue per visit: $70
That’s a losing account. And it looked fine from the outside.
The numbers above are illustrative — yours will be different. The point is that without filling in each line, you can’t actually see what’s happening.
How to Use This at Renewal Time
Once you have a cost-per-visit baseline for each property, renewal conversations change. You’re not guessing at a percentage increase — you’re working from data.
A few ways to use it practically:
Tier your accounts by profitability. Your top-tier properties (good margin, no drama, on the route naturally) are worth protecting. Price them fairly but don’t undersell them to keep the account. Your bottom-tier properties — the ones bleeding hours or generating callbacks — need a rate correction or a quiet exit.
Price callbacks into your contracts explicitly. One or two warranty visits per season are part of the job. Three or more signal either a scope problem or an installation problem. Either way, the contract language should reflect what’s included and what isn’t.
Adjust for materials volatility. If your fertilizer or chemical costs moved 15% in the past year, that’s not a cost you should absorb silently. Show clients what changed and why — most will accept a materials-based increase if you explain it plainly rather than just sending a higher number.
Reassess route position annually. A property that was on your natural route two seasons ago might now be a detour if your territory has shifted. Route inefficiency is a real cost, and it’s worth pricing for or renegotiating.
Make the Habit Stick
The hardest part of per-property costing isn’t the math — it’s building the data collection habit in the field. Receipts need to be tagged to a job immediately, not sorted Friday night. Labor needs to be logged per property, not just totaled for the day.
A few things that help:
- One receipt photo per job, tagged on-site. The moment a crew member uses product at a property, that receipt (or a photo of the bag/container with the quantity noted) gets tied to that job. Waiting until end of day means you’ll forget which property got what.
- A stop timer, even a simple one. Knowing how long you actually spent at each property — not how long you planned to spend — changes how you bid the next similar job.
- A quarterly review, not just an annual one. Costs change mid-season. Reviewing your numbers in April and again in July catches a margin problem before it compounds.
One Tool Worth Knowing About
If you want to pull receipt tagging, job costs, and invoicing into one place without rebuilding your whole system, ServiceFlo lets you snap expense receipts on-site and tag them to specific jobs — so per-property costs accumulate automatically rather than getting reconstructed from memory at the end of the season. Worth a look if the spreadsheet version of this is getting unwieldy.
The core habit, though, doesn’t require any tool. It just requires deciding that knowing your numbers matters more than assuming the account is fine.