CasaClerk
HVACPlumbingRoofingElectricalWindowsPestToolsGuidesDataCheck a quote

Guides

When we will not tell you whether your quote is fair

Sometimes we refuse to answer the question you came here to ask. That is deliberate, it happens on a rule rather than a mood, and this page is the rule. Three tests decide it. If our range comes out more than 3.2× wide, or fewer than 34% of the inputs are things we actually measured, or a single thing we did not measure swings the answer by more than 40% — we withhold the verdict and tell you which test failed.

Published 2026-09-13 · thresholds on this page are read from the live model, so they cannot drift from it

Why refusing is the useful answer

A tool that always produces a number is easy to build and easy to trust for about as long as it takes to check one. The temptation is real: an estimate that says “somewhere between $9,250 and $26,500” can be rendered as a confident verdict, because almost any quote falls inside a range that wide. It would look like an answer. It would contain no information.

Worse, it is not harmless. Telling someone their fair bid “runs high” on a range that wide can talk them out of an honest contractor, and they will never find out that is what happened. The cost of a wrong verdict lands entirely on the homeowner, and none of it on us. That asymmetry is the whole reason these thresholds exist.

The three tests, in full

1. Is the range too wide to mean anything?

We divide the top of our estimate by the bottom. Above 3.2×, the range stops being a claim about your job and starts being a claim about our ignorance. For an urgent job the bar is lower still, because a rush call is a job we know less about, and a model should get less confident when it knows less.

2. Did we measure enough of it?

Every input is labeled measured or assumed on your result page. Measured means a real price from a real listing with a date on it, or a wage published by the Bureau of Labor Statistics for that trade in your metro. Assumed means trade practice, a band, or a stand-in. If fewer than 34% of the inputs are measured, we withhold — regardless of how narrow the arithmetic happened to come out.

This test exists because of a bug we shipped. We replaced an invented margin band with a measured one from the Economic Census, which was an improvement — and it tightened every range as a side effect. A roofing job whose single largest line is a pure guess quietly slipped under the width threshold and started producing verdicts. Nothing about it had become more known. Width alone was never enough, and now it is one test of three.

3. Is one thing we did not measure driving the whole answer?

A job can clear both tests above and still turn on a single unknown. If the widest assumed line swings the answer by more than 40% of the low estimate, that unknown is the answer, and we say so instead of dressing it up.

The same site, one job answered and one refused

Both computed live, by the same model, with the same code:

JobOur rangeMeasured inputsVerdict
3-ton changeout with furnace, Phoenix$7,500–$13,35060%Answered
24-square roof replacement, Phoenix$9,250–$26,50025%Withheld — only 25% of the inputs are measured

The roof is not withheld because roofing is mysterious. It is withheld because we have not yet measured a shingle price, so the largest line in the estimate is a band rather than a number. That is a gap in our data, and naming it is more useful to you than hiding it behind a verdict.

What you still get when we refuse

The price verdict and the document review are independent, and only one of them depends on the cost model. If we will not price your job we still tell you what the quote fails to say, what appears to conflict with the rules in your state, and the questions worth asking before you sign.

We also tell you exactly which input was missing. Some you can answer yourself in one click — the size of the equipment, or whether a furnace is even part of the job — and the estimate re-runs immediately. Others are ours to fix.

How a withheld verdict becomes an answered one

  • You tell us what the quote did not say. The fastest path. The follow-up questions on your result page exist for exactly this.
  • We measure the material. Each priced item carries a source link and a date, and anything older than 90 days stops being used and fails our build.
  • The corpus fills in. At around 25 comparable quotes for a job in a metro, real bids rather than our model set the range. Every quote submitted narrows the interval — which is to say every upload buys back a verdict we would otherwise have had to withhold.

What a wide range is not

It is not a statement about your contractor. The width measures how much of the job we had to assume, and it would be exactly as wide for an honest bid as for a padded one. If you see a wide range here, that is us being uncertain, not them being suspicious.

Common questions

Why would a pricing tool refuse to give a price?

Because a number built almost entirely out of assumptions is not information, it just looks like information. Our estimate for a roof we cannot size comes out $9,250 to $26,500. Almost any quote falls inside a range that wide, so calling one "fair" tells you nothing while sounding like it told you something.

Do I get nothing if you withhold the price?

No. The price verdict and the document review are separate. If we cannot price the job we still read the quote and tell you what it fails to say, what conflicts with the rules where you live, and what to ask before you sign. That half does not depend on the cost model at all.

Will you ever be able to price it?

Yes, and the fix is specific rather than vague. Each withheld verdict names which input was missing. Some are answered by you in one click; others need us to measure a material price or collect enough local quotes. We need about 25 comparable quotes in a metro before real bids, rather than our model, set the range.

Does a wide range mean the contractor is overcharging?

No. The width is a statement about us, not about them. It measures how much of the job we had to assume rather than measure, and it would be exactly as wide for an honest bid as a padded one.

Every threshold on this page is imported from the live pricing model rather than written here, so it cannot drift from the code. If someone loosens a gate, this page changes the same day. How we build an estimate · Check a quote

CasaClerk

We price home-services work from real material costs and local wages, and show you every number we used.

Trades

HVACPlumbingRoofingElectricalWindowsPest

Tools

Check a quoteCost estimatorState rulesCompare quotesQuestions to ask

About

GuidesOpen dataHow this worksOur pricing methodHow we make moneyPrivacyTerms

CasaClerk estimates what work should cost and reads what a quote says and does not say. It is not legal, financial or engineering advice, and it does not tell you whether a contractor is honest. Cost figures are estimates built from published material prices and Bureau of Labor Statistics wage data; every result shows which inputs we measured and which we assumed. How we do this, how we make money, and what we keep.