Blueprint journey

Lesson 7 / 36

0 completed

Next best lesson: Start Here: How to use Blueprint week by week

Guided operating lesson

Cost, margin, and the difference between busy and profitable

Stop confusing a full work schedule with healthy business finances — and fix the gap between turnover and what you actually take home.

Business Foundations15 minIntermediate

Who this is for

Contractors who feel like they are working constantly but end each month with less money than the volume of work should produce.

Why it matters

High job volume with weak margin creates stress and cash pressure without the financial reward that should come with it. Margin discipline is the difference between a business that feels successful and one that actually is.

Lesson outcome

You can calculate real gross margin on any job, you know your margin floor, and you have identified where drift is happening.

Real-world problem

Full books, low bank balance — the busy trap.

Many contractors book themselves solid, work long weeks, and still find themselves short of cash by month end. The cause is almost never laziness — it is pricing that does not account for all costs, margin that gets absorbed by scope creep, and overhead that never gets recovered in quotes.

A roofer does $18,000 in jobs in a month but banks $2,800 after materials and labour. His quotes did not include vehicle costs, insurance, his bookkeeper, or his tools. Those costs came out of what looked like profit.

Why this happens

Markup and margin are used interchangeably but mean very different things

A 25% markup on materials is not a 25% margin. If materials cost $100 and you charge $125, your margin is 20% — not 25%. This confusion causes systematic underpricing across entire job types when it is not corrected.

Overhead is left out of quotes because it feels hard to calculate

Vehicle costs, insurance, accounting, phone, and software are real business costs that need to be recovered in job pricing. When excluded from quotes, they come out of what looks like profit.

Professional standard

Margin is calculated after ALL costs are included

Gross margin = (Revenue − Direct Costs) ÷ Revenue. Direct costs include labour, materials, equipment, and a fair share of overhead. A job priced on labour and materials alone will always underperform its apparent margin.

Set a margin floor before quoting, not after

Every quote should be reviewed against a minimum acceptable gross margin before it is sent. If it does not clear the floor, the price needs to be higher, the scope reduced, or the job declined.

Step-by-step operating system

Calculate real margin and set your floor

1

List all cost categories for a typical job

Direct labour, materials with waste factor, equipment or hire, and overhead allocation per job (vehicle, insurance, admin, tools, software).

BuilderBuddi: Use Calculators to work through a recent job's real costs including overhead. Compare to what was quoted.

2

Calculate actual gross margin on the last three jobs

Revenue minus all costs, divided by revenue. This is your real margin — not your markup on materials.

BuilderBuddi: Open the last three completed jobs. Pull the invoice total and use Calculators to compare against actual cost.

3

Set your margin floor

Based on your real margin calculation, define the minimum gross margin you will quote. Below this floor the job is not worth the risk for your business.

4

Add a margin check to your pre-send quote review

Before sending any quote, verify it clears your margin floor after all costs.

BuilderBuddi: Open the quote before sending. Use Calculators to verify margin against the floor. Do not send without this check.

5

Review margin drift by job type each month

Some job types consistently underperform margin. Identifying these allows you to reprice the category rather than fix individual quotes reactively.

BuilderBuddi: Review closed jobs grouped by type. Note which categories have the weakest margin.

BuilderBuddi workflow cards

Build margin checks into your quote workflow

Use Calculators alongside quotes to verify every quote clears your margin floor before it is sent.

Calculators

Run full cost calculation including overhead

Real margin number — not just markup on materials

Start task

Quotes

Review quote against margin floor before sending

Every sent quote clears your minimum margin requirement

Review record

Jobs

Compare quoted vs actual costs on completed jobs

Identify where margin drifts between quote and delivery

Review record
The painter who priced on materials and labour only

Context: A painter consistently quotes using a spreadsheet that adds labour hours and materials, applies a 20% markup, and produces the price. He wonders why he ends each month short despite being fully booked.

Challenge: His overhead costs — van, insurance, tools, phone, software — are not in his quote template. They come out of the apparent profit after the job closes.

Recommended response: Calculate monthly overhead total and divide by the number of jobs per month to get an overhead allocation per job. Add this as a line item to the quote template.

  • List all monthly overhead costs and calculate a per-job allocation
  • Open the quote builder and add an overhead line to the pricing structure
  • Run the last three quotes through the new structure and compare to what was charged

Field notes

  • Markup and margin are not the same number — confusing them underprices every job.
  • Overhead that is not in the quote comes out of profit. Every time.
  • A full schedule with thin margins creates stress, not stability.
  • The margin floor is a business rule — it is not negotiated away on every difficult client.
  • Track margin drift by job type, not just by individual jobs.

Key takeaways

  • Gross margin = (Revenue − All Costs) ÷ Revenue. Include overhead in costs.
  • Set a minimum margin floor and check every quote against it before sending.
  • Markup on materials alone is not margin — the confusion costs money every week.
  • Review margin drift by job type monthly to catch systematic underpricing.

Common mistakes

Treating markup on materials as margin

Consequence: Every job is systematically underpriced because overhead and real labour costs are not fully accounted for.

Prevention: Always calculate margin after all costs. Use Calculators to run this before any quote is sent.

Not including overhead in job pricing

Consequence: Overhead comes out of apparent profit after every job, reducing actual take-home to a fraction of what the turnover figure suggests.

Prevention: Calculate monthly overhead, divide by average jobs per month, and include this allocation in every quote as a line item.

No margin floor — pricing changes based on how busy the calendar looks

Consequence: During slow periods, pricing drops to win any work. This creates a cycle of thin-margin jobs that keep you busy without building financial stability.

Prevention: Set a margin floor based on real cost calculations. Apply it consistently regardless of how full the calendar is.

Complete this in BuilderBuddi

Implementation checkpoint

Tick these only when the real business output exists. This keeps Blueprint tied to work done, not pages viewed.

0% complete
Decision point 1: Do you know your current average gross margin across all job types?
Decision point 2: Do you include overhead allocation in your job quotes?

Practical action

Open Calculators. Take your last completed job — enter labour, materials, and overhead allocation. Calculate the real gross margin. Compare it to what you thought you were making. This is your baseline.

Worksheet prompt

Run the margin calculation on your last three jobs. Record quoted margin vs actual margin for each. Identify the overhead costs you were missing.

Worksheets and templates

Margin Reality Check

XLSX

Calculate real gross margin including overhead for your last three jobs.

Ready for immediate use

BuilderBuddi action bridge

Use Calculators to run your margin check

Verify labour, material, and overhead assumptions before finalising any quote total.

Next step