Parts Invoicing Software for Repair Shops: Landed Cost, Markup, Margin
Parts are the quietest place a repair shop loses money. Not in one dramatic mistake — in twenty small ones, repeated every week: a part billed at last year's cost, freight that never made it onto the invoice, a fitting nobody wrote down, a markup that was never quite enough on the cheap lines and always the same on the expensive ones. None of it shows up as a loss. It just shows up as a month that should have been better.
Parts invoicing software is supposed to fix that. Mostly it doesn't, because it bills what you type and computes what you tell it to. The math is only as good as the numbers going in.
Start with landed cost, not invoice price
The invoice price is what the supplier wrote on the paper. Landed cost is what the part actually cost you to have:
- The part itself — the invoice price.
- Freight — the $60 pallet charge on the $400 pump. If the pump is billed at $400 plus markup, the freight is gone.
- Duty and brokerage — real on cross-border orders, invisible on the invoice line.
- Core charges — refundable only if you actually send the core back. A core that sits on the shelf for six months is a cost.
- Restocking fees — on the part you ordered wrong, which is a cost of the job it was ordered for.
A shop that marks up invoice price is quietly absorbing all of it. A shop that marks up landed cost is not.
Markup and margin are not the same number
This is the single most common pricing error in repair shops, and it's worth being precise about.
- A 30% markup on a $100 part means sell at $130. Your gross margin is $30 on $130 — 23%.
- A 30% margin on the same part means sell at $143, because $43 of $143 is 30%.
The gap widens as the markup grows. At a 50% markup you're at 33% margin; at 100% you're at 50%. Neither is wrong — but the shop has to mean the same thing every time, and the software has to compute it the same way every time. Whichever you choose, pick it, write it down, and stop negotiating it per job.
Why flat markup hides your worst lines
A single percentage applied across the board feels fair and simple. It also makes the cheap lines unprofitable and the expensive lines hard to sell.
- The $8 fitting at 30% markup earns $2.40. Handling, stocking, and counting it cost more than that.
- The $4,000 final drive at 30% markup is $5,200 — a number the customer will shop, and one you may lose the job over.
Sensible shops tier it: higher percentages on small, high-touch parts, lower on big-ticket components, and a real decision about freight either way. What matters is that the rule lives in the software instead of in whoever is typing.
The cost that was never updated
Cost changes arrive constantly and quietly. The supplier raises the price, the new invoice goes in the drawer, and the work order still carries the number from fourteen months ago. Nobody notices because the invoice still looks profitable.
Two habits fix it:
- Re-price on receipt. When the supplier invoice lands, update the part's cost. Anything on the shelf or in the catalogue should carry a current number.
- Run a margin report monthly. Sort by lowest margin and look at the bottom twenty lines. Every shop has a handful of parts sold below cost because the number was never revisited.
A margin report is also how you catch the other failure: parts you sold that had no cost at all, entered as a description and a sell price with nothing behind them.
The parts that never got billed
The most expensive parts on the invoice are often the ones that aren't there. Fittings, brake clean, hydraulic fluid, shop supplies, a filter nobody wrote down. Used on every job, billed on almost none.
You don't need perfect inventory to fix this. You need a way to put a small charge on the job in three seconds — a service kit, a consumables line, a standard shop-supply item — so the money you spent on the job comes back with the job. Do it on every invoice and it becomes a number in the thousands over a year. For how parts get from a supplier invoice onto the work order without typing, see AI parts scanners for repair shops.
What parts invoicing software should actually do
Strip away the feature list. The core is six things:
- Cost in, sell price out. Enter cost and markup (or margin), and let it compute — the same way on every line.
- Landed cost built in. Freight and core charges belong on the part, not lost in overhead.
- Parts attach to the job. Pulled from inventory or typed in, then carried onto the work order and the invoice without re-entry.
- Stock comes down when the part is used. Not when someone remembers.
- The completed work order rides along. The invoice that reaches the customer carries the documentation that backs it. For how that travels into your books, see QuickBooks for field service and heavy equipment.
- A margin view. Revenue, cost, and margin per part and per job — so the thin lines are visible before the quarter ends.
The test that takes ten minutes
Open last month's invoices. Pick five parts lines at random and answer three questions about each: was the cost current, was the markup what you meant it to be, and was the freight on it somewhere? Then count the jobs where a fitting, a fluid, or a filter went on and never got billed.
That gap — not the software demo — is the number worth fixing. JSD ServicePro carries cost, markup, and per-truck stock on every part, computes the sell price, and pushes the finished invoice straight into QuickBooks with its documentation attached. Beta is open: bill a real month of parts on it free and see what was leaking.
Frequently asked questions
What is landed cost on a part?
The true cost to get the part onto the shelf or into the machine: the supplier's invoice price plus freight, duty, brokerage, and any core charge you never get back. A $400 pump that arrives on a $60 freight bill costs $460, and marking up only the invoice price leaves the freight unbilled.
Should I mark up parts by a percentage of cost or by margin?
They are not the same number and the gap grows fast. A 30% markup on a $100 part sells for $130 — a 23% margin. A 30% margin on the same part sells for $143. Decide which one your shop means, then let the software compute it the same way every time.
How often should parts prices be updated?
Cost changes arrive with every supplier invoice, and most shops update prices only when they remember. Either re-price on receipt of the invoice, or run a margin report monthly and fix the lines that have gone thin.
Why are parts missing from my invoices?
Because they were never entered on the work order. Small consumables — fittings, brake clean, hydraulic fluid, shop supplies — get used on the job and never billed. Tracking them per job, even crudely, recovers real money every month.
Related guides in this cluster
Invoicing & QuickBooks hub- How to Invoice Parts With Markup in a Repair Shop (Without Losing Money)
- Invoicing Hydraulic Repairs Through QuickBooks Online: A Field Guide
- QuickBooks Sync for Repair Shops: Stop Re-Keying Invoices
- AI Parts Scanners for Repair Shops: From Supplier Invoice to Priced Parts Entry
- QuickBooks for Field Service: How Heavy Equipment Repair Shops Should Sync
- Handling PST-Exempt Customers in Repair Shop Invoicing Software
See it in the app
JSD ServicePro handles parts invoicing, hour-meter maintenance, QuickBooks sync, and map-based dispatch — all mobile-first.