HVAC parts markup: what to charge (with markup chart)
HVAC parts markup should slide with cost, not sit at one flat percentage. Typical shops charge 3x-4x on parts under $50, 2x-2.5x on parts from $50 to a few hundred dollars, and 1.5x-2x on expensive components and equipment. Cheap parts carry high multiples because the truck roll costs the same either way; big-ticket parts carry lower multiples so the final number stays sellable.
If you just want a number for the part sitting on your bench, skip the reading and use the free parts markup calculator. Type in your cost, it applies the tiered schedule below and hands you a sell price. The rest of this guide explains where those tiers come from and how to use them without confusing markup and margin.
Why a flat percentage markup fails
Run the math at both ends of your price book and a single percentage falls apart fast. A $4 run capacitor at 50% markup earns you $2. It costs more than $2 to order that capacitor, receive it, stock it on the truck, and warranty it if it fails — you lose money on the part before the tech touches a gauge. Meanwhile a $2,400 compressor at 300% markup becomes a $9,600 part on a quote that already includes labor and refrigerant. Nobody signs that, and your close rate pays for it.
One percentage can’t serve both ends. The fix every profitable flat-rate shop lands on is the same: a tiered schedule where the multiplier steps down as the part cost steps up.
Markup vs. margin: they are not the same number
Markup is profit divided by cost. Margin is profit divided by sell price. Contractors mix these up constantly, and the mistake always cuts the same direction: you think you’re earning more than you are.
Worked example: a part costs you $100 and you apply 50% markup, so it sells for $150. Your gross profit is $50. But margin is $50 ÷ $150 = 33%, not 50%. If your accountant says the shop needs a 50% gross margin on materials, you need a 100% markup (2x) to get there. Set targets in one language and stick to it.
Three real parts through the chart
Here’s the schedule applied to three parts on almost every HVAC truck:
- Run capacitor— cost $8, lands in the under-$10 tier, 4x multiplier, sells for $32. Sounds steep as a percentage; it’s barely enough in dollars.
- Condenser fan motor— cost $95, lands in the $50–$199.99 tier, 2.5x multiplier, sells for $237.50.
- ECM blower motor— cost $420, lands in the $200–$999.99 tier, 2x multiplier, sells for $840.
Notice the pattern: as a percentage the markup falls from 300% to 100%, but the gross profit per part climbs from $24 to $420. The sliding scale keeps every ticket worth running.
Where parts markup fits in a flat-rate price
Parts markup is not your whole price. It covers the cost of being in the parts business: procurement time, stocking the truck, returns, restocking fees, and eating the warranty when a part fails at month eleven. Labor gets priced separately, from your loaded hourly cost and target margin, and the two pieces come together in one flat-rate number the customer sees. If you’re still quoting time and materials, start with our guide to HVAC flat-rate pricing — the markup chart above becomes one input into each task price. And when you’re ready to apply it across every line item, the step-by-step price book build guide walks through the whole thing.
The no-cost-data trap
Here’s the failure mode that quietly beats every markup strategy: the cost field in your price book is empty. You can’t multiply a cost you never entered. Shops set their sell prices years ago, never record what parts cost today, and the markup they think they’re charging drifts down every time the supply house raises prices.
In one real 86-item HVAC price book we analyzed, 83 of 86 items had no part cost recorded at all. That shop had no idea what its markup was on 97% of its book — because there was nothing to mark up.
If that sounds uncomfortably familiar, export your Housecall Pro price book and run it through the free Margin Leak Finder. It flags every item with missing cost data and every item priced below your target margin, right in your browser.
Frequently asked questions
What is a fair markup on HVAC parts?
Most profitable shops use a sliding scale: roughly 3x to 4x on parts under $50, 2x to 2.5x on mid-range parts, and 1.5x to 2x on expensive components and equipment. A single flat percentage across the whole price book is what unprofitable shops use.
Is 100% markup on HVAC parts too much?
No. On cheap parts, 100% markup (2x) is actually too little — doubling a $6 capacitor to $12 doesn't cover the cost of stocking it, driving it to the job, and warrantying it. 100% is reasonable in the $200-1,000 range, where 2x is the industry norm.
Should I show customers the part price separately?
In a flat-rate model, no. You quote one price for the completed repair — part, labor, and warranty together. Itemizing invites the customer to compare your part price against an online listing that carries no truck, no expertise, and no warranty.
Do supply-house discounts change my markup?
Markup applies to your actual cost, so a better contractor price means more gross profit at the same multiplier, not a reason to cut the multiplier. Just keep the cost field in your price book current — if it still shows last year's cost, your markup is silently shrinking.
What about warranty parts the manufacturer covers?
When the part itself is free under a manufacturer warranty, you still charge for labor, refrigerant, and processing the claim. Many shops bill a flat warranty-processing fee plus their normal labor rate, since filing the claim and making a second trip are real costs.
Get every part priced on the right tier
PriceTuneup rebuilds your entire Housecall Pro price book — parts on the tiered schedule above, labor at your target margin — for $249, one time, backed by the 60-Day Ticket-Lift Guarantee: If your average ticket doesn't go up within 60 days of importing your new price book, we refund the full price — and you keep every file. Or start smaller and price one part right now with the free calculator.