How to price for margin instead of guessing

Pricing for margin means you add up what the job actually costs you, add the share of overhead that job has to carry, then set the price so what is left is the profit you decided on ahead of time. Guessing means picking a number that feels close to what the last guy charged and hoping the job behaves. The first one survives a bad month. The second one is why busy contractors end the year with nothing in the account.
Markup and margin are not the same number
This is where most of the money leaks. If a job costs you 10,000 dollars and you add 20 percent, you charge 12,000 and your margin is not 20 percent. It is about 16.7 percent, because margin is measured against the price, not the cost. To actually keep 20 percent of a 10,000 dollar job you have to charge 12,500.
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 on the wall, and make every estimate use the same one.
Know your real job cost before you know your 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 you have it, every price you set is a guess wearing a spreadsheet.
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 is not a small win. It is you working for free while the overhead clock runs, and the schedule it fills is a slot a profitable job cannot have.
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.
What we do in our own companies
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. What a system fixes is not the surprises, it is the drift. Same formula, same burdened rates, same overhead load, on every estimate, 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.
Do you know what your last ten jobs actually made?
The free audit looks at your search presence, response time, quoting, and follow-up, then ranks what is worth fixing first. Joshua replies within one business day.
Request the free audit