Most homeowners want to see prices before they call. Most contractors don't post them. That gap costs somebody calls, and it's probably the contractors.
Posting prices doesn't mean listing a price for every repair. There's a middle path. Show a starting price where you can, say "free estimate" where the estimate is the sale, and be honest with "quoted on site" where any number would be a guess.
Here's how to decide, service by service.
What homeowners want, and what contractors do
In a survey reported by ACHR News, 70% of homeowners said they were more likely to call an HVAC company or contractor who is transparent on pricing, while only 31% of contractors surveyed said they list prices online. A companion piece described the two sides as "at odds".
That's HVAC data, but plumbing customers shop the same way. Homeowners compare three businesses on a map. If two show no price and one shows "tune-up from $X", the third one feels safer to call.
Why contractors don't post prices
The reasons are real, and worth taking seriously:
- Every call is different. A water heater swap in a newer garage and one in a 1950s crawl space aren't the same work.
- Prices change. Equipment and parts costs move, and nobody wants a stale number online.
- Competitors will see it. Posting prices invites undercutting.
- Customers treat any number as a promise. "Your website said $150" is a hard conversation at the door.
None of these mean "post nothing." They mean "post the right kind of number."
Three ways to show price without boxing yourself in
1. "From $X": for work with a predictable floor
Use a starting price when the minimum is predictable and the variation is upward:
- Maintenance tune-ups
- Drain cleaning
- Diagnostic or service-call visits
- Water heater flushes
- Seasonal inspections
"From $X" sets expectations and filters out people looking for a $20 fix, without committing you to a final number. Keep it honest. If 90% of visits land well above the floor, the floor isn't helping anyone.
2. "Free estimate": when the estimate is the sale
Use it for installs and replacements where an in-person visit is how you win the work:
- System replacements
- Water heater replacements
- Repipes
- Panel upgrades and EV charger installs
- Anything with equipment options
Here, "free estimate" is the price transparency. The customer knows the first visit costs nothing.
3. "Quoted on site": when any number would be a guess
Use it for diagnostic repairs where you don't know what's wrong until you look: no-cool calls, leaks behind walls, intermittent electrical problems.
Pair it with the one number you can give, which is usually the diagnostic or trip fee. "Quoted on site. $X diagnostic, credited toward the repair." That's a transparent answer to an unpredictable problem.
Be upfront about diagnostic and trip fees
The fastest way to lose trust is a surprise fee at the door. If you charge to show up, say so wherever the customer picks the service. Our post on how to charge for travel time covers how to frame it without scaring people off.
How to word it on the page
The same number can read as a promise or a guide, depending on how you write it. A few examples:
- Tune-up. "AC tune-up: from $X. Includes a full system check and a written report. Parts extra if needed." The floor is clear, and so is what's included.
- Drain cleaning. "Main line drain cleaning: from $X. Price depends on access and line length." The customer knows why the number might move.
- Replacement. "Water heater replacement: free estimate. We'll size the unit and give you options on the first visit." The free visit is the offer.
- Diagnostic. "No-cool repair: quoted on site. $X diagnostic, credited toward the repair if you go ahead." The unknown is honest, and the known cost is stated.
Keep each line short. Say what the price covers, and say what makes it move. That one sentence heads off most of the "your website said" conversations.
What about your Google Business Profile?
If you list services or prices on your Business Profile, keep them consistent with your booking page or website. A homeowner who sees one starting price on your profile and a different one on your page will trust neither.
The simplest rule: set prices in one place, then copy from there to the profile. Don't let the profile become another price list.
Keep page and invoice prices in agreement
This is the quiet problem. Prices on your website, in your booking app and in your invoicing software are often three different lists. Someone updates the pricebook in January and forgets the website. By summer, the customer who booked "tune-up from $89" gets an invoice that starts at $99.
The fix is one price list that feeds both the booking page and invoice. When you change a price, it changes everywhere. If your booking tool and your field service software are separate, that's hard. More on that in why your booking app and field service software should be the same tool, and in six worries owners have about online booking.
A quick way to decide
Go down your service list and put each item in a bucket:
| If the work is… | Show |
|---|---|
| Predictable, with a clear minimum | From $X |
| An install or replacement you win in person | Free estimate |
| A diagnosis where the problem is unknown | Quoted on site, plus the diagnostic fee |
| An emergency | Call now, with pricing explained on the phone |
Most shops end up with a mix, and that's the point. It's honest, and it answers the question every homeowner has before they call.
How FSM Navigator handles it
On FSM Navigator's online booking page (Pro and Enterprise plans), services come from your pricebook, and each one can show "from $X", "free estimate" or "quoted on site". Customers pick a service, a date and an arrival window and send a request. It lands in your Service Requests list, and when you approve it, it becomes a scheduled visit in the same tool you dispatch and invoice from.
The pricebook is where those posted prices live. Services, labor and materials sit in one list, and the same items build your quotes, so the "from $89" a customer saw on the booking page is the $89 line your tech starts the quote from. Change a price once and the booking page and new quotes both pick it up.
You can set it up during a 14-day Pro trial and preview in the app how your prices look to a customer. The page goes live after the trial. Plan details are on the pricing page.
FAQ
Should plumbers show prices online?
Most homeowners prefer it. You don't need a price for every repair: use starting prices for predictable work, a free estimate for installs, and quoted on site for diagnostic repairs.
Will posting prices let competitors undercut me?
They can see starting prices, but most homeowners choose on trust and availability as well as price. Posting a floor usually helps more than it hurts.
What if my prices change often?
Show starting prices from a pricebook you already maintain, so updates happen in one place.
Should I show my diagnostic fee?
Yes. A surprise fee at the door costs more trust than a fee the customer saw up front.