Last updated

First-party data · Service-business websites

About 49% of business records in our license database have no website of their own

We took our own database of US license and registry records and asked a simple question: how many of these businesses have a website of their own? Our July answer was far too high. An October audit corrected it, and this page carries the audited figure, how we checked it, and how the population was built.

27 July 2026 Corrected 18 October 2026 Hunter Spence Original measurement

Corrected 18 October 2026. The first version of this study reported that up to 95.6% of licensed business records had no working website. That figure counted every record where our automated discovery step found no site, and we had not measured how often that step misses. We have now audited it. On a random sample of 385 records labelled “no website”, 48.8% had a website of their own or a probable one. The corrected estimate is below.

We maintain a database of US license and registry records for service businesses, plumbers, electricians, HVAC contractors, roofers, salons, and dozens of other trades, currently 8,297,381 rows from state licensing boards, federal datasets and city permit lists. Somewhere in there is an answer to a question a lot of people assume they already know: how many small service businesses just don't have a website.

About 49%
of the 1,705,674 business records in our license database have no website of their own that we could find (95% CI 44% to 54%). Estimated from a random sample of 385 records our discovery step had labelled “no working website” plus a control sample of 100 records labelled “has a website”, each checked on 18 October 2026 with web searches (three per record, more for uncertain ones) against a written rule.

What the audit found

We drew the 385-record sample at random (fixed seed) from the 1,630,689 business-entity records the first version of this study labelled “no working website”, and a 100-record control from the 74,985 labelled “has a website”. For each record we searched the open web for the business by name, city, phone and trade (three searches, plus follow-up searches on uncertain cases), and counted a site only if it was on the business's own domain or a free site-builder page clearly owned by it, with the business identified by name plus phone, address or location. Facebook, Yelp, BBB, Angi, Google Business Profile, registries and directories do not count. 173 of the 385 records (44.9%) had a site of their own, 15 more were unresolved, and 197 (51.2%, 95% CI 46.2-56.1) had none we could find. In the control, 93 of 100 records had the site the database recorded. Weighting the two groups by their share of the 1,705,674 records gives 49.2% with no website of their own (95% CI 44.5% to 54.0%). A search can miss a site: on records where we knew the site, our searches found 92.5% of them, so the true share without a site is probably a few points lower, not higher. The checker was an AI assistant reading search results under that rule, not a person visiting each site.

Audit results, checked 18 October 2026. Trade rows come from 30-record samples, so their intervals are wide and the trades cannot be ranked.
MeasureRecordsResult95% CI
Records labelled “no website” with no own site found38551.2%46.2-56.1
Records labelled “no website” with an own site found38544.9% (+3.9% unresolved)40.0-49.9
Records labelled “has a website” where the recorded site was not the business's own1002.0% (lenient) to 7.0% (strict)0.6-7.0 / 3.4-13.7
All 1,705,674 business records, no own site found1,705,67449.2%44.5-54.0
State license-board records only25349.4%43.3-55.5
Plumbing business records, weighted from a 30-record audited sample132,77031%18-48
HVAC business records, weighted from a 30-record audited sample137,02631%18-48
Roofing business records, weighted from a 30-record audited sample45,14729%17-45
Electrical business records, weighted from a 30-record audited sample100,87741%26-58

Why the first number was too high

Most license files do not list a website. Of the 385 audited records, 335 had no website value in our database at all, and 334 had never been through the search-based part of our discovery step, so “checked” mostly meant that a license file listed no website, not that a search had come up empty. Of the 51 records the discovery step did search, 20 had a site of their own.

Why isn't the answer just 89%?

Because a blank website field usually meant we had not checked the row yet, not that the business has no site. 89.2% of all 8,297,381 rows had no website recorded, but most of those rows had never been looked at. Only rows we actually checked can support a claim about missing websites.

Across all 8,297,381 rows, the website field is null 89.2% of the time. If you stopped there, you'd publish "90% of service businesses have no website" and move on. We almost did.

The problem is that null does not mean "we checked and there is no website." It mostly means "we have not checked yet." Our enrichment pipeline works through the database over time, and a row that hasn't been reached yet looks identical to a row that genuinely has no site. Treating those the same overstates the finding with a number that sounds precise and isn't measuring what it claims to measure.

Getting to a population we could measure meant applying three filters, in order, each one narrowing the dataset to rows our pipeline had actually worked on. The audit above then tested how far the “no website” label can be trusted on that population.

Filter 1: only rows we actually checked

