Gross margin (builder)
Gross margin is (contract price minus direct costs) divided by contract price. Headline job profitability. Industry benchmark for Australian residential is 20-22%.
Ask Chalkline about this →Gross margin (GM) is the job-level profit measure that compares contract price to direct costs. The formula:
GM% = (Contract Price − Direct Costs) / Contract Price × 100
Direct costs are the labour, materials, subcontractors, plant hire, and consumables traceable to the specific job. Indirect overheads (office rent, accounting, marketing, owner-builder salary) are excluded; those are covered by the gross profit absolute amount, which must in turn cover overheads to produce net profit.
Australian residential building benchmarks (typical 2026 ranges):
| Job type | Typical GM range | Notes |
|---|---|---|
| Single-storey volume residential (project home style) | 15-20% | Tight margin, high volume, repeatable design. |
| Custom single-storey | 18-25% | Variable scope and design effort. |
| Custom two-storey or premium | 20-30% | Complex sites, higher risk, design fees. |
| Renovation / extension | 22-30% | Variable existing-build risk, harder to estimate. |
| Knock-down rebuild | 18-25% | Less variable than reno but design-intensive. |
A commonly-cited industry benchmark for residential builders is 20-22% GM as the floor for sustainable practice across an entire portfolio.
Gross margin vs markup. These are related but different:
- Markup is applied to direct costs to arrive at the price: Price = Cost × (1 + markup%).
- Gross margin is the resulting percentage of the price that is profit: GM% = (Price − Cost) / Price.
For a 20% GM, the markup needed is 25%:
- Direct cost: $400,000
- Markup 25%: + $100,000
- Contract price: $500,000
- GM: $100,000 / $500,000 = 20%
Confusing markup and margin is the most common pricing error: a builder quoting 20% “margin” but applying as markup ends up with only 16.7% true margin and ~$13K less profit on a $500K build.
What erodes gross margin in residential:
- Underquoting allowances for PC and PS items.
- Variations priced at original m² rates when the new scope requires different prep, access, or substrate.
- Weather and unforeseen delays consuming preliminaries faster than budgeted.
- Subbie price rises between quote and engagement.
- Material price volatility (timber, steel, concrete prices have swung 5-25% within single quarters in 2022-2025).
- Scope creep that doesn’t get priced as variations.
Tracking gross margin per job:
- Estimate stage: target a baseline GM (e.g. 22%) and price to that.
- Run cost through Buildxact, Xero job-costing, or a spreadsheet ledger as the job proceeds.
- Mid-job check (typically at slab + frame + lock-up + fit-off): is actual GM tracking against estimated?
- End-of-job actual GM: feed back into the estimating template for similar jobs.
For builders.
- Don’t quote below your baseline GM for volume jobs and below your custom-job GM for premium work. A loss-leader job ties up capacity and starves better-margin work.
- Track per-trade and per-stage costs, not just whole-job. Different stages absorb cost shocks differently.
- Communicate GM in client conversations as “the cost of running a sustainable business”, not as profit. Clients react badly to the word “profit”; “margin” and “overhead” land better.
Also known as: GM, gross profit margin, job margin.
Category: Business / financials / job costing.
Related
See also
Last updated: 2026-05-14. Verified: 2026-05-14.