05 Mar 26
Data Viz
Trade Is a Weak Signal: Why Review Volume Variance Breaks Home Services Segmentation
Knowing a business is "HVAC" tells you almost nothing about fit. Across 505K accounts and 6 trades, the P90 account has 35-188x more reviews than the P10. Trade is a label, not a segment.
Animated density chart showing Google review distribution across 6 home services trades — curves wipe in left to right revealing within-trade variance

The Problem With Trade-Based Segmentation

Most go-to-market teams selling into home services start with trade as their primary segmentation axis. HVAC companies go in one bucket, plumbers in another, electricians in a third.

It feels logical. But when you look at the data, trade is one of the weakest signals you can use to determine whether a business is a fit.

What 505,000 Accounts Tell Us

We analyzed review volume distributions across 505K+ home services businesses in six core trades: HVAC, plumbing, electrical, roofing, landscaping, and pest control.

The finding: within every single trade, the P10 account has 1-2 Google reviews and the P90 has 35-376. That is not variance within a segment. That is two completely different businesses wearing the same label.

The Shape Differs by Trade

Each trade has a distinct distribution curve:

  • Landscaping is a steep cliff — the vast majority of accounts cluster at the low end with very few reviews. The P90/P10 spread is 35x.
  • Pest control has a fat right tail of mature, high-review businesses. Average review count is 168, with a P90/P10 spread of 188x.
  • Plumbing is the goldilocks trade — enough volume to matter, enough quality signal to segment on. Balanced distribution.
  • HVAC and electrical sit in the middle, with moderate spreads but still enormous internal variance.
  • Roofing skews seasonal and storm-driven, creating irregular clustering patterns.
1sb = modal.Sandbox.create(app=app)
2
3# Create a directory and write some content
4sb.mkdir("/project")
5sb.exec("bash", "-c", "echo 'data' > /project/file.txt").wait()
6
7# Snapshot the directory
8dir_snapshot = sb.snapshot_directory("/project")
9sb.terminate()
10
11# Mount the snapshot in a new Sandbox
12sb2 = modal.Sandbox.create(app=app)
13sb2.mount_image("/project", dir_snapshot)

What This Means for GTM

If your sales team is working a list of "HVAC companies," they are calling a mix of owner-operators with zero online presence and established multi-truck operations with hundreds of reviews. These businesses have different needs, different buying behavior, and different willingness to pay.

Trade gets you into the right neighborhood. It does not get you to the right door.

The teams that win in home services GTM layer additional signals on top of trade: review volume, location count, years in business, licensing status, and contact reachability. The combination is what separates a qualified account from a name on a list.

Key Numbers

  • 505K+ accounts analyzed across 6 trades
  • 40-65% of every trade has fewer than 5 reviews
  • 35x to 188x P90/P10 spread depending on trade
  • Pest control has the highest average reviews (168) — landscaping the lowest (18)