DEV Community

Cover image for Choosing a Local Plumber From Online Reviews: A Worked Example
Jay Barker
Jay Barker

Posted on

Choosing a Local Plumber From Online Reviews: A Worked Example

It's Sunday evening, and there's water pooling under the kitchen sink. You turn off the valve, search for a plumber and get three results with nearly identical star ratings. One has a perfect 5.0. One has 4.5. One has 4.2. Which one do you call?

Most people pick the highest number. That's often a mistake, because a star average hides almost everything that matters: how many reviews there are, when they were written, what they actually say and how the business handles problems.

This post shows how to choose a local plumber by reading review patterns instead of averages. It walks through a worked example with three fictional plumbers, includes a small script that summarizes review patterns and ends with the checks to make before anyone touches your pipes.

The Short Version

  • Read patterns, not averages. Look at how many reviews there are, how they're spread over time and how ratings are distributed.
  • Favor specific, recent reviews that mention the job, the person and the price.
  • Watch how the owner responds to complaints. It tells you how they'll treat you when something goes wrong.
  • Treat unusual patterns as questions, not proof of fake reviews.
  • Verify before you book: license, insurance, a written estimate and sensible payment terms.

Emergency vs Planned Work

How much checking you can do depends on the situation.

In an emergency, such as a burst pipe or a leak you can't stop, shut off the water at the main valve first. That buys you time. Then do the quick checks in this post: a fast scan of review patterns, a call to confirm licensing and a clear price for the call-out before they arrive.

For planned work, such as a water heater replacement or a bathroom refit, take your time. Compare reviews properly, get several written estimates and check licenses and insurance before you choose.

The Worked Example: Three Millbrook Plumbers

Millbrook and all three plumbers are fictional, and their review data is illustrative.

A homeowner in Millbrook needs a leaking water heater valve fixed this week. Three local plumbers come up in search.

Plumber A: 5.0 from 38 reviews

  • 29 of the 38 reviews arrived within the same two weeks
  • Most reviews are four or five words long, such as "Great service!" or "Highly recommend"
  • No reviews mention a job, a technician or a price
  • The owner has never replied to a review

Plumber B: 4.5 from 212 reviews

  • Reviews are spread steadily over six years
  • Most mention a specific job, often naming the technician
  • A handful of 2-star and 1-star reviews complain about waiting for an appointment
  • The owner has replied to every review of 3 stars or lower, and several complaints end with the problem fixed

Plumber C: 4.2 from 64 reviews

  • Several reviews mention the final bill being higher than the quote
  • Some complaints have owner replies offering to make things right, others have none
  • Positive reviews praise speed and friendliness

At first glance, Plumber A looks best. By the end of this post, it's clear why Plumber B is the safer call.

Reading Review Patterns, Not Star Averages

Volume and Spread Over Time

A large number of reviews collected steadily over years is hard to fake and gives you a reliable picture. A small number arriving all at once deserves a closer look.

A burst of reviews isn't automatically suspicious. A business might have run a review request campaign, opened a new location or had a busy season. But when a burst coincides with short, generic text and no owner replies, as with Plumber A, it's a question worth asking.

Rating Distribution

Real businesses get mixed reviews. Even excellent plumbers miss an appointment window or struggle with a tricky job sometimes. A natural profile usually has lots of 5-star reviews, a fair number of 4s and a few lower ratings.

A profile that's almost entirely 5-star, especially with many reviews, isn't proof of anything, but it's less informative. Honest 3-star reviews are often the most useful ones to read, because they tend to describe both the good and the bad.

Specific vs Generic Text

Useful reviews describe what happened: the problem, who came, how long it took, what it cost and whether the fix lasted. "Dana came out the same afternoon for a leaking water heater valve, explained the price before starting and cleaned up after" tells you far more than "Great service!"

Specific reviews also help you match a plumber to your job. If you need a water heater replaced, look for reviews that mention water heaters.

Recency

Businesses change. Owners sell, good technicians leave and new managers bring new habits. Give the last 12 months more weight than reviews from five years ago, and sort by newest to see the current picture.

How the Owner Responds

Owner replies are one of the best signals you have. Look for calm, specific responses that acknowledge the problem and offer a fix. Defensive replies, blaming customers or no replies at all suggest how a complaint of your own might be handled.

Plumber B's replies to low ratings, and the follow-up comments saying the issue was resolved, count for more than a slightly higher average elsewhere.

Cross-Check Across Platforms

Check reviews in more than one place, such as Google, a review directory and your local community groups. A business with strong, consistent feedback across several sites is more trustworthy than one with a perfect score in only one place.

