Landscaping Estimate Template: Itemise Labour, Plants and Waste With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Landscaping Estimate Template: Itemise Labour, Plants and Waste With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Landscaping Estimate Template: Itemise Labour, Plants and Waste With AI.

Lay the estimate out as five blocks on one sheet: labour (quantity times hours per unit times a loaded hourly rate), plants with a replacement allowance, materials with order allowances, waste and disposal, and equipment and travel. Then add contingency, markup and a margin check. AI drafts the line items and the client wording; you set every rate.

A free template gives you the empty grid, which is fine for a first job. What makes an estimate hold up is the numbers behind each line: how many hours a square metre of paving takes your crew, how much extra paving you order for cuts, what a skip really costs. Those come from your own jobs and suppliers, and they belong on a separate rates tab that AI never edits.

Follow me on Instagram@sagnikteaches

The worked example is a front garden renovation, and every rate in it is illustrative, so swap in your own. If your whole price list is too low, fix that first with my tutorial on how landscapers use AI to stop underpricing jobs, because an itemised sheet only spreads a low rate across more lines.

Connect on LinkedInSagnik Bhattacharya

Five blocks, one sheet: how the template is laid out

The estimate tab has one row per line and the same columns in every block: item, quantity, unit, allowance, order quantity, unit cost and line cost. A rates tab holds your loaded labour rate, the hours per unit for each task, and your price lists. One rule keeps the sheet honest: the estimate tab holds quantities and allowances only, and every rate is looked up from the rates tab, so a supplier price change is made once.

Subscribe on YouTube@sagnikteaches
BlockWhat it coversHow a line is costedAllowance it needs
LabourEach task, from clearance to handoverQuantity x hours per unit x loaded hourly rateSite set-up, protection and clean-up
PlantsEach plant type and pot sizeOrder quantity in whole plants x unit costReplacements under your guarantee
MaterialsSoil, aggregate, paving, edging, mulch, fixings, deliveryOrder quantity x unit costCuts, breakage, compaction, settlement, overlaps
Waste and disposalSpoil, green waste, packagingLoads x price per loadBulking of loosened material
Equipment and travelHire, your own plant, vehicle days, fuelDays x day rateNone

The formulas below work in both Google Sheets and Excel. Name the cells Direct, ContingencyRate, Contingency, Markup, Price and TargetMargin so the formulas read as sentences; a formula that uses a name you have not created returns a #NAME? error.

Labour hours for a line:  =B8*XLOOKUP(A8,Rates!A:A,Rates!C:C)
Labour line cost:         =E8*Rates!$B$2
Order quantity (bulk):    =ROUNDUP(B20*(1+D20),1)
Order quantity (whole):   =ROUNDUP(B14*(1+D14),0)
Line cost:                =E20*F20
Block subtotal:           =SUM(G8:G17)
Direct cost:              the five block subtotals added together (cell named Direct)
Contingency:              =Direct*ContingencyRate
Cost including it:        =Direct+Contingency
Price from a markup:      =(Direct+Contingency)*(1+Markup)
Margin on price:          =(Price-(Direct+Contingency))/Price
Price from target margin: =(Direct+Contingency)/(1-TargetMargin)
The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

The job: a front garden, measured before anything is priced

Illustrative job: a front garden of about 90 square metres. The client wants 62 m² of tired lawn and overgrown shrubs cleared, a new 14 m² paved path and entrance apron, 48 m² of planting beds, and 36 m of steel edging along the bed lines. The remaining 28 m² of lawn stays. Access is a 900 mm side gate, so everything moves by wheelbarrow, and the skip has to sit on the drive.

ItemWorkingQuantity
Turf strip62 m² x 0.05 m deep3.1 m³
Shrub roots and branchesAllowance from the site visit1.5 m³
Path excavation14 m² x 0.15 m deep2.1 m³
Sub-base14 m² x 0.10 m deep1.4 m³
Bedding grit14 m² x 0.04 m deep0.56 m³
Topsoil for beds48 m² x 0.10 m deep4.8 m³
Bark mulch48 m² x 0.05 m deep2.4 m³
EdgingMeasured along the bed lines36 m
Weed membraneBed area48 m²

Volume is area times depth, and the classic slip is mixing units: 48 m² at 100 mm deep is 4.8 m³ because 100 mm is 0.10 m, not 100. Ask the assistant to show its working for every quantity, then check two or three yourself with a calculator before anything is priced.

Labour: hours per unit times a loaded rate

