
How to Stop Underpricing Construction Jobs (And Start Making Real Money)
You won the job. You ran it clean. The client is happy. You send the invoice - and when the dust settles, you made almost nothing. Maybe you covered wages. Maybe you paid the van. But the profit you quoted is not in the account.
That is not bad luck. That is a pricing problem - and it is the most common problem in the construction industry. (Figures throughout are in USD - the model and the math are identical in any currency.)
This is the core of what I run as a construction arbitrage model: the gap between what you sell a job for and what it genuinely costs to deliver. Construction arbitrage lives or dies on pricing discipline. Get the spread right and you build real wealth. Get it wrong and you fund a very busy, very convincing-looking lifestyle with nothing left at the end. Here is exactly what goes wrong - and how to fix it.
Why most contractors underprice their jobs
Underpricing is not one mistake. It is three mistakes running simultaneously - and most contractors are making all three at once.
- Gut-feel estimating. A rough mental calculation based on past jobs instead of an itemised breakdown. It feels fast. It loses money reliably.
- Markup and margin confusion. A 20% markup is not a 20% margin. They are different numbers, and confusing them quietly costs thousands on every significant job.
- Pricing labor at the base wage. The actual cost of a worker on site is 25-35% higher than the hourly rate once payroll taxes, workers' compensation insurance, and liability allocation are included. Quote at the base rate and you eat the difference.
- Ignoring overhead. Insurance, vehicles, phones, software, marketing, and your own management time are real costs of every job. If they are not in the quote, they come out of what little margin was left.
Markup versus margin - the most expensive mistake in construction
This is where most contractors leave real money behind and never notice it happen. Markup and margin are not the same number. Markup is what you add on top of your costs. Margin is the percentage of the final selling price that is profit. Confusing them means you quote for a 20% margin and deliver a 16.7% margin - consistently, on every job.
| Markup applied | True margin | On $50,000 in costs |
|---|---|---|
| 10% | 9.1% | $55,000 quote |
| 20% | 16.7% | $60,000 quote |
| 25% | 20.0% | $62,500 quote |
| 33% | 24.8% | $66,500 quote |
| 50% | 33.3% | $75,000 quote |
The conversion formula is simple: markup = margin divided by (1 minus margin). A 20% margin target requires a 25% markup. A 25% margin target requires a 33% markup. If you have been applying a 20% markup to hit a 20% margin, you have been undercharging on every job you have ever won. The fix is one formula, applied from today.
The true cost of labor on a construction job
The base wage is the starting point, not the finishing point. Every worker on site costs meaningfully more than the rate on their paycheck - and the gap is larger than most contractors build into their quotes.
- Payroll taxes. In the US, FICA, FUTA, and SUTA combined add roughly 8-10% above base wages (rates vary by country and state - always check your specific obligations).
- Workers' compensation insurance. Rates vary significantly by trade and jurisdiction. High-risk trades like roofing or concrete work carry substantially higher rates than lower-risk classifications.
- General liability allocation. Your GL premium is a real cost of running projects and belongs in every job's cost breakdown.
- Paid time off and benefits. Vacation, sick days, and any employer contributions all have a dollar cost per productive hour worked on site.
Industry data consistently puts labor burden for non-union contractors at 25-35% above base wage. Price at the base rate and you are subsidising every job out of your margin. This is one of the primary reasons contractors lose money on jobs that look profitable on paper.
What overhead is actually costing you per job
Overhead is every business cost that does not sit directly on a single job: vehicles, insurance, phones, software, marketing, professional fees, and the hours you spend quoting, in admin, and managing projects. General contractors (the general contractor, or main contractor in the UK) typically see overhead running at 10-15% of revenue.
That overhead has to live somewhere. If it is not in your quotes, it is coming out of your profit. The method is straightforward: add up your total annual overhead costs, divide by your annual revenue target, and the result is the minimum overhead recovery percentage to build into every job - on top of direct costs, before your profit margin goes on.
Every quote that does not cover overhead is a transfer of money from your pocket to the client's. You are not winning the job. You are funding it.
@mointhemarket
A pricing formula that actually works
Stop pricing from the gut. Every quote should run through the same structured build-up. The discipline is the job.
- 01Direct costs: labor at fully burdened rate. Every hour on site multiplied by base wage plus your labor burden percentage. Not the paycheck rate - the true cost.
- 02Direct costs: materials and subcontractors. Every line item listed. Allow for waste, delivery, and small-quantity pricing premiums. Work from quotes, not memory.
- 03Overhead recovery. Apply your overhead percentage to the total direct cost. If overhead runs 12% of revenue, add that percentage on top of every job's direct costs.
- 04Markup for your target margin. Use the formula: markup = margin / (1 - margin). For a 20% target margin, apply a 25% markup. For 25% margin, apply 33%. Mark up on the combined direct cost plus overhead total.
- 05Contingency. Add 5-10% on unfamiliar jobs or projects with unknowns. This is not padding. It is professional risk pricing.
- 06Sense-check against the market rate. If your number sits well above what clients in your market pay, the answer is not to cut your margin. It is to reduce scope, find better material prices, or decide this client is not the right fit.
What to do when a client says you are too expensive
This is the moment most contractors crack - and where most margin gets handed back. The client pushes on the price and the contractor, nervous about losing the work, drops the number. That is the worst available response.
Reduce scope, not margin. Ask the client what their budget is and tell them honestly what that budget delivers. Maybe it is a two-phase project. Maybe it is a different specification. Maybe they supply their own materials. What it is not is the same job for less money. A job you win by cutting your margin is a job you are paying to serve - you are the client.
If the gap between your price and their budget is too wide to bridge with scope changes, let them go. A job lost cleanly costs nothing. A job won at a loss costs real money. We covered the full approach to charging more as a contractor and holding price when clients push back.
The operator mindset on pricing
The operator who runs a real construction business thinks about pricing differently. Every job is a test of the model: does this job generate real margin after true costs, overhead, and a profit that makes running the whole thing worthwhile? If the answer is no, the answer to the job is also no.
That discipline is the core of construction arbitrage as a business model. Price the work at what it is worth, deliver it at a cost that is lower, and keep the structured difference. Stack underpriced jobs and you are building turnover - a convincing-looking business with no actual money in it at the end of the year.
The industry average for general contractor net profit runs at around 5-6%. Top operators reach 10-12%. That gap is not luck or talent alone - it is pricing. The ones at 12% know what things actually cost and they price accordingly. The ones at 5% are estimating from instinct and discounting under pressure. For the full playbook on building a profitable operation, constructionarbitrage.com has the numbers and the model.
If you want to run a business where the margin is built in from the first line of every quote, Contractor Club is where those operators work. Application only.
Request entry to Contractor Club⟶The bottom line
Underpricing is not generosity. It is a slow drain that runs on every job, every month, every year - until the business that looks busy and successful from the outside has nothing real inside it. Fix the markup calculation, recover the true labor cost, put overhead in every quote, and hold the price when someone pushes. Do that consistently and the money starts to match the work you are putting in. That is how operators run it - and only players know.
Frequently asked questions
Why do contractors underprice their work?+
The three main reasons are: quoting from gut feel rather than a structured cost breakdown, confusing markup with margin (a 20% markup is only a 16.7% margin), and pricing labor at the base wage while ignoring that labor burden adds 25-35% on top of that for most non-union contractors.
What is the difference between markup and margin in construction?+
Markup is the percentage you add on top of your costs. Margin is the percentage of the final selling price that becomes profit. They are not the same number. A 20% markup on $50,000 of costs gives you a $60,000 price - but that $10,000 profit is only 16.7% of the sale price. To hit a genuine 20% margin, you need a 25% markup.
What should a general contractor's markup be?+
That depends on your overhead, but most general contractors need a markup of 25-40% on direct costs to reach a healthy net profit. The exact number is personal to your business: calculate your total annual overhead as a percentage of revenue, add your target profit margin, and convert that combined percentage to a markup using the formula markup = margin / (1 - margin).
How do I calculate the true cost of labor on a construction job?+
Take the worker's base hourly wage and add labor burden: payroll taxes, workers' compensation insurance, general liability allocation, and benefits or paid time off. Industry data consistently shows labor burden adds 25-35% above the base wage for most non-union contractors. A worker at $30 per hour truly costs around $38-$40 per hour all-in.
How do I handle clients who say my quote is too expensive?+
Do not lower the price - lower the scope. Ask the client what their budget is and adjust the spec to fit it, or explain clearly what your price includes that a cheaper quote does not. If a client genuinely cannot afford your price, they are not your client. Discounting to win work at a loss is worse than losing the job.
What is a good profit margin for a construction business?+
The industry average for general contractor net profit sits at around 5-6%, but that is a floor, not a target. A well-run construction business should aim for 8-12% net profit. Anything under 5% leaves no buffer for mistakes, variations, or slow months - and any margin you cannot replicate consistently is not really a margin.
The human behind The Playbook
mointhemarket Managing construction businesses across continents - with full location freedom. Running several at once. Bought and sold many more.
Go deeper
Learn the model, then get in the room
The full breakdown of construction arbitrage lives on our sister site, constructionarbitrage.com. When you want the operators who actually run it, join the Construction Arbitrage Players community.
My book The Family Secret - how construction arbitrage really works - is coming soon.
Only Players Know
The game is real. The room is closed.
Contractor Club is a private, application-only circle of construction arbitrage operators. If you think you belong inside, apply and the circle will decide.
More from the Playbook
View all ⟶
Pricing & BiddingHow to Charge More as a Contractor
Cheap quotes do not win better clients - they attract worse ones. Here is the real lever for charging more as a contractor without your phone going quiet.
Pricing & BiddingHow to Win More Construction Bids (Win the Job Before You Send the Price)
Bidding more is not the answer. The contractors who win the most are winning the conversation before the price is even on the table. Here is the system.