Pricing & Rates
Material markup: how much to add, and what it pays for
By DoneQuote Editorial · August 23, 2026 · 7 min read
On this page
- A 20% markup is not a 20% margin
- Converting markup and margin, both directions
- What the markup is actually paying for
- Where the ranges land by material class
- Three ways to put materials on an estimate
- What happens when they price-check you
- Who owes the sales tax on the materials
- Cost and sell price in DoneQuote
- The short version
On this page · 9 sections
- A 20% markup is not a 20% margin
- Converting markup and margin, both directions
- What the markup is actually paying for
- Where the ranges land by material class
- Three ways to put materials on an estimate
- What happens when they price-check you
- Who owes the sales tax on the materials
- Cost and sell price in DoneQuote
- The short version
You bought $412 of pipe, fittings and a mixing valve at the supply house this morning, and the customer will see a number for that on the estimate. It is easy to add "20 percent" without checking what it returns. It is not 20 percent.
A 20% markup is not a 20% margin
Markup is measured against what you paid. Margin against what you charged. Different denominators, so they never match.
That $412 at a 20% markup bills at $494 — $82 of gross profit on a $494 sale, a 16.7% margin. Scale it: $60,000 of material a year at a 20% markup grosses $12,000, where the 25% markup that truly returns 20% grosses $15,000. Nobody catches the $3,000, because the estimate looked right.
Converting markup and margin, both directions
The only two formulas here:
Margin = markup / (1 + markup)
Markup = margin / (1 - margin)
| Markup on cost | Actual gross margin | $400 of material bills at |
|---|---|---|
| 10% | 9.1% | $440 |
| 15% | 13.0% | $460 |
| 20% | 16.7% | $480 |
| 25% | 20.0% | $500 |
| 33% | 24.8% | $532 |
| 50% | 33.3% | $600 |
| 100% | 50.0% | $800 |
Read it backwards for a margin target: 25% needs a 33% markup, 30% needs 43%, 40% needs 67%. Apply a margin goal as if it were a markup and you miss it every quarter.
What the markup is actually paying for
Most of it pays for work that never gets its own line:
- The supply run. Two trips a week at an hour each is roughly 100 unbilled hours a year — $8,500 at an $85 billed hour.
- Delivery and loading fees. A lumber drop or a rooftop load runs from about $100 for a forklift truck to a few hundred for a boom or conveyor, plus mileage and detention charges past a set offload time. A roll-off swap is its own haul, priced in hundreds. Suppliers publish these schedules.
- The wrong part. Restocking fees commonly run 10–25%, and true special orders are often non-returnable. You eat the difference.
- Waste and offcuts. Tile is commonly ordered at 10–15% overage, more for diagonal or patterned layouts; flooring around 5–10%; roofing 10% on a simple gable and 15–20% on a cut-up roof. You buy 100% and install less.
- Warranty exposure. The cartridge fails in month eight and the customer calls you, not the manufacturer. The part is free. The truck roll is not.
- The money tied up. You pay the supplier before the customer pays you. Carrying $8,000 for 45 days on a credit line is interest you never bill.
On a job with two supply runs and a special order, a 15% markup is not profit. It is break-even on handling.
Where the ranges land by material class
There is no national number, and published ones disagree — trade sources put "standard" material markup anywhere from 7.5% to 35%. Markup tracks handling effort and risk, not the price tag:
| Material class | Markup range you will see quoted |
|---|---|
| Bulk commodity — lumber, concrete, aggregate, gravel | 10–20% |
| Stock items — wire, fittings, fasteners, standard paint | 15–35% |
| Fixtures and special order — faucets, lighting, tile, cabinets | 25–50% |
| Major equipment — furnace, condenser, water heater | 20–50% |
| Small-quantity or same-day emergency purchase | 50%+ |
General contractors run the low end: high volume, visible line items. Plumbers, electricians and HVAC shops run higher on small parts, where two or three times cost on a $4 fitting stays trivial to the customer. Trades that quote flat rates price the task instead, which is why flat-rate HVAC equipment pricing can sit well above any of these numbers. Your own figure comes out of your overhead and your close rate, not a table on the internet.
Three ways to put materials on an estimate
Marked-up line items. Each material shows at your sell price. Good for detail-driven customers and change orders. Weakest against price-checking: every line is a searchable number.
Cost plus a stated percentage. "Materials billed at invoice cost plus 18%." Easy to defend, and it makes markup a policy instead of a secret. You are capped at the number you published, and some customers will ask for receipts. Separating materials from labor this way is what moves you from a lump-sum to a separated or time-and-materials contract, which in some states changes who owes the sales tax.
Folded into the job price. "Supply and install shower valve and trim — $1,480." Nothing to price-check, which is why flat-rate plumbing and HVAC works this way. But a customer who wants to supply the fixture has no line to subtract, so state in writing whether you allow that and who owns the warranty.
Never label a marked-up line "cost." Call it "supply and install," "material" or "furnish." A customer who finds out that "cost" was not cost stops trusting the document.
What happens when they price-check you
Some will. Once a fixture is itemized with a model number, the retail price is a search away: your line reads $342, the big box $249, and the conversation is coming.
Check the model number first. Manufacturers routinely sell channel-exclusive versions to big-box retailers — same look, a model number off by a digit or two, sometimes different internals or a different warranty. Moen's position is that identical model numbers mean an identical product, which is why the number matters. If the SKUs differ, you are not being compared to the part you quoted.
Where it is the same part, defend the line, not the number. "That's supply and install for that valve — sourcing it, picking it up, the trip back if it arrives damaged, and I stand behind it." Say what your warranty actually is; do not invent a term. If they would rather buy the part, price the labor and put the carve-out in writing.
Who owes the sales tax on the materials
This changes what markup does to the bill. In most states, a contractor who permanently installs material into real property is treated as the consumer of it: you pay sales tax at the supply house, that tax is part of your cost, and you do not add sales tax to the customer's materials line.
The contract form matters too. Texas lets you buy tax-free on a resale certificate under a separated contract and then collect tax on the itemized material charge, while a lump-sum contract makes you the consumer instead. Where you are the retailer, marking material up raises the tax base you collect on. Repair versus new construction, and residential versus commercial, can each flip the answer again. Your state revenue department publishes the rule for your trade; read it there, or ask a CPA who does construction.
Cost and sell price in DoneQuote
A markup only works if it lands the same way on every estimate — hard when you price from memory at 7pm. In DoneQuote each material carries both a cost and a sell price — upload a price list and it reads the items in — so the marked-up figure is there when you draft.
The short version
- A 20% markup returns a 16.7% margin. To hit a margin target, divide by (1 − margin): 25% margin needs a 33% markup.
- Markup pays for supply runs, delivery, waste, restocking, warranty trips and float — not profit on the box.
- Never call a marked-up line "cost," and check with your state revenue department who owes sales tax on materials.
Write quotes
10x faster
- Describe the job, AI drafts the quote
- Professional layout in seconds
- Free to try, no credit card