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.
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.
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.
| Block | What it covers | How a line is costed | Allowance it needs |
|---|---|---|---|
| Labour | Each task, from clearance to handover | Quantity x hours per unit x loaded hourly rate | Site set-up, protection and clean-up |
| Plants | Each plant type and pot size | Order quantity in whole plants x unit cost | Replacements under your guarantee |
| Materials | Soil, aggregate, paving, edging, mulch, fixings, delivery | Order quantity x unit cost | Cuts, breakage, compaction, settlement, overlaps |
| Waste and disposal | Spoil, green waste, packaging | Loads x price per load | Bulking of loosened material |
| Equipment and travel | Hire, your own plant, vehicle days, fuel | Days x day rate | None |
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
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 nowThe 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.
| Item | Working | Quantity |
|---|---|---|
| Turf strip | 62 m² x 0.05 m deep | 3.1 m³ |
| Shrub roots and branches | Allowance from the site visit | 1.5 m³ |
| Path excavation | 14 m² x 0.15 m deep | 2.1 m³ |
| Sub-base | 14 m² x 0.10 m deep | 1.4 m³ |
| Bedding grit | 14 m² x 0.04 m deep | 0.56 m³ |
| Topsoil for beds | 48 m² x 0.10 m deep | 4.8 m³ |
| Bark mulch | 48 m² x 0.05 m deep | 2.4 m³ |
| Edging | Measured along the bed lines | 36 m |
| Weed membrane | Bed area | 48 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.
| Task | Quantity | Hours per unit | Hours |
|---|---|---|---|
| Strip turf and clear old shrubs | 62 m² | 0.22 | 13.64 |
| Excavate path area and barrow away | 2.1 m³ | 3.5 | 7.35 |
| Lay sub-base, bedding and paving | 14 m² | 1.4 | 19.60 |
| Install edging | 36 m | 0.25 | 9.00 |
| Spread topsoil in beds | 4.8 m³ | 1.5 | 7.20 |
| Plant shrubs | 12 | 0.4 | 4.80 |
| Plant perennials and grasses | 28 | 0.15 | 4.20 |
| Spread mulch and membrane | 2.4 m³ | 1.0 | 2.40 |
| Final tidy, watering in, handover | 1 | 3.0 | 3.00 |
| Site set-up, protection, clean-up | 8% of task hours | 5.70 | |
| Total | 76.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.
| Plant | Planted | Order (5% allowance, rounded up) | Unit cost | Line cost |
|---|---|---|---|---|
| Shrubs, 3-litre pots | 12 | 13 | $24.00 | $312.00 |
| Perennials | 16 | 17 | $9.50 | $161.50 |
| Ornamental grasses | 12 | 13 | $11.00 | $143.00 |
| Plants total | 40 | 43 | $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.
| Item | Working | Allowance | Order | Unit cost | Line cost |
|---|---|---|---|---|---|
| Topsoil and soil improver | 4.8 m³ | 10% settlement | 5.3 m³ | $46.00 | $243.80 |
| Bark mulch | 2.4 m³ | 5% | 2.6 m³ | $52.00 | $135.20 |
| Sub-base aggregate | 1.4 m³ | 25% compaction | 1.8 m³ | $42.00 | $75.60 |
| Bedding grit | 0.56 m³ | 10% | 0.7 m³ | $55.00 | $38.50 |
| Porcelain paving | 14 m² | 10% cuts and breakage | 16 m² | $38.00 | $608.00 |
| Jointing compound | 14 m² | None | 14 m² | $2.50 | $35.00 |
| Steel edging | 36 m | 5% | 38 m | $6.50 | $247.00 |
| Weed membrane | 48 m² | 10% overlaps | 53 m² | $0.90 | $47.70 |
| Fixings and consumables | Lump | None | 1 | $40.00 | $40.00 |
| Delivery, two bulk loads | 2 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.
| Line | Working | Cost |
|---|---|---|
| Turf cutter hire | 1 day | $85.00 |
| Plate compactor (own plant, charge-out rate) | 1 day x $30 | $30.00 |
| Vehicle, fuel and small plant | 5 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.
| Line | Amount |
|---|---|
| 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 price | 25.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 price | Markup 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
- Recalculate the totals with a calculator, not with the assistant, and confirm the sheet and the calculator agree to the cent.
- 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.
- Check the units on every quantity: millimetres against metres is where most errors start.
- Check unit costs against the latest supplier invoices, not last season's.
- 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.
- Print assumptions and exclusions on the client version: access, underground services, hidden ground conditions, weather, and the terms of your plant guarantee.
- 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
- Kitchen Remodel Estimate Template: Line Items Written With ChatGPT — The same itemising method applied to a kitchen remodel.
- Landscape Design Proposal: Write Concept, Scope and Fees With AI — Write the design proposal that comes before the estimate.
- Best AI for a Landscaping Business: Eight Tools for Quotes, Calls and Crews — Eight AI tools for quotes, calls and crews, with prices.
- Demolition Estimate Template: Scope, Waste and Disposal Lines With AI — A second take on pricing waste and disposal lines.
- Siding Estimate Template: Squares, Trim and Waste Lines Written With AI — How another trade handles material waste factors.
- How to Create Quotes and Estimates in Minutes With AI — Faster quotes once your rates and templates are settled.
- Best Landscape Design Software With AI: What to Compare First — Which landscape design software with AI suits a small firm? Compare picture, price and calendar tools, with a rule by crew size and job type.
- Landscape Business AI Assistant: Build One for Quotes and Client Replies — Set up a ChatGPT or Claude Project that drafts landscaping quotes and replies from your price list, with ten test enquiries and handover rules.
- Commercial Landscaping Proposal: Bid Property Managers With AI Help — A four-building office park walked from site notes to a tiered, checked bid, with AI drafting the scope and you keeping control of the numbers.
- Garden Maintenance Contract: What Each Clause Is For, Drafted With AI — A clause-by-clause walk through a garden maintenance contract for a two-person business, with the reason for each clause and prompts to draft it in ChatGPT.
- Groundworks Quote Template: Dig, Drain and Base Lines Written With AI — A filled-in groundworks quote for a base and drain: the columns, the quantity sums, the provisional items and the prompt that turns site notes into lines.
- Hardscaping Business: Paver Patio Quotes From Site Photos With AI — Quote a paver patio from eight customer photos and three measurements: area, base, pavers, edging and labour lines, a price range, then a site visit.
- Jobber for Lawn Care: Quotes, Autopay and the AI Receptionist — Set up Jobber for a lawn care business: six quote templates, recurring jobs, autopay, the Receptionist add-on and the Core versus Connect sum with your numbers.
- Landscape Business AI Systems: Link Enquiries, Quotes, Crews and Invoices — One workflow map for a five-person landscape firm: seven handoffs between tools, what AI does at each, who checks it, and a four-week start.
- Labour Burden Rate: What Each Employee Really Costs a Trades Firm — Build a labour burden rate per employee from your payroll, with two worked trades examples and the unbillable hours most firms forget.
- Lawn Care Route Profitability: Is a New Customer Worth Taking On? — A per-stop profit test for lawn care: revenue per route hour, the cost of the extra drive, and a scoring sheet built with ChatGPT or Copilot.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
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.