Answers · Commercial landscaping
Landscape job costing by property: which maintenance contracts take more crew-hours than they pay for
Landscape job costing by property answers the question a flat monthly invoice hides: which maintenance contracts take more crew-hours than they pay for. Software answers it going forward: a crew app logs time against each job from now on. This guide is for the owner who wants the answer for last season, from records already on file: the three exports that do it by hand, how to place hours on properties when timesheets say only crew and day, the ranking that shows which properties to look at first, what explains each gap, and the weekly check that keeps the number current.
By Tamara Stepanyan, founder of Lumina Business Advisory · Updated · Sources checked · Editorial standards
Why a flat monthly fee hides the hours
Free self-check · two taps · no email
Hand-off 6 of 6 · Payment → Margin
Choose the answer that sounds like your business.
That was one of six hand-offs where money changes hands, from first inquiry to collected cash. The other five take about three minutes and end in a dated sheet that names where to start.
A commercial maintenance contract billed in equal monthly installments sends the same invoice in April as in July. The work behind it does not stay the same: a wet spring adds mowing, a storm adds cleanup, a new property manager adds requests, a crew change adds a learning curve. The invoice is designed not to move, so it says nothing about any of that.
The hours land somewhere else. Timeclock and payroll records exist to pay people, so they are coded by employee, crew and day — what payroll needs. Unless someone also codes them to a property, the company knows what each crew cost this week and nothing about what each property cost. The profit and loss statement then shows one margin for the whole company, a month after the month ends.
Without hours by property, the hard accounts get handled by feel. A crew owner who maintains condominium properties summed up his approach in a 2024 forum thread: “We tend to bid high on them bad ones.” That is a reasonable instinct at the next bid. It does not show which properties are the bad ones today, or by how many hours. In a 2026 thread, an account manager at a larger landscape company described the other end of the same gap: every property tied to his name, “without enough labor or time to meet the requirements in our own contracts.”
Landscape job costing by property from three exports
The first look needs no new software. It needs three sets of records the company already keeps, covering the same full months — the last complete season, or the last three months if a season is too much to start with.
- Hours paid: the payroll or timeclock export, with date, employee, crew and hours, plus any job or property code the timeclock captured.
- Where each crew was: the route sheets or schedules for those days, the crew leaders’ daily logs, and GPS stop times where the trucks carry a tracker. These turn “Crew 3, Tuesday, 38 hours” into hours on named properties.
- What each property was supposed to take, and what it paid: the bid or estimate behind each contract — hours per visit times visits per month — and the invoices for the same months.
Keep enhancements, irrigation repairs and other time-and-materials work on their own line, in hours and in revenue. Mixed into the maintenance hours, they make a property look better or worse than its maintenance contract really is.
Placing hours on properties when timesheets say crew and day
For each crew-day, list the properties on the route in order. Where GPS stop times or a crew leader’s log give arrival and departure times, the on-site hours are the time on site multiplied by the number of people on the crew. Where they do not, split the day’s on-site time by the bid hours of each stop and mark those rows as estimated, so nobody later mistakes them for measured hours.
Every paid hour then lands on one of four lines:
- On-site hours, by property.
- Drive time, by route — not spread across the stops. Spread evenly, it hides the property that sits far off the route.
- Shop, loading, fueling and weather hours, as the company’s own non-billable line.
- Unplaced hours: paid time that cannot be tied to any property or route. Their size is itself a finding, because it is the share of paid crew-hours the company cannot see.
Rank the five largest accounts by revenue per crew-hour
Start with the five largest maintenance contracts by monthly revenue, because a gap there moves the most money. For each, divide the season’s maintenance revenue by the season’s on-site crew-hours. Then set the bid’s hours beside the actual hours, and the company’s own loaded labor cost per hour — wages plus payroll taxes, workers’ compensation and benefits, from its own payroll — beside the revenue per hour.
Illustrative example: two HOA contracts at $3,000 a month each, both bid at 24 crew-hours a month, or $125 per crew-hour. Over the season, the first averages 22 hours a month on site — about $136 per crew-hour. The second averages 34 — about $88. Same invoice, same bid, and at a loaded labor cost of $40 an hour, the second property’s on-site labor alone takes about 45% of its fee before drive time, equipment and overhead. Every number in this example is invented; the company’s own figures are the only ones that matter.
There is no neutral public benchmark for revenue per crew-hour in landscape maintenance. The Bureau of Labor Statistics publishes wages, not contractor pricing: its median for landscaping and groundskeeping workers was $18.82 an hour in May 2025. That wage is one input to a loaded cost, not a price. The useful comparison is each property against its own bid, and against the company’s other properties, season over season.
What explains the gap, property by property
A property that runs past its bid is a question, not a verdict. Find the reason before deciding anything, because each reason has a different fix.
- Scope the bid missed: more beds and detail work, slopes, obstacles or hand-trimming than the production rates assumed. The fix is a renewal priced from the hours, with the hours as the stated reason.
- Work outside the specs done on request: a resident’s or a manager’s “while you’re here” with no ticket. The fix is a ticket and a quote for each extra, or the spec line it falls under.
- Specs that never reached the route sheet, so the crew does more — or less — than was sold.
- Callbacks and rework after complaints, which belong on their own count.
- The season, not the property. The Bureau of Labor Statistics notes that crews may be busier or work longer hours in spring, summer and fall; compare the same months across properties before blaming one of them.
- Drive time: a property far off the route whose price never carried the drive.
For each property the decision is one of four: reprice at renewal, re-scope the specs with the manager, ticket the extras, or re-route. Walking away from a contract is a fifth, and it is the owner’s call, made with the numbers in hand.
Keeping landscape job costing by property current every week
Once a season has been counted by hand, the fix is upstream: hours coded to the property they were spent on, at the time they are spent. Field software such as Aspire or LMN, and timeclock apps with job codes, can capture this when crews clock to a property and not just to a shift. Software that records hours by shift reports the same blind spot faster.
Then a fixed weekly check, about thirty minutes: the five largest properties, last week’s on-site hours against the bid’s weekly hours, and any property over by more than an agreed margin for a second week running goes to the owner with a reason attached. The threshold is the company’s choice. What matters is that someone looks every week, not at year-end close.
The same numbers feed the fall renewal. A renewal priced from the season’s actual hours on that property is a different conversation with a property manager than a round-number increase. For when those numbers need to be ready, see the guide on when HOA boards approve landscaping budgets.
When this is not worth paying anyone for
The count above is designed to be run in-house, and for a company whose crews already clock to properties it should take an afternoon. A company with a dozen properties and an owner who still runs the routes can see the problem accounts by eye. If the ranking comes back with every property near its bid, the bids are working; keep them.
An outside review earns its fee when hours by property are one gap among several and the records are too scattered to connect in an afternoon: timesheets with no property code, extras done with no ticket, renewals priced without hours, invoices waiting through the season. Our Revenue Review takes two weeks. It works from read-only access to the timeclock export, route sheets, crew leader logs, specs and invoices, and prices each gap as a monthly dollar figure where the records support one. It walks no property, contacts no manager or board, configures no software and moves no money. Nobody here runs a landscaping company, and there are no client case studies on this site yet. For how it compares with a coach or a peer group, see what a landscaping business consultant costs.
If it is unclear whether any of this is worth a fee, start with a free 20-minute call, where a company too small for the arithmetic is told so.
Before any next step
What should you do next?
- Fix it yourselves.
- If the cause is clear, it lives inside one process, and one person can own it — take the play from this page and run it. That outcome is fine with us; it is why the play is published in full.
- Order one bounded build.
- If the fix is known but needs configuration or integration inside your stack — a cadence wired into your own system, an alert, a handoff — scope that one build, with us or with anyone you trust. The six systems we build show what bounded looks like.
- Start with the Review.
- If the causes are debatable, the problem crosses departments or systems, or the economics are unclear — diagnose before anyone builds. The Revenue Review: $4,500 fixed, two weeks, computed from your own records. Read a sample finding before you decide — free, no email.
Asked right after
- How do I find out which landscape maintenance contracts lose money?
- Set three things side by side for each property over the same months: the on-site crew-hours from the timeclock, route sheets and crew logs; the hours the bid assumed; and the maintenance revenue invoiced. Multiply the hours by the company’s own loaded labor cost, keep drive time on its own line, and compare. The properties where hours run well past the bid are the ones to look at first.
- What is a good revenue per man-hour for commercial landscape maintenance?
- There is no neutral public benchmark. The Bureau of Labor Statistics publishes what landscaping workers earn, not what contractors charge. The benchmark that holds up is the company’s own: each property against its bid, and against the company’s other properties, season over season.
- Should drive time be charged to each property?
- Count it on its own line, by route, first. Spreading it evenly across the stops hides the property that sits far off the route. Once it is counted, the owner can decide whether a property’s price carries its drive or whether the property belongs on a different route.
- Do I need job costing software to see hours by property?
- Not for the first look. Last season can be rebuilt from the payroll or timeclock export, route sheets or GPS stop times, and invoices. Software helps keep the number current, but only when crews clock to properties; hours recorded by shift show the same gap, just faster.
- How often should budgeted vs. actual hours be checked?
- Weekly for the largest properties, monthly for the rest, and in full before renewals are priced. A gap caught in the third week of the season can still be discussed with the manager; one found at year-end close can only be priced into next year.
Keep reading
Related answers
Sources
- Grounds Maintenance Workers — Occupational Outlook Handbook (pay, work schedules) · U.S. Bureau of Labor Statistics, 2026
- Comment thread on condominium residents’ requests to the crew (original post deleted by its author) · Reddit, r/landscaping, 2024
- Problems in Corporate Landscaping (account manager’s post) · Reddit, r/landscaping, 2026
The next step
Bring us the process that keeps getting stuck.
A 20-minute conversation about the workflow, the teams and the systems involved — and a straight answer on whether The Revenue Review is the right next step. If it is not, we say that on the call.
A real person answers or calls you back the same business day.