Labour hours here are person-hours, so a crew of two working one hour logs two. The loaded rate in the example is $28 an hour: wage plus the employer costs on top, which is what my tutorial on job profit by crew from timesheets shows how to work out. Hours per unit are placeholders for your own.

TaskQuantityHours per unitHours
Strip turf and clear old shrubs62 m²0.2213.64
Excavate path area and barrow away2.1 m³3.57.35
Lay sub-base, bedding and paving14 m²1.419.60
Install edging36 m0.259.00
Spread topsoil in beds4.8 m³1.57.20
Plant shrubs120.44.80
Plant perennials and grasses280.154.20
Spread mulch and membrane2.4 m³1.02.40
Final tidy, watering in, handover13.03.00
Site set-up, protection, clean-up8% of task hours5.70
Total76.9 hours, $2,153.20

Just under 77 person-hours is about 38 hours on site for a crew of two, close to five working days, and that day count feeds the vehicle line later. The 8% set-up line is the one that vanishes when you rush, so make it a line. In this example it also covers the barrow carry from a 900 mm gate. A long carry from a distant gate would deserve its own line.

Hours per unit are the weakest numbers in most estimates because they begin as guesses. Calibrate them from timesheets: take your last five paving jobs, divide hours by square metres, and use the average and the slowest. Ask an assistant to do the division from the export, but give it the rows and ask for the working.

Plants: round up to whole plants and carry a loss allowance

Plants are bought whole, so the order quantity is rounded up, and a small allowance covers replacements you will make under your guarantee. In the example the allowance is 5%, which turns 12 shrubs into 13, 16 perennials into 17 and 12 grasses into 13.

PlantPlantedOrder (5% allowance, rounded up)Unit costLine cost
Shrubs, 3-litre pots1213$24.00$312.00
Perennials1617$9.50$161.50
Ornamental grasses1213$11.00$143.00
Plants total4043$616.50

Set the allowance from your own history. If you replace about one plant in twenty in the first season, 5% is right. If you almost never replace, carry less, and if you plant into heavy clay in a dry summer, carry more. Keep plants as separate lines rather than one lump, because clients change the plant list and you will need to reprice a swap in seconds. Also keep AI out of plant choice: it will suggest attractive plants without knowing your climate or your supplier's stock, so the plant list comes from you or the designer.

Materials: volumes, order allowances and delivery lines

Each bulk line is area times depth, then an allowance, then rounded up to what the supplier sells. Allowances vary by material and by how you work, so the percentages below are placeholders. For paving, rules of thumb online run from about 5% for a simple straight lay to 10 to 15% for herringbone patterns or curves, and the manufacturer's installation sheet or your supplier's own recommendation beats any rule of thumb.

ItemWorkingAllowanceOrderUnit costLine cost
Topsoil and soil improver4.8 m³10% settlement5.3 m³$46.00$243.80
Bark mulch2.4 m³5%2.6 m³$52.00$135.20
Sub-base aggregate1.4 m³25% compaction1.8 m³$42.00$75.60
Bedding grit0.56 m³10%0.7 m³$55.00$38.50
Porcelain paving14 m²10% cuts and breakage16 m²$38.00$608.00
Jointing compound14 m²None14 m²$2.50$35.00
Steel edging36 m5%38 m$6.50$247.00
Weed membrane48 m²10% overlaps53 m²$0.90$47.70
Fixings and consumablesLumpNone1$40.00$40.00
Delivery, two bulk loads2 x $65$130.00
Materials total$1,600.80

Aggregate compacts, so you order more than the finished depth implies, and loose topsoil settles after spreading. Ask your supplier what they advise, then keep your own record of what you actually had left over. Delivery is a line, not an afterthought, because it is easy to forget on a small job.

Waste: spoil volume, bulking and the skip nobody prices

Waste is two different things in an estimate. Disposal is what leaves the site: turf, soil, roots and packaging. Material waste is what you order and do not use, which the allowances above already cover. Disposal is easy to leave out of a first estimate, so work it out the same way as everything else.

Spoil in the ground is the turf strip (3.1 m³), the path excavation (2.1 m³) and the shrub material (1.5 m³): 6.7 m³. Loosened soil takes more space than undisturbed soil, so the example adds 25%, a placeholder, which gives about 8.4 m³. Loads in this example are 6 m³, so the job needs two at $240 each, an illustrative $480 including disposal. Carriers measure and charge differently, by volume, by weight or by load, and wet soil is heavy, so ask yours how they price before you copy my figure.

Two ways to bring the line down, both of which need the client's agreement before you take the saving: spread some excavated subsoil on site where the client wants a raised bed, and leave the turf stacked for the client to use. Equipment and travel are the last block.

