
A bathroom remodel contractor in Austin sent me his material estimates from last month. High-end bathroom, $180K total job.
His hard material costs were $42K. He marked them up 25%.
That’s a $10,500 markup on materials. Sounds decent on the surface.
Not sure where your money's leaking? Take the free 5-question scorecard and I'll show you the first system to plug it.
Take the free scorecard →I asked: does that 25% cover your overhead? Your ordering time? Your supplier account management? Your material storage and loss? Your relationship with suppliers?
He said no. Those are “baked into” his labor overhead.
So his material markup was just padding, not actual cost recovery.
Then I asked what his actual material waste and shortage loss runs annually. He didn’t know. We pulled his invoices from the last 18 months.
He was eating 7-9% material loss annually that had nothing to do with markup. That was waste (broken tiles, cut wrong, overage that didn’t get used), vendor errors (wrong item shipped, wrong dimension, product discontinued so he had to find a substitute), and supplier shortage delays that forced him to buy short-term substitute inventory.
His 25% markup was supposed to fund a lot of things, and it wasn’t funding any of them properly because he’d never separated the math.
How contractors bungle material pricing
Here’s the confusion: most contractors think “material markup” is a single number.
It’s not. It’s at least three separate costs that contractors pile into one percentage and hope it works out.
Cost 1: Material waste and loss. Every job has waste. Drywall comes cut wrong. Tile breaks during installation. Flooring gets damaged on the job site. Paint gets overspayed. Framing lumber doesn’t cut out efficiently. Trim doesn’t fit and gets scrapped.
Real waste data from remodeling jobs runs 8-15% depending on material type and job complexity. A contractor who prices material at hard cost plus 8% is not actually making any money on waste. He’s just hoping his crews are magical and waste less than every other crew that’s ever existed.
Cost 2: Material sourcing and management overhead. Someone has to order the material. Someone has to check it against the spec. Someone has to manage supplier relationships. Someone has to store it safely so it doesn’t get damaged. Someone has to handle returns and substitutions when things don’t work out.
If that’s one of your crew, they’re not billable while they’re doing it. If that’s you, you’re not selling while you’re sourcing. That’s a real cost.
Most contractors don’t quantify this. They just feel it as “I was ordering material all morning when I could’ve been on jobs.” That feeling is right. That time is costing you money.
Cost 3: Supply chain risk. Material gets backordered. Suppliers discontinue products. Shortages happen. Your crew shows up to install cabinets and the cabinet shop calls at 6am and says they’re delayed another week.
When that happens, you can’t fire your crew. You have to move them to another job and shuffle your schedule. Or you eat a week of overhead while the job sits. Or you buy substitute material at a premium from wherever you can find it.
That’s a real cost. And it doesn’t show up until it hits.
A single backordered item can cost you $800 in schedule friction or $1,200 in premium shortages. Your 25% material markup is what’s supposed to fund that risk. But if you have one major shortage every other year, your markup is undersized.
Why material and labor markup aren’t interchangeable
The biggest mistake I see: contractors calculate one overhead percentage and apply it to everything. Labor, materials, subcontractor work. Same percentage across the board.
That’s wrong. Labor overhead and material overhead are completely different cost structures.
Labor overhead covers: management time, insurance, benefits, vehicles, equipment, workspace, payroll processing, recruiting, training, downtime between jobs.
Material overhead covers: sourcing, ordering, receiving, inspecting, storage, waste, loss, shortage management, supplier relationships, accounts payable processing.
The percentage is different. The timing is different. The risk profile is different.
When I ran Casamia, we separated material and labor costs completely.
Labor ran at 85-90% all-in (crew time plus overhead plus burden). Material ran at 30-35% markup.
Wait, 30-35% on material sounds low compared to the contractors I talk to who are at 25%. But that was markup. Multiply it out:
Hard material costs: $50,000 Markup: 30% = $15,000 Selling price: $65,000
That $15,000 covers waste (about 8% of hard costs, so $4,000), sourcing overhead (about 2-3% of hard costs, so $1,500 to $2,250), and shortage/risk buffer (about 4-5%, so $2,000 to $2,500).
The math actually works. The contractor in Austin was trying to fit all three costs into 25% ($10,500), which means he was underfunding all three.
How to separate and price material correctly
Step one: pull your actual material waste data from the last 10-15 jobs. Not estimated. Actual invoicing and cost data.
For each job, calculate:
- Hard material costs (the takeoff)
- Actual material costs including waste and overages
- Percentage difference
If you’re consistently running 9% waste, price 9% (at minimum) into your material cost.
Step two: estimate your sourcing overhead. Track one week (or if you want better data, four weeks) of time spent on material sourcing and management.
How many hours ordering? How many hours following up with suppliers? How many hours managing substitutions and returns? How many hours checking invoices against the job?
Add it up. Divide by your billable hour rate. That’s your sourcing overhead per week. Annualize it. Divide by annual material spend.
That percentage is what you need to charge for sourcing overhead. If it’s 2-3%, price 2-3%.
Step three: estimate your shortage and supply chain risk cost.
Have you had major backordered items in the last two years? Have you had to buy premium material to substitute? Have you eaten costs from discontinued products?
Add them up. Divide by annual material spend. That’s your risk percentage.
If you’ve had $8,000 in material shortage costs over two years and you buy $300,000 in materials annually, that’s roughly 1.3% annually, but it’s not smooth. It bunches.
Price at least that much. Better to overprice risk and have money left over than underprice and eat the costs when shortages happen.
Add those three percentages together. That’s your material markup.
Waste (9%) + Sourcing (2%) + Risk (3%) = 14% base material markup.
Now you have 14% of hard material costs to actually fund those costs.
The Austin contractor was pricing at 25%, which was more than enough. But because he didn’t separate the costs, he didn’t know which costs he was underfunding. He thought he had a 25% cushion. He actually had nothing.
Why this matters right now
Material costs are volatile. Subfloor shortages, framing lumber spikes, tile import delays. These aren’t rare anymore.
If your material pricing doesn’t account for actual waste, sourcing time, and supply chain risk, you’re getting crushed. You’re eating shortage costs that should be built into the bid.
Calculate your actual numbers. Separate your material costs. Price them correctly.
Most contractors I work with find they’re underfunding material by 5-10%. That margin hits the P&L as “surprise tightness” at year-end.
Don’t be surprised. Separate the math. Price for reality.
—



