Skip to content

Glossary · Money & accounting

What is Gross margin?

Gross margin for HVAC, plumbing and electrical shops: the formula, what counts as a direct cost, how it differs from markup, and how to raise it.

Updated October 15, 2026 · 7 min read

Definition

Gross margin is the share of revenue left after paying the direct costs of doing the work: technician labor at its burdened rate, parts, equipment, subcontractors and permits. It is calculated as revenue minus direct job costs, divided by revenue, times 100, and it is the money that has to cover overhead and leave a profit.

Also called: gross profit margin, GM%, job margin

Formula

(Revenue − direct job costs) ÷ revenue × 100

Example: $1,000 repair with $430 of direct cost → $570 gross profit → 57% gross margin

Measured as
Percent of revenue, before overhead
Direct costs include
Burdened labor, parts, equipment, subs, permits
Excludes
Office, rent, marketing, trucks not tied to a job
Not the same as
Markup, which divides by cost, not revenue
Public benchmark
None reliable for residential trades

A $1,000 repair is not $1,000 of money you get to keep. In the example below, after the tech's time, the parts and the drive, a little over half of it is left to pay for the office, the trucks, the phones and the owner's profit. That remainder, as a share of the price, is your gross margin. It is the single number that tells you whether your prices can carry the business.

Gross margin in plain English

Think of every invoice as two buckets. The first bucket pays for doing that specific job: the technician's hours, the parts and equipment, any subcontractor, the permit, the disposal fee. The second bucket is everything left over. Gross margin is the size of the second bucket compared with the whole invoice.

Here is an example with made-up numbers for a residential HVAC repair:

LineAmount
Invoice total (before sales tax)$1,000
Capacitor and contactor at cost$85
Technician time, 2.5 hours × $55 burdened rate$137.50
Drive time, 0.5 hours × $55$27.50
Refrigerant and misc. materials at cost$180
Direct cost of the job$430
Gross profit$570
Gross margin57%

Leave sales tax out of revenue. It is the state's money, not yours, and including it inflates the margin on taxable jobs.

How do you calculate gross margin?

Metric

Gross margin %

The share of each revenue dollar left after the direct costs of the work are paid.

(Revenue − direct job costs) ÷ revenue × 100

Where the numbers come from: Invoice subtotals after discounts and before tax; parts and equipment at cost; field labor hours times each person's burdened rate; subcontractor and permit bills tied to the job.

The math is simple. The hard part is deciding what counts as a direct cost. The federal cost principles used for government contracts give a useful test: a direct cost is one "specifically identified" with a particular cost objective, which for you means a particular job.1 If you can point to the job that caused the cost, it belongs in the margin. If it would exist whether or not that job happened, such as dispatcher wages, rent or your website, it is overhead.

Count labor at the burdened rate

Wages are only part of what a technician costs. The Bureau of Labor Statistics reports that private employers spent $46.89 per hour worked on total compensation in June 2026, of which $32.82 was wages and salaries and $14.07, or 30.0%, was benefits.2 Those are all-industry averages, not trade figures, but the gap is the point: costing labor at wage alone overstates every job's margin.

$46.89

Employer cost per hour worked, private industry, June 2026

BLS ECEC

$32.82

Of which wages and salaries

BLS ECEC

30.0%

Benefits share of total compensation

BLS ECEC

Common mistakes in the math

  • Dividing by cost instead of price. That gives you markup, not margin. See the comparison below.
  • Leaving labor out. A "parts margin" of 70% tells you nothing about whether the job made money.
  • Counting sales tax as revenue. It raises revenue without raising profit.
  • Mixing installs and service. A blended number hides a weak install margin behind strong service work. Split by job type.
  • Ignoring return trips. A callback adds labor to the original job's cost. If you book it as a separate $0 job, the original job's margin looks better than it was.

Gross margin vs markup

This is the most expensive confusion in trade pricing. Markup is what you add to cost. Margin is what you keep out of price.

Markup on costPrice of a $100 partGross margin
25%$12520.0%
50%$15033.3%
100%$20050.0%
150%$25060.0%
200%$30066.7%

Convert between them

Margin = markup ÷ (1 + markup) · Markup = margin ÷ (1 − margin)

If your target is a 50% margin, you need a 100% markup, not a 50% one. The markup vs margin calculator does the conversion for any number.

Gross margin vs the gross profit on your tax return

The gross profit line on a Schedule C is a tax number, and it can look very different from your management margin. IRS Publication 334 says gross profit is net receipts minus cost of goods sold, and that its cost of goods sold chapter "does not apply to a personal service business," naming a carpenter and a painter as examples.3 It also explains that labor in cost of goods sold is usually a manufacturing item, so many service businesses report wages as an ordinary business expense further down the form.3

