Every home-service owner has had this argument with themselves. You’re building or redoing the website, and you hit the pricing question. Half of you says put the prices up — customers want to know, and the ones who call just to ask “how much” waste my team’s time. The other half says are you crazy? A number scares people off before they understand the value, and every competitor in town will screenshot it and undercut me by twenty bucks.
Both halves are right, which is why this is hard. So let’s drop the slogans (“transparency always wins!” / “never show your hand!”) and walk the actual economics: what hiding costs you, what showing costs you, and the middle path that captures most of the upside without the downside.
What hiding prices actually costs
Start with the side most owners underweight, because it’s invisible. When you hide every price, you don’t see the customers you lost — they just never call.
Here’s the behavior. A homeowner with a clogged main or a dead AC is comparing three companies on their phone — and not just on Google. They’re cross-checking ranges on Angi and Thumbtack, reading HomeAdvisor’s “True Cost” guides, scanning Yelp (where “Request a Quote” already surfaces a ballpark), and asking neighbors on Nextdoor. Two of your local rivals give a starting price or a service-call fee right on the page. Yours says “Call for pricing.” For a meaningful slice of those people, “call for pricing” reads as this is going to be expensive and they don’t want me to know until they’ve got me on the phone. So they call the other two first. You never enter the consideration set, and it never shows up as a loss anywhere — it shows up as “we need more leads.”
The benchmark data is worth getting right, because it’s often quoted loosely. WebFX’s home-services benchmarks put the industry-wide website conversion rate at roughly 7.8%, with urgent/emergency trades like plumbing converting around 12–16% (people in a burst-pipe situation book fast) and higher-consideration trades like HVAC, roofing, and remodeling closer to 3–7%. Separately, LocaliQ reports a 7.33% average for search ads, with Cleaning/Maid services as high as 17.65% — but that’s a search-ad (LSA/PPC) conversion rate, not a website rate, so don’t conflate the two. The honest takeaway isn’t a magic transparency number; it’s that conversion varies enormously by trade and urgency, and a customer who can’t find a ballpark is a customer who keeps shopping. Adding clear starting prices, an instant-quote form, or an online-booking step is a reasonable lever to reduce that “can I afford this?” friction — just measure the lift yourself rather than trusting a vendor’s blog stat.
The quieter cost is lead quality. When you hide pricing entirely, the calls you do get are heavily weighted toward price-shoppers who are calling everyone precisely because nobody listed a number. You’ve selected for the exact caller you complain about — and your cost per lead goes up while your close rate goes down.
What showing prices actually costs
Now the other side, honestly. There are two real risks, and a website agency that tells you there aren’t is selling you something.
Risk 1: A naked number scares the wrong way. “$189.” On its own, that’s just a figure to comparison-shop, and yes, some people will bounce. But notice the fix isn’t hide the number — it’s frame the number. “$189 diagnostic, credited toward your repair, same-day availability, fully licensed and insured” does the opposite of scaring people. The price isn’t the problem; the contextless price is.
Risk 2: False precision you can’t honor. This is the one that genuinely burns owners. You post “Water heater install: $1,200,” a customer books expecting $1,200, and on site it’s a $2,400 job because of code upgrades, a different fuel type, and a tight closet. Now you’re the company that “lied about the price” — which damages trust worse than never posting one. This risk is real, and it’s exactly why the answer for variable work is ranges and “starting at,” not fixed numbers.
The competitor fear — that rivals will see your prices — is mostly a phantom. Assume your competitors already know roughly what you charge; they can mystery-shop you in an afternoon, and ranges for your trade are already public on Angi, Thumbtack, Yelp, and HomeAdvisor. Hiding prices from competitors means hiding them from customers, and the website exists for customers, not competitors. If your only advantage is a price nobody can find out, that’s not a moat.
The middle path: how to show price without overcommitting
You almost never have to choose between “full price list” and “call for pricing.” There’s a spectrum, and the skill is matching the format to how variable the job is.
Starting-at prices
“Drain cleaning starting at $99.” “Standard tune-up from $89.” This sets a floor, qualifies the budget-conscious, and is honest as long as that floor is real and reachable. (All figures here are illustrative — use your own real numbers, not these.) Best for standardized services with a clear entry-level version.
Price ranges
“Most water-heater installs run $1,400–$2,800, depending on tank size, fuel type, and any code upgrades.” A range plus the two or three factors that move it is the single most useful format for variable work. It’s credible because it admits the variation instead of pretending it away. Customers don’t expect a binding quote from a webpage — they expect a believable ballpark.
Flat-rate menus
For repeatable, well-defined jobs, a flat-rate menu (the price is the price, regardless of how long it takes) is a genuine trust and conversion weapon. It removes the homeowner’s biggest fear — the meter running. Cleaning companies, drain specialists, and many plumbing tasks live here. The flat-rate menus you see from polished operators are usually built in software like ServiceTitan, Housecall Pro, or Jobber (often on top of a price book like Profit Rhino), which keeps the numbers consistent from the website to the tech’s tablet.
Good-better-best tiers
For repairs and replacements where there’s a real choice — a basic, a mid, and a premium option — present three tiers rather than one number. Good-better-best pricing uses simple price anchoring: the top tier makes the middle one feel reasonable, and most customers self-select up from the floor. It works especially well for HVAC systems, water heaters, and membership plans, and it turns “how much?” into “which option fits me?”
Diagnostic / trip-fee disclosure
If you charge a service-call or diagnostic fee, say so, plainly, and say whether it applies to the repair. This is the number the customer actually has to commit to first, and surprising them with it on the phone (or worse, at the door) is a top reason calls and jobs die. There’s a regulatory tailwind here too: the FTC’s Unfair or Deceptive Fees Rule (effective May 12, 2025) and state “drip-pricing” laws like California’s SB 478 target surprise add-on fees. They currently apply to live-event tickets and short-term lodging, not home-service trades — so nobody’s forcing you to disclose a trip charge — but the all-in, total-price direction of travel is clear, and surprise fees are an increasingly reputational liability. Disclosed up front with context, it’s a non-issue.
Financing and monthly-payment framing
For high-ticket trades — roofing, full HVAC systems, a repipe — the total number causes sticker shock no matter how you frame it. Financing is how you show a “price” without it: “as low as $X/month” through a provider like Wisetack, GreenSky, or Synchrony lets the customer anchor on a monthly payment they can picture instead of a five-figure lump sum. Name it on the page next to the range.
”How our pricing works” explainer
For fully custom work where any number misleads, replace the price with a short explainer: what drives cost, how you quote, what’s included, and a few example project ranges. This gives the customer the understanding they came for even when a single price is impossible. Pair it with an instant-quote or online-booking step so an interested homeowner can take the next action without picking up the phone — that’s the part most pricing pages forget, and it’s where the qualified lead is actually captured.
How transparency ties to trust, reviews, and Google
The customer’s real question is rarely “what’s the exact price.” It’s “can I trust this company to be straight with me?” Price transparency is one of the loudest possible answers to that question — which is why it doesn’t operate alone. It compounds with your other trust signals.
A clear price next to strong reviews, a complete Google Business Profile, a Better Business Bureau profile, visible license, insurance, and bonded proof, and the Google Verified badge on your Local Services Ads tells a coherent story: this company is upfront, vouched for, and vetted. Worth knowing the 2025 change here — Google consolidated the old “Google Guaranteed,” “Google Screened,” and “License Verified” badges into a single Google Verified badge (rolled out October 20, 2025) and discontinued the money-back guarantee that used to come with Google Guaranteed (consumers can still submit reimbursement requests for services booked before December 7, 2025, within 30 days of completion). Depending on the business and category, the badge can reflect license, insurance, and/or background-check verification — but it no longer carries the old guarantee. The point for you: the badge vets you, but it doesn’t tell the customer your price. Your site still has to do that part.
There’s a search and AI angle too. A clear “how pricing works” section and honest ranges are exactly the specific, helpful content that strengthens your pages — but to get quoted by Google’s AI Overviews and surfaced for “near me” intent, the prices have to be machine-readable. That means marking them up with Schema.org structured data — Offer, PriceSpecification, and Service for the prices, FAQPage for your Q&A, AggregateRating for your reviews. Vague pages get skipped; specific, structured ones get cited. Building those pages well is its own discipline — it’s a core reason we treat high-converting landing pages as a service rather than an afterthought, because the framing and markup around the price do as much work as the price itself.
Frame value so price isn’t the only axis
If price is the only thing on the page, price is the only thing customers can compare on — and that’s a race to the bottom you don’t want to win. Transparency works best when the number sits inside a value frame:
- What’s included (parts, warranty, cleanup, follow-up).
- Why you (licensed, insured, bonded, Google Verified, BBB-accredited, years in business, real reviews).
- Certainty (flat rate, same-day, upfront pricing, “no surprise fees”).
- Options (good-better-best tiers, financing, a maintenance plan).
- Risk reversal (satisfaction guarantee, warranty on the work).
Now the customer isn’t choosing between “$189” and “$169.” They’re choosing between a vague number from a stranger and a clear number from a vetted, reviewed, guaranteed company. That’s a comparison you win even when you’re not the cheapest.
When to show vs. gate behind a quote
A simple rule of thumb by job type:
- Show a number (starting-at, range, or flat rate) for anything standardized or diagnostic-first: tune-ups, drain cleaning, standard cleanings, faucet/fixture swaps, service-call fees, common repairs.
- Gate behind a quote — but show ranges, tiers, financing, and process — for genuinely custom, high-dollar work: full roof replacements, complete HVAC systems, repipes, whole-home remodels. Here the honest move is example project ranges plus “how we quote,” not a single misleading figure.
- Always disclose any fee the customer must accept before you’ll even show up: trip charge, service call, diagnostic.
Concrete examples by trade
(Numbers below are illustrative placeholders to show the format — replace them with your own market-tested figures.)
- HVAC: Show the tune-up price (“from $89”) and the diagnostic fee plainly (“$95 diagnostic, applied to the repair”). Range new-system installs (“$6,000–$14,000 depending on size, efficiency, and ductwork — financing as low as $X/month”) with a “how we size and quote” explainer and good-better-best system tiers. Don’t post a flat install price. Offer a maintenance plan as a named recurring option.
- Plumbing: Flat-rate the common jobs (drain cleaning from $99, water-heater swap range, faucet install). Disclose the service-call fee. Gate full repipes behind a quote with example ranges and financing.
- Roofing: The most custom trade — lead with example project ranges by roof size and material, a clear “how roof pricing works” section, financing options, and heavy trust signals (BBB, license, insurance, reviews). A single posted price here almost always misleads.
- House cleaning: Strongest case for transparency. Flat-rate or by-bedroom pricing, recurring-vs-one-time rates, what’s included, online booking. Certainty is the whole sell — hiding price here actively hurts.
- Appliance repair: Lead with the diagnostic/service-call fee and whether it’s waived with the repair — that’s the decision the customer makes first. Range common repairs by appliance.
The honest version
Showing prices isn’t a yes/no question; it’s a format question. For most home-service businesses, hiding every price costs more than it saves — you lose the customers who self-select out of “call for pricing,” and you over-select for the exact price-shoppers you’re trying to avoid. But posting flat numbers on variable work is its own trap, because the worst outcome isn’t “no price,” it’s “a price you had to walk back.”
So: show starting-at prices and ranges, flat-rate the standardized stuff, offer good-better-best tiers and financing on the big jobs, disclose your fees up front, explain how pricing works for the custom work, mark it all up so AI can quote it, and wrap every number in a value frame. Then measure it — track your calls, form fills, cost per lead, and close rate before and after, because the right level of transparency for your trade and your price point is something you confirm with data, not assume. That’s exactly why we wire up conversion tracking before making big changes to a site: so a pricing decision becomes a measured experiment instead of a guess.
One honest caveat: transparency won’t fix a price that’s genuinely out of market, and it won’t sell a company customers don’t trust on the other signals. It makes you easier to trust and easier to choose — the value still has to be real.
Make my site convert
If your site says “call for pricing” and you’re wondering whether that’s quietly costing you calls, the fix is testable. We’ll help you choose the right pricing format for each of your services, frame it so price isn’t the only thing customers compare, add the structured data and booking step that turn a curious visitor into a captured lead, and wire up tracking so you can see — in real numbers — what showing vs. gating does to your call volume, cost per lead, and close rate.
Make my site convert → and we’ll turn the pricing question into a measured decision instead of an argument with yourself.
Sources: Google — About the Google Verified badge (Local Services), JumpFly — Google Local Services Ads launch consolidated “Google Verified” badge (Oct 20, 2025), Coalmarch — Google LSA updates: Verified badge & money-back guarantee discontinued, WebFX — Home Services Marketing Benchmarks (conversion rates by trade), LocaliQ — Home & Local Services advertising benchmarks (conversion rate by category), FTC — Rule on Unfair or Deceptive Fees, CallJolt — Pricing transparency on service calls (price as a trust question).