How Landscapers Use AI to Stop Underpricing Jobs

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for How Landscapers Use AI to Stop Underpricing Jobs.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for How Landscapers Use AI to Stop Underpricing Jobs.

Use AI to compare your past estimates with what the jobs actually cost, turn the gaps into a pricing sheet built on your true cost per crew hour, overhead and margin, and have it check every new quote against a list of commonly forgotten items before it goes out. The AI finds the leaks; your own numbers set the price.

Most underpricing isn't a low day rate. It's missing hours and missing lines: travel and loading, spoil disposal, cutting waste on paving, the extra day digging out clay, plant delivery, the final tidy. A patio priced at six crew-days that takes seven and a half has lost a quarter of its labour before anyone notices. And one thing makes it worse: asking a chatbot "what should I charge for a patio?", which returns averages that know nothing about your crew, your ground or your costs.

Follow me on Instagram@sagnikteaches

Find the leak: estimated versus actual on your last 15 jobs

You can't fix underpricing you can't see. Pull your last 15 to 20 finished jobs into a spreadsheet with these columns: job type (hard landscaping, planting, maintenance, design and build), estimated crew-days, actual crew-days, estimated materials, actual materials, items bought that weren't on the quote, quoted price, and notes (clay, access, weather, customer changes). If you don't record actual hours yet, reconstruct them from timesheets or the diary as best you can, and start recording properly from today.

Connect on LinkedInSagnik Bhattacharya

Then ask an AI model to find the pattern, not to judge the jobs:

Subscribe on YouTube@codingliquids
Here are my last 15 jobs: estimated vs actual crew-days, estimated
vs actual materials, and anything bought that wasn't quoted.
By job type, tell me:
1. Average labour overrun, shown two ways: the average of each
   job's percentage, and total actual days vs total estimated days
2. Materials variance
3. Items that repeatedly appear as "bought, not quoted"
4. Which notes (clay, steps, access, weather) go with the biggest
   overruns
Show a table. Don't suggest prices.

An illustrative result for a four-person landscaping firm:

Hard landscaping (6 jobs): labour over by 27% (average of jobs),
22% (total days). Largest overruns: both jobs with clay, one with
steps. Materials within 4%.
Bought, not quoted: skips (4 jobs), mini-digger hire (3),
extra paving for cuts (3).
Planting (4 jobs): labour within 10%; aftercare watering visits
done but not quoted on all 4.
Maintenance (5 contracts): labour within 6%; drive time not
priced on any.

Two things to notice. The "two ways" instruction matters: the average of percentages (27%) is pulled up by one small job that doubled, while the total-days figure (22%) is the better guide for your pricing. Ask for both, and check the second one yourself in the spreadsheet. And the "bought, not quoted" list is usually worth more than the labour figure, because those items are easy to add and customers rarely argue with them.

Your real cost per crew hour

A day rate picked years ago, or copied from a competitor, is the most common root of landscaping underpricing. Work it out from your costs instead. An illustrative build-up for one two-person crew:

