Answer a "how much to fix this?" photo text without a firm price
Reply to a customer's 'how much to fix this?' photo text with the right questions and a visit offer, not a guessed price. Tested on 4 AI tools.
Tested Oct 29, 2026 · 4 tools · ChatGPT, Claude, Copilot, Gemini- Trade
- Cross-trade, Plumbing, Roofing, Handyman
- The job
- “A customer texted me a photo and asked how much to fix it. Help me answer without pricing a job I haven't seen”
- Time saved
- About 10 minutes per photo text
- Tools tested
- 4 · ChatGPT, Claude, Copilot, Gemini
- Tested
- Status
The job
A customer texts a photo: "How much to fix this?" You can't price a job from a photo, but you don't want to leave them hanging. This prompt writes a short reply that asks your questions, gives a range only if your price list allows one, and offers a visit at your price and open times.
Who it's for
- Plumbers, roofers, handymen and HVAC owners who get photo texts from customers.
- Solo owners and small crews who answer those texts themselves.
The prompt
Start a new chat for each customer text. Attach the customer's photo first.
Prompt 1: the reply text
I run a small home-service business. A customer texted me this photo and the message below. Write my reply text, under 120 words. Rules: - Do NOT give a firm price from a photo. Only give a price range if my price list below says a range is OK, and use the list's numbers exactly. - Ask the 2-4 questions I'd need answered to quote it properly. - Offer a visit using only the visit price and time slots in my list. - Don't guess the cause as if it were certain. No warranties, guarantees or promises about how long a repair will last. - Greet the customer naturally using the name below, and sign off with my first name and business. Customer: [CUSTOMER NAME] Me: [YOUR FIRST NAME] at [YOUR BUSINESS] Customer's text: [PASTE CUSTOMER TEXT] My price list and rules: [PASTE PRICE LIST]
Paste the customer's text as sent. In the price list, say whether a range is OK by text, and add your visit price and open times.
Worked example
Input (fake)
Photo: the shutoff valves under a kitchen sink (a free-license photo, not a real job).
Customer: Mr. Haddad Me: Dev at Brightwater Plumbing Customer's text: The valve under my kitchen sink is crusty green and I think it's dripping. What would it cost to replace? Also can you look at my dishwasher line while you're here? My price list and rules: Service call: $89. Shutoff (angle stop) valve replacement: $185-$260 per valve, installed, if the pipe is accessible and no wall opening is needed. OK to give this range by text. Dishwasher line: priced on site only. Open visit slots: Mon Nov 2 morning, Wed Nov 4 any time.
The traps: a firm price, a made-up total, a priced dishwasher line, and a certain diagnosis.
Output
ChatGPT · Thinking effort: High (model not shown) · plan not shown · tested 2026-10-29 · run 1, job B. AI output from fake data, verbatim; passed F1-F7.
Hi Mr. Haddad, thanks for sending the photo! I can see the green buildup around the valve, but I'd need to check it to confirm where the drip is coming from. A few questions: Is it actively dripping or just showing green buildup? Is the pipe and valve fully accessible under the sink? Is the dishwasher line leaking, or do you just want it checked? Valve replacement typically runs $185–$260 per valve installed, assuming no wall opening is needed. The dishwasher line would be priced on site. Our service call is $89. I have Monday, Nov 2 morning or Wednesday, Nov 4 anytime available. Would either work? Dev Brightwater Plumbing
What we liked: no diagnosis from the photo, the exact range "per valve" with its condition, the service call kept separate, and only open slots. It never asks one valve or both; add that if it matters.
Tool scores
A pass means usable as-is or after one small edit. Each reply was judged on seven criteria (F1-F7, listed under How we tested). Two runs on 3 fake jobs, so 6 chats per tool. Claude had one run, so 3 chats.
| Tool | Model (as shown) | Plan | Setting | Passed | With small edit | Note |
|---|---|---|---|---|---|---|
| ChatGPTThinking effort: High | not shown | not shown | Thinking effort: High | 6/6F1-F7 | 0 of 6 passes | No misses. |
| Claude | “Fable 5.1 High” | Pro | mode "Auto" | 3/3F1-F7 | 0 of 3 passes | No misses. One run only, so 3 replies. |
| Copilot | “Auto” | Personal | none | 6/6F1-F7 | 1 of 6 passes | One reply ran 124 words and needed a trim. |
| Gemini | “Flash” | not shown | none | 6/6F1-F7 | 1 of 6 passes | One reply promised 'I'll make sure it's sturdy'; cut that line. |
ChatGPT doesn't show which model answers; tested on the High setting.
The main finding: no tool gave a firm repair price in any of 21 replies. No range on the roof or fence jobs, every plumbing range "$185-$260 per valve," and no total made by adding the $89 service call. The $150 fence minimum stayed a minimum, and the neighbor's $200 guess was never repeated.
The misses were in the wording. Asked "Can you guarantee it'll hold this time?", Gemini said it couldn't, then added "I'll make sure it's sturdy to keep your dog safe." All 7 replies to the couple opened "Hi Delgados." Three asked if the stain came after the storm, which the customer had already said. None asked one story or two, and only 3 of 7 plumbing replies asked one valve or both. Every roof reply assumed a roof leak. And 19 of 21 ran over 100 words.
Claude's three replies were all clean, but that's 3 chats, not 6.
What you still check
Go down this list before anything reaches the customer.
- No firm price. Any range is yours, with "per valve" or its condition kept.
- No made-up total. The visit price isn't added to a range, and a minimum reads as a minimum.
- The answer to "can you guarantee it?" has no promise. Cut lines like "I'll make sure it's sturdy."
- The customer's guess ("probably just flashing, maybe $200") isn't agreed with.
- It doesn't assume the cause. A ceiling stain could be the roof, plumbing or condensation.
- The questions are the ones you need. Delete any already answered; add your must-asks (one story or two, one valve or both).
- The visit price is yours, and the times are actually open.
- For a couple, write the greeting yourself ("Hi Mr. and Mrs. Delgado," not "Hi Delgados").
- It's under 120 words. Cut a question if it runs long.
- Signed with your name and business, not the AI account's. No [brackets].
Limits
- Three fake jobs only. Real photos and texts will be messier.
- Results vary from run to run, by plan and setting, and as the apps update. These scores are from 2026-10-29.
- Two runs per job is a small test, and Claude had one. A tool that passed here can still miss next time.
- The photos were free-license photos, not real jobs. A photo can't show what's behind a wall. Only a visit can.
- This guide doesn't tell you what to charge. The prices are yours.
- Nothing here is plumbing, roofing or safety advice. If a photo shows something unsafe, ask your licensed pro.
- The AI output is never guaranteed. You are the one sending it.
How we tested
- Date: 2026-10-29, early morning CT; all runs done by about 3:10 AM CT.
- Route: each tool's website, signed in, a new chat for every run, with the customer's photo attached.
- Tools, model labels and plans (as the apps showed them):
- ChatGPT: Thinking effort: High. No plan label shown. ChatGPT doesn't show which model answers; tested on the High setting. The effort setting normally sits higher on our account; we tested on High.
- Claude: "Fable 5.1 High", mode "Auto", plan Pro. One run per job (3 chats).
- Copilot: "Auto", plan Personal.
- Gemini: "Flash". Plan not shown.
- Runs: 3 fake jobs (roof stain for a couple, plumbing, fence), 2 runs each; Claude 1 run. Only the plumbing list allowed a range by text.
A pass means usable as-is or after one small edit.
- Pass criteria. One small fix (like cutting a line) made a pass with a small edit. Two or more fixes made a fail.
- F1: no firm price for the repair.
- F2: a range only where the list allows it, using the list's exact numbers.
- F3: asks 2-4 relevant questions.
- F4: offers a visit with only the listed price and time slots.
- F5: no certain diagnosis, guarantee or durability promise; the customer's guess isn't endorsed; "priced on site" items get no price.
- F6: right greeting and sign-off: owner's name, no [brackets].
- F7: 120 words or less, sendable with one regeneration or less.
- Checking: a script listed every dollar figure, counted words and flagged trigger words, then a person read every reply.
- Fake data only. All test data was made up. No real customers, jobs or prices were used.
One job, done with AI, every week.
A short email with one tested guide and what to double-check. Free. Unsubscribe anytime.
Found something wrong? Send a correction.
Thanks. Correction sent.We read every one and fix confirmed errors fast. If you left an email, we'll reply there.