What margin do contractors actually make?
Gross margin for plumbing, heating and air-conditioning contractors was 37.0% of revenue in 2022 — measured as revenue minus materials, subcontracted work and field labor with benefits. That figure is not a survey or an estimate. It is computed from the 2022 Economic Census, table EC2223BASIC (ECNBASIC2022), NAICS 238220, covering 114,427 establishments and 1,169,692 employees.
The number, and the other number
Two definitions of gross margin are in circulation and they differ by more than five points, so it matters which one anybody is quoting.
| Definition | Share of revenue | What it counts as direct cost |
|---|---|---|
| Gross margin, unloaded | 42.6% | Materials, subcontracted work, field-labor wages. Benefits and payroll tax excluded. |
| Gross margin, loaded | 37.0% | The same, plus fringe benefits pro-rated onto field labor by its share of payroll. |
The loaded figure is the honest one for comparing against a quote. A contractor pricing a job marks up what the job actually costs them, and a technician costs more than their wage — payroll tax, insurance, and benefits all ride on top. That is the number we use in our own estimates.
Where it comes from, line by line
All figures are for the 2022 calendar year, employer establishments only. The Census publishes these in thousands of dollars; we have converted them to billions for reading.
| Census variable | Amount | Share of revenue |
|---|---|---|
RCPTOT — total revenue | $297.6 billion | 100% |
CSTMPRT — cost of materials | $93.7 billion | 31.5% |
CSTSCNT — work subcontracted out | $21.2 billion | 7.1% |
PAYANCW — construction worker wages | $56.1 billion | 18.8% |
| Fringe benefits attributed to field labor | $16.5 billion | 5.5% |
| Gross margin, loaded | — | 37.0% |
How we know the parse is right
This is worth saying because it is where this kind of number usually goes wrong. The Census API returns an unlabeled positional array of 139 columns whose order is neither alphabetical nor documented in the response. Zip the header to the row wrongly and you get plausible-looking garbage rather than an error. Our first automated read of this exact table returned net construction receipts where total revenue should have been — a number that looks entirely reasonable sitting on its own — and reported eight times more establishments than the correct figure while reporting the establishment count as the employee count.
So the parse is checked against six accounting identities the Census publishes, before any figure from it is used. All six reconcile exactly. We attempted three other trade codes — all specialty trades, electrical contractors, roofing contractors — and their parses failed these checks, so their figures are not published here. An unverified number is not a number.
PAYANCW + PAYANOC = PAYANN— field wages plus office wages equal total payrollPRIDL + CSLDL + FEDDL = RCPCWRK— private, state and federal work equal construction receiptsRCPCWRK − CSTSCNT = RCPNCW— receipts less subcontracting equal net construction workCSTMPRT + CSTSCNT + CSTEFT + CSTLAND = CSTCMT— the four cost components equal total selected costsBENLGL + BENVOL = BENEFIT, andRPBLD + RPMCH = RPTOT
Gross margin is not profit, and the difference is most of it
A homeowner who learns that contractors run at 37% often concludes they are being fleeced. That reading is wrong, and the Census data shows why: office wages alone are 8.2% of revenue, before rent, vehicles, depreciation or any of the other operating costs the Census collects separately.
What is left after all of it is net margin — and we do not publish one, because it cannot be sourced. The Economic Census collects no interest expense, no income taxes, and no owner distributions above salary, so a residual computed from it is an upper bound rather than a profit figure. IRS sole-proprietor data has the opposite problem: for a Schedule C filer, net income is the owner’s entire compensation, not profit after paying them. Both are wrong in known directions. Anyone quoting you a contractor net margin should be asked which one they used.
What this means for a quote in front of you
Margin is the widest single variable in any estimate, and it is the biggest reason two honest bids on the same job differ. A contractor at 37% is running an ordinary business, not overcharging you. Our own estimates use a band of 33–42% around the measured figure, and the result page lets you move it and watch the fair price change.
Check a quote against this — you can drag the margin slider on the result and see how much of the price is the business rather than the work.
What this figure does not tell you
- It is revenue-weighted. This is the margin of the industry’s dollars, which skews toward larger firms. It is not the median contractor, and the Census publishes no percentiles in this table.
- It includes commercial and new-construction work. Residential service and replacement may run richer. We found no primary source quantifying that gap, so we are not applying one.
- NAICS 238220 combines plumbing with HVAC. There is no finer federal code separating them.
- It excludes sole proprietors. Roughly 2.5 million unincorporated specialty trade contractors file no comparable cost data.
- It is 2022 data, the most recent Economic Census. The next one covers 2027.
Common questions
What is the average contractor gross margin?
For plumbing, heating and air-conditioning contractors (NAICS 238220), gross margin was 37.0% of revenue in the 2022 Economic Census, counting materials, subcontracted work and field labor with benefits as direct cost. Excluding payroll benefits from direct cost, the same data gives 42.6%.
Is gross margin the same as profit?
No, and conflating them is the most common error in this subject. Gross margin is revenue minus the direct cost of doing the job. It still has to pay for office staff, vehicles, insurance, warranty work, unbillable time and the owner. What is left after all of that is net margin, and the public data does not let anyone compute one for this industry.
What is a fair markup for a contractor?
A contractor running at the national average of 37% is not overcharging. That is the industry operating normally. Margin is also the widest single variable in any estimate, which is why two honest bids on the same job can differ substantially without either being wrong.
Why do you not publish a net profit margin?
Because it cannot be sourced. The Economic Census collects no interest expense, no income taxes and no owner distributions above salary. IRS sole-proprietor net income is the owner’s entire compensation rather than profit after paying them. Both figures are wrong in known directions, so we publish neither.