What Fake Reviews Look Like, and the Rules Against Them

Fake reviews are illegal in the US. The FTC's final rule banning fake reviews, which took effect on October 21, 2024, prohibits reviews "by someone who does not exist, such as AI-generated fake reviews." It also bans undisclosed reviews from company insiders and the use of "unfounded or groundless legal threats" to suppress negative reviews.

Platforms have their own rules too. Google Maps' policy on fake engagement states that "Contributions to Google Maps should reflect a genuine experience at a place or business," and that "Fake engagement is not allowed and will be removed."

Common warning signs include:

  • Bursts of short, generic praise
  • Several reviews with very similar wording
  • Reviewer profiles with only one review, or reviews of businesses all over the country
  • Reviews that describe services the business doesn't offer
  • A perfect score with no detail at all

None of these proves a review is fake. Together, they're a reason to rely on other evidence.

A Small Script to Spot Review Patterns

If you're comparing several businesses, or you just like seeing the numbers, a short script can summarize a review set in seconds. Paste or export reviews into a JSON file, one object per review, then run this Node.js script. It has no dependencies:

// review-patterns.mjs: summarize review patterns for one business
// Usage: node review-patterns.mjs reviews.json
// reviews.json: [{ "date": "2026-03-14", "rating": 5, "text": "...", "ownerReplied": true }]
import { readFileSync } from 'node:fs';

const reviews = JSON.parse(readFileSync(process.argv[2], 'utf8'))
  .map((r) => ({ ...r, time: new Date(r.date).getTime() }))
  .sort((a, b) => a.time - b.time);

const n = reviews.length;
const DAY = 86_400_000;
const pct = (x) => `${Math.round((x / n) * 100)}%`;

// Rating spread
const spread = [5, 4, 3, 2, 1].map((s) => `${s}★ ${reviews.filter((r) => r.rating === s).length}`);
const avg = reviews.reduce((sum, r) => sum + r.rating, 0) / n;

// Busiest 14-day window
let maxWindow = 0;
for (let i = 0, j = 0; i < n; i++) {
  while (reviews[i].time - reviews[j].time > 14 * DAY) j++;
  maxWindow = Math.max(maxWindow, i - j + 1);
}

// Text detail and owner replies
const words = reviews.map((r) => r.text.trim().split(/\s+/).filter(Boolean).length);
const avgWords = words.reduce((a, b) => a + b, 0) / n;
const replied = reviews.filter((r) => r.ownerReplied).length;
const repliedToLow = reviews.filter((r) => r.rating <= 3);
const months = (reviews[n - 1].time - reviews[0].time) / (30 * DAY);

console.log(`Reviews: ${n} over ${months.toFixed(0)} months, average ${avg.toFixed(1)}`);
console.log(`Spread: ${spread.join(' | ')}`);
console.log(`Busiest 14 days: ${maxWindow} reviews (${pct(maxWindow)})`);
console.log(`Average length: ${avgWords.toFixed(0)} words`);
console.log(`Owner replied: ${pct(replied)} overall, ${repliedToLow.filter((r) => r.ownerReplied).length}/${repliedToLow.length} of 3★ or lower`);

// Signals worth a closer look (not proof of anything)
const signals = [];
if (maxWindow / n > 0.4) signals.push('Over 40% of reviews arrived within 14 days');
if (n >= 20 && reviews.filter((r) => r.rating === 5).length / n > 0.9) signals.push('Over 90% are 5-star');
if (avgWords < 12) signals.push('Reviews are very short on average');
if (replied / n < 0.2) signals.push('Owner rarely replies');
console.log(signals.length ? `Look closer: ${signals.join('; ')}` : 'No unusual patterns flagged');
Enter fullscreen mode Exit fullscreen mode

Here's the output for the fictional Plumber A:

Reviews: 38 over 20 months, average 5.0
Spread: 5★ 37 | 4★ 1 | 3★ 0 | 2★ 0 | 1★ 0
Busiest 14 days: 29 reviews (76%)
Average length: 4 words
Owner replied: 0% overall, 0/0 of 3★ or lower
Look closer: Over 40% of reviews arrived within 14 days; Over 90% are 5-star; Reviews are very short on average; Owner rarely replies
Enter fullscreen mode Exit fullscreen mode

And for Plumber B:

Reviews: 212 over 72 months, average 4.5
Spread: 5★ 144 | 4★ 48 | 3★ 11 | 2★ 5 | 1★ 4
Busiest 14 days: 2 reviews (1%)
Average length: 20 words
Owner replied: 49% overall, 20/20 of 3★ or lower
No unusual patterns flagged
Enter fullscreen mode Exit fullscreen mode