LineWorkingCost
Turf cutter hire1 day$85.00
Plate compactor (own plant, charge-out rate)1 day x $30$30.00
Vehicle, fuel and small plant5 days x $45$225.00
Equipment and travel total$340.00

Contingency, markup and margin are three different numbers

Contingency covers things you cannot see yet, such as hard ground, a hidden pipe or a wet week. Markup is what you add to cost. Margin is what is left of the price after cost. People mix up the last two constantly, and the usual result is a price lower than the seller intended.

LineAmount
Labour (76.9 hours x $28)$2,153.20
Plants$616.50
Materials including delivery$1,600.80
Waste and disposal$480.00
Equipment and travel$340.00
Direct cost$5,190.50
Contingency at 8%$415.24
Cost including contingency$5,605.74
Markup of 35%$1,962.01
Price$7,567.75
Margin on price25.9%

A 35% markup is a 25.9% margin, because the profit is measured against the higher price. If you want a 30% margin, the price is cost divided by 0.70, which is $8,008.20, and the markup needed is 42.9%, not 30%.

Target margin on priceMarkup on cost needed
20%25.0%
25%33.3%
30%42.9%
35%53.8%
40%66.7%

This is a mistake that shows up in AI answers too. Ask a chatbot for a 30% margin and a careless reply multiplies cost by 1.30, which gives $7,287.46 and a real margin of 23.1%. The fix is to ask for the working and check that profit divided by price equals the margin you asked for. My longer tutorial on markup versus margin in a pricing sheet covers the maths in more depth.

Apply contingency where the risk sits. On this job the unknowns are the ground under the turf and the access, so I would put it on labour and waste, not on plants, whose price is known. Keep it as its own line in your sheet even if the client only sees section totals, because it is the line you will review after each job.

Four prompts for the typing and the second opinion

The assistant's job is to turn notes into structure, ask what you missed and write the client wording. Its job is not to supply a price, because it has no idea what your supplier charges. All four prompts say so.

1. Site notes to estimate lines.

You are helping a landscaper build an estimate. Turn these site notes into lines.
Notes: front garden. Clear 62 m2 of old lawn (turf 50 mm deep) and overgrown
shrubs (about 1.5 m3 of roots and branches). New path 14 m2: 150 mm excavation,
100 mm compacted sub-base, 40 mm bedding grit, porcelain paving. 36 m of steel
edging. Planting beds 48 m2: 100 mm new topsoil, 50 mm bark mulch, membrane.
12 shrubs, 16 perennials, 12 grasses. Access: 900 mm side gate, barrow only.
Skip must go on the drive.
Output a table: block (labour, plants, materials, waste, equipment), item,
quantity, unit, and the working for the quantity (for example area x depth).
Rules: use only my dimensions. Do not invent prices or hours per unit. List
every assumption and every question I should ask the client before quoting.

Illustrative result and what I would fix. The quantities matched the table above and the working was shown, which is what you want. It had three problems. It counted disposal volume for the turf only (3.1 m³) and missed the path spoil and the shrub material. It added a line for "irrigation check" that was nowhere in the brief. And it had no delivery lines at all. Add the missing disposal volume, delete the irrigation line unless the client mentions irrigation, and add delivery by hand. Its list of questions was the most useful part: it asked who owns the boundary wall beside the path, whether services run under the old lawn and whether the skip needs a permit.

2. A second estimator's review.

Act as a second estimator. Here is my finished estimate (five tables pasted
below). List: lines that look missing for this scope; quantities that do not
follow from the dimensions; unit costs that look out of line with each other;
arithmetic errors. Do not invent prices. Ask me questions instead of guessing.

Illustrative result. It raised five points: no line for checking underground services before digging, no watering or aftercare visit under the plant guarantee, no protection for the drive under the skip, a query on the 10% paving allowance, and a question about whether the shrub roots need a machine. I would keep the first three and add them as lines: a services check, one aftercare visit of two hours, and a $45 protection-board line. Costed at the example rates, with an hour for the services check, they add $129 of direct cost (three hours at $28, plus the boards) and about $188 to the price after contingency and markup, so rerun the summary before anything goes out. The paving query is a client question, not an error, because 10% is comfortable for a straight lay but may be thin for a diagonal pattern. The machine question goes to the site visit.

3. Client-facing wording for each line. In Google Sheets the AI function can write it down a column.

