Landscaping & Irrigation AI-assisted

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.

By ServiceFlo Team ·
job costingpricingproperty maintenance

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:

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.

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 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.