← Back to blog

May 22, 2026

How to Price Residential Jobs So You Stop Bleeding Margin

Most contractor profit doesn't get lost on the saw. It gets lost on the bid. Here is the markup math, the overhead allocation, and the estimate structure that keep margin where it belongs.

Solis Team· Field operations for residential GCs

The customer hugs you at the punch list. You hand them the keys. Three weeks later you sit down with the bank statements, divide what came in by the hours you and the crew actually burned, and the number is below what a framing apprentice charges. The job felt great. The bank account says otherwise.

This is the most common pattern in residential general contracting, and it almost never traces back to a bad day on the saw. It traces back to a number on the bid that was wrong before anybody picked up a tool. Fix the bid and the bleeding stops.

This post is the math, the structure, and the muscle memory you need so the next twelve jobs each clear what they're supposed to clear.

Stop saying "markup" when you mean "margin"

These two words sound interchangeable and they are not. Mixing them up is the single most expensive vocabulary mistake in residential construction.

Markup is what you add on top of your costs. Margin is what's left after you collect the check.

If your hard costs on a job are $40,000 and you add 25% on top, you bill $50,000. The $10,000 you kept is your gross before overhead. As a share of what came in, that's 20%, not 25%. The two numbers are never the same.

Read that table once a week until it lives in your head. Most contractors set a 25% target thinking they're keeping a quarter of every dollar. They're keeping a fifth. Across a $600,000 year, that thinking gap is roughly $30,000 of money you thought was yours.

The rule. Decide the margin first. Then back into the markup that produces it.

Floor markup by trade

Use these as a starting line, not a ceiling. There's no universal correct number. Your overhead, your market, and the type of work all push the floor up or down. But these are reasonable starting positions to compare yourself against. Below these and you are almost certainly not paying yourself enough.

Remodels carry the highest markup because the unknown unknowns behind a wall are real costs in disguise. You don't know what's there until you open it. The markup is the insurance premium against finding rotten subfloor under the tile or a four-circuit panel pretending to be eight.

Healthy residential general contractors aim to land at 8 to 11 percent net profit after overhead. Anything below 5 percent is the industry average, which is another way of saying "barely breaking even."

Overhead is the silent killer

Materials, labor, subs. Every contractor remembers to put those in the bid. Overhead is where the bleeding starts, because overhead is everything your business has to pay whether you ran a single job this month or twenty.

Build a list once a year. The categories you can't skip.

Always-on costs

Costs that scale with how busy you are

Costs that look like job costs but aren't direct

Add all of that up for the last twelve months. Then total what you actually billed your customers in direct job costs over the same period. Divide overhead by direct cost and you have your overhead recovery rate.

If overhead was $96,000 and direct job costs were $480,000, your rate is 20 percent. Every dollar of direct cost has to carry an extra 20 cents before the business breaks even. Your markup needs to clear that before a dime of profit gets generated.

One more line item nobody catches. Labor burden. The wage you pay is not what labor costs you. Add payroll taxes, workers' comp, holidays, sick days, the health stipend if you offer one. Burden adds 28 to 48 percent on top of the bare hourly rate. Recalculate it every January. If you're still bidding off 2023 burden, you're bleeding on every labor hour you sell.

A repeatable bid in five steps

Here is the exact sequence for a job. Do it the same way every time.

1. Add up direct cost. Materials at current supplier pricing, not last fall's quote. Labor hours times your fully burdened crew rate. Sub quotes in writing. Rentals. Example. A half-bath gut totals $5,200 in material, $4,400 in burdened labor, $2,400 in subs, for a $12,000 direct cost.

2. Apply your overhead rate. Direct cost times overhead rate. If yours is 20 percent, $12,000 times 0.20 equals $2,400. Cost plus overhead is now $14,400.

3. Add the profit you decided to earn. Want 10 percent net margin? Apply about 11.1 percent markup on the cost-plus-overhead number. $14,400 times 1.111 equals a $16,000 bid.

4. Margin check. ($16,000 minus $14,400) divided by $16,000 equals 10.0 percent. The math works. Quote with a steady hand.

5. Save the line items. The point of doing the work this way is the next bathroom doesn't start from scratch. Your homes might be 12,000 different addresses, but the line items inside each job repeat. A good system lets you pull from the last one and adjust quantities.

That last step is what separates a contractor who can run six jobs from one who can run twelve.

Build the estimate so margin doesn't leak

The way you organize the bid is how you stop money from escaping mid-build. Seven sections that every residential estimate needs.

Allowances and waste are where the most margin escapes between bid and final invoice. If you write "tile allowance" without a unit price next to it and the homeowner shows up with hand-painted Moroccan zellige, you eat the difference unless your estimate already said "exceeds allowance equals change order."

Five mistakes that quietly take 5 to 10 percent off every job

1. Quoting yesterday's lumber number. Walk through Home Depot before you bid anything. A six-week-old supplier quote on lumber, copper, or appliances is fiction.

2. Treating small jobs the same way as big jobs. A $1,200 job has the same drive-time, paperwork, and follow-up cost as a $12,000 job. Set a minimum job size or load the markup higher on anything small. Eating the admin cost out of the profit on a small job is a habit that scales until you wonder why being busy keeps making you broke.

3. Saying yes to "can you also do" without a written change order. Every yes is a change order. Even a $90 outlet. Once you start handing out free labor, the customer learns that's what you do. The contractors who get paid for every change are the ones whose customers respect them more, not less.

4. Shading the bid because you want the job. The job you won at a loss is the job that stopped you from bidding the next one. Pricing below cost-plus-overhead-plus-profit is not "buying market share." It's paying the customer to let you work for them.

5. Treating subs as a pure pass-through. You took the call, you wrote the scope, you'll warranty the work, you'll eat any callbacks. That's worth 12 to 20 percent on top of the sub's number, every time.

Where Solis fits

The reason most contractors price wrong is not that they can't do the math. It's that the math lives in a different tool than the job. You bid in a spreadsheet, build in your head, invoice from a Word doc, and reconcile in QuickBooks. Nothing talks to anything.

Solis pulls bid, build, and bill into one app on the phone you already have. Your markup floor is set once and rides every line item by default. The estimate you wrote is the same data structure that runs the schedule, the photo log, and the invoice. The numbers you bid and the numbers you actually hit live in the same place. When the next half-bath comes in, your last half-bath is already a template.

If you're ready to stop guessing whether last month made money, join the waitlist and we'll get you set up.