CostHow it's worked outPer crew hour
WagesLead $22 plus labourer $18 an hour$40.00
Employer costs on wagesPayroll costs, holiday pay, insurance: say 20%$8.00
Vehicle and trailer$19,200 a year over 1,600 productive hours$12.00
EquipmentMowers, cutters, compactor: running and replacement$6.00
Overhead share$48,000 a year (office, yard, software, insurance, owner's admin time) over 2 crews x 1,600 hours$15.00
Cost per crew hour$81.00

To make a 20% margin on labour, the price per crew hour is cost divided by 0.8: $101.25. If the firm has been charging $45 per person-hour ($90 per crew hour), its labour margin is about 10%, before any overrun. With the 22% overrun from the job comparison, hard-landscaping labour has been running at a small loss.

The figure that trips most firms is productive hours. Only hours spent working on customers' jobs recover these costs; driving, loading, rain days and quoting visits don't, unless you price them in. If your crews are productive for 1,400 hours a year rather than 1,600, every overhead line above goes up by about 14%. AI can build this sheet with you if you give it your annual costs; ask it to show every formula so you can check it.

Landscape-specific software works on the same principle. LMN (now part of Granum) has you build an operating budget and choose an overhead recovery method, so estimates are priced against it. If you'd rather not buy software, the spreadsheet above does the same job for a small firm.

Markup is not margin: the gap that eats profit

Many landscapers say "I put 25% on materials" and believe they make 25% on them. They don't. Markup is a percentage of cost; margin is a percentage of price.

Markup on costResulting margin on price
20%16.7%
25%20%
33.3%25%
50%33.3%
100%50%

A quick sum: $6,000 of materials with a 25% markup is priced at $7,500, which is a $1,500 profit and a 20% margin. For a true 25% margin the price needs to be $6,000 / 0.75 = $8,000. On that one job, the confusion costs $500. Decide whether you work in markup or margin, write the formula into the pricing sheet, and tell the AI which one you mean in every prompt; left to itself it will often assume markup.

The forgotten-items list AI checks every quote against

A checklist catches the lines that experience forgets on a busy week. Keep this list in a document the AI can read, and grow it every time the job comparison finds something new.

  • Site: access and protection boards for lawns and drives, fencing panels removed and replaced, neighbour notice.
  • Groundwork: excavation depth, spoil removal (soil takes up more room once dug, so allow extra when booking skips), sub-base volume and compaction.
  • Materials: cutting waste on paving and edging, pointing or jointing compound, drainage channels, membranes.
  • Plant: hire days, delivery and collection charges, fuel.
  • Disposal: skips or grab loads, green waste, tip fees.
  • Travel: daily travel time and mobilisation for sites more than a set distance away.
  • Finishing: final clean and jet-wash, turf repairs where plant tracked across the lawn.
  • Aftercare: watering visits after planting, a return visit to re-sand joints or re-level turf.
Check this quote against my forgotten-items list. For each item,
say INCLUDED (quote line), MISSING, or NOT RELEVANT (why).
Don't change any price. List missing items with a question I
need to answer to price them.

An illustrative reply for a 30 m² patio quote: "MISSING: spoil removal (30 m² dug to about 200 mm is roughly 6 m³ in the ground, more once loose; how many skips?); mini-digger delivery and collection; cutting waste on paving; turf repair along the access route. NOT RELEVANT: drainage channels (patio falls to the lawn, per your notes)." Five minutes, and four lines back on the quote.

Pricing maintenance so small visits aren't loss-makers

Maintenance rounds hide underpricing well, because each visit is small and regular. Run the sum per visit. For an illustrative solo operator whose cost per working hour (wages, van, equipment and overhead) is $45:

  • Weekly lawn cut: 30 minutes on site, 10 minutes' drive from the last stop, 5 minutes loading and clippings = 45 minutes, or $33.75, plus about $2 of green-waste disposal. Cost about $36. Price $40: a 10% margin.
  • Fortnightly cut, same lawn: longer grass takes 40 minutes on site, so 55 minutes in total, about $41 plus $3 of disposal. Cost about $44. Price $40: a loss on every visit.

The fortnightly customer on the weekly price is one of the commonest leaks in lawn care. The fix is a separate fortnightly price, and a minimum visit charge that covers the drive. Travel time depends on how tight the round is, which is where route planning for landscaping crews feeds straight back into pricing.

Design and planting work: the hours nobody counts

Soft landscaping leaks money in a different place: the hours before the spade goes in. A planting scheme involves a site visit, measuring, a sketch or design, a plant list, a trip to the nursery, and often a second meeting when the customer wants changes. Few firms record those hours against the job, so the comparison sheet shows planting as "within 10%" while the real overrun sits in the office.

An illustrative case: a border redesign quoted at $2,100 for plants, soil improvement and two crew-days of planting. The owner then spent about six hours on the design, two nursery trips and a revision meeting, none of it priced. At the firm's $101.25 crew-hour rate halved for one person (about $51 an hour), that's roughly $300 of unrecovered time, about 14% of the job. The fix was a design line on every planting quote, credited against the work if the customer goes ahead, and a column for pre-job hours in the comparison sheet so the AI can see them next quarter.

AI can also shorten those hours honestly. Ask it to turn your site notes and the customer's wishes into a first-draft plant list grouped by position (sun, shade, soil), then edit it with your own knowledge of what the local nurseries stock and what survives in that garden. It won't know your soil, but it saves the blank page.

Re-pricing a patio and planting job, before and after

Here is the whole method on one illustrative job: a 30 m² sandstone patio with two steps, plus a 12 m² planting border, for the same four-person firm.

The original quote priced 6 crew-days at $720 ($90 a crew hour), and $4,400 of materials with a 15% markup, for a total of $9,380.

What the job actually cost: 7.5 crew-days at the true $81 cost per crew hour ($4,860), materials of $4,590 including $190 of extra paving for cuts, three skips ($780), a mini-digger with delivery and collection ($500), and two watering visits ($162). Total cost: $10,892. The firm lost about $1,500 on a job it thought it had priced with a margin.

The corrected quote, built from the job comparison, the forgotten-items check and the new crew rate:

LineCostPrice
Labour: 7.5 crew-days, after a 25% allowance for clay and steps$4,860$6,075
Materials including 8% cutting waste on paving$4,590$5,738
Spoil removal: 3 skips$780$975
Mini-digger, 2 days, with delivery and collection$500$625
Aftercare: 2 watering visits$162$203
Total$10,892$13,616

The corrected price carries a 20% margin throughout. It's also 45% higher than the original, which tells you how far off the old method was. A jump that size will lose some jobs, so the firm's next step was to offer a lower-cost paving option at the same labour rate rather than shave the labour days, which is where the loss came from in the first place. Customers can choose a cheaper stone; they can't choose clay that digs faster.

When the customer changes the job halfway through

"While you're here, could you add a step down to the lawn?" is where a correctly priced job turns into an underpriced one. Price every change from the same sheet, before doing it, and send it in writing. The AI drafts this quickly from a voice note:

Extra work requested today: one additional sandstone step (1.8 m wide) down to the lawn, including dig-out, footing and matching slabs. Price $640: half a crew-day at $101.25 an hour, plus $235 of materials and footing concrete at our standard margin. Adds half a day. Reply "approved" and we'll build it tomorrow.

Check the arithmetic: half a crew-day is 4 hours at $101.25, or $405, and $235 of materials is the price already including margin, giving $640. Keep the "reply approved" line. A written yes stops the argument at the final invoice.

Replying to a customer who has a cheaper quote

Once your prices reflect real costs, some customers will come back with a lower number. The instinct is to match it. The better reply explains what your price includes, because cheaper quotes often leave out exactly the items your checklist added.

Before: "We can knock 10% off to match."

After, drafted by AI from your quote and edited: "Thanks for letting me know. Our price includes removing about 8 m³ of spoil in three skips, the digger's delivery and collection, 8% extra paving for cuts, and two watering visits for the new border. It's worth checking whether the other quote covers those. If budget is the issue, we could use a different stone at the same standard of work, which would bring it down by about $1,200."

That reply keeps the labour intact, gives the customer a real choice, and often reveals that the cheaper quote wasn't like for like.

Where AI makes underpricing worse

  • Market-rate questions. "What do landscapers charge per square metre for a patio?" gets a blended average from websites and forums, often out of date and with no idea of your ground or crew. The limits of AI pricing research explains why.
  • Unit slips. An illustrative sub-base calculation came back as "30 m² x 150 mm = 45 m³" because the model multiplied by 150 instead of 0.15. The right answer is 4.5 m³. A tenfold error on an aggregate order is easy to spot if you look, and expensive if you don't. More on this in what tradespeople should check before trusting an AI price.
  • Helpful rounding. Asked to "tidy up" a quote, AI sometimes rounds lines down to friendlier numbers. Tell it never to change a price.
  • Competitor anchoring. Competitors' published "from" prices are for their simplest job. Matching them for a complex one is a fast way to lose money.

A quarterly price check in half an hour

Pricing drifts as wages, fuel and supplier prices move. Once a quarter, update the job sheet with the latest finished jobs, re-run the estimated-versus-actual prompt, and ask one more question: "Compared with last quarter, which job types and cost lines have moved by more than 5%?" An illustrative answer: "Planting labour now within 5% (was 10%) since aftercare was added to quotes. Hard landscaping still 18% over on labour; clay jobs account for most of it. Aggregate prices up 7% since the last merchant price list."

From that you'd raise the clay allowance, update the aggregate price, and leave planting alone. If a price rise for existing maintenance customers follows, write it carefully and give notice. For margin checks beyond landscaping, checking margins line by line with AI uses the same approach.

Pricing is also where showing customers the finished result can help justify the number; AI garden design visuals in quotes looks at whether that closes more jobs at a fair price. And if you're not sure where AI should come first in your business at all, where landscapers should start with AI is the place to begin.

Pricing questions landscapers ask about using AI

Can AI tell me the going rate for landscaping work?

It can give you broad averages, but those blend very different firms, ground conditions and markets, so they're a poor basis for your price. Your own cost per crew hour, your past jobs' actual hours and your suppliers' prices are far better inputs. Use AI to analyse those, and treat any market figure it gives as a rough sense-check at most.

How many past jobs do I need before the comparison is useful?

Ten to fifteen jobs of the same type is enough to see a pattern, such as hard landscaping consistently running over on labour. Fewer than five tells you about those jobs, not your pricing. Start recording estimated and actual hours on every job now, even roughly, so next quarter's check has real numbers behind it.

Won't higher prices lose me work?

Some, and that can be healthy if the work you lose was losing you money. Before raising prices across the board, fix the items you were forgetting, since customers rarely argue with a line for skip hire or plant delivery. For the rest, compare win rates before and after for a couple of months, and change specifications rather than cutting labour when a price is too high for a customer.

Should I show customers a line-by-line breakdown of my price?

For larger jobs, a breakdown by stage builds trust: groundwork, paving, disposal and skips, plant hire, planting and aftercare. Customers rarely argue with a visible skip line. Don't show your hourly cost, overhead share or margin; present labour per stage rather than per hour. AI can turn your internal build-up into a customer version in a couple of minutes, but check every figure matches.

Further reads

Sources: LMN by Granum support page on building an operating budget and overhead recovery. Checked September 2026.

Want to know which of your jobs are losing money?

On a 1:1 call we'll look at your recent jobs' estimated and actual hours, work out your real cost per crew hour, and set up a quote check that catches the items you tend to miss.

Book a 1:1 call with me