The data behind our estimates
Every input we price with, published in full. No signup, no API key, no form. If you think one of our numbers is wrong — and if you work in one of these trades you may well be right — this is how you check it without asking us for permission.
Why the inputs and not the answers
Publishing our verdicts would be marketing. Publishing our inputs lets someone disagree with us precisely. It is also the honest version of a claim several tools in this space make: the one other openly-published dataset we found in this category is five columns wide and its own page says it is not a cost database. There are no prices in it. These are the prices.
Unpriced and unmeasured rows are included on purpose. The material file lists equipment we have not yet looked up, and the job file marks which labour-hours ranges come from trade practice rather than measurement. A dataset that quietly drops what its author does not know is worse than no dataset.
The files
Trade wages by metro area
The median hourly wage for each trade in each US metro area and balance-of-state region, from the BLS Occupational Employment and Wage Statistics programme. One row per area per trade.
Limitation: This is a WAGE, not a billing rate. A contractor charges several times this to cover payroll tax, insurance, vehicles, warranty and unbillable time. Anyone quoting a BLS median as what you should be charged is misreading it.
Trade wages, national
The national median hourly wage for each trade. Used as a labelled substitution where BLS suppresses a trade in a metro, which happens often.
Limitation: Substituting this for a local figure is a real loss of precision, and the product labels it as a substitution wherever it happens rather than passing it off as local.
Measured material prices
Hard-goods prices we have actually looked up, with the listing they came from and the date we checked. Unpriced rows are included on purpose so you can see what we have NOT measured.
Limitation: These are online retail prices. A contractor at a distributor generally pays at or below this, so using retail biases an estimate high — which makes it harder for us to call a quote expensive. That is deliberate. A price older than 90 days stops being used and fails our build.
Job definitions and labour-hours ranges
Every job we can cost: its trade, its components, the crew-hours range, the consumables band, and whether we have built compliance rules for it.
Limitation: The labour-hours range is the WEAKEST input in the whole model. It comes from trade practice, not from measurement, and it is the first thing real submitted quotes will replace. We would rather say so than present it as data.
Contractor gross margin
Gross margin computed from the 2022 Economic Census, on both the loaded and unloaded definitions, with the underlying Census variables so you can recompute it.
Limitation: Revenue-weighted, so it is the margin of the industry’s dollars rather than the median contractor. Includes commercial and new-construction work. Verified only for NAICS 238220; parses for three other trade codes failed our identity checks and are not published.
Everything we assume
The bands the model uses where it has no measurement. Published in full, because a model that hides its assumptions is not checkable.
Limitation: Each of these is a range, never a scalar. Narrowing one without a source is exactly how a modelled number quietly becomes a fabricated one.
Using it
- Attribute to CasaClerk, casaclerk.com and link back. That is the whole licence.
- The licence and the limitations are also written into the top of every CSV as comment lines, so a file that gets emailed around keeps them.
- URLs are stable. We update these in place rather than versioning the path.
- Rows carry
verified_at. Anything older than 90 days stops being used by our own model and fails our build, so treat a stale date as a warning rather than a fact.
What is not in here
- No submitted quotes. People send us their contractor quotes on the understanding that the individual document is never published, shown to another user, or shared with a contractor. That does not change because the aggregate would be interesting.
- No verdicts, scores or rankings. Those are outputs. Publishing them would invite you to trust us rather than check us.
- No net margin. It cannot be sourced from public data, so we publish none. Why.