Guide
How to Price Jobs Using Your Own Job Costing Data
Last updated October 2026. The short answer To price a construction job, estimate its fully burdened direct cost, adjust that estimate by how far your last closed jobs ran over the
Co-Founder & Financial Strategist · October 16, 2026 · Updated October 16, 2026
Last updated October 2026.
The short answer
To price a construction job, estimate its fully burdened direct cost, adjust that estimate by how far your last closed jobs ran over their bids, then divide by one minus your target gross margin, where the target is your overhead rate from your own books plus the profit you want. Price with margin, never markup: a 23% markup on $80,000 of cost yields an 18.7% margin, which leaves under 4% profit after 15% overhead.
Why does pricing by markup keep leaving you short?
Pricing by markup leaves you short because markup is a percentage of cost while every number you manage the business by is a percentage of revenue. Overhead is a share of revenue. Profit is a share of revenue. Your benchmark is a share of revenue. When you add 23% to cost and call it a 23% margin, you have quietly given away about four points on every job.
The arithmetic is unforgiving:
Markup on cost | Gross margin on price | Margin you need | Markup that gets you there |
|---|---|---|---|
10% | 9.1% | 10% | 11.1% |
15% | 13.0% | 15% | 17.6% |
20% | 16.7% | 20% | 25.0% |
25% | 20.0% | 25% | 33.3% |
30% | 23.1% | 30% | 42.9% |
40% | 28.6% | 35% | 53.8% |
50% | 33.3% | 40% | 66.7% |
The right-hand pair is the one to tape to the monitor. If the business needs a 25% gross margin, the bid needs a 33.3% markup. A contractor who hears "25%" and types 1.25 into the spreadsheet is bidding for a 20% margin and does not know it. The fix is one formula: price = cost divided by (1 minus target margin). Markup never enters the calculation.
The second problem with markup is older than the first. The markup number itself usually came from a competitor, a supplier rep, or the last owner. It was never built from your costs. The rest of this playbook replaces it with three rates that come out of your own books.
What three rates should come from your own books before you bid anything?
Three rates should come from your own books before you bid anything: your labor burden rate, your overhead rate, and your slippage rate. Every bid uses all three, and every closed job updates them. Getting costs onto the right jobs in the first place is job costing, which our contractor accounting work sets up; this playbook is what you do with the data once it is there.
Rate 1: labor burden
Your labor burden rate is everything you pay for a field employee beyond base wages, divided by wages for hours actually worked on jobs. Payroll taxes, workers' comp, health insurance, retirement, paid holidays and vacation, uniforms, training. The U.S. Bureau of Labor Statistics measured construction employers at $36.13 an hour in wages and $15.84 an hour in benefits in June 2026, which is about 44 cents of burden per wage dollar. Your own number is the one that matters, and it changes every time your workers' comp or health renewal does.
Rate 2: overhead
Your overhead rate is a year of costs that no single job caused, divided by revenue for the same year. Office payroll, rent, insurance, software, trucks that are not charged to jobs, estimating time on bids you lost, and the owner's own pay. Pull it from your profit and loss, not from a rule of thumb. For a specialty trade contractor doing $4,000,000 with $600,000 of overhead, the rate is 15%, which is roughly where the Construction Financial Management Association's 2025 Benchmarker lands for specialty trades: 22.4% gross profit less 7.7% net income before taxes leaves about 15 points of overhead. Home builders run leaner on this line; the National Association of Home Builders' 2024 cost survey put overhead and general expenses at 5.7% of sales price and builder profit at 11.0%. Use the benchmark to sanity check your number, never to replace it.
Rate 3: slippage
Your slippage rate is how far actual cost ran past estimated cost on your last 20 closed jobs, in total and by phase. Nobody publishes this number because it is yours alone, and it is the most valuable thing your job costing data produces. If labor hours came in 8% over estimate on average while materials came in 1% over, the estimating problem is in the hours, and the next bid should carry the 8% until the estimating improves. Pricing off the bid you hoped for instead of the cost you have been getting is how a shop with good job costing still loses money.
If you do not have 20 closed jobs with clean cost data yet, use what you have and say so in the bid review. Ten honest jobs beat a guess.
How do you build the price, step by step?
You build the price in five steps, and the order matters because each step feeds the next. Here is an illustrative job with round numbers rather than any real client's data:
Step | What you do | Illustrative job |
|---|---|---|
1. Estimate direct cost, fully burdened | Materials, labor wages plus burden, subcontractors, equipment and trucks at an internal rate | Materials $30,000; labor 800 hours at $30 = $24,000; burden at 44% = $10,560; subs $12,000; equipment $3,440. Total $80,000 |
2. Apply slippage by phase | Last 20 jobs: labor hours ran 8% over, materials 1% over, subs on budget | Labor and burden $34,560 x 1.08 = $37,325; materials $30,300; expected cost $83,065 |
3. Set the margin floor | Overhead rate from your P&L | 15% of price |
4. Add the profit you want on this job | Based on risk, customer, and backlog, not habit | 8% of price, so target margin 23% |
5. Price = expected cost / (1 minus 23%) | Divide, never multiply | $83,065 / 0.77 = $107,877, call it $107,900 |
Compare that to the markup habit. The same estimator, using the bare $80,000 estimate and a 23% markup, bids $98,400. If the job slips the way the last 20 did, cost lands at $83,065 and gross profit is $15,335, a 15.6% margin. After 15% overhead the job earns $575. Not a typo. Priced by the method above, the same job earns about $8,650 after overhead, and the difference is entirely in arithmetic the estimator never saw.
Three things to notice. Steps 1 and 2 are where most of the money is, and both come from job costing, not from the pricing formula. Step 3 is not negotiable, because overhead gets paid whether or not the job covers it. Step 4 is the only number that should move from bid to bid.
Should every job carry the same markup?
No. Every job should carry the same overhead floor, and a profit margin that reflects the job's risk and your situation. A flat markup treats a $20,000 service call and a $900,000 ground-up build identically, and treats a labor-heavy job the same as one that is mostly subcontracted. Neither is true.
Two refinements, once the basic method is working:
- Labor-heavy jobs carry more overhead than materials-heavy jobs. Most overhead exists because you employ people: the trucks, the supervision, the insurance, the office that runs payroll. A job that is 60% labor consumes more of it than a job that is 60% subcontractors. Some contractors recover overhead at a higher rate on labor than on materials and subs for exactly this reason. Whether that split is worth the complexity depends on how much your job mix varies.
- The profit margin should move with risk. A repeat customer, a job type you have done 30 times, and a crew with capacity can justify the low end of your profit range. A new customer, an unfamiliar scope, a tight schedule, or a job that will tie up your best foreman for four months should carry more. If the profit margin never changes, it is not a decision; it is a habit with a decimal point.
What should not move is the overhead floor. The moment "we need the work" becomes a reason to price below overhead, the job stops contributing and starts costing. Our post on cash flow mistakes construction companies make covers what that does to the bank balance three months later.
When is it right to price below your target margin?
It is right to price below your target margin only when the job still covers its fully burdened direct cost plus some overhead, the crew would otherwise be idle, and you can name the date the exception ends. A job that contributes $8,000 toward overhead beats a crew standing in the yard contributing nothing. A job priced below direct cost never beats anything; you are paying the customer to let you work.
Treat it as a decision with a rule attached:
- Never below fully burdened direct cost plus slippage. That is the line where the job costs you cash.
- Below the overhead floor only with a reason you would say out loud, such as keeping a crew together through a slow eight weeks or getting a first job with a general contractor whose next three jobs you want.
- Count how many jobs in backlog are below the floor. One is a tactic. Five is a pricing problem that is about to become a cash problem.
- Put the reason in the bid file, so when the job closes you can tell whether the bet paid off.
The honest test, after the job closes, is whether the relationship or the capacity you bought with that margin produced a job at full price. If it did not, the discount was a gift.
How do you keep the rates current?
You keep the rates current by closing the loop every time a job closes, and resetting all three rates on a fixed schedule. This is the part that separates a pricing system from a spreadsheet somebody built once.
- At every job closeout: compare actual cost to bid by phase, write down the reason for the biggest variance, and add the job to the slippage history. One line, five minutes.
- Monthly: review open jobs for percent of budget spent versus percent complete, so slippage is caught while the job can still be managed. The same data feeds your work in progress schedule; our post on the WIP schedule a buyer actually trusts covers how underestimated cost to complete distorts everything downstream.
- Quarterly: recompute the overhead rate from the trailing twelve months of your profit and loss. If overhead rose from 15% to 17% because you added a project manager, every bid since then has been two points short.
- At every payroll or insurance renewal: recompute labor burden. A workers' comp rate change lands directly on every labor hour you bid.
This only works if the books are closed on time and costs land on the right jobs. Bookkeeping and monthly accounting that finishes within a couple of weeks of month end is what makes a quarterly overhead rate real instead of a memory. A budget and forecast built on the same rates tells you how much revenue the overhead needs before the year starts, which is the number the whole bid pipeline has to hit.
Where Thryve fits
Thryve Accounting & Advisory in McKinney, Texas builds the numbers behind this method for contractors and trades through our contractor accounting work: burdened labor rates, job costing in QuickBooks, a closed-job variance history, and an overhead rate from a close that finishes on time. We do not write your bids. We make sure the three rates in them are true, and we sit in the bid review when you want a second set of eyes on the margin.
We fit contractors doing roughly $1M to $50M in revenue. If you need an estimator, takeoff software, or someone to manage projects in the field, that is not us. And any question about how a pricing change affects your taxes goes to your CPA; we are glad to coordinate with them.
Know which jobs actually make money. Talk to us.
FAQ
What markup should a contractor use?
There is no correct markup for a contractor to use, because the right number depends on that contractor's overhead rate, labor burden, estimating accuracy, and the profit the owner needs. Work it backward from margin instead: add your overhead rate from your own profit and loss to the profit you want, then price each job at cost divided by one minus that margin. For a shop with 15% overhead that wants 8% profit, that is a 23% margin, which is a 29.9% markup, and both numbers will shift as your costs change.
Is it ever smart to take a job at a loss to keep the crew busy?
Taking a job below your target margin can be smart when it still covers fully burdened direct cost and some overhead, the crew would otherwise be idle, and the exception has an end date. Taking a job below direct cost is almost never smart, because the job consumes cash rather than contributing it, and the capacity you kept busy could have been pointed at finding full-price work. The judgment depends on your backlog, your cash position, and whether the customer realistically leads to better-priced jobs, so write the reason down and check it when the job closes.
How often should a contractor update their overhead rate?
A contractor should recompute the overhead rate at least quarterly from the trailing twelve months of the profit and loss, and immediately after any step change such as a new office hire, a rent increase, or a truck that moved from jobs to overhead. Labor burden should be recomputed at every payroll tax, workers' comp, or health insurance renewal. How precise this needs to be depends on your job mix and margins; a shop running 25% margins can tolerate a stale rate longer than one running 12%.
Related reading: Job Costing for Contractors: Why Your Profitable Jobs Are Not Making Money and WIP Schedules for Contractors: Are You Overbilled or Underbilled?.
Want personalized guidance?
This resource covers the fundamentals, but every business is different. Let's talk about yours.
Schedule a free consultationRelated reading
.png)
.png)