Home » Blog » How to Calculate Market Share for 9 Trades Benchmarked

How to Calculate Market Share for 9 Trades Benchmarked

market share

At some point a pitch deck told you your market share. Maybe it said 2%. Maybe an agency put it on slide four, or a broker dropped it into a valuation conversation, and you nodded along while a voice in the back of your head asked a reasonable question: total market revenue for plumbing in this metro, according to whom? Nobody tracks that number. It does not exist.

Which means the share built on top of it doesn’t either.

Here’s the part worth knowing: there is a real way to calculate market share in the trades, the math is the same math a due diligence analyst runs when a private equity firm prices a company like yours, and you can run it yourself this week with two free inputs and one export you already have.

The market share formula you can Google doesn’t work in the trades

Look up “how to calculate market share” and every result gives you the same equation: your revenue divided by total market revenue. The formula is correct. It’s also uncomputable where you operate.

Coca-Cola can use it because Nielsen counts every can sold. You can’t, because your competitors are private companies who report revenue to no one, and you can’t even count the companies. Nationally there are roughly 130,000 plumbing businesses. One state licensing board, Minnesota’s, shows about 1,750 active plumbing contractors in that state alone. Run the ratios and a single DMA holds several hundred licensed plumbing contractors; the ones visible enough to have a website and an ad budget, maybe 120, are just the surface.

There is no association adding up that revenue, no public filing, no scanner data. The denominator is a rumor about a crowd you can’t see all of.

So owners end up in one of two places. Either they skip the question entirely, or they accept whatever number gets handed to them by someone with something to sell. A national TAM report that costs $4,750 won’t save you. It sizes the country, and decomposing a national figure down to your counties means stacking assumption on assumption until the output is decoration.

The fix isn’t better revenue data. Better revenue data isn’t coming. The fix is changing what you count.

Serviceable Share: unique homes served, divided by homes that needed you

There was no market share formula built for the trades, so we made one. It stops counting dollars you can’t see and starts counting homes you can. The whole method is two divisions:

Homes that needed you = owner-occupied homes in your service area ÷ your trade’s cycle in years

Serviceable Share = unique homes you served in the last 12 months ÷ homes that needed you

The cycle is how often the average home needs your trade: an HVAC home calls somebody about every 3.8 years, a plumbing home about every 2. Divide your owner-occupied count by that number and you have the pool of homes that were in the market this year. If you’d rather work from the annual rates in the benchmark table below, multiply by the rate instead of dividing by the cycle; 26% of homes a year and a 3.8-year cycle are the same fact.

The name comes from the slide every buyer carries. If you’ve ever been walked through TAM, SAM, SOM, you’ve met the ancestor: the serviceable market is the slice of a market a company can actually reach and serve. This is your share of that slice. Not share of a national TAM. Not share of revenue nobody can count. Your share of the homes in your service area that needed your trade this year, which also makes the name literal: it only counts homes you could have serviced.

Revenue share grades you on the jobs you touched. Serviceable Share grades you on the homes that needed somebody, whether they called you or not.

Three inputs, none of them estimates of anyone else’s revenue.

The numerator comes out of ServiceTitan in about ten minutes: unique customer locations with a completed job, trailing twelve months. Unique homes, not jobs. A customer who called you twice this year didn’t grow your share of the market. You already won that home. Counting the second call is how companies talk themselves into penetration they don’t have.

The first half of the denominator is free. The Census Bureau’s American Community Survey publishes owner-occupied housing counts for every county and zip-level geography in the country; search table B25003, Tenure, and you’re looking at your denominator. Owner-occupied matters: renters don’t call you, their landlords do, and landlord work lives in a different funnel with different economics.

The second half is the adjustment that makes the trades stop lying to you. Not every home needs your trade every year. A home needs a plumber far more often than it needs a new garage door, so dividing your customer count by every home in the market punishes some trades and flatters others. You divide by the homes that actually had a reason to pick up the phone.

One disclosure, because a method you can’t poke at isn’t a method: household shares across all the competitors in a market will sum to more than 100%, since a home that split its two calls between two companies counts for both. Every penetration metric makes that tradeoff. For operating decisions it’s the right one to make, and now you know it’s there.