The practical upshot: do not judge your pricing from the tax return's gross profit line. Build your own gross margin from job costing, with burdened field labor included, and let your accountant handle the tax presentation.

What is a good gross margin?

There is no reliable public benchmark for residential HVAC, plumbing or electrical gross margin. Published figures tend to come from vendor or consultant surveys with unclear samples and definitions, so we don't quote them here.

You can work out your own floor instead:

  1. 1

    Add up a year of overhead

    Everything that is not a direct job cost: office wages, rent, insurance, software, marketing, non-job vehicle costs, the owner's market-rate salary.

  2. 2

    Pick a net profit goal

    Decide what profit you want as a share of revenue. That is a business decision, not an industry average.

  3. 3

    Divide by expected revenue

    Overhead plus profit goal, divided by next year's expected revenue, is the minimum blended gross margin you need.

  4. 4

    Set targets by job type

    Service, maintenance and install work carry different margins. Set a floor for each so the blend still clears your minimum.

Example: $600,000 of overhead plus a $200,000 profit goal on $2,000,000 of expected revenue means you need a 40% blended gross margin before anything else works.

What moves gross margin?

LeverWhy it worksHow to check
Flat-rate prices built from real costPrices that include burdened labor and material cost can't drift below costMargin per price book task, reviewed quarterly
Fewer return tripsEvery second visit adds labor and drive time to the same revenueReturn-trip and callback rate by tech
Discount disciplineA 10% discount on a 50% margin job cuts its gross profit by 20%Discounts as a share of revenue, by tech
Truck stock that fits the workSupply-house runs are unpaid drive timeParts runs per week
Install estimates checked against actualsInstalls are where hours overrunEstimated vs actual cost on every install

The discount row is worth a second look. On a $1,000 job with a 50% margin, gross profit is $500. Take $100 off and gross profit drops to $400, a 20% cut in what the job contributes, while the work stays the same.

Free calculatorMarkup vs margin calculatorConvert markup to margin (and back) so your prices actually hit your margin target.

How TradesWork shows gross margin

Job costing in TradesWork builds the cost of each job as it happens: materials from stock, invoice lines and purchase orders (de-duplicated), labor at each person's burdened rate, optional mileage, and direct costs such as subcontractors and permits. Gross margin uses the invoice subtotal before tax and after discounts. If someone on the job has no burdened rate set, labor shows as unknown rather than $0, so the margin isn't overstated. Invoices under your margin floor, 25% by default, get a review flag before they sync.

The price book shows price, member price, cost and margin per item, so low-margin tasks stand out before they reach a customer. · Real product screenshot, demo company data.
Price book with services, prices and margins

For the step after gross margin, see net profit and how overhead gets built into your rates.

Footnotes

  1. Federal Acquisition Regulation 31.202, Direct costs, via Acquisition.gov, checked October 2026. https://www.acquisition.gov/far/31.202 ↩

  2. U.S. Bureau of Labor Statistics, Employer Costs for Employee Compensation, June 2026, private industry workers. https://www.bls.gov/news.release/ecec.nr0.htm ↩

  3. Internal Revenue Service, Publication 334, Tax Guide for Small Business, chapters 6 (Cost of Goods Sold) and 7 (Figuring Gross Profit). https://www.irs.gov/publications/p334 ↩ ↩2

Free download

Flat-Rate Price Book Builder

Work out your true hourly cost, set your billable rate, and price every task with good, better and best options.

Get it free
  • Overhead and labor cost calculator
  • Billable hour and target margin model
  • Task pricing sheet with materials markup
  • Good / better / best option builder
  • Member discount column

Frequently asked questions

There is no reliable public benchmark for residential trades, because shops count labor differently and mix service with installs. Figures quoted online usually come from vendor or consultant surveys with unclear samples. Set your target from the top down instead: your overhead plus your profit goal, as a share of revenue, is the minimum gross margin you need. Then track it by job type.

Sources

Last reviewed October 15, 2026. Third-party sources are marked; some are written by competing vendors.

  1. 1.IRS Publication 334, Tax Guide for Small Business (chapters 6, 7 and 9)
  2. 2.BLS, Employer Costs for Employee Compensation, June 2026
  3. 3.FAR 31.202, Direct costs (Acquisition.gov)

Ready to run a tighter shop?

Try TradesWork free for 14 days. Bring your customers and price book, or start fresh with a price book made for your trade.

  • No credit card
  • No contract
  • Cancel any time
Three workers in coveralls unloading equipment from a van