# What Is Gross Margin?

Gross margin is the share of revenue left after paying the direct costs of doing the work: materials, field labor, equipment and subcontractors. Gross margin % = (Revenue − Cost of goods sold) ÷ Revenue × 100. An HVAC company that bills $1,000,000 and spends $560,000 on direct job costs has a 44% gross margin.

## Key takeaways

- Gross margin = gross profit ÷ revenue. Gross profit is revenue minus cost of goods sold (COGS), also called cost of sales or job costs.
- For a trades business, COGS includes field techs' wages and their payroll costs, not just materials. Leaving labor out makes the margin look far better than it is.
- Gross profit pays for overhead. Whatever's left after overhead is net profit.
- Service and repair work usually runs a higher margin percentage than installs and replacements, while installs bring in more dollars per job.
- Track gross margin per job, per job type and per month. A company-wide average hides the jobs that lose money.

## How does gross margin work?

Gross margin tells you how many cents of every revenue dollar are left after the job itself is paid for. Those cents have to cover rent, office staff, trucks, insurance, marketing and your own pay, which together are your [overhead](https://www.brix.so/learn/overhead). If gross margin is thin, no amount of hustle fixes the bottom line, because each job barely pays for itself.

**Gross margin formulas**

```
Gross profit = Revenue − COGS   |   Gross margin % = Gross profit ÷ Revenue × 100
```

Where:
- Revenue = what you billed for the work, before sales tax
- COGS = direct costs of the jobs: materials, field labor with its labor burden, equipment rentals, permits, disposal and subcontractors
- Gross profit = the dollars left to pay overhead and profit

> **Worked example: one month at a plumbing company**
>
> Illustrative numbers. Revenue for the month: $120,000.
>
> Direct costs: materials $26,400; field techs' wages $30,000; payroll taxes, workers' comp and benefits on those wages $7,800; subcontracted drain camera and excavation work $4,800; equipment rental $1,000. COGS = **$70,000**.
>
> Gross profit = $120,000 − $70,000 = $50,000. Gross margin = $50,000 ÷ $120,000 = **41.7%**.
>
> Overhead that month was $38,000, so net profit was $12,000, a 10% [net profit margin](https://www.brix.so/learn/net-profit-margin).

## What counts as cost of goods sold for a contractor?

Cost of goods sold for a contractor is every cost that exists only because a job was done: parts and materials, the wages and payroll costs of the people doing the work, subcontractors, equipment rented for the job, permits, dumpsters and disposal. If the cost would still be there in a month with no jobs, such as rent, office wages or software, it's overhead, not COGS.

**COGS or overhead? Common trades costs**

| Cost | Where it goes | Why |
| --- | --- | --- |
| Parts, materials, equipment installed | COGS | Bought for a specific job |
| Field techs' and installers' wages | COGS | Paid to do the work; this is the one owners most often miss |
| Payroll taxes, workers' comp, benefits on field wages | COGS | Part of the real cost of field labor. See [labor burden](https://www.brix.so/learn/labor-burden) |
| Subcontractors | COGS | Work bought for a specific job |
| Permits, dumpsters, disposal, job-specific rentals | COGS | Exist only because of the job |
| Truck fuel and maintenance | Usually overhead | Some shops allocate it per job; pick one method and stay consistent |
| Office staff, dispatchers, CSRs | Overhead | Paid whether or not a job runs today |
| Rent, insurance, software, phones, marketing | Overhead | Fixed or semi-fixed costs of being in business |
| Owner's salary | Overhead (unless the owner works in the field) | If you turn wrenches, the field share of your pay belongs in COGS |

_Your bookkeeper may set this up differently in your chart of accounts. Consistency month to month matters more than the exact split._

To see the split clearly, set up your [chart of accounts](https://www.brix.so/learn/chart-of-accounts) so job costs sit above the gross profit line on your [profit and loss statement](https://www.brix.so/learn/profit-and-loss-statement). The [cost of goods sold](https://www.brix.so/learn/cost-of-goods-sold) guide covers the accounting side in more detail.

## Gross margin by trade

Gross margin depends on how much of each job is labor versus materials, and on how much of your work is service versus installation. Here's what drives it in each trade.

**What moves gross margin in each trade**

| Trade | Biggest COGS lines | Pushes margin up | Pushes margin down |
| --- | --- | --- | --- |
| HVAC | Equipment on replacements; tech labor on service | Maintenance agreements, repair work, accurate flat-rate prices | Price-shopped system replacements, callbacks, overtime in peak season |
| Plumbing | Tech labor and small parts; fixtures on remodels | Drain and emergency service, tiered parts markup | Unbilled second trips, slab leaks quoted too low |
| Electrical | Labor; panels, wire and EV chargers | Service calls, panel upgrades priced as packages | Copper price swings on long quotes, permit delays |
| Roofing | Shingles and underlayment, crew labor, dumpsters | Tight material takeoffs, repairs and inspections | Waste, weather days, supplier price increases between quote and install |
| Landscaping | Crew hours, plants, stone, mulch | Design-build installs, enhancement upsells | Underbid maintenance routes, drive time between stops |
| Cleaning | Almost all labor | Recurring routes with tight drive times | Turnover and training hours, jobs that run long |

The table shows why one company-wide number can mislead. Look at an HVAC shop's two job types side by side:

**Service vs. replacement: same shop, different margins (illustrative)**

|  | Repair call | System replacement |
| --- | --- | --- |
| Price | $450 | $12,000 |
| Parts or equipment | $60 | $6,100 |
| Burdened labor | $84 (2 hours at $42) | $756 (18 crew-hours at $42) |
| Permit | — | $150 |
| COGS | $144 | $7,006 |
| Gross profit | $306 | $4,994 |
| Gross margin | 68.0% | 41.6% |

_The repair has the better margin percentage. The replacement brings in 16 times the gross profit dollars. You need both numbers._

Because job length varies so much, many service companies also track [gross profit per hour](https://www.brix.so/learn/gross-profit-per-hour), which puts a two-hour repair and a two-day install on the same scale.

## Gross margin vs. gross profit

Gross profit is a dollar amount; gross margin is that amount as a percentage of revenue. $50,000 of gross profit on $120,000 of revenue is a 41.7% gross margin. Use gross profit dollars to see whether you can pay overhead this month, and gross margin percent to compare months, job types and price changes.

## Gross margin vs. net profit margin and markup

- **Gross margin** subtracts only direct job costs. It tells you whether your prices cover the work.
- **[Net profit margin](https://www.brix.so/learn/net-profit-margin)** subtracts overhead too. It tells you whether the business makes money.
- **[Contribution margin](https://www.brix.so/learn/contribution-margin)** subtracts every cost that varies with volume, including things like card fees and commissions. It's the number for break-even math.
- **[Markup](https://www.brix.so/learn/markup)** divides the same profit by cost instead of revenue, so it's always the bigger number. See [markup vs. margin](https://www.brix.so/learn/markup-vs-margin) for the conversion table.

## How do you improve gross margin?

You improve gross margin by raising prices on the work that's underpriced, cutting the direct cost of doing each job, or shifting your mix toward higher-margin work. Start by finding which job types are dragging the average down; [job costing](https://www.brix.so/learn/job-costing) is the only reliable way to see that.

1. **Price from cost, not from the competitor down the road.** Build a target margin into every estimate. The [job pricing calculator](https://www.brix.so/tools/job-pricing-calculator) does the math.
2. **Move service work to [flat-rate pricing](https://www.brix.so/learn/flat-rate-pricing).** Fast techs then earn you more per hour instead of less.
3. **Cut unbilled time.** Second trips for parts, callbacks and long drives are all COGS with no revenue. Better truck stock and routing help.
4. **Offer options.** [Good-better-best pricing](https://www.brix.so/learn/good-better-best-pricing) lets customers trade up to higher-margin packages.
5. **Bill change orders.** Extra work done without a signed [change order](https://www.brix.so/learn/change-order) is pure margin loss.
6. **Recheck supplier prices.** Update your price list when material costs move, especially on quotes that sit open for weeks.

## Common gross margin mistakes

- **Leaving field labor out of COGS.** The margin looks great and the bank account doesn't. If techs' wages sit in overhead, your gross margin is overstated.
- **Using raw wages instead of burdened labor.** Payroll taxes, workers' comp and benefits are real job costs.
- **Averaging everything.** A 40% company margin can hide installs at 25% and service at 60%.
- **Confusing margin with markup when pricing.** A 40% markup gives a 28.6% margin.
- **Only looking at year-end.** By the time the tax return shows a thin margin, the year is gone. Review it monthly.

BRIX keeps every quote, job and invoice in one record and syncs invoices and payments to QuickBooks, with expenses categorized as they come in, so your monthly gross margin reflects what the jobs actually cost.

- [QuickBooks sync](https://www.brix.so/integrations/quickbooks): Syncs customers, invoices and payments with QuickBooks so the books match the jobs.
- [Bookkeeping and tax help](https://www.brix.so/features/bookkeeping-taxes): Keeps expenses categorized, tracks 1099 subcontractors and sales tax, and reminds you of quarterly estimated tax dates. BRIX does not file taxes or give tax advice.
- [Invoicing and payments](https://www.brix.so/features/invoicing-payments): Turns finished jobs into invoices and politely chases unpaid ones until the money is in your account.

## Frequently asked questions

### What is a good gross margin for a contractor?

A good gross margin is one that covers your overhead with room left for profit. Add overhead as a percentage of revenue to the net profit you want: if overhead is 30% of revenue and you want 10% profit, you need at least a 40% gross margin. Service-heavy shops usually need more than install-heavy ones because their overhead per dollar of revenue is higher.

### What is the ideal profit margin for HVAC companies?

There's no single ideal number, because it depends on your mix of service, maintenance and replacement work and on your overhead. Work it out from your own books: gross margin has to exceed overhead as a share of revenue by the net profit you're aiming for. Track it separately for repair and replacement work, since they behave very differently.

### Is labor included in gross margin?

Yes. For a trades business, the wages of people doing the work, plus their payroll taxes, workers' comp and benefits, belong in cost of goods sold. Office staff and the owner's management time are overhead. Leaving field labor out makes gross margin look much higher than it really is.

### How do you calculate gross margin on a job?

Subtract the job's direct costs (materials, burdened labor, subs, permits, rentals and disposal) from the price, then divide by the price. A $14,000 roof with $9,600 of direct cost has $4,400 of gross profit and a 31.4% gross margin.

### What's the difference between gross margin and gross profit?

Gross profit is the dollar figure: revenue minus cost of goods sold. Gross margin is that figure divided by revenue and shown as a percentage. $50,000 of gross profit on $120,000 of revenue is a 41.7% gross margin.

### Why is my gross margin high but I'm not making money?

Usually because overhead is eating it, or because field labor is booked as overhead so the gross margin is overstated. Check that techs' wages sit in cost of goods sold, then compare gross profit dollars with monthly overhead. If gross profit doesn't cover overhead, you need higher prices, more volume or lower overhead.

### Can gross margin be over 100%?

No. Gross margin is gross profit divided by revenue, and gross profit can never exceed revenue, so the maximum is just under 100%. Markup, which divides by cost, can go well over 100%.

## Related

- [Markup vs. Margin: What's the Difference?](https://www.brix.so/learn/markup-vs-margin)
- [What Is Markup?](https://www.brix.so/learn/markup)
- [What Is Net Profit Margin?](https://www.brix.so/learn/net-profit-margin)
- [What Is Cost of Goods Sold (COGS) for a Contractor?](https://www.brix.so/learn/cost-of-goods-sold)
- [What Is Job Costing?](https://www.brix.so/learn/job-costing)
- [What Is Gross Profit per Hour?](https://www.brix.so/learn/gross-profit-per-hour)
- [How to Read a Profit and Loss Statement (Contractor's Guide)](https://www.brix.so/learn/profit-and-loss-statement)
- [Markup and Margin Calculator](https://www.brix.so/tools/markup-margin-calculator)
- [Job Costing Calculator](https://www.brix.so/tools/job-costing-calculator)
- [Bookkeeping for contractors that keeps your books tax-ready all year](https://www.brix.so/features/bookkeeping-taxes)

---
Written by BRIX Editorial Team. Last updated 2026-10-12.
Canonical: https://www.brix.so/learn/gross-margin
