The short answer: a 20% markup keeps only a 16.7% margin, so to keep 20% of the price you need a 25% markup. Markup is what you add on top of cost, as a percent of cost. Margin is what you keep, as a percent of the price. Plan around one and price with the other, and the gap comes out of your pocket on every job.
The worked numbers below come from the sample quotes in eight of our trade spreadsheets and from simple examples you can check on a calculator. Where a figure came from an owner's own pricing, it is marked as one owner's number, not an average.
Markup vs margin in one example
On a $10,000 job that cost $8,000, the $2,000 profit is a 25% markup but only a 20% margin.
- Profit: $10,000 - $8,000 = $2,000.
- Margin (profit / price): $2,000 / $10,000 = 20%.
- Markup (profit / cost): $2,000 / $8,000 = 25%.
Same dollars, two percents. Markup is measured against cost, the smaller number, so it always reads higher than margin. If you want to keep 20 cents of every dollar the customer pays, you have to add 25 cents to every dollar of cost, not 20.
How to calculate markup, margin and price
Three formulas cover every case, and the third is the one to quote with.
| You want | Formula | Example |
|---|---|---|
| Markup % | (price - cost) / cost | ($120 - $100) / $100 = 20% |
| Margin % | (price - cost) / price | ($120 - $100) / $120 = 16.7% |
| Price for a target margin | cost / (1 - margin) | $100 / 0.75 = $133.33 for 25% |
To convert: margin = markup / (1 + markup), and markup = margin / (1 - margin). So a 30% margin needs 0.30 / 0.70 = 42.9% markup, and a 40% margin needs 0.40 / 0.60 = 66.7%.
Markup vs margin chart
The gap between markup and margin is small at 10% and large above 30%.
| Markup you add | Margin you keep | Margin you want | Markup you need | Or divide cost by | |
|---|---|---|---|---|---|
| 10% | 9.1% | 10% | 11.1% | 0.90 | |
| 15% | 13.0% | 15% | 17.6% | 0.85 | |
| 20% | 16.7% | 20% | 25.0% | 0.80 | |
| 25% | 20.0% | 25% | 33.3% | 0.75 | |
| 30% | 23.1% | 30% | 42.9% | 0.70 | |
| 35% | 25.9% | 35% | 53.8% | 0.65 | |
| 50% | 33.3% | 40% | 66.7% | 0.60 | |
| 100% | 50.0% | 50% | 100% | 0.50 |
How much money mixing them up costs
Using markup where you meant margin cost $586.86 on one roof in our example and $1,884.62 on a simple $10,000 job.
Multiplying by 1.35 to get 35%. Say a job costs $10,000 and you want to keep 35% of the price. Multiply by 1.35 and you quote $13,500. That keeps $3,500, which is 25.9% of the price. The right price is $10,000 / 0.65 = $15,384.62, so the quick math left $1,884.62 on the table. Do that on ten jobs a year and it is close to $19,000.
A 20% markup on our re-roof. The roofing example's 20-square tear-off has a full cost of $11,737.15. A 20% markup prices it at $14,084.58 and keeps 16.7%. Pricing for a real 20% margin is $11,737.15 / 0.80 = $14,671.44, which is $586.86 more on one roof.
Marking up labor but not materials. Say a paint job has $2,000 of labor cost, billed at double, and $1,000 of paint and supplies passed through at cost. The price is $4,000 + $1,000 = $5,000 on a $3,000 cost. The labor line looks like a 50% margin, but the job keeps $2,000 / $5,000 = 40%. Ten points of margin, lost on one line of the quote, and the more material-heavy the job, the bigger the drop.
Markup and margin on eight sample quotes
In our eight trade examples, the markup on full cost runs from 23.0% to 37.7%, and the margin kept runs from 18.7% to 27.4%. Each quote adds a materials markup, a 5% cushion and a profit setting on top of full cost (labor at the break-even rate, so overhead and the owner's wage are already paid).
| Sample job | Full cost | Price before tax | Markup on cost | Margin kept |
|---|---|---|---|---|
| Drywall: basement finish, about 3,500 board ft | $7,331.31 | $9,014.72 | 23.0% | 18.7% |
| Roofing: tear-off and re-roof, 20 squares | $11,737.15 | $14,598.72 | 24.4% | 19.6% |
| Lawn care: weekly mow, 6,500 sq ft, per visit | $43.07 | $54.71 | 27.0% | 21.3% |
| House cleaning: 2,000 sq ft every 2 weeks, per visit | $201.79 | $256.55 | 27.1% | 21.3% |
| Plumbing: bathroom rough-in changes | $3,877.52 | $5,094.45 | 31.4% | 23.9% |
| Pressure washing: house soft wash and driveway | $596.55 | $804.10 | 34.8% | 25.8% |
| Painting: interior repaint, 4 bed / 4 bath | $6,318.68 | $8,663.21 | 37.1% | 27.1% |
| Fencing: 150 ft of 6 ft cedar privacy | $5,957.05 | $8,201.18 | 37.7% | 27.4% |
Every margin sits 4 to 11 points under its markup. Read only the markup column and you'll think you're doing better than you are.
Because these margins are after overhead and the owner's pay, they are closer to net profit than to the gross margins some painters quote. The overhead and profit guide explains that difference.
Contractor markup on materials
Materials need a markup because they cost more than the receipt: someone orders them, collects them, stores them, returns the wrong ones and carries the bill until the customer pays. Here is what a few owners we studied do (one owner's number each, not averages):
| Trade | What one owner does | Markup | Margin on that item |
|---|---|---|---|
| Painting | 5 gallons bought at $25, sold at $50 | 100% | 50% |
| Fencing | $822 of materials quoted at $1,235 | 50% | 33.3% |
| Lawn care | mulch bought at $20 a yard, charged at $30 | 50% | 33.3% |
| Lawn care | work done by subcontractors | 10% | 9.1% |
What the trade spreadsheets start with (change any of them on the Shop Setup tab):
| Trade example | Default markup on materials | Margin on materials |
|---|---|---|
| Roofing, Drywall | 15% | 13.0% |
| House cleaning (supplies) | 20% | 16.7% |
| Fencing, Pressure washing | 25% | 20.0% |
| Plumbing (mostly small parts) | 35% | 25.9% |
| Painting, Lawn care | 50% | 33.3% |
The settings are lower in material-heavy trades like roofing on purpose: labor is already charged at a full shop rate and the job gets its own profit line. If you price labor at bare wages, the materials markup has to carry the overhead too, which is why some owners double everything. In house cleaning, supplies are a small slice of the charge, so the supplies markup barely moves the price; the labor rate does.
Doubling your labor cost is a 50% margin, not 100%
Doubling a cost is a 100% markup and a 50% margin, never 100% profit. A worker who costs you $32 an hour and bills at $64 keeps $32, half the price. And if that $32 doesn't include overhead or the owner's time, the real profit after those is lower still. The true hourly rate guide shows how to build them into the hourly cost first, so the markup you add afterwards is real profit.
How to price for the margin you want
Price for the margin you want by dividing your full cost by (1 - margin), then check profit / price.
- Work out full cost: materials, labor at your real hourly rate, equipment, subs, permits and the small forgotten items.
- Pick the margin you want to keep.
- Divide cost by (1 - margin). For 25%, divide by 0.75.
- Check: (price - cost) / price should equal your target.
On a $4,000 cost with a 25% target, that is $4,000 / 0.75 = $5,333.33. Check: $1,333.33 / $5,333.33 = 25%. A 25% markup would have given $5,000 and kept only 20%.
The same rule applies to extra work that comes up mid-job; the change orders guide shows how to price it, and quote vs estimate covers how to present the number.
Calculators that show markup and margin on every quote
The free true hourly rate calculator gives you the labor cost for step 1. Each trade's Pricing Calculator then shows both numbers on every quote, the profit you keep in dollars and what you earn per labor hour: Roofing, Painting, Plumbing, Fencing, Drywall, Lawn Care, House Cleaning and Pressure Washing.
