My three-month-old can’t count yet. Give the kid a few years, though, and they’ll still be ahead of a lot of shop owners on one thing: 50 is a bigger number than 33. (I say that with love. I was one of those owners.) Margin vs. markup is the auto repair math mistake that costs real money, because a “50% markup” sounds like it should hand you a 50% margin. It does not. It hands you a 33% margin.
This is written for the owner or multi-shop operator, not the customer at the counter. It covers the math, why the mix-up undercuts your profit, what gross margin the best shops actually run, and how to set targets so the number you pick is the number you keep.
Read it in five minutes. Fix it before your next parts order.
The math mistake hiding in your parts pricing
Here’s the trap. You decide you want a 50% margin on parts. Reasonable goal. So you tell your shop management system to mark parts up 50%. Feels right. The word “50” is in both, so surely they line up.
They don’t. A $100 part marked up 50% sells for $150. Your gross profit is $50. Divide that by the $150 sale price and you get a 33.3% margin. You aimed for 50 and landed at 33, and nobody told you, because the invoice looked fine.
Now scale it. Say your shop does $50,000 a month in parts sales. You believe your 50% markup is earning a 50% margin, so you’re mentally banking $25,000 in parts gross profit. Reality at a 33% margin is about $16,650. That’s a gap of roughly $8,350 a month (a little over $100,000 a year) between the profit you think you set and the profit you actually earn. (This math is illustrative, but the mistake is not.)
You didn’t get robbed. You didn’t get discounted to death. You just used the wrong number and hoped for the right result. Hope isn’t a pricing strategy.
Markup vs. margin: two numbers, one expensive mix-up
Markup and margin describe the same dollars from opposite ends of the transaction. That’s the whole reason they get confused.
- Markup is the percentage you add to the part’s cost. Formula:
(Price − Cost) ÷ Cost. A $100 part sold at $150 is a 50% markup. - Margin is the percentage of the sale price that’s gross profit. Formula:
(Price − Cost) ÷ Price. That same $150 sale is a 33% margin.
Same $50 of profit. Two different denominators. Cost on one side, sale price on the other. That’s it. That’s the entire difference between margin and markup, and it’s why one number is always bigger than the other.
To convert without a calculator: margin = markup ÷ (1 + markup), and markup = margin ÷ (1 − margin). Memorize those two and you’ll never get caught flat-footed when your bookkeeper says “margin” and your parts system says “markup.”
Here’s the chart worth taping to the counter, the one that tells you what your markup is actually earning you:
| If your markup is… | Your margin is really… |
|---|---|
| 25% | 20% |
| 40% | 28.6% |
| 50% | 33% |
| 67% | 40% |
| 100% | 50% |
| 150% | 60% |
| 200% | 66.7% |
Read that top to bottom and the pattern jumps out: to earn a 50% margin, you need a 100% markup. To earn 40%, you need to mark up 67%. Every honest margin target is a bigger markup number than owners expect. That’s the tax on the confusion.
This post is about the math. If your next question is “so what markup percentage should I actually run, and how do I build the matrix?”, that’s a different job, and we cover it in the complete parts markup guide and the fair parts markup benchmarks by shop size. Come back here whenever the markup-versus-margin math trips you up.
What your gross margin should actually be at an auto repair shop
Once the math clicks, the next question is the right one: what should the number be?
According to accounting firm Paar Melis’s 2025 benchmark report (built from hundreds of shops’ actual 2024 financials, not a survey of what owners guess), the average auto repair shop runs a 52.3% overall gross margin. Underneath that: parts gross profit around 46.1% and labor gross profit around 59.3%.
Notice the split. Labor carries the higher margin; parts drags the blend down. That’s normal, and it’s exactly why the parts side is where the markup-versus-margin confusion does the most damage. You’re already working with the thinner number, so setting it 17 points too low really stings.
Worth flagging: when shops self-report their margins in industry surveys, they tend to call out rosier bands, often 50–59% on parts. Paar Melis’s audited books land lower, near 46%. That gap between what shops believe and what the books show is, more or less, the theme of this entire article. Believe the books. For the full set of numbers to grade yourself against, see our auto repair parts KPIs and benchmarks.
Same labor rate, wildly different profit
Here’s the part that should make every owner sit up.
Paar Melis compared the top 10% of shops to the bottom 10%. Both groups post nearly the same labor rate, around $165 an hour. Same market, effectively the same sticker price. And yet:
- Owner pay plus profit: 26.2% of sales for the top group, 2.7% for the bottom.
- Net profit: 19.9% versus −1.3%. One group takes home a fifth of every dollar. The other loses money.
Same rate. One’s buying a lake house, the other’s wondering where it all went. The top shops don’t charge more. They capture more of what they charge. They protect the margin they set instead of letting the math and the daily grind chew it back down.
That’s my one strong opinion in this whole piece: manage the number that hits your P&L, and that number is margin, not markup. High revenue doesn’t mean high profit. A busy shop with a mislabeled target can post big sales and thin returns, while the disciplined shop down the street out-earns it on the same rate. Markup is just the dial you turn. Margin is the result you live on.
Where the margin you set leaks back out
Say you fix the math. You set a true 50% parts margin with a 100% markup. Job done?
Not quite, because the margin you set on paper is not the margin that reaches the bank. It leaks in three predictable places:
- Off-matrix discounting. A service advisor knocks a little off a part to close a hesitant customer. Each one looks harmless. Across a week of tickets, the aggregate can run double your discount policy, and it comes straight out of the margin you carefully set. This is the single biggest preventable leak in most multi-location shops; we break down the dollars in how service advisor discounting kills your parts gross profit.
- Uncredited cores. You paid a core deposit and never got it back because the old unit aged out in a bin. That’s margin walking out on a hand truck. The workflow to stop it lives in core charges and profit leakage.
- Cost creep. Your matrix assumes yesterday’s cost. Vendors raise prices mid-quarter, the cost input drifts up, the sale price doesn’t, and your realized margin sinks below the target you set. No discount required.
Here’s the honest bridge, and I’ll keep it short because this isn’t a sales pitch. Reconciling parts invoices, credits, and repair orders (the kind of back-office discipline that sits underneath solid automotive accounting) is how those three leaks surface before month-end instead of after. That’s the specific job WickedFile does: it compares what the vendor billed against what the shop actually sold, returned, or got credited, and flags the exceptions. What it does not do: set your prices, build your matrix, or replace your shop management system or QuickBooks. It doesn’t decide your margin. It tells you whether the margin you decided on actually held. Plenty of single-bay shops catch this by hand with a Friday spreadsheet. If that works for you, keep doing it and skip the software.
Set your targets in margin, not markup
The fix is a three-step habit, not a project.
- Start with the margin you need. Work backward from the gross profit dollars that cover labor, rent, and your target net. That produces a target margin percentage, say, 45% on parts to land near the Paar Melis benchmark.
- Back into the markup that produces it. Use
markup = margin ÷ (1 − margin). A 45% margin needs an 82% markup. Enter that number into your shop management system. This is where the whole industry gets it backwards. They type the margin number into the markup field and lose points they never notice. - Audit your realized margin monthly. Pull actual parts gross profit from your P&L and compare it to the target you set. If you aimed for 45% and the books say 39%, that six-point gap is your discounting, cores, and cost creep. Measured, not guessed.
If you’re a multi-shop operator, do this at the group level too. Parts gross profit is a bigger dollar lever than most owners think: our parts vs. labor margin breakdown makes the case that at four-plus locations, protecting parts margin moves the P&L harder than another dollar on the labor rate.
Building or rebuilding the actual matrix is a separate task with its own steps. That’s the parts markup strategy guide, not this one. This post’s job was just to make sure the number you put in the matrix is the number you meant.
Run this on your own P&L this week
Twenty minutes. No consultant required.
- Pull your last full month of parts sales and parts cost from your P&L.
- Calculate your realized parts margin:
(Sales − Cost) ÷ Sales. Write it down. - Check what markup your shop management system is set to, and convert it to a margin using the chart above.
- Compare the three numbers: the margin you targeted, the margin your markup should produce, and the margin your books actually show. Each gap is a different problem.
- If the markup you entered is really your margin number in disguise, fix the field today. That’s the fastest raise you’ll ever give yourself.
- Compare your realized margin to the Paar Melis benchmarks: 52.3% overall, 46.1% parts, 59.3% labor.
- If you run multiple stores, do all of the above per location and look for the outlier.
Get the math right and you stop leaving points on every ticket. Get the target set in margin, audited monthly, and you stop leaving a lake house on the table. Do both this week, before the next parts order goes out, because a 33 you thought was a 50 is the most expensive typo in the shop.