We scoped to website_checked_at IS NOT NULL — rows where our pipeline had attempted to find a website, not just rows that happened to come back empty. That cuts 8,297,381 rows down to 4,542,400. Everything from here on went through our checking step, though, as the audit showed, that step misses sites.

Filter 2: only rows with a real state or territory code

We expected the license_state field to hold roughly 51 values — 50 states plus DC. It holds 199 distinct values.

The largest non-state bucket is SAM — 456,363 rows pulled from SAM.gov, the federal contractor registration system. Those are real registrations, but they aren't a state license, and their businesses look nothing like the rest of the dataset: only 9.5% were labelled as having no website, far below the other rows. Registering as a federal contractor already selects for a more web-established business, so we took those rows out of this population.

Past that, roughly 142 more values are junk: internal scraper source tags, metro-area codes, trade-association names, and OCR garbage from scanned license lists. None of it is a state or territory.

Restricting to the 56 genuine US state and territory codes brings the dataset to 4,070,893 rows, and the first-version label rate at this stage was 96.91%. A state code on a row does not make it a state license, though: the audit found that 22% of the sampled business records came from federal datasets such as SBA loans and FMCSA carrier files, and 11% from city permit lists.

Filter 3: only actual businesses — the filter that matters most

This is the filter that changes the story the most. A state license registry doesn't only license companies. It licenses people — registered nurses, pharmacists, professional engineers, apprentice and journeyman electricians who hold an individual license entirely separate from any business they may or may not work for. An individual license-holder having no personal website is completely unremarkable. Counting them against a "businesses have no website" statistic isn't measuring what the statistic claims to measure.

We classified every row by looking for entity and trade tokens in the business name — things like LLC, INC, PLUMBING, HVAC, ROOFING, AND SONS — versus rows where the business name simply equals the license holder's own name. Rows that clearly matched neither pattern were left undetermined rather than forced into a bucket.

Earlier version of this study, kept for the record. The last column is the discovery step's label, unaudited; the corrected estimate is in the audit table above.
BucketRowsShareLabelled “no working site” (first version)
Business entities1,705,67441.90%95.60%
Individuals1,262,51031.01%99.29%
Undetermined1,102,70927.09%96.23%
All 56-state rows4,070,893100%96.91%

In the first version, 1,630,689 of the 1,705,674 business-entity rows (95.60%) carried the discovery step's “no working website” label. That is the figure the audit corrected: it is a label share, not the share of businesses without a website.

In the earlier version we read the flat label rates (individuals 99.29%, undetermined 96.23%, business entities 95.60%) as a strengthening result. It was an artifact: the label mostly recorded that a license file listed no website, which is true of most license files whatever the business does online. None of the other buckets was audited.

What counts as “no working site”?

The first version labelled a record “no working site” if no website was recorded, or if the recorded site resolved to nothing, was unreachable, or was a parked domain. The audit used a stricter written rule: a site counts only if a web search finds a page that is evidently this business, on a domain it controls or a free site-builder page clearly owned by it.

The platform question, answered narrowly

Of the working sites we could reach, we fingerprinted the platform where possible. Only 8.85% matched a known builder signature. Wix is the most common identifiable site builder, at 8.69% of working sites — everything else that didn't match a fingerprint falls into an "unidentified" bucket, which is the large majority. That bucket is not evidence those sites are custom-built; it just means our detector didn't recognize the platform. We're not going to turn "unidentified" into a claim about hand-coded websites, and you should be skeptical of any stat that does.

How representative is this data?

Not fully. Verification coverage ranges from 20.1% of rows in New York to 99.8% in Alaska, and the two largest states, Florida and New York, are the least checked. The first-version label rate stayed between about 93% and 99.6% across states regardless of coverage. The audit showed that sameness comes from the label, not from the states being alike, so no state-level rate here should be read as audited.

This is not a random sample, and the biggest reason is that verification coverage varies enormously by state. Across the dataset, the share of rows with a completed website check ranges from 20.1% in New York to 99.8% in Alaska, averaging 54.75%. The two largest states by row count are also the two most under-verified: Florida is 38.5% checked, New York is 20.1% checked. A sample that's thinnest exactly where the most businesses are is not a sample you get to call representative.

In the first version we took comfort from the label rate staying inside a tight band, roughly 93% to 99.6%, whatever a state's coverage. After the audit we do not. A flat label rate mostly shows that the label records what license files contain, and none of these state-level rates was audited.

