From a contractor who sold his company

How to price landscape jobs without losing money.

The short answer: stop quoting on labor alone and bake in the four hidden costs that kill margin (drive time, labor burden, equipment recovery, overhead share). The long answer is below. I wrote this after two seasons of underbidding my own routes, and a year of running the real numbers that eventually let me sell the company clean.

Step 1: Know your true crew rate, not your hourly wage

If you pay your crew $22/hour, your real crew rate is closer to $27-29/hour after payroll burden: workers comp, FICA, the employer side of Medicare, state unemployment, sometimes health stipends. Most contractors quote off the gross $22 and erode 20% of their margin without realizing it.

Calculate your real burden once: total annual labor cost (paychecks + all the employer-side line items) divided by total paid hours. The percentage between gross wage and effective cost is your burden number. 18-22% is typical in most US states. Put it in your quoting sheet once and every quote applies it.

Step 2: Drive time is labor time

A 30-minute drive to a 60-minute job is a 90-minute job your crew gets paid for. If you bill the customer for the 60 mowing minutes only, you absorb the drive cost yourself. On a route of weekly mows that's a hundred-plus drive-minutes a day you're eating.

Fix: cost drive time at the same crew rate (with burden) as on-property time. A 30-min round-trip drive at a $27/hour effective crew rate is $13.50 of cost on every visit. Enter one-way drive time on every quote and double it.

Step 3: Equipment recovery is real money

Your mower, trailer, plow, spreader, and trucks have a finite useful life. The cost per visit for these items is small (a few dollars) but it's real, and contractors who don't bake it in spend years quietly funding their replacement budget out of net profit.

Rule of thumb: total annual equipment depreciation divided by total annual visits = equipment recovery per visit. A $4,000 annual depreciation across 200 visits is $20/visit. A 60-second math problem that protects 5-figure annual margin.

Step 4: Spread overhead across visits, not jobs

Your monthly overhead (insurance, software, office, vehicle payments, accounting, marketing) needs to come out of the margin on every visit. Most contractors think about overhead as "monthly expense" and never explicitly allocate it to specific jobs.

Allocation: take monthly overhead ÷ monthly visit count = overhead per visit. A $5,000 monthly overhead spread across 200 visits is $25/visit. Every quote needs to cover that AND your real labor + equipment + materials BEFORE you start counting margin. Work out both numbers once and build the allocation into every quote.

Step 5: Material markup, not just material cost

Pass-through materials at cost are a hidden subsidy to your customer. Standard markup in the trades is 20-40% depending on category and competitive pressure. Mulch, fertilizer product, lighting fixtures, plant material: all need a markup that covers handling, sourcing time, and the working capital you tied up buying them.

Set a default markup (30% is a reasonable starting point) and override on individual quotes when the math demands it. Big-ticket items often get a smaller percentage; small items often get a larger one.

Step 6: Target margin, not target price

Once you know your true cost on a job, target margin (gross profit ÷ revenue) becomes the lever. 35-45% gross margin is healthy for most landscape services. Snow margins run higher (50-65%) because of seasonal risk; install margins run a bit lower because of larger material volumes.

The right way to think about a quote: cost-up plus margin, not market-down minus discount. If a competitor quotes lower, fine, but you should know what their margin must be to deliver at that price, and whether they can sustain it. Quoting from cost-up is how you learn your floor.

Step 7: Save every quote, compare across the season

The biggest pricing improvement most contractors can make is not on any single quote. It's in the pattern across the book. Which clients are silently underpaying? Which service lines are running below target margin on average? Which routes need a price bump next season?

Save every quote. Run the season-end review. Keep margin per quote in the same sheet so you can sort and find the under-priced accounts in one pass. That conversation with a customer about a price bump is easier when you can show the math.

Common questions

What's a good gross margin target for landscape services?

Mowing and maintenance: 35-45%. Fertilization: 40-50%. Snow: 50-65% (higher to compensate for seasonal risk). Hardscape and install: 30-40% on materials, 50%+ on labor. Numbers vary by region and competitive pressure but these are reasonable starting points.

How do I calculate my labor burden if I don't have a CPA?

Pull your last full year of payroll. Add up: gross wages, employer FICA (7.65%), employer Medicare, state unemployment, federal unemployment, workers comp premium. Divide that total by gross wages alone. The difference is your burden percentage. Most US states land between 18-22%.

Is it better to quote per-visit or per-season?

Per-visit gives the customer visible per-event price; per-season locks in revenue and improves cash flow. Recurring mow contracts work either way. Fertilization and snow are usually quoted per-season because the program is multi-event. Pick the one the customer wants. Both are honest if the math is right.

Should I quote with markup or with margin?

Markup = (price - cost) / cost. Margin = (price - cost) / price. They're related but not the same number. A 50% markup is a 33% margin. Pick one and stick with it; most contractors think in margin (gross profit percentage) once they're past their first year.

What's the biggest mistake new landscape contractors make?

Quoting on visible labor time only. Drive time, equipment recovery, and overhead allocation are invisible until year-end, and by then you've burned through margin on dozens of accounts. The fix is to bake all four into every quote from the start.

Where does Garten fit in?

Two places. Get found brings in the call: the site, your Google profile, reviews tracked and answered, and an alert the moment a lead comes in. The Garten CRM does the math above for you: every quote carries labor, materials, equipment, subs and drive under each line and shows what you keep before you send it, and job costing compares what a job really took against what you priced it at.

Related reading

Put your work to work.

Leads, jobs and payments from the work you already do.

Get your free siteOr just text us(262) 501-3546

Free preview. No contract. The site is yours either way.