The benchmark: nine trades, three kinds of denominator

Annual need runs from roughly half of homes down to a twenty-fifth, depending on the trade. That range is why a single market share formula across the trades produces nonsense, and why the adjustment has to be trade-specific.

The cleanest public data comes from a homeowner survey on maintenance behavior that asked a simple question: which pros did you call in the past year? Combined with industry installed-base data, it produces the benchmark below. We’ll maintain this table and update it as fresher data publishes.

Trade Addressable base Homes with a need in a given year Implied cycle per home Type
Plumbing All owner-occupied homes ~52% ~2 years Episodic
Electrical All owner-occupied homes ~27% ~3.7 years Episodic
HVAC All owner-occupied homes ~26% ~3.8 years Episodic
Roofing All owner-occupied homes ~11% ~9 years Episodic
Windows/doors All owner-occupied homes ~4% ~25 years Episodic, rare project
Garage doors Garage-equipped homes (~65% of stock) ~10-14% of equipped homes (derived from component cycles) Component-staggered: springs 7-15 yrs, openers 10-15, doors 20-25 Episodic, installed base
Pool service Pool-equipped homes only ~25-30% of inground-pool homes hire routine service, and climbing Weekly/monthly when hired Recurring
Lawn care Homes with lawns (~78% of adults report one) ~40% hire any pro Recurring season-long Recurring
Pest control All owner-occupied homes ~12-15% Quarterly when hired Recurring

Sources and vintages: trade call rates from the American Home Shield home maintenance survey (2024). Lawn hire rate from a 2017 Harris Poll for the National Association of Landscape Professionals, the most recent national figure available; treat as directional. Pest customer count of roughly 13.3 million U.S. homes served professionally from the industry’s annual Specialty Consultants analysis. Garage door figures are derived from industry-standard component lifecycles (springs 7-15 years, openers 10-15, full doors 20-25); the 10-14% annual event rate is lifecycle math, not a survey, and should be read that way. Window/door incidence derived from Census American Housing Survey home improvement data showing roughly 3.7 million households reporting a door or window replacement project in a year, per Harvard Joint Center for Housing Studies analysis. The lawn base of ~78% comes from the same NALP research and measures adults reporting a home with a lawn or landscaping. Pool installed base of ~8.8 million residential pools from Leslie’s SEC filings. Pool service hire rate from Pkdata’s surveys of pool owners and service firms, which found over a quarter of inground-pool households on professional routine service and rising; Leslie’s own filings put roughly 30% of residential pool spend in the “Do-It-For-Me” bucket, which corroborates. The Pkdata figure predates the pandemic pool boom and the private equity rollups that followed, so treat 25-30% as the floor, not the ceiling.

The table sorts into three types, and each type changes the denominator.

Episodic trades against a universal base. Plumbing, electrical, HVAC, roofing. Every owner-occupied home is addressable, so the denominator is homes times the incidence rate, done.

Episodic trades against an installed base. Garage doors, pools, and effectively windows. Filter to equipped homes first. About 65% of homes have garages. Pools are the extreme case: roughly a third of homes in Phoenix have one, about one in twenty in Cincinnati, so the national 8% figure is useless and the pool count in your zips is the only honest base. Skip the filter and you silently deflate your own share, then wonder why you look mediocre in a market you own.

Recurring trades. Lawn, pest, pool service. The home hires the category or it doesn’t, and once hired, frequency is contractual rather than probabilistic. Share here is your active accounts divided by category-hiring homes in your area, and the account is the unit, not the visit. Pest control is the sneaky one: it shows up in surveys as 12-15% of homes calling in a year, which looks episodic, but more than 85% of residential pest revenue is recurring. It’s a subscription trade wearing an episodic disguise.

Now run one number through all of it. Say you served 5,000 unique homes last year in a market of 100,000 owner-occupied homes.

As a plumber, your denominator is 52,000 homes that needed one. You hold 9.6%. Solid, not dominant. As an HVAC company, the pool of need was 26,000 homes, and the same 5,000 customers make you a 19.2% player, likely the biggest name in the market.