One state stood apart in that band: Michigan's first-version label rate was 85.97%, well below every other state we checked. It is unaudited and we still have no explanation for it.

The individual/business split is a floor, not a precise estimate

The 31.01% individual share is a minimum, not a measurement of the true rate. Our classifier can only mark a row as an individual when the business-name field itself reads like a person's name. A row where the owner-name fields are simply blank can't be classified that way even when the license holder is, in fact, an individual — it falls into "undetermined" instead. That means the true individual share of this dataset is higher than 31%, and the undetermined bucket is disproportionately made up of individuals we couldn't confidently label. The business-entity bucket is, if anything, a slight overcount of businesses, because individuals who slip into it are people rather than companies. The audit sampled the bucket as it is, so its 49% describes these records, including any individuals the classifier let through.

What should anyone publishing statistics like this learn from it?

Scope the denominator to what you actually measured. Do not treat a blank as a no until you know why it is blank, remove populations that do not belong to the claim, check what your labels really cover, measure how often your detector misses before you call a count an absence, and publish the sample size next to every percentage so that others can audit the number.

This is the same discipline behind our first data study, on AI crawler traffic: the number people want is almost never the number that was actually measured, and the gap between the two is usually hiding in the denominator, not the numerator.

  1. Don't count a null as "no" until you know why it's null. Unchecked and confirmed-absent look identical and are not the same thing.
  2. Strip out populations that don't belong to the claim you're making. Federal contractor registrations are not state licenses; leaving them in quietly moved our number.
  3. Question what your own labels actually license. A "license" field doesn't mean "business" until you check — ours mostly licenses people.
  4. Report the resulting n next to the headline percentage, not just the percentage. A number without its denominator is a number you can't audit.
  5. Measure your detector's miss rate before you publish an absence. We called our first figure an “upper bound” without ever measuring how often our search missed a site. When we measured it, the figure fell by about 46 points. A caveat is not a measurement.

This is an audit by web search, not a visit to each business. The checker was an AI assistant following a written rule and reading search results; on 62 mostly borderline records a second independent read agreed on whether a site was found for 90% of them. Records came from our license database (66% state license boards, 22% federal datasets such as SBA loans and FMCSA carrier files, 11% city permit lists), not from every licensed business in the US. The trade samples hold 30 records each, so their intervals are wide and the trades cannot be ranked; trade figures are weighted back to all records of that trade. Websites created after July 2026 count as misses of the original check.

Other limits. Verification coverage by state ranges from 20.1% (New York) to 99.8% (Alaska), averaging 54.75%, and the two largest states by row count, Florida and New York, are the two most under-verified. The 385-record sample was drawn at random only from the records our first version labelled “no website”, and the database has had no new rows since 17 June 2026 and no website check since 6 July 2026. About a quarter of the sampled records carry an out-of-scope industry label (trucking carriers, nonprofits, holding companies, salons, clinics).

The individual/business classification is a floor. Rows with blank owner-name fields cannot be identified as individuals by our method even when they are, so the true individual share is higher than the 31.01% measured here, and the undetermined bucket holds more of them than it shows.

Frequently asked questions

What percentage of US service businesses have no website?
About half of the business records in our license database, an estimated 49% (95% CI 44-54%), have no website of their own that a fixed-rule web search could find. An earlier version of this study said up to 95.6%; an audit of 385 records showed our automated step missed the site for 48.8% of the records it had labelled “no website”. The figure describes records in one database, not all US service businesses.
Why isn't the answer just that 89% of rows have no website?
Because 89.2% of all 8,297,381 rows in the raw dataset show no website, and most of that is an enrichment artifact, not a measured absence — we simply had not checked those rows yet. Scoping down to the 4,542,400 rows with a completed website check is the first of three filters that turn a raw null count into a population we had at least tried to check, and it is the step most statistics like this one skip.
How did you separate businesses from individuals in a license database?
State licensing boards register people, not only companies — nurses, pharmacists, engineers, electricians. We classified each row using entity and trade tokens in the business name, such as LLC, INC, PLUMBING, HVAC, and AND SONS, against rows where the business name simply equals the owner's own name. That split is a floor, not a precise estimate: a row with blank owner-name fields cannot be classified as an individual even when it is one, so the true individual share is higher than the 31.01% we measured.

The audit's aggregate results and the first-version tables (kept as a historical record, each flagged as corrected) are published as CSV and JSON on our open data page, free to reuse with credit under CC BY 4.0. No business names or record-level data are published.