Home / The 7 EBITDA Leaks / Parts Markup

Leak 2 · The Silent Margin Killer

Parts Markup: the silent margin killer

Every part that leaves the truck marked up too low is margin you gave away for free. It rarely shows up as a crisis — it just quietly bleeds off the bottom line, one invoice at a time, because nobody is watching the markup.

What it is

Parts markup leakage is materials marked up too low — 10–20% instead of 30–50% — markup that swings from tech to tech, or parts "passed through" at cost for "good customers." When that happens, the shop is essentially financing the customer's materials: carrying the cost, the handling, and the risk, and keeping almost none of the margin. Parts are one of the few places in a trades business where margin is set once and then repeated on every invoice, so a low markup compounds quietly across the whole year.

How to spot it

  • Gross margin % varies wildly by technician
  • Some jobs show 70% labour / 30% parts margin — inverted from a healthy 40/60
  • Repeat customers paying less than new customers for the same parts
  • No price sheet on the truck — techs "remember" markups
  • Invoice line items marked "at cost" or "N/C"

How to measure it

Realised parts markup(parts revenue ÷ parts cost) − 1Target: 35–50%
Per-tech markup variancespread in realised markup between techsTarget: under 5% spread
Gross margin % by job typegross margin measured per job typeTarget: 55–65% blended
Discount frequency on partsdiscounted parts lines ÷ parts linesTarget: minimal

Typical impact

$20,000–$40,000per year for a 3-truck shop

A shop doing $400,000/year in parts at 20% realised markup instead of 40% has $80,000/year in additional margin available — margin that is on the table today and simply not being captured. Most shops recover $20,000–$40,000 once they standardise their markup, and none of it requires selling more jobs or spending a dollar on marketing.

How to fix it

  1. Build a standardised markup matrix. Set a tiered matrix — 40% on fast-moving parts, 50% on specialty parts, and 60% on emergency or after-hours parts — so every part has a defined markup instead of a guess.
  2. Put price sheets on every truck. Give each truck a printed price sheet so techs price from the sheet, not from memory, and update it quarterly.
  3. Set a no-discount policy on parts. Labour can flex; parts don't. Hold the parts price for every customer, every job.
  4. Enforce a minimum margin floor in software. Configure the POS or field software so a part cannot be invoiced below the minimum margin floor — the system, not the tech, protects the margin.
  5. Run a quarterly parts-pricing review. Review parts pricing every quarter against supplier cost increases so markup keeps pace as costs rise.
  6. Stop buddy pricing for repeat customers. Repeat customers pay the same parts price as everyone else — loyalty earns priority service, not a discount on materials.

The IronMargin angle: the parts-markup-matrix playbook is a Core deliverable, and the rebate network is the moat here. Members get negotiated parts pricing from preferred suppliers, effectively raising their markup without raising customer prices — the margin lands with the shop, not the supply house.