A good estimate does two jobs: it's competitive enough to win the work and priced high enough to make money. Most subs are good at the first and quietly lose on the second.
A note on sources. Estimating is a business skill, not a regulated area — this is practical best-practice, and the percentages are common industry rules of thumb, illustrative not binding.
If you use AWJ Trades HQ, the app runs this whole flow for you — takeoff, unit pricing, and the markup math.
What an estimate is built from
The first four are your direct costs — the actual cost of doing the work:
- Materials — priced from real supplier numbers, not memory.
- Labor — hours × your loaded hourly rate (wage plus taxes, comp, benefits — not take-home).
- Equipment & tools — rentals, fuel, blades, consumables, wear.
- Subcontractors — anything you hand off, at their quoted price.
Then the two things that turn a cost into a business:
- Overhead — the cost of being in business: truck, insurance, phone, software, quoting time. Easy to forget.
- Profit — what's left after everything else is paid. Not the same as overhead, and not optional.
And one buffer:
- Contingency — a small percentage for the unknowns. On repair work, surprises are the norm.
The takeoff: measure the work
Break the job into line items. Every line is quantity × unit price = line total.
- Get the quantity from a measurement, not a guess — a count, a length, an area, or a volume.
- Add a waste factor to materials — commonly 5–15%.
- Price each unit from real numbers — today's supplier price and your loaded labor rate.
Accurate quantities are where estimates live or die. In AWJ Trades HQ, the Dimensions → Takeoff flow does this math for you.
Markup vs. margin (the one that costs you money)
The single most expensive misunderstanding in the trades. Both are percentages, measured from different starting points:
- Markup is figured on your cost — how much you add on top.
- Margin is figured on your price — how much you actually keep.
A contractor who "adds 20%" thinking they'll keep 20% is actually keeping only 16.7%. To keep a target margin:
Required Markup = Target Margin ÷ (1 − Target Margin)
So a 30% margin needs a 42.9% markup — not 30%. On a $1,000 cost:
| Markup on cost | Selling price | Margin you keep |
|---|---|---|
| 20% | $1,200 | 16.7% |
| 25% | $1,250 | 20.0% |
| 33% | $1,333 | 25.0% |
| 43% | $1,430 | 30.0% |
| 50% | $1,500 | 33.3% |
The takeaway: a 50% markup is only a 33% margin. Decide the margin you need to keep, then mark up enough to get there.
On conventions: the old "10 and 10" rule assumed low overhead. Most contractors today run 25–45% overhead, and healthy net margins commonly land around 10–18%. Reference points, not targets.
Mistakes that quietly kill profit
- Confusing markup and margin. Set your target margin, then use the formula to find the markup.
- Forgetting overhead. Build it into every bid, not just the big ones.
- No waste factor / thin quantities. Add a waste allowance and double-check the takeoff.
- Underbidding to win. A job you lose money on isn't a win — know your floor.
- No contingency. Carry a buffer so the first surprise doesn't erase your profit.
- Vague scope. Spell out what's included, list allowances and exclusions, in writing.
A worked example, start to finish
| Step | Amount |
|---|---|
| Materials | $800 |
| Labor (16 hrs × $45 loaded) | $720 |
| Equipment & misc | $80 |
| Direct cost | $1,600 |
| Overhead + profit markup (43%) | +$688 |
| Price to the client | $2,288 |
| Margin kept | 30% |
Because the 43% markup is figured on cost, it lands a 30% margin on the $2,288 price — not 43%. This is exactly what AWJ Trades HQ computes once your takeoff and markup are set.
Quick-start checklist
- Write a clear scope — what's included, plus allowances and exclusions
- Do a line-item takeoff with measured quantities
- Add a waste factor to materials
- Price materials from real supplier numbers
- Cost labor at your loaded hourly rate (not take-home)
- Build in overhead — every job carries it
- Pick your target margin, then convert to the right markup
- Add a contingency for surprises
- Review the bottom line before you send