How House Cleaning Index measures a price, and what each figure cannot tell you

House Cleaning Index states a price only where cleaning companies publish one themselves. Each range is an aggregate of those published rates, weighted for company size, carrying its sample size and its capture date. Prices customers report in reviews are excluded, and the reason is measured below.

House Cleaning Index editorial deskPublished

Where every price figure comes from

Every price figure on this site comes from one source: the rate a cleaning company publishes on its own website. A company that states “$150 per visit” on its services page has published a price, and that number is recorded with the URL it came from and the date it was read.

Nothing else sets a price level here. Three sources that other price sites use are excluded on purpose, and the reason for each is a measurement, not a preference.

Why prices from customer reviews are excluded

Prices from customer reviews are excluded because the people who write a price down are not a sample of the people who paid one. Across 486,736 review texts in the corpus behind this site, 5,288 mention a dollar amount, and 77% of those come from 1 and 2-star reviews: the mean rating of a review that names a price is 1.89 against 4.84 for every other review. Their median is around $400, roughly double the market average that published rates give.

Customers write the number down when they feel overcharged. A “what people actually pay” figure built that way reads as authority and is wrong in the direction that makes a price site look like it inflates. Only 11% of them carry a unit at all — no home size, no service type, just a bare total.

Review text does answer a different question honestly, and that is the one this site will use it for: how often a final bill exceeds the quote, and by how much ($450 quoted against $650 charged, $560 against $790, $60/hour against $224.25). That is a fact about pricing behaviour, not a price level.

Why marketplace averages are excluded

Marketplace averages are excluded because they are the output of a platform’s own lead flow, not of a market. A national platform’s “$100–$300” is a number about that platform. Several of those platforms also appear in the business corpus as if they were local cleaners — Homeaglow across 124 ZIP codes and 72 cities, TIDY across 31 and 19 — and they are filtered out by the span of their service footprint before any figure is computed.

Why no figure is an estimate

No figure here is an estimate, because an estimate cannot be checked. Each page shows the provider table its range was computed from, with the company, the published rate, the unit and the date. If the table does not support the range, the range does not get published.

How the sample is corrected for company size

The sample is corrected for company size with a post-stratification weight per review bracket, applied before any median is taken. The weights are 1.029, 1.028, 0.961, 0.841 and 0.741 across the brackets 0, 1–9, 10–49, 50–199 and 200+ reviews.

They barely move anything, and that is worth stating rather than hiding. On a sample of 400 websites the correction looked large: 4.1% of companies with no reviews published a rate against 16.7% of those with 200 or more. Measured across every reachable domain in the full crawl, that gradient is gone: 12.5%, 12.8%, 11.6%, 12.3% and 14.1%. The confidence intervals overlap for every pair but one.

The reason is a cancellation worth knowing if you read price data anywhere else. Large companies’ websites carry 1.87 times more dollar amounts than small ones — 40.3% of them have a candidate price against 21.5% — but only 35.0% of those amounts are a cleaning rate, against 58.2% for small companies. The extra amounts are discounts, promotions, recruitment pay, retail prices and market-commentary copy. The two effects almost exactly cancel, and the earlier sample measured the first of them.

The weights change the published median by 0.0%, and the mean by less than 0.7%. They are kept and applied because the propensity difference is real and declarable, but no figure on this site exists because of them.

What the weight is actually correcting now

What the weight is actually correcting now is mostly fetch failure, not publishing. Reachability runs steeply the other way: 69.1% for companies with no reviews, rising to 85.2% for those with 200 or more. Small companies lose 18–20% of their domains to websites that no longer resolve at all, against 0.4% for the largest.

The one effect that does run the way you would expect is the firewall: 10.96% of the largest companies’ sites refuse an automated request outright, against 4.30% of the smallest, because professional sites sit behind a filtering proxy. That bias is real and it is the one that gets worse, not better, if the crawler is improved. It is simply swamped by dead websites at the small end.

What the sample size on each page means

