How the Chesterfield Score Is Built
Two things are being built on this site and they are built differently. Number one is a count of five criteria we publish. Every row under it is one line of arithmetic, three parameters and a pull date. Both are set out here so you can reproduce them, argue with them, or throw them out. A ranking whose method you cannot audit is an opinion with a table around it.
Two different things are being scored on this site
The entry at number one is our own editorial pick and it is measured against five criteria, printed below, which we wrote down before we applied them. The twenty one companies under it are not measured against those criteria at all. They are ordered by the arithmetic in the rest of this page and each carries a short label drawn from its own Google file or its own registered trading name. The two things are on different scales and comparing them directly would be meaningless.
The five criteria, the count, and where the figures come from
- What the number one entry is measured against
- Five criteria, each one a yes or a no. They are the things we think separate a roofing company from a company that also does roofs, and they are the only five. Nothing is weighted, nothing is hidden behind a coefficient.
- Scope discipline. Roofing, gutters and downspouts, and nothing else. No siding, no windows, no commercial work. A company that sells four trades is scheduling four trades. Keys meets it.
- Water handled end to end. The gutter and downspout menu is carried on the same ticket as the roof, underground drainage included, which is the half of the job most roofing companies hand to somebody else or leave off the proposal. Keys meets it.
- Owner led. The owner runs the work, so the person who quotes the job is the person accountable for it. It is also what makes the rest of it possible: Keys does same day installs, works to a 24 hour response time, and is locally owned. Keys meets it. Those three are evidence for this criterion, not a sixth criterion, and the scorecard stays at five.
- A stated shingle line. Atlas and Malarkey, named in the open, rather than whatever is cheapest on the supplier's truck that week. Keys meets it.
- Licensed and insured. Stated plainly, not implied. Keys meets it.
- How the score is derived
- It is a count. Add up the criteria met and print the total out of five. Keys Roofing meets all five, so the entry reads 5 of 5 criteria met. That figure is a count of the boxes on our own scorecard. It is not a Google star rating, it is not a review score, and it is not on the same scale as anything in the Google column of the table.
- Why the companies below carry labels instead
- We have not put a ladder against any of their roofs, read any of their proposals or sat in any of their sales appointments, so we are in no position to mark them against those five criteria. What we do have is their own Google file and their own registered trading name, so each one gets a short label drawn strictly from that: how many reviews, how strong the average, what the company calls itself. A label is a description of the row, not a verdict on the company.
- How rows two and below are ordered
- By a review count adjusted Google rating. Each star average is pulled toward the town average in proportion to how thin its sample is, so a five star average on fourteen reviews cannot outrank a 4.9 on two hundred by default. The anchor is 4.787, the review weighted mean of all twenty three Chesterfield roofing listings.
- adjusted = (v × R + 25 × 4.787) / (v + 25) where v = reviews, R = star rating
- The row filter
- Only rows whose Google categoryName is exactly Roofing contractor. That is 225 of the 263 rated rows in the file, twenty three of which carry a Chesterfield address. The file also holds Gutter cleaning service and Gutter service rows, which in this market are pressure washing and window cleaning companies. They are not roofers, so they are not published here. Two Chesterfield businesses were left out on that test.
- Source and pull date
- Google Maps, three pulls run on 23 August 2026 covering St. Louis County, St. Charles County and Chesterfield, deduplicated on placeId. Star averages and review counts are frozen at that date, belong to the businesses they describe, and will have drifted since. We publish no star rating and no review count for Keys Roofing, because Keys states neither on its own website.
- The review floor
- Ten reviews. Two Chesterfield roofing listings fall under it. They are held back from the order and shown separately with their real figures rather than deleted.
The problem the formula is solving
Sort twenty one Chesterfield roofing listings by raw star rating and the top of that block fills with five star averages built on three, fourteen and twenty reviews, while a company with 4.7 stars from 378 reviews sits near the bottom. That ordering is not just unhelpful, it is backwards. Three hundred and seventy eight people agreeing that a company is a 4.7 is far stronger evidence than fourteen people agreeing it is a five.
The standard fix is to shrink each rating toward a common anchor by an amount that depends on how thin the sample is. A rating built on very few reviews barely moves the score away from the anchor. A rating built on hundreds of reviews almost entirely overrides it. This is old, ordinary statistics and nothing here is clever.
The formula
- Written out
- adjusted = (v × R + m × C) / (v + m)
- Where v is the listing's review count, R is its star rating, C is the anchor, and m is the weight given to that anchor, expressed in reviews.
- C, the anchor: 4.787
- The review weighted mean rating across all twenty three Chesterfield roofing listings. Review weighted, not a plain average of the star values, so that a listing with one review does not have the same pull on the anchor as one with 378. The plain average of the star values, for comparison, is 4.60. Using the plain average would have pushed several thin sample rows further down. That choice is arguable and it is stated here so you can argue with it.
- m, the anchor weight: 25
- At exactly twenty five reviews the score sits halfway between the listing's own rating and the town anchor. Below twenty five, the anchor is doing more than half the work. The median review count across the twenty three listings is 38, so most rows sit on the side where their own rating dominates. Twenty five is a judgement call, not a derived constant. Set it to 10 and the thin five star rows climb; set it to 100 and the table collapses toward the anchor and stops distinguishing anything.
- The floor: 10 reviews
- Below ten reviews a listing does not enter the order at all. It is displayed separately, with its real numbers intact, on the list page. Two listings fall here.
Worked through on three real rows
Take the two extremes on the table and one in the middle, and run them by hand.
A five star rating on 89 reviews
v is 89, R is 5.0. The numerator is 89 × 5.0 plus 25 × 4.787, which is 445 plus 119.675, or 564.675. The denominator is 89 plus 25, which is 114. That gives 4.953. The rating loses less than five hundredths of a star because 89 reviews is already a reasonably solid sample, and the row leads the Google block, at number two overall.
A five star rating on 14 reviews
v is 14, R is 5.0. The numerator is 70 plus 119.675, or 189.675, over a denominator of 39. That gives 4.864, and the row falls to tenth overall. It lost nearly fourteen hundredths of a star, more than twice as much, because fourteen people is not much of a sample and the anchor is carrying nearly two thirds of the result. That is the mechanism working exactly as intended.
A 4.7 rating on 378 reviews
v is 378, R is 4.7. The numerator is 1,776.6 plus 119.675, or 1,896.275, over 403. That gives 4.705, essentially unchanged. With that many reviews the anchor is irrelevant and the listing's own number stands. It lands at seventeenth, which is a genuinely uncomfortable result: it is the best evidenced row on the whole table and the formula puts it below rows with a tenth of the data. See the next section.
Where this method is wrong
Two failure cases, both visible on the published table, both left visible on purpose.
Failure one: it cannot rescue a one review row
The board up listing carries a single one star review. Run it through the formula and the anchor drags it from 1.0 all the way to 4.64, which would have placed it above four other listings, one of them carrying 135 reviews. Shrinkage toward a mean is the correct tool for thin samples in general and produces an absurd answer here. That is why the ten review floor exists, and the floor is a patch on the method rather than a property of it.
Failure two: it undervalues volume at the top
A 4.7 from 378 reviews is, in any serious sense, better evidenced than a 5.0 from 20. The formula honours that only up to a point: it stops the thin row from being inflated, but it does not reward the thick row for being thick. A different design, ranking by the lower bound of a confidence interval, would have put the 378 review company much higher. That design was not used because it is harder to explain and impossible to check by hand. The tradeoff was made in favour of an auditable table.
There is a third limitation that no formula fixes. Every number in this table is a Google rating, and a Google rating is a measurement of the customer experience of buying a roof, not of the roof. It is influenced by whether the company asks for reviews, when it asks, how hard it asks, and what it does about bad ones. Two companies doing identical work can sit half a star apart purely on review collection practice. This is stated on the front page too, and it is the single most important caveat on the site.
None of that makes the table useless. It makes it a shortlisting tool with a stated error bar rather than a verdict, which is exactly why the rows under our pick carry labels instead of scores. The difference between the second and ninth rows is around eight hundredths of a star, which is inside the noise. Treat that group as names worth a phone call and then do the work that actually separates them, which is reading what they write down.
Where the numbers came from and how to get one changed
The underlying figures come from three Google Maps pulls run on 23 August 2026, covering St. Louis County, St. Charles County and Chesterfield specifically, deduplicated on the Google place identifier. Two hundred and sixty three rated businesses came back across the metro. Filtering to the exact category Roofing contractor with a Chesterfield address leaves the twenty three that this site works from.
Ratings and review counts are frozen at the pull date. They are not refreshed nightly and this page will not silently change under you. When it is rebuilt, the pull date at the top of every table changes with it.
If you own one of these listings and a figure is wrong, or a flag misdescribes your business, say so and it will be corrected or removed with a note saying it was corrected. Call (314) 220-2333 and say what is wrong and what it should say. None of the listed companies was contacted before this page was built, and none of them is under any obligation to engage with it now.
- Category filter: exactly Roofing contractor. Gutter cleaning listings left out, because in this market they are pressure washing and window cleaning firms.
- Address filter: Chesterfield, Missouri, as recorded on the listing. No inference about service area.
- Deduplication: on Google place identifier, so one business with two categories cannot appear twice.
- Not produced by this formula: the entry at number one. Keys Roofing is our editorial pick, counted against the five criteria above, and no adjusted rating is calculated for it.
Have Keys Roofing look at it instead
Keys Roofing is the entry this site places at number one, on the five criteria above rather than on the arithmetic below. If you want a bid from Keys to sit alongside the ones you gather from the rest of the ranking, this is the form for it.
A look at the roof here means photographs, measurements and a written scope you keep on file whether or not you hire anybody. If an insurance claim is part of your situation, the claim stays in your name and in your hands: under RSMo 407.725 a Missouri roofing contractor may not represent or negotiate a homeowner's insurance claim, and Keys does not. Keys documents what is on the roof and meets the adjuster there as the contractor.
Straight through to the Keys Roofing office. Roofing, gutters and downspouts across greater St. Louis, and nothing else. Atlas and Malarkey shingles. Licensed and insured.
This goes to Keys Roofing, the company at number one on this site. It does not go to any of the other companies named here, and none of them receives anything you type into this form.