As a garage door company, against roughly 8,000 equipped homes with a need, you’re above 60% and there is functionally no second place. In pest control, 5,000 active accounts out of maybe 14,000 hiring households means a third of every home that buys the category buys it from you.

Same trucks. Same customer count. Four different competitive realities. Anyone quoting you a market share without naming the trade’s frequency hasn’t done the math.

One refinement when you’re ready for it: incidence stacks by service line, and you can run the calculation per line if your tagging is clean and you can source a line-level rate you trust. Replacement is the one HVAC line with public data behind it: roughly 3 million systems are replaced every year across 87 million owner-occupied homes, which is a 3-4% replacement rate. Service and emergency rates don’t have survey-grade public numbers, which is exactly why the benchmark table above publishes blended trade rates and stops there. We’d rather hand you one number that survives scrutiny than four that don’t. And don’t agonize over the third decimal of whichever rate you pick. Choose one, write it down, and hold it constant, because the trend in your share year over year will tell you more than the precision of any single reading.

Run it by zip and the number becomes a map

One company-wide share number describes your business. The same calculation by zip code tells you where the next dollar goes.

Both inputs already exist at that level. The ACS publishes owner-occupied counts by zip-level geography, and ServiceTitan exports unique locations by zip. Divide one by the other, frequency-adjusted, and you get a penetration grid instead of a statistic.

The grid reads relative to your own distribution, not against a textbook threshold. Rank your zips by share and three bands fall out. Your top zips, the ones running multiples of your company average, are yours to defend: membership conversion, referral programs, trucks visible on streets where the brand already means something. If your average across the service area is 4% and a home-turf zip runs 12%, that zip is a fortress; remember the ten biggest HVAC companies in the country hold 15-25% combined, so nobody’s grid should glow at 30%, and a grid that does has mis-measured something. The middle band is where you’re known but not the default, which is where paid spend and door-to-door brand work earn their keep. And the zips inside your drive time sitting near zero are the ones most owners have never looked at squarely. Those are easy opportunities.

Picture two zips with 8,000 owner-occupied homes each. In the first you’ve served 290 unique homes against roughly 2,100 that needed HVAC work this year, call it 14%. In the second, the same math says 1%. Same drive time from the shop. The first zip wants a membership push and a referral engine. The second wants to know you exist, which is a completely different budget. Before the grid, both zips got the same blended Google Ads spend and nobody could say why.

Don’t build the spreadsheet. Export your completed jobs with customer zips from ServiceTitan, download owner-occupied counts by ZCTA from the Census site, and paste this into Claude with both files attached:

I run a [TRADE] company. Attached are two files: a ServiceTitan export of
completed jobs from the last 12 months with customer zip codes, and a Census
ACS export of owner-occupied housing counts by ZCTA (table B25003).

Calculate my Serviceable Share by zip, using the method and trade benchmarks
at freeagency.ai/calculate-market-share-trades:

1. Numerator: UNIQUE customer locations per zip, not job count. Dedupe
   repeat visits to the same address.
2. Denominator: owner-occupied homes in the zip times my trade's annual need
   rate. Rates: plumbing 52%, electrical 27%, HVAC 26%, roofing 11%,
   windows/doors 4%. Garage doors: ~12% of garage-equipped homes, and only
   ~65% of homes have garages, so filter the base first. Pest: 12-15%. Lawn
   and pool are recurring trades: use my active accounts as the numerator
   and homes that hire the category as the denominator instead.
3. Treat ZCTAs as approximations of zips and flag any that don't match cleanly.
4. Output a table: zip, owner-occupied homes, homes that needed me, unique
   homes served, Serviceable Share %.
5. Band the zips relative to MY distribution: top, middle, and near-zero.
   No fixed thresholds. List near-zero zips inside my service area separately.
6. Note today's date and the rate used, so I can rerun this next year with
   the same rate and compare the trend.

Ten minutes, two files, and the grid exists. The output is the budget conversation you’ve been trying to have with whoever runs your marketing.

[IMAGE: upload in WordPress] Suggested alt text: “Zip-level penetration map showing trades market share in three bands across a metro”

What changes when a buyer runs this math on you