The thresholds are deliberately simple, so adjust them to taste. And remember what the output is: signals that tell you where to look, not a verdict on whether a business is honest. Only collect reviews you can view publicly, and respect each platform's terms of service.

Verify Before You Book

Reviews narrow the list. These checks make the decision.

License

Licensing rules for plumbers vary by state and sometimes by city or county. The FTC's guide to avoiding home improvement scams advises: "Check with your state or county government to confirm a contractor's license." Most states offer an online license lookup through their licensing board.

Insurance

Ask for proof of liability insurance, and workers' compensation if the business has employees. If something goes wrong in your home, insurance protects you from paying for damage or injuries.

Written Estimate

For anything beyond a small repair, get the price in writing. The FTC says to "Get multiple estimates" and "Don't automatically choose the lowest bidder." A good estimate lists the work, parts, labor, any permit costs, the expected timeline and the warranty.

Payment Terms

Be cautious about large upfront payments. The FTC advises: "Don't pay the full amount for the project up front," and notes that some states limit down payments. For emergency call-outs, confirm the call-out fee and hourly rate before the plumber arrives.

In the Millbrook example, Plumber B passed every check: a valid state license, proof of insurance and a written quote for the valve repair that matched the final bill.

Questions to Ask on the Phone

  • Do you charge a flat rate for this job or by the hour?
  • Is there a call-out or diagnostic fee, and is it credited toward the repair?
  • Who will actually come out, and are they licensed?
  • Will this job need a permit, and who arranges it?
  • What warranty do you give on parts and labor?
  • How soon can you come, and what's the arrival window?
  • Do you clean up after the job?
  • Which payment methods do you accept, and when is payment due?

Red Flags

  • Cash only, or pressure to pay everything up front. The FTC warns that "Scammers ask you to pay for everything up front or only accept cash."
  • Door-to-door offers from someone who says they're "in the area"
  • Pressure to decide immediately on large, non-emergency work
  • No written estimate, or an estimate with blank spaces
  • No verifiable business address or license number
  • A burst of vague, perfect reviews and nothing else to go on

After the Job: Leave a Useful Review

Once the work is done, pay it forward. A useful review mentions the problem, who came, how long it took, what it cost compared with the quote and whether the fix has held. That's exactly the kind of detail you were looking for when you started.

You can share your experience, and read other customers' reviews of local businesses, on Clutchpilot's business reviews directory.

FAQs

How do I find a good local plumber?

Start with plumbers who have plenty of recent, specific reviews spread over time and owners who respond well to complaints. Cross-check across more than one site, then confirm the plumber's license with your state or county, ask for proof of insurance and get a written estimate before work begins.

What should I ask a plumber before hiring?

Ask whether they charge a flat rate or by the hour, whether there's a call-out fee, who will do the work, whether a permit is needed, what warranty covers parts and labor, how soon they can come and how payment works. Get the key answers in writing.

How can I tell if plumber reviews are fake?

Look for warning signs such as a sudden burst of short, generic five-star reviews, similar wording across several reviews, reviewers with only one review and no owner replies. These patterns don't prove reviews are fake, but they're a reason to rely more on other evidence.

Should a plumber be licensed and insured?

In many places, plumbers must be licensed, though rules vary by state and locality. Check with your state or county licensing authority, and ask for proof of liability insurance. Hiring licensed, insured professionals protects you if something goes wrong.

Is it better to pay a plumber hourly or a flat rate?

Flat rates make costs predictable for common jobs, such as replacing a faucet. Hourly rates can suit diagnostic work where the problem isn't clear yet. Either way, ask for an estimate upfront, confirm any call-out fee and get the final price in writing.

How many quotes should I get for plumbing work?

For planned work, get at least two or three written estimates. The FTC advises getting multiple estimates and not automatically choosing the lowest bidder. For emergencies, one trustworthy plumber with a clear call-out fee is often the practical choice.

What are red flags when hiring a plumber?

Be wary of cash-only payment, pressure to pay everything up front, door-to-door offers, pressure to decide immediately, no written estimate and no verifiable license or address. A burst of vague, perfect reviews with nothing else to support them is another reason for caution.

Wrapping Up

Choosing a local plumber from online reviews works best when you treat reviews as evidence. Look at volume, timing, rating spread, detail and owner responses, rather than the star average alone. Then confirm the license, insurance and written estimate before booking. And when the job's done, leave the kind of review you'd want to read.

Top comments (0)