Every contractor has heard a number. Someone says 35%, someone else says 22%, a supplier rep mentions what a competitor is supposedly getting.
All of it is noise, because the right margin is not a benchmark — it is a calculation, and the inputs are specific to your business.
The short answer: add your annual overhead to the net profit you want, divide by expected revenue, and that is your floor. Bid meaningfully above it.
Working out your floor
Three numbers you already have or can get in an hour.
Annual overhead. Everything that is not a direct job cost. Rent, insurance, office, vehicles not on jobs, software, admin salaries, your own salary, marketing, accounting.
Target net profit. What you want the business to make after everything, including paying yourself properly. This is a decision, not a residual.
Expected revenue. What you realistically expect to do. Be conservative — an optimistic revenue figure produces an artificially low margin requirement, which is exactly the wrong direction to be wrong in.
Floor margin = (overhead + target net profit) ÷ expected revenue
Worked through:
| Annual overhead | $420,000 |
| Target net profit | $180,000 |
| Gross margin needed | $600,000 |
| Expected revenue | $3,000,000 |
| Floor gross margin | 20.0% |
Twenty percent is now a fact about this business rather than an opinion. Below it, the year does not work.
Why your target sits well above the floor
If you bid every job at 20%, you will not average 20%. You will average something meaningfully less, for reasons that are entirely predictable:
- Some jobs run over on hours
- Some scope creeps without a change order
- Some work is taken at a discount for strategic reasons
- Some estimates are simply wrong
The realistic gap between bid margin and actual margin in trades work is five points or more. So bidding at 25% to average 20% is roughly break-even on the plan, and bidding at 28 to 32% gives you a real chance of hitting it.
Bid margin is an intention. Actual margin is the result. Price the intention high enough that the result lands where you need it.
Margin should not be uniform
Most contractors apply one percentage to everything. That is simpler, and it is leaving money on the table in two directions at once.
Different work carries different risk, different overhead intensity, and different competitive pressure. It should carry different margin.
| Job characteristic | Margin adjustment | Why |
|---|---|---|
| Small job | Higher | Same setup and travel spread over less revenue |
| Emergency or urgent | Higher | You are selling responsiveness, which is scarce |
| Unusual or unfamiliar work | Higher | Your estimate is less reliable |
| Difficult access | Higher | Production rate drops, often a lot |
| Repeat customer, easy site | Can be lower | Low risk, low sales cost, predictable |
| Large, straightforward | Can be lower | Overhead spreads thin, efficiency is real |
| Long travel | Higher | Unproductive hours that still get paid |
The way to find these is job costing. After you have costed thirty jobs, the pattern is visible: one category consistently comes in below the others, and it is usually the one you thought was your core work.
Gross margin and net profit are different animals
This confuses a lot of owners, and the confusion is expensive.
Gross margin is revenue minus direct job costs — labour, materials, subs, equipment. It is what a job contributes toward covering overhead.
Net profit is what is left after overhead comes out of the total gross margin.
A company at 30% gross margin is not making 30%. If gross margin is 30% on $3M, that is $900,000. Take out $420,000 of overhead and net is $480,000, or 16%.
Where this goes wrong: an owner sees 30% and assumes the business is very profitable, so they take a job at 18% because "it's still profitable." It is not. Any job below your floor is consuming overhead capacity that a better job could have used. At 18% against a 20% floor, that job is contributing less than it costs to have the capacity available.
That is the real cost of cheap work. Not that it loses money directly, but that it occupies the crew when something better could have.
What the number tells you when it moves
Track average gross margin monthly. The direction matters more than the level.
Falling while revenue rises is the classic warning sign, and it is the cash trap of growth arriving early. You are buying work.
Falling while revenue is flat means costs moved and prices did not. Material increases, wage increases, or an overhead rate that has gone stale.
Rising while revenue falls usually means you are being more selective, which is often correct — provided the absolute gross margin dollars still cover overhead.
The figure to watch is gross margin dollars, not just the percentage. A 35% margin on $1.5M produces $525,000. A 22% margin on $3M produces $660,000. The second business has a worse percentage and more money, and if overhead is the same it is the better year.
Percentage tells you about pricing discipline. Dollars tell you whether the year works.
Practical starting points
If you have no historical data and need somewhere to begin while you build it:
Do the floor calculation first. Even rough numbers beat a benchmark from someone else's business.
Add eight to ten points to the floor for your bid target. That covers normal variance and gives room for the occasional strategic price.
Set a walk-away number and write it down. Mine might be different from yours, but having one that exists in writing is what stops the 11% job from getting accepted at 4pm on a Friday when the schedule looks empty.
Recalculate when anything structural changes. A new hire, a new lease, a new truck — overhead moved, so the floor moved.
The honest test
Here is the fastest way to find out whether your current target is right.
Take last year: overhead, net profit, revenue. Work out what gross margin you actually achieved. Then compare it to what you thought you were bidding at.
Most contractors doing this for the first time find a gap of five to ten points between the two. That gap is not a mystery — it is the accumulated cost of hours overruns, unbilled extras, discounts given at the close, and jobs taken below target.
Knowing the size of the gap is what lets you price for it. Everyone else just hopes the year works out.
Why margin drifts down when nobody decides to lower it
Nearly every contractor whose margin has fallen can point to no decision that caused it. That is the nature of the problem: margin erodes through accumulation, not through choices.
The mechanism is a series of individually reasonable concessions.
A customer asks for a small addition and it is not worth writing up, so it goes in free. A supplier price rises 6% and the estimating template still carries last year's figure. A crew takes longer than estimated and nobody feeds the number back, so the next estimate repeats the error. A quote goes out at a round number slightly below the calculated price, because the calculated price looked awkward. A long-standing customer keeps the old rate because raising it feels uncomfortable.
None of those is a mistake large enough to notice. Together they are four to eight points a year, and they compound — because each year's template starts from last year's already-eroded numbers.
The defence is an annual reset rather than continuous vigilance.
Once a year, rebuild the estimating template from current inputs: current material pricing from an actual supplier quote, current burdened labour rate, current overhead rate calculated from a rolling twelve months, current production rates from completed job data rather than from memory.
Then compare the rebuilt template against the one you have been using. The gap between them is the drift, and seeing it as a single number once a year is far more useful than trying to catch each individual concession as it happens.
Contractors who do this are routinely surprised — the rebuilt template comes out five to nine points higher, and every job priced on the old one that year was quietly underpriced by that amount.
Drift is not a discipline problem. It is a maintenance problem, and it responds to a scheduled afternoon rather than to willpower.
The 10 Numbers I Check Every Monday
One page. Ten minutes, every Monday. Every number has a line next to it that tells you when to act.
Get the sheet — freeCommon questions
What is the difference between gross margin and net profit?
Gross margin is revenue minus direct job costs — labour, materials, subs, equipment. Net profit is what remains after overhead comes out of total gross margin. A business at 30 percent gross margin with heavy overhead can easily net 10 percent. Confusing the two leads owners to accept jobs that look profitable but do not cover their share of running the business.
Should every job have the same target margin?
No. Small jobs, urgent work, unfamiliar work and difficult access should all carry higher margin because they carry higher overhead intensity or higher risk. Large, repeat, straightforward work can carry less. Applying one percentage to everything means you are overcharging for easy work and undercharging for hard work.
What if I do not know what my overhead is yet?
Work it out before setting any margin target, because the target is meaningless without it. Add up everything that is not a direct job cost for the last twelve months. It will take an afternoon with your year-end statements, and until you have it you are pricing on instinct.