A customer once asked me to install a new garbage disposal. The unit cost me $189 at the supply house. I charged her $189 on the invoice — materials at cost. What I did not charge for: the 25 minutes I spent researching which model fit her sink, the 40-minute round trip to the supply house, the five minutes loading it into my truck, and the fact that I keep a wholesale account in good standing specifically so I can source parts efficiently. I essentially donated an hour of my time for free. I never made that mistake again.
Why Materials at Cost Loses You Money
When you charge materials at cost, you are ignoring every hidden expense involved in getting those materials to the job site. Your time has value — all of it, not just the hours you spend turning a wrench. Consider what sourcing materials actually involves: researching the right part or product, driving to the store or supply house, waiting in line, loading materials, driving to the job site, and occasionally making a return trip because the first item was the wrong size or the customer changed their mind.
That is real time with real costs attached — fuel, vehicle wear, and most importantly, hours you could have spent on billable work. If sourcing materials for a job takes you an hour and your labor rate is $80 per hour, charging materials at cost means you just gave away $80. Multiply that by five jobs a week and you are losing $400 per week, or over $20,000 per year. Material markup is not greed. It is compensation for a real service you provide.
Standard Markup Ranges
In the trades, material markup is universal and expected. Plumbers, electricians, HVAC techs — every trade marks up materials. The standard range for handyman work is 15 to 30 percent, depending on the type of material and the effort involved in sourcing it.
- Standard hardware and supplies (screws, caulk, brackets, etc.): 20-30% markup. These are small items that require frequent trips and eat time disproportionate to their cost.
- Fixtures and appliances (faucets, disposals, light fixtures): 15-25% markup. Higher-cost items where even 15% represents meaningful compensation for your sourcing time.
- Specialty or custom-order items: 20-30% markup. These often require research, special orders, and sometimes multiple attempts to get the right item.
- Lumber and bulk materials: 15-20% markup. The margin is lower but the volume makes up for it.
My default is 20 percent across the board. It is easy to calculate, fair to the customer, and adequately compensates my time. On a $500 materials bill, that is $100 — roughly what one hour of my time is worth, which is usually less than the actual time I spent sourcing.
The Return Trip Problem
Here is a scenario every handyman knows: you buy a part, get to the job, and discover it does not fit, is the wrong color, or the customer changed their mind. Now you are making a return trip to the store — another 40 minutes minimum. Without markup, you are absorbing that cost entirely. With a reasonable markup built in, those inevitable return trips are at least partially covered.
I track my return trips. Over a six-month period, about 12 percent of my material purchases required at least one return or exchange. That is not incompetence — it is the reality of working in existing homes where nothing is standard and surprises are constant. Old plumbing has non-standard fittings. Wall colors do not match the paint chip. Electrical boxes are oddball sizes. Markup accounts for this reality.
Wholesale Accounts Save You and Your Customers Money
If you do not have wholesale accounts at your local plumbing supply, electrical supply, and lumber yard, set them up this week. Most require nothing more than a business license and a tax ID. Wholesale pricing typically saves 15 to 40 percent off retail, which means even with your 20 percent markup, the customer often pays less than if they bought the materials themselves at Home Depot.
This is a genuine win-win. The customer gets materials below retail. You get compensated for your sourcing time through the markup. And you look like a professional who has established trade relationships — because you are.
Showing Markup Transparently on Quotes
Transparency builds trust. On my quotes, I list materials with the final price — not the wholesale cost plus a visible markup percentage. The line item says "Moen kitchen faucet — $227" not "Moen kitchen faucet — $189 + 20% markup = $227." Why? Because seeing a markup percentage makes customers feel like they are being taken advantage of, even when the final price is completely fair and often below what they would pay at retail.
If a customer ever asks whether I mark up materials, I am honest: "Yes, the material prices on my quotes include a handling fee that covers my time sourcing, picking up, and guaranteeing the right parts for your job. It's standard in the trades and in most cases my price is still below what you'd pay at a retail store." Nobody has ever argued with that explanation. Manage your quotes and material line items cleanly in HandyBook so every job has a clear, professional breakdown that customers trust.