Somebody may eventually calculate your market share whether you do or not, and that somebody will be deciding what your company is worth. Commercial due diligence firms size local service markets bottom-up, and the standard method is installed base times purchase frequency times average ticket. One diligence primer states it with an oil change example: number of vehicles, times oil changes per year, times price. Homes, times need rate, times ticket. The napkin math in this article is the unit version of the same equation analysts get paid six figures to run.

There’s one difference in how they run it, and it’s worth understanding rather than copying. A buyer counts jobs and dollars, not homes, because they’re buying revenue and because event-based shares are the only kind that sum to 100% across competitors, which you need when you’re pricing a whole market. Different question, different units.

That difference produces the one rule that keeps this method honest: match your units. Unique homes over unique needy homes. Or jobs over total jobs. Or dollars over total dollars. Never a numerator from one over a denominator from another, which is the silent error that makes half the market share claims in CIMs unfalsifiable.

It also means you should know both of your numbers. A replacement-heavy shop holds more revenue share than household share, and the gap between the two tells you whether you’re winning homes or winning tickets. A buyer will notice which one your growth story leans on. Better you notice first.

For whatever it’s worth, the frequency idea isn’t ours and it isn’t new. Marketing science formalized it in 1968, when Parfitt and Collins published a model predicting brand share as penetration times repeat rate times a buying-weight index, built on grocery panel data. The documented weakness of that model is long purchase cycles, and the trades are the longest purchase cycle in consumer life. A water heater is a once-a-decade customer. Which is exactly why the trades need the diligence version of the math rather than the supermarket version, and why nobody ever bothered to hand it to operators directly.

The permit check: the one share number you can verify against the outside world

Everything above is your data divided by public data. For permitted work, you can do better: count yourself against named competitors directly.

HVAC changeouts, water heaters, electrical panels, and reroofs pull permits in most jurisdictions, and permits are public record with the contractor’s name on them. Nationwide permit databases now aggregate this with most of the country covered, and plenty of county portals are searchable for free. Your permits pulled, divided by all permits pulled in your counties for that work type, is a verifiable unit share for the permitted slice of your business. Not modeled. Counted.

Use it as the calibration point. If your calculated household share says 15% and your permit share says 6%, one of three things is true: the incidence rate you picked is off, your mix skews toward unpermitted service work, or your number was always softer than it felt and the permits are telling you so. All three are worth knowing, and only the permit data can start that conversation.

Buyers already pull these records during diligence. It’s the closest thing the trades have to a scoreboard somebody else keeps.

Common questions

How do you calculate market share for a local service business?

Divide unique homes served in the last twelve months by the homes in your service area that needed your trade that year (owner-occupied homes divided by your trade’s cycle). Revenue-based formulas don’t work locally because total local market revenue isn’t a knowable number.

What is Serviceable Share?

Serviceable Share is a market share formula built for the trades: unique homes you served in twelve months, divided by the owner-occupied homes in your area that had a need for your trade that year. It adjusts for how often each trade is needed, so a plumber and a garage door company aren’t graded on the same curve.

What is a good market share for a trades company?

There’s no universal number, and anyone quoting one without naming the trade hasn’t done the math. For calibration: the ten biggest HVAC companies in the country hold 15-25% combined, so a local company holding 10%+ of the homes that needed its trade is usually the biggest name in its market. The year-over-year trend in your own number matters more than any threshold.

What’s the difference between market share and market penetration?

Penetration counts customers reached out of all potential customers; market share counts sales captured out of all market sales. Serviceable Share is penetration adjusted for frequency of need, which is the version that works where market revenue can’t be counted.

Pull three numbers this week

Unique homes served in the trailing twelve months, by zip, out of ServiceTitan. Owner-occupied home counts for those zips, out of the Census tables. One incidence rate for your trade, out of the benchmark above. Divide. That’s your Serviceable Share. Write it down with the date and put a reminder on the calendar for next year, because the trend is the part that pays.

The number itself will probably surprise you in one direction or the other. That’s fine. What shouldn’t sit fine is this: right now, the only people who know your real market share are the people deciding what your company is worth. The math was never hard. It just wasn’t yours yet.

Bri Ski

 bri@freeagency.ai
FacebookLinkedIn
Link Copied

Leave a Reply

Your email address will not be published. Required fields are marked *

This is a staging environment