The standard markup on contractor materials is 15% to 20% for large-scale general contracting, and 30% to 50% for specialty trades like plumbing, HVAC, and electrical. This percentage isn't arbitrary profit; it covers the very real costs of estimating, procurement, financing, handling, and warranty risks. If you are passing your supplier receipts directly to the homeowner without a markup, you are essentially paying your client for the privilege of installing their materials.
Most guys starting out think that if a vanity costs $1,000 at the supply house, they should charge the client $1,000 and make their money on the labor. That is a fast track to bankruptcy.
Let's break down exactly how to price your materials, the math behind the margins, and how to look a homeowner in the eye and defend your pricing without blinking.
Why Charging Retail Price is a Guaranteed Loss
Here is the reality of buying materials for a job: it is never just the sticker price. When you buy a $500 tub, the true cost to your business is significantly higher before it ever gets set in the mud bed.
Think about what actually happens when you need materials for a job:
- Estimating Time: You or your project manager spent 45 minutes on the phone with the supply house getting quotes and checking availability.
- Procurement and Travel: Your guy drives 30 minutes to the supplier in a $50,000 truck burning $4/gallon gas.
- Loading and Unloading: It takes 20 minutes to load the materials, strap them down, and another 20 minutes to unload them at the job site.
- Financing (Floating the Cash): You put that $500 on your business credit card or net-30 account. You are carrying the risk of that debt until the client's progress payment clears.
- Shrinkage and Damage: Someone drops a box of tile, or a fitting is cross-threaded. You eat the replacement cost.
- Warranty: If that tub cracks in six months, the manufacturer might give you a new tub, but they aren't paying your labor to rip out the tile, pull the old tub, set the new one, and re-tile. Your material markup is your self-funded warranty insurance.
If you charge the client exactly what you paid, you just provided roughly $150 worth of logistics, administration, and insurance completely for free.
Most Contractors Get This Wrong: Markup vs. Margin
Here is the insight that separates the guys running profitable businesses from the guys working 70 hours a week just to break even: Markup and Margin are not the same thing.
If you want to make a 50% gross profit margin on your materials, a 50% markup won't get you there.
- Markup is the percentage you add to your cost.
- Margin is the percentage of the final sale price that is profit.
Let's look at the math on a $1,000 material purchase.
The Amateur's Math (50% Markup):
- Cost: $1,000
- Add 50% Markup: +$500
- Sale Price: $1,500
- Your Margin: $500 / $1,500 = 33.3% Margin
The Pro's Math (50% Margin):
- Cost: $1,000
- Divide by (1 - 0.50): $1,000 / 0.50
- Sale Price: $2,000
- Your Margin: $1,000 / $2,000 = 50% Margin
If your business overhead dictates you need a 40% gross profit margin to keep the lights on, and you are only applying a 40% markup, you are actually only achieving a 28.5% margin. You are bleeding out 11.5% on every single material purchase you make. Over a $500,000 revenue year, that is $57,500 in lost profit simply because you used the wrong button on your calculator.
Breakdown of the Standard Markup on Contractor Materials by Trade
The standard markup on contractor materials varies wildly depending on the trade, the volume of materials, and the risk associated with them. Here are the baseline targets you should be hitting.
General Contractors (Large Remodels & Custom Homes): 15% to 25%
When you are managing a $250,000 whole-home remodel, your material costs are massive. Applying a 50% markup to $100,000 worth of lumber, windows, and siding will price you out of the market. GCs rely on volume. A 20% markup on $100,000 in materials yields $20,000 to cover the project management, logistics, and site supervision.
Specialty Trades (Plumbing, HVAC, Electrical): 30% to 50%
Specialty trades deal with highly technical components that carry massive liability. If a plumber installs a faulty pressure reducing valve, it can flood a $50,000 kitchen. The markup must reflect the liability. Furthermore, MEP trades deal with thousands of small parts—fittings, wire nuts, PVC glue, solder. Tracking these individually is impossible, so a higher blanket markup ensures all consumables are covered.
Specialty Trades (Drywall, Painting, Masonry): 40% to 60%
Trades where the material cost is low but the handling is brutal need higher markups. Drywall is cheap, but moving 40 sheets of 5/8" drywall up a flight of stairs damages trucks and breaks backs. If you are doing patch work, you need to mark up your mud and tape exponentially. For a deep dive on pricing small patching jobs so you don't lose your shirt, read our guide on How Much to Charge for Drywall Repair: Stop Losing Money on Small Patches.
The Sliding Scale: Not All Materials Get the Same Markup
You cannot apply a blanket 30% markup to everything on your estimate. Sharp contractors use a sliding scale based on the unit cost of the item. The cheaper the item, the higher the markup. The more expensive the item, the lower the markup.
Here is a standard sliding scale you can program into your estimating software tomorrow:
- $0 to $100 (Consumables, hardware, fittings): 75% to 100% Markup. If you buy a $10 box of screws, charge $20. The time it takes to track that $10 receipt costs more than the $10 profit.
- $101 to $1,000 (Lumber, standard fixtures, tile): 40% to 50% Markup. This covers the standard logistics, delivery, and handling of everyday building materials.
- $1,001 to $5,000 (Cabinets, high-end appliances, doors): 25% to 30% Markup. The dollar amount of the profit starts to get large enough here that you can reduce the percentage while still making enough gross profit to cover your risk.
- $5,000+ (Boilers, custom window packages, generators): 10% to 20% Markup. If you are buying a $12,000 heat pump system, a 50% markup adds $6,000 to the bill. That will likely lose you the bid. A 15% markup yields $1,800, which is plenty to cover the time spent ordering it and floating the payment.
What This Looks Like on a Job: The Bathroom Rough-In
Let's pull this out of the abstract and look at a real-world scenario.
Imagine you are a plumbing contractor doing a standard master bathroom rough-in. You need to supply the rough-in valves, PEX piping, copper stubs, PVC for the drains, and all the associated hangers, glue, and solder.
Your actual cost at the supply house comes out to $600.
If you just pass that $600 through to the client, you have lost money. Your apprentice spent an hour at the supply house ($35/hr loaded labor cost). You used $15 in gas. You have $50 tied up in miscellaneous truck stock (screws, caulk, torch gas) that you didn't specifically buy for this job but will consume.
Instead, you apply a standard 45% markup to this mid-tier material package.
- Material Cost: $600
- Markup (45%): $270
- Price to Client: $870
That $270 is not "extra money." It pays for the apprentice's time at the supply house, the fuel, the wear and tear on the truck, and leaves a small net profit to grow the business. To see exactly how a profitable plumber structures this entire estimate, including labor, check out our breakdown of The $2,400 Bathroom Rough-In: Exact Material and Labor Breakdown for Plumbers.
How to Explain Material Markups to Homeowners
This is the part that makes most contractors sweat. You hand the client a bid, and they say, "I saw this exact Moen faucet at Home Depot for $200. Why are you charging me $280?"
Amateurs get defensive, mumble something about overhead, or worse—they cave and drop the price to $200.
Professionals hold their ground because they know exactly what that $80 pays for. Here is how you handle the "I can buy it cheaper" objection.
Script 1: The Warranty and Liability Angle
"Mr. Smith, you're absolutely right, you can buy that faucet at Home Depot for $200. The $280 on my estimate is my supplied-and-warrantied price. If you buy the faucet and I install it, and it leaks inside your wall next month, you have to pay me my full hourly rate to come back, rip open the drywall, remove the faucet, and install the replacement that you have to go stand in line to return.
If I supply it for $280, I own the problem. If it leaks, I deal with the manufacturer, I replace it, and it costs you absolutely nothing. You aren't paying for the metal in the faucet; you're paying for the insurance of knowing it's my headache, not yours."
Script 2: The Logistics Angle
"Mrs. Jones, that price includes procurement and handling. To get that tile here, my guys have to drive to the distributor, load 2,000 pounds of material into my commercial vehicle, drive it to your house, carefully carry it up your hardwood stairs without scratching them, and stage it in the bathroom. The retail price you see online is just the material sitting on a warehouse shelf. My price is the material sitting exactly where it needs to be for installation, fully inspected for damage."
The Golden Rule of Estimating: Stop Line-Iteming
The easiest way to avoid arguments about material markups is to stop giving clients the opportunity to argue.
Never line-item your materials and labor for a homeowner.
When you give a client a proposal that says:
- Labor: $4,000
- Materials: $2,500
- Markup: $750
You are inviting them to shop your materials and audit your profit.
Instead, provide fixed-price, scope-of-work estimates.
- "Demo existing bathroom, supply and install new Kohler fixtures, supply and install 100 sq ft of porcelain tile, paint to match. Total Investment: $7,250."
They don't need to know what the tub costs, what the screws cost, or what your markup is. They only need to know what it costs to solve their problem. You are selling a completed project, not acting as a personal shopper.
Dealing with Client-Provided Materials
Once a client figures out you mark up materials, some will try to beat the system by offering to buy all the materials themselves.
"I'll just buy everything on Amazon and have it here for you, so I only have to pay your labor!"
As a veteran contractor, your answer to this should almost always be a polite but firm No.
When clients supply materials, they buy the cheapest, knock-off fixtures from overseas brands with no replacement parts. They order the wrong rough-in valves. They forget the trim kits. The tile arrives shattered, and now your crew is standing around on the clock with nothing to do while the client tries to expedite a return.
If you do agree to install client-provided materials, you must protect your profit margins. You do this by charging a higher labor rate or adding a "Handling and Installation Premium."
If your normal labor rate is $85/hr when you supply materials, your labor rate should be $110/hr when they supply materials. You have to recover the lost profit that you usually make on the material markup, because your overhead hasn't changed.
Furthermore, your contract must explicitly state: "Contractor provides zero warranty on client-supplied materials. Any delays caused by missing, incorrect, or damaged client-supplied materials will be billed at a standby rate of $150 per hour."
Handling Materials on Change Orders
Change orders are where material markups often get forgotten in the heat of the moment. You are in the middle of a kitchen remodel, the walls are open, and the client decides they want to add three recessed lights and a dedicated circuit for a wine fridge.
You run to the supply house, grab $300 worth of wire, cans, and breakers, and slap them in. Later, you just add $300 to the final invoice.
You just lost money. Change orders actually require a higher standard markup on contractor materials than the original bid. Why? Because they disrupt your schedule. They force an unscheduled trip to the supplier. They require extra administrative time to write up the change order and get it signed.
Standard practice for change orders is a minimum 30% to 50% markup on materials, regardless of the trade. If you struggle with getting clients to approve these mid-project additions, read our guide on How to Charge for Change Orders Without Losing the Client to get your paperwork and communication dialed in.
Accounting for Waste and Spoilage
When calculating your material costs before applying your markup, make sure you are actually capturing the real amount of material you need.
If a floor is 100 square feet, you don't buy 100 square feet of tile. You buy 115 square feet to account for cuts, breaks, and waste.
Your markup is applied to the 115 square feet, not the 100.
- 115 sq ft x $4.00/sq ft = $460 actual cost.
- $460 x 1.40 (40% markup) = $644 price to client.
If you only charge the client for the net square footage installed, you are eating the cost of the waste. The client is paying for the finished product, and the waste is an unavoidable part of creating that finished product. They pay for the scrap.
Your Next Step for Tomorrow's Bids
Reading about the standard markup on contractor materials won't put a single dollar in your bank account unless you actually change how you estimate.
Here is your immediate next step: Open your estimating software or your Excel spreadsheet right now. Go to your material settings. If you have a flat 10% or 15% markup across the board (or worse, no markup at all), delete it.
Implement a sliding scale. Set your low-cost consumables to automatically mark up 75%. Set your standard materials to mark up 40%. Set your high-ticket items over $2,500 to mark up 20%.
On your very next bid, use these new numbers. Do not apologize for them. Do not line-item them for the client. Present the final, fixed-price number with confidence. You will lose the bottom 10% of cheap clients who want to nickel-and-dime you over a box of screws, and you will finally start making the profit margin required to build a sustainable, professional contracting business.
Create professional estimates in minutes
AI-powered pricing, polished proposals, and tools built for contractors who want to win more jobs.
Try QuotrPro FreeFrequently Asked Questions
Related Articles
Pricing & Estimating
How to Price a Deck Build: The 50% Markup Rule for Treated Lumber
To accurately price a deck, abandon square-foot rates. Calculate your true labor burden, apply a 50% markup on framing lumber, and itemize your hardware.
Project Walkthroughs
The $2,000 Bathroom Rough-In: Why Most Plumbers Underbid This Job
The average bathroom rough in cost for a standard 3-piece layout is $2,250 to $3,500. This includes $600 in materials, 16 labor hours, and a 35% profit margin.
Project Walkthroughs
The $2,400 Bathroom Rough-In: Exact Material and Labor Breakdown for Plumbers
The average cost bathroom plumbing rough in for a standard 3-piece layout is $2,400. This covers 12 labor hours, $450 in materials, and a 40% profit margin.