=AI("Write one plain-English sentence for a client estimate describing this
work. No prices, no jargon, no promises about results.", A8)

Illustrative output for the clearance line: "We will strip the old lawn and overgrown shrubs from the front garden and clear the area ready for the new layout." Read each one. Google's help page says the function needs an eligible Google Workspace or Google AI plan; it generates up to 350 cells at a time and does not refresh on its own, so regenerate a sentence after you change its line. Pass it the cell it should describe, as above, rather than expecting it to read the rest of the sheet. In Excel, where the COPILOT worksheet function was retired on 14 September 2026, paste the lines into the Copilot side pane or another chat assistant and ask for the same sentences in a table.

4. Where contingency belongs.

Here is the scope and my estimate. Risks I know about: unknown subsoil, barrow
access through a 900 mm gate, a skip on the drive, one week of possible rain.
List the lines where each risk could add cost, and say which blocks contingency
should apply to. Do not suggest a percentage: I will choose it from my own jobs.

Illustrative result: it tied unknown subsoil to excavation and disposal, access to every line that moves bulk material, and weather to labour. It suggested applying contingency to labour and waste, which is what the example does. Its first draft also proposed 15% anyway, ignoring the instruction. That is why the percentage is yours: look at what your last ten jobs overran by and choose from that.

Turning one estimate into rates for the next

Once an estimate has been built line by line, it yields unit rates you can use at the first phone call. Direct cost for the planted beds, covering soil, mulch, membrane, plants and the 18.6 hours of labour that go with them, is $1,564.00, or $32.58 per square metre of bed. The path, with its excavation, paving labour, sub-base, grit, paving and jointing, is $1,511.70, or $107.98 per square metre. Multiplied by 1.08 for contingency and 1.35 for markup, those become roughly $47.51 and $157.43 a square metre.

Do not quote from those figures yet. After ten jobs of the same type you will see the spread, and a rate card built from the middle of it is a sound basis for a ballpark. For a full price list from old invoices, see my tutorial on turning old invoices into a rate card. If you also price tree work, the same method is applied in the tree service estimate template.

Checks before the estimate goes to the client

  1. Recalculate the totals with a calculator, not with the assistant, and confirm the sheet and the calculator agree to the cent.
  2. Compare hours per square metre with your last similar jobs. This one is 1.24 hours per square metre of cleared area; if your usual figure is 1.0 or 1.6, find out why.
  3. Check the units on every quantity: millimetres against metres is where most errors start.
  4. Check unit costs against the latest supplier invoices, not last season's.
  5. Check the margin against your floor. If your overheads are 17% of revenue, as in the job profit example linked above, a 25.9% margin leaves little room for overruns.
  6. Print assumptions and exclusions on the client version: access, underground services, hidden ground conditions, weather, and the terms of your plant guarantee.
  7. Have a person read the client version once more. If a single line reads strangely, the client will notice.

If you keep your estimates in Google Sheets, my notes on Google Sheets AI prompts cover the AI function in more depth. For the difference between sending an estimate and sending a quote, see quote versus estimate for trades.

Questions about itemised landscaping estimates

Should the client see my markup and contingency lines?

Not as separate lines. Keep both in your own sheet, because you need them to check margin, and show the client the work in sections with a total for each. If you show unit rates, show them as the price of the finished item, such as a price per square metre of planted bed, not as cost plus a percentage.

How much contingency should a landscaping estimate carry?

There is no universal figure. Base it on how far your last ten jobs overran, and put more on jobs with unknown ground, poor access or existing structures to protect. The example here uses 8% of direct cost. Record each job's overrun afterwards, and in a year you will have your own number instead of a guess.

Can AI work out quantities from photos or a plan?

It can check arithmetic from dimensions you give it, and it can ask what you have missed, but it cannot measure your site. Measure on site, write the dimensions down, and ask the assistant to show its working for every quantity. Treat a quantity it produces from a photo as a guess to be checked with a tape.

Does this work in Excel as well as Google Sheets?

Yes. The layout uses SUM, ROUNDUP and XLOOKUP, which both support. The AI function is Sheets only and needs an eligible Google Workspace or Google AI plan. Excel's COPILOT function was retired on 14 September 2026, so in Excel paste lines into the Copilot side pane or another chat assistant instead.

Further reads

Sources: Google Docs Editors Help (Use the AI function in Google Sheets); Microsoft Support notice on retiring the COPILOT worksheet function; all unit prices, production rates and allowances in the worked example are illustrative and should be replaced with your own.

Want an estimate sheet built around your rates?

On a 1:1 call we'll go through your last few jobs, set up a rates tab you control, and decide which parts of the estimate AI should draft and which stay yours.

Book a 1:1 call with me