The sample size on each page is the number of companies that publish a rate in that geography, not the number of businesses listed. A page that lists 180 cleaners may state a range built on 24 published rates, and it says 24.

A city’s sample is the companies that serve that city — the ones a search in that city’s ZIP codes actually returned — not the companies assigned to it. Service-area cleaners have no street address, and their map pin is an area centroid, so assigning one city per company was measured at only 65.8% accuracy on exactly the rows that need it. Assignment is also not measurable on most of the data: a street-level town is recorded for only 35,457 of 125,393 businesses, so it can be computed on 28% of the corpus while membership can be computed on all of it.

Membership carries no geocoding error, because it is the search engine’s own answer about which businesses serve a postal code. It carries a different error, and this site filters for it: a search in a sparse postal code gets back businesses matched by name rather than by distance. A cleaner in Meriden, Connecticut is returned by searches in Meriden, Iowa and Meriden, Wyoming; one in Wake Forest, North Carolina is returned by a search in Wake Island. Measured across 175,030 company-to-postal-code links, 5.0% span more than 1,000 km and 3.0% more than 2,000 km. Every link beyond 100 km is discarded before any city figure is computed.

Two consequences are declared rather than fixed. The samples of neighbouring cities are not independent, since one company’s rate appears in every city it serves. And a company that works across the whole country is not a local cleaner: 23 companies whose own business locations span more than 2,000 km are excluded from every city figure.

Where the city label is weakest

The city label is weakest where a postal city name covers more ground than the municipality, and it is not uniform across the country. Measured against Google’s own city names on 400 addresses: 93.3% correct in Texas, 86.7% in Florida, and 54.0% in Minnesota. Minnesota is not an outlier city, it is the whole state. Any figure published for a Minnesota metro carries that error, and Minneapolis and Saint Paul are both above the sample threshold.

What is still missing from the figures

Two things are still missing, and both are stated here rather than hidden.

  1. Service scope. A published price can be for a whole-home clean, or for a single add-on — an oven, interior windows, a carpet. Read by hand on a random sample, 8 of 23 published rates were not the price of a house cleaning. Until every rate is classified by scope, no aggregate range is published.
  2. Unreachable websites. Of the domains crawled, 71.8% returned usable HTML. A further 1,322 answered with a rate limit caused by the crawl’s own concurrency, and they are not yet recovered. Those companies are absent from every count, and the absence is not biased by company size.

Who writes House Cleaning Index

House Cleaning Index is written by its editorial desk, which signs every page as a collective author. The desk does not attribute texts to experts who do not exist, and uses no invented names or photographs.

How the images may be used

The images may be used with attribution. Images produced here are published under Creative Commons Attribution 4.0 (CC BY 4.0): copy, adapt and commercial use are allowed as long as House Cleaning Index is credited with a link to the page the image came from.

How to reach the editorial desk

The editorial desk is reached by email. The mailbox handles questions about the figures, the sources, a correction to a published rate, the use of the images and privacy.

How to correct a rate attributed to your company

A rate attributed to your company is corrected by writing to the desk with the URL where the current rate is published. Every rate here links to the page it was read from, so a correction is a one-line check.

What privacy policy this site follows

The privacy policy this site follows is one of minimum data. The site has no login, no forms and no comments.

What personal data is processed

Personal data is processed minimally. The server records technical data for each request, such as the IP address, the date and the page requested, to keep the site secure and working.

Does this site use cookies

Analytics here are cookieless: visits are measured in aggregate, the IP address is anonymised and no identifier is stored on your device. Advertising, when it runs, is served by Google AdSense, which sets its own cookies and is governed by Google’s policies.

What rights you have over your data

The rights you have over your data are access, rectification, erasure, objection, restriction of processing and portability. To exercise them, write to the editorial desk.

What terms the use of this site is subject to

The use of this site is subject to this legal notice. The figures here are informational aggregates of third-party published prices and are not an offer, a valuation or a substitute for a professional assessment. Each company owns the rate it publishes, and this site is not affiliated with any of the companies it lists.