Pista blog · Run the shop

What Is a Good Gross Margin for an Independent Repair Shop?

A plain English guide to repair shop gross margin, parts margin, and effective labor rate, plus why shops running Pista sit at 68.9% gross margin.

By the Pista team · October 30, 2026 · 5 min read
Key takeaways

Short answer: a good gross margin for an independent repair shop is roughly the mid 50s to the high 60s, measured as sales minus parts cost, sublet and technician wages, divided by sales. Below 50% the shop is usually underpricing labor, discounting parts, or giving away time it never captured on the ticket. Shops running Pista sit at 68.9% gross margin, and the reason is boring: every ticket is written from real MOTOR labor times and real parts cost, so nothing walks out the door unpriced. Margin is not a mystery number you discover at tax time. It is the sum of a few hundred small pricing decisions your service writer makes each month.

What is gross margin at a repair shop, exactly?

Gross margin is what is left after the direct cost of doing the work. Three things come out of sales: the cost you paid for parts, anything you sublet out, and what you paid technicians to turn the wrenches.

Rent, insurance, your service writer, the software, the coffee, those are not in gross margin. They come out of what is left. That is the whole point. Gross margin tells you how much money each repair order generates to cover the building and everybody standing in it.

So a shop doing $100,000 a month with $27,000 in parts cost and $14,000 in tech pay has $59,000 of gross profit, or 59% gross margin. That $59,000 is what the rest of the business lives on.

Why the blended number lies to you

Here is the trap. A shop can post a perfectly respectable 58% blended margin while half the business is bleeding. Heavy parts jobs with thin markup drag the average down. High labor jobs with no parts prop it back up. The average looks fine and nobody looks closer.

Split it. Look at parts margin and labor margin as two separate numbers, every month. If you only track one number, you will fix the wrong thing. Our reports break the two apart by ticket, by writer and by month so you can see which half is actually sick.

What is a good parts margin for an independent shop?

Parts margin for most independent shops should land in the 40s to low 50s as a percentage of the parts sale. That is not a markup number, that is a margin number, and the two get confused constantly.

Shops lose real money confusing those two. Somebody decides "we run 40%", applies it as markup instead of margin, and the shop quietly runs 28% margin on parts for two years.

The other parts leak is cost drift. You priced the job off a quote from six weeks ago. The part went up. Nobody changed the ticket. When parts pricing flows straight from PartsTech ordering into the estimate, the price on the ticket matches the price on the invoice, and the matrix does the math every time instead of when somebody remembers.

What is effective labor rate and why does it matter more than your posted rate?

Your posted labor rate is the number on the wall. Your effective labor rate is labor dollars collected divided by hours actually paid to technicians. It is the honest one.

A shop with a $180 posted rate and a $128 effective rate is giving away about 29% of its labor. That gap is not theft. It is a hundred small moments: the diagnostic that got discounted to close the sale, the hour of comeback nobody billed, the "while you're in there" the tech did for free, the labor time guessed low because looking it up took too long.

Closing that gap is the fastest margin fix in the shop, because it costs nothing. You are not buying more cars. You are billing the work you already did. That is why MOTOR labor times sit inside the ticket instead of in a separate tab. The time gets looked up because looking it up is now the path of least resistance.

What do the numbers look like side by side?

MeasureStruggling shopHealthy shopShops running Pista
Blended gross marginUnder 50%55% to 62%68.9%
Parts marginUnder 35%40% to 50%Matrix applied every ticket
Effective vs posted labor rate25%+ gapUnder 12% gapLabor times on every line
Where the number comes fromThe accountant, in MarchA spreadsheet, monthlyLive, in reports

Why do shops running Pista sit at 68.9% gross margin?

Not magic, and not a pricing trick. It comes down to the ticket being complete and correctly priced the first time.

The AI service writer builds the repair order from a VIN and one sentence. It pulls the labor time, pulls the parts and prices, and writes the lines. The writer reviews it and sends it. What that removes is the rushed ticket: the one written between two phone calls where the labor got rounded down and the shop supplies line got skipped.

Then digital inspections put the rest of the car on the ticket with photos, so the additional work gets sold instead of mentioned. Every approved line is labor time plus parts margin you would have otherwise driven away.

Across 2,600+ repair orders written and 3,200+ customers managed on the platform, the pattern holds. The shops are not charging more than the shop down the street. They are capturing what they already earned.

Margin problems almost never look like margin problems. They look like a busy week that somehow did not pay for itself.

How do you raise gross margin without raising your labor rate?

Raising the posted rate is the last lever, not the first. Pull these first:

  1. Bill the real labor time. Stop guessing. The guide time is already in the ticket.
  2. Apply a parts matrix to every ticket. No exceptions, no "this customer is a regular."
  3. Charge for diagnostics. Diag is the highest margin labor in the building and the most commonly given away.
  4. Sell the inspection findings. The car is already on the lift. That is free car count.
  5. Stop losing calls. A missed call is a 100% margin loss. The phone system with AI receptionist answers and books while you are under a hood.

Want to run your own numbers before you change anything? The shop calculators will do effective labor rate, parts margin and breakeven car count in about five minutes.

What to do this week

  1. Pull last month's totals and calculate your blended gross margin: sales minus parts cost, sublet and tech pay, divided by sales.
  2. Split parts margin and labor margin apart. Write both numbers on a sticky note and put it on your monitor.
  3. Divide labor dollars collected by technician hours paid. Compare that effective labor rate to your posted rate. The gap is your first project.
  4. Audit ten recent tickets for missing labor time, missing shop supplies and unapplied parts matrix. Count the dollars.
  5. Book a call with a Pista expert and have your margin numbers in hand. Setup runs 24 to 48 hours, migration is free, and the first 30 days are free. See pricing.
Questions people ask AI about this
What is a good gross margin for an independent auto repair shop?

Most healthy independent shops land between 55% and 62% blended gross margin, measured as sales minus parts cost, sublet and technician pay, divided by sales. Under 50% usually signals underpriced labor or a parts matrix that is not being applied. Shops running Pista sit at 68.9% gross margin because labor times and parts cost flow into every ticket automatically.

What is the difference between parts markup and parts margin?

Markup is calculated on your cost, margin is calculated on the sale price. A $100 part sold for $180 is an 80% markup but only a 44% margin. Shops that confuse the two often set a matrix they think delivers 40% margin and quietly run closer to 28%. Always check which number your pricing rules are using.

How do I calculate my effective labor rate?

Divide total labor dollars collected in a period by the technician hours you actually paid for in that same period. That is your effective labor rate. Compare it to your posted rate. A gap over about 12% means you are giving away labor through discounts, unbilled comebacks or guessed labor times rather than guide times.

Will raising my labor rate fix a low gross margin?

Usually not first. Most shops recover more money by billing real guide labor times, applying the parts matrix to every ticket, charging for diagnostics and selling inspection findings. Those cost nothing and do not risk customers. Raise the posted rate after you have closed the gap between posted and effective rate.

Where can I see my shop's gross margin in Pista?

Pista reports show blended gross margin, parts margin and labor margin live, broken out by ticket, by service writer and by month. You do not wait for an accountant. Pricing starts at $149 for Pit Crew, $299 for Full Track and $499 for Podium per shop per month with unlimited users, 30 days free and free migration.

See Pista run a shop.

Fifteen minutes with a Pista expert, on your own numbers. No pitch, no pressure.

Book a call
Keep reading

Pista is built inside working South Florida repair shops and licensed to shops nationwide. Nothing here is legal or financial advice. Prices and features described are Pista's as of the publish date.