OOutcomes Automation

Markup vs margin for contractors, and how to price for margin instead of guessing

August 10, 2026, updated October 11, 2026 · Joshua Hill

Markup and margin are two different numbers: markup is added onto your cost, and margin is what is left measured against the price you charge. Add 20 percent to a 10,000 dollar job and you charge 12,000, which is a 16.7 percent margin and not the 20 you had in mind; to actually keep 20 percent you have to charge 12,500. Pick which of the two you manage to, then build every estimate off burdened job cost plus the overhead that job has to carry.

A garage workbench at night under a bare bulb with receipts spread out, a calculator, a mug, and an open cash box.

Markup and margin are not the same number

This is where most of the money leaks, and the fix is one line of arithmetic. Margin is profit divided by price, so pricing to a target margin means dividing instead of multiplying: price equals cost divided by one minus the margin you want. A 10,000 dollar job at a 25 percent target margin is 10,000 divided by 0.75, which is 13,333. Multiplying that same job by 1.25 gives you 12,500 and a real margin of 20 percent, five points short of what you thought you set.

The gap looks small on one job and it is not small across a year of them. A contractor who thinks he is running 30 percent and is really running 23 percent will be short every time a job goes long. Pick which number you are managing to, write the formula where the estimates get written, and make every estimate use the same one.

Real job cost comes before the price

Job cost is materials, labor including the payroll burden, subs, equipment and rental, disposal, permits, and the drive time nobody logs. Labor burden is the part that gets skipped. The hourly rate on the check is not what an hour costs you once you add payroll taxes, workers comp, liability insurance, and the paid time nobody was on a job site.

Get that burdened hourly number for each crew position and use it in every estimate. If you have never calculated it, your bookkeeper or your accountant can pull it from last year's payroll and insurance in an afternoon. Until that number exists, every price you set rests on an hourly rate that is lower than the truth.

Overhead has to be carried by the work

Trucks, phones, software, insurance, the office, your own salary, the person answering the phone: none of that is charged to any single job, and all of it gets paid out of the jobs anyway. Add up twelve months of it, divide it across the volume of work you realistically do in a year, and you have the overhead each job needs to carry before profit starts.

That number is also the honest argument against the bid you should walk away from. A job priced at cost plus a little pays you nothing while the overhead clock runs, and the slot it fills on the schedule is one a profitable job cannot have. A finished job whose invoice sits unpaid runs the same clock, which is what getting paid on time is about.

Here is the whole calculation on one job. Say the estimate adds up to 10,000 dollars of burdened job cost, the overhead load works out to 2,000 dollars on a job that size, and you have settled on a 15 percent margin.

  1. Burdened job cost: materials, burdened labor, subs, equipment, disposal. 10,000.
  2. Overhead this job has to carry: 2,000.
  3. Cost the price has to cover: 12,000.
  4. Price at a 15 percent margin: 12,000 divided by 0.85, which is 14,118.
  5. Left over if the job runs as estimated: 2,118, which is 15 percent of the price.

Run those same five lines on every estimate and the quoted price comes out of one formula every time, whoever writes it. Change the target margin and the only lines that move are the last two.

Price the risk in the scope, not in a fudge factor

Old paint of unknown age, a substrate you cannot see until you open it, an occupied space with a working schedule, an owner who has already fired one contractor: those are cost drivers, and burying them in a vague ten percent cushion hides them from you and from the customer. Name them in the estimate, price them as line items or allowances, and put the unknowns in writing as a change order trigger.

That also makes the estimate itself a better sales document, because a customer reading real line items is comparing scope instead of comparing one big number to another big number. Getting that estimate out quickly matters too, which we covered in the post on estimate speed.

How the Bellingham companies run it

We run painting and flooring companies in Bellingham, and our estimates are built off burdened labor rates and production rates we keep from finished jobs, not off a per square foot number somebody remembered. Every job gets an overhead allocation and a target margin before anyone sees a price, and jobs get closed out against the estimate so the next bid uses what really happened instead of what we hoped would.

The honest part: our numbers still move. Material prices change, a crew has an off week, a house has something behind the siding. A system does nothing about those surprises; what it fixes is drift, because every estimate uses the one formula with the current burdened rates and overhead load, whoever writes it. The system we run keeps the estimate and the job cost in the same place so the gap between them is visible while there is still time to do something about it. The same formula carries over when the work is public, where the wage rates are set for you and the payment clock is longer, which we covered in the post on bidding public works. Drift is also the first thing that breaks when a company grows, which adding a second trade or a second town goes into.

Turning rates you trust into proposals that use them every time is the estimating and proposals build.

A free look at where the margin goes

The free audit covers your site, local search, response time, quoting, and follow-up, then ranks what is worth fixing first. Joshua replies within one business day, and the written findings usually follow within a week.

Get my free auditRead a sample audit first

Joshua Hill co-owns Bellingham Painting Co., Bellingham Floor Pros, and the licensed Washington general contractor they operate under. The estimating, follow-up, and reporting systems Outcomes Automation sells are the ones his own crews run on. More about Joshua.