A customer sends three photos and asks what it will cost. Somewhere in your business, someone has to turn that into a number — and the faster the number arrives, the better your odds of winning the job. That is exactly the sort of task people now hand to AI, and it is also the sort where a confident wrong answer is expensive. So the useful question isn’t whether AI can write estimates. It can. The question is which parts of an estimate are lookup and arithmetic, and which parts are a judgement call that needs someone standing in front of the actual job.
What a model is genuinely good at here
An estimate is three things stacked on top of each other: a lookup, some arithmetic, and a piece of writing. The lookup is your price list — what you charge per square, per unit, per hour, per treatment. The arithmetic is quantities times rates plus travel, materials, and tax. The writing is turning that into something a customer can read, compare, and say yes to.
Two of those three are mechanical, and that is where AI earns its keep. Given a clean price file and a described scope, a model will assemble line items, apply the right rate, add the right surcharges, and write the whole thing in your voice in under a minute — at eleven at night, on a Sunday, while your estimator is asleep. It will also do the tedious parts nobody enjoys: restating the customer’s own words back to them accurately, listing what is included and what isn’t, and attaching the same terms to every quote so you stop discovering that half your estimates never mentioned the deposit.
Notice what is common to all of that. None of it is a pricing decision. It is retrieval, calculation, and formatting applied to a decision you already made when you set your rates. That is the boundary worth holding.
The things a photo won’t tell you
The reason AI estimating goes wrong is rarely the maths. It goes wrong because the input was incomplete and the model had no way of knowing that.
Access is the classic one. A roof measured off satellite imagery says nothing about the fence you can’t get a truck past, the neighbour’s tree, or the two storeys of steep pitch that change how you crew the job. Condition is the second. What’s under the surface — soft decking, an electrical panel that won’t take another circuit, ductwork that was never sized for the equipment being replaced — only reveals itself when someone opens it up. Third is the customer’s own description, which is honest and still wrong. People describe the symptom, not the scope. “A small leak” is a category, not a measurement.
In a med spa the gap is sharper still, because it isn’t only commercial. Suitability for a treatment is a clinical assessment, not a quote. A model can explain what a service involves and what it typically costs; it cannot look at a photo and decide that a particular person is a candidate for a particular treatment, and it shouldn’t try. Same principle in solar, where the number that matters depends on roof age, shading, panel capacity, and what the local utility and permitting office will actually approve.
Ranges, conditions, and the walk-back problem
The most common damage from AI-assisted estimating isn’t a lost sale. It’s a number your technician has to take back in the customer’s driveway. Once you’ve quoted firm and revise upward on site, you’ve turned a straightforward job into a negotiation, and you’ve given the customer a reason to doubt everything else you said.
The fix is structural rather than clever. Anything produced without eyes on the job goes out as a range, and the range is stated as a range in plain language — not a low number with a footnote. Every automated estimate carries the assumptions it was built on, so the customer can correct them before you arrive. It names what would move the price. It has an expiry date, because material costs move. And it says clearly whether it is a firm quote or a starting estimate, in words a distracted person reading on a phone will register.
Done that way, a fast range is a real advantage: the customer gets an answer while they’re still shopping, and you keep the right to price the job properly once you’ve seen it.
Setting it up so it stays under control
Start with the price file, because everything else is downstream of it. If your rates live in three spreadsheets and one estimator’s memory, the model will invent the gaps. One file, one owner, a date on it, reviewed on a schedule.
Then set hard guardrails: never quote outside the catalogue, never discount, never commit to a date the calendar hasn’t confirmed, and never produce a firm figure for a job type you’ve flagged as site-visit-only. When any of those trips, the answer is a booked assessment, not a smaller number. Flag the escalation categories deliberately — anything structural, anything medical, anything involving permits or an insurance claim, anything where the customer’s description is too vague to bound.
Then close the loop, which is the step almost everyone skips. Log every automated estimate alongside the amount actually invoiced, and read the gap weekly. That comparison is the only honest test of whether the system works, and it tells you something useful either way: consistently high and you’re losing jobs you could have won; consistently low and you’re training customers to expect a price you can’t deliver. Either pattern points at a specific line in your price file, or at a job type that shouldn’t be quoted remotely at all.
The split, in one line: automate the lookup, the maths, the writing, and the follow-up. Keep the pricing decision, the suitability call, and the moment you commit to a firm number with a human who has seen the job.
Want this built into your business, properly?
Start with a free lead audit. We time how fast your business answers a new inquiry and show you where leads slip through.
Book a 10-min call →