How this works, and how we make money

Both questions matter, so both are on this page.

What we actually do

We read your quote and compare it against a checklist of things a complete quote for that job contains, plus the rules that apply in your state. Every finding is one of three kinds:

Defect
Something that appears to conflict with a rule where you live, or that will cost you money or warranty coverage. We only say this when we could read the relevant line clearly.

Gap
The quote does not say. You cannot compare two bids on something only one of them mentions.

Watch
Worth confirming, or a normal practice we want you to recognize so you are not upsold on it.

How we work out what a job should cost

We do not ask a model what things cost. A model will answer that question fluently and the answer is a recollection, not a measurement — and being confidently wrong about a price is how you talk someone out of a fair bid. So we build the number from parts, and we show you every part.

A job is costed the way a contractor costs it:

  1. Hard materials. The actual listed price of the actual equipment — the condenser, the water heater, the panel, the shingles. Each price is stored with a link to the listing it came from and the date we checked it. A price older than 90 days fails our build; a price with no source cannot be committed at all. Online retail runs at or slightly above what a contractor pays at a distributor, so this biases our estimate high, which makes it harder for us to call your quote expensive. That is deliberate.
  2. Local labor. The median hourly wage for that trade in your metro, from the Bureau of Labor Statistics OEWS program — a plumbing job is costed at the plumbing wage, not a generic construction one. Where BLS suppresses a trade in your area (they publish solar installers in roughly one metro in ten), we substitute the national figure and label it as a substitution rather than passing it off as local.
  3. Time. How long the work takes, as a range. This is the weakest link in the whole model and we would rather say so than hide it: it comes from trade practice, not from measurement. It is the first thing real quotes will replace.
  4. Overhead and profit. A margin band covering insurance, vehicles, warranty, unbillable time and the business itself. The widest assumption we make, and the biggest single reason two honest bids differ on the same job.

Measured, or assumed — and which is which

Every input is labeled one of two ways, and you can open the working on any result to see them. Measured means a figure with a source and a date.Assumed means an industry norm we have not measured, given as a range. Assumptions widen the estimate; they never quietly shift it. Your quote only gets called high when it falls outside a band our own uncertainty has already made generous.

When we refuse to answer

If too much of a job is still assumed, the range comes out so wide that a verdict off it would be a guess wearing a number. Above a threshold we withhold the verdict and tell you which measurement is missing. You will see this today on roofing and panel work, because we have not yet measured shingle and load-center prices. We would rather show you an empty space than a confident wrong answer.

How confident we are, and why that number rises

Every price verdict carries a confidence, printed next to it rather than buried. There are three levels and they are about the basis, not about how much we like the answer:

Which is the honest reason we ask to keep your quote. A cost model tells you what a job should cost. Only other people’s quotes tell you what your market actually charges, and nobody publishes that. It is the one thing we cannot buy, scrape or derive.

Pricing a trade is not checking a trade

These are two different things and we keep them apart. We can cost plumbing, roofing, electrical and the rest today, because materials plus local labor plus a margin is how every one of those jobs is costed. Checking whether the work is correct and lawful is separate, far slower, and jurisdiction by jurisdiction. Right now we only do that for HVAC replacement. On any other trade you will see the price verdict with an explicit line saying we have not checked that trade’s rules — because staying quiet about it would read as “nothing wrong with it”.

Where the rules come from

Federal efficiency minimums come from the Department of Energy; refrigerant rules from EPA’s published regulations; deposit limits from state statute, cited by section; warranty registration terms from the manufacturers’ own documents. Every rule in our data carries the source URL and the date we last checked it. Where a rule varies by state and we have not verified your state, we say we have not checked rather than assuming it does not apply.

What we will not claim

We do not tell you a contractor is overcharging, cheating, or acting in bad faith. We do not rank contractors and we do not accept payment to change a finding. When a bid looks thin, the most common explanation is a genuine difference in scope, and the second most common is that the salesperson is repeating something the industry told them that is now out of date.

When our reading of a document is uncertain, the finding is downgraded to a question rather than stated as a fact. You will see that as “we could not read X with enough confidence to say so.”

How we make money

When we can help you reach another contractor for a competing bid, we may be paid a referral fee by a contractor network. That fee does not change what our checks report, because the checks run on the document before any of that is involved and the rules are the same for everyone.

We will also link to home warranty and financing products where they are relevant, and we are paid for some of those. Every paid link is marked. If a page names a partner we are paid by, it says so on that page.

We do not sell your quote, your contact details, or your project to anyone without asking you first and telling you exactly who receives it.

What we keep, and why

We keep the quotes people submit. That is deliberate and it is the main reason this tool can get better. Every quote teaches us what a complete quote for that job looks like, and in aggregate they tell us what work actually costs in a given area — which is something no published source will tell you honestly, because everyone publishing costs is selling something.

We store three things:

Your individual quote is never published, shown to another user, or sent to a contractor. When we talk about local costs we are talking about many quotes together.

The permission we ask for early

One of the boxes on the form asks whether we may, later, contact contractors on your behalf to get competing bids. That product does not exist yet. We ask now because consent is the one thing that cannot be collected retroactively — if we build it and have never asked, we would have to start from nobody.

Leaving it unticked costs you nothing today. If you tick it, nothing happens until that feature exists, and we will tell you who we contacted and what we shared before we act on it.

Deleting it

After a check we give you a reference code. Send it to us and we mark the consent revoked and schedule everything tied to it for deletion. There is a short grace period in case the request was a mistake, and after that the text is gone.

Only the first box — keeping the quote at all — is required, because reading a quote we are not allowed to keep is not something we want to have done. Everything else is genuinely optional and unticking it does not change your result.

When we are wrong

Rules change. The refrigerant rule that matters most here changed twice in eighteen months, most recently in May 2026. If a finding looks wrong to you or to your contractor, we want to hear about it, and the source link on each finding is there so you can check us rather than trust us.