Free contractor tool
Enter your cost and the number you want to hit. We'll show you what to bill — and the markup-to-margin gap that quietly eats contractor profit.
The part that costs contractors money
A 20% markup is not a 20% margin. Markup is on cost; margin is on price. Here's the conversion:
| If your margin is… | …you must mark up by |
|---|---|
| 10% | 11.1% |
| 15% | 17.6% |
| 20% | 25.0% |
| 25% | 33.3% |
| 30% | 42.9% |
| 40% | 66.7% |
| 50% | 100.0% |
Mark up 20% and you only keep ~16.7% margin — the gap that quietly eats a contractor's profit on every job.
The 30-second version
Say a job costs you $10,000. If you mark it up 20%, you bill $12,000 and make $2,000 — but $2,000 ÷ $12,000 is only a 16.7% margin, not 20%. The percentage shrinks because margin is measured against the bigger number (price).
To actually keep a 20% margin, you have to mark up 25% and bill $12,500. Get this backwards on every bid and you're leaving real profit on the table all year.
Bullwork handles this for you. The bid engine prices from a real cost library and applies your markup so the margin you see is the margin you keep — no spreadsheet math, no surprises at job close.
Questions
Markup is your profit as a percentage of cost. Margin is your profit as a percentage of price. Because price is bigger than cost, the same dollar of profit is always a smaller margin % than markup %. A 50% markup is only a 33% margin.
A contractor who "adds 20%" thinking it’s their margin actually keeps only ~16.7% margin. On thin construction jobs that gap is often the entire profit — repeated across every bid.
You need a 25% markup to keep a 20% margin. The formula is markup% = margin% ÷ (100 − margin%) × 100.
It varies by trade and risk, but many general contractors target 15–25% gross margin, with specialty trades often higher. The right number is the one that covers your overhead and leaves real net profit — the calculator shows what to bill to hit it.
We'll build your next bid on the platform — free. See your real margin before you submit.
Get a free bid →