Blog

Why didn't your parts matrix apply to that line?

Inventory parts, hand-edited prices and matrix changes made after the fact all skip the markup. Where the margin leaks and how to audit it.

Published September 17, 2026

A parts matrix that works everywhere except on certain lines is the most common version of this problem. The table is set up correctly. Most tickets price the way they should. Then a line shows up at cost plus nothing and nobody can explain which rule missed it.

Key takeaways

  • Parts pulled from your own inventory skip the automatic markup in at least one major system.
  • Matrix changes apply going forward, so open estimates keep their old pricing.
  • Simple and compound matrices produce different retail prices from identical tables.
  • Markup and margin are separate calculations, and mixing them up costs about a third of the profit on a range.

The inventory gap

The largest single cause is a part that never went through a vendor lookup.

A matrix applies when a part gets priced from a catalog. A part pulled off your own shelf arrives already carrying a cost, so the pricing step the matrix hangs on never happens. Tekmetric's own documentation says it plainly: markups will not auto-apply towards parts added directly from inventory, although they can be enabled within the estimate.

Other systems handle shelf stock differently, so read your own setup screen. Mitchell 1's Manager SE help, for one, has you choose whether inventory is priced on "Average Cost (the average cost of all inventory item purchases) or Last Cost (the cost of the most recently purchased inventory items)," and offers an option to "overwrite the current inventory markups with the new pricing structure." If nobody picked that on purpose, find out which one you are on.

Skipping the markup on shelf stock is a reasonable design decision. The consequence is that every shop with stock on the shelf has a category of parts leaving at the wrong price unless somebody marks each one up by hand, which is exactly the kind of step that gets skipped on a busy Friday.

Worth checking on your own tickets: brake hardware, filters, wiper blades and bulbs. The fast-moving stock a shop keeps on hand is the stock most likely to be sitting on estimates at jobber price with no markup on it.

Changes that apply going forward

The second cause catches shops right after they fix their pricing.

You rebuild the matrix on Tuesday. Estimates written on Monday keep Monday's numbers. Shopmonkey documents this behaviour, noting that updates made to a pricing matrix in General Settings will not update parts already included in a service, with an Update to Latest prompt on the line item for pulling the new pricing through.

So the week you change your matrix is the week your reporting lies to you. Open tickets, declined work sitting in the system, and anything a customer is still thinking about all carry the old table. A shop that raised its markup and saw no change in gross profit for a fortnight is usually looking at this.

Simple against compound

Two shops with the same ranges and the same multipliers can produce different prices for the same part, because the calculation method sits in a separate setting.

A simple matrix finds the cost inside one range and applies that range's markup to the whole amount. A compound matrix breaks the cost across every range it passes through and marks up each slice at its own rate, which Tekmetric also calls a sliding or progressive matrix.

Take a part costing $8 against a table where the first $5 marks up 3x and the next band marks up 2x. Simple pricing puts the whole $8 in the second band for a $16 retail. Compound pricing marks the first $5 up to $15, the remaining $3 up to $6, and lands at $21.

Neither is wrong. Both are defensible. What causes trouble is a shop believing it runs one while the setting says the other, which shows up as prices that feel higher or lower than intended across the whole board rather than on individual lines.

Markup, margin and multiplier

Three methods, three different answers from the same input, and this is where the forums fill up with shop owners talking past each other.

Method on a $4 partRetail priceWhat it means
Multiplier of 1.5$6.00Cost times the multiplier
Markup of 50%$6.00Half the cost added on top
Gross margin of 50%$8.00Cost divided by 0.5, so margin is measured against retail

The gap between $6 and $8 on a $4 part is the whole argument. A shop that sets 50% in a field expecting margin and gets markup loses a third of its profit on that range, on every ticket, until somebody checks. Our markup against margin explainer works through the arithmetic, and the parts matrix calculator prices a part both ways so you can see which one your table is producing.

The hand-edited line

Some lines skip the matrix because a person overrode it, and that override survives longer than anybody intends.

An advisor knocks $40 off a part to save a sale on Thursday. The job gets declined anyway. Three weeks later that customer comes back and the estimate gets reopened with the discount still sitting on it, on a ticket nobody is negotiating any more. Multiply that by a busy counter and a chunk of your parts gross turns out to be concessions made to customers who already said yes.

The fix is a habit rather than a setting. Anything typed over the matrix gets a note saying why, and reopened estimates get repriced before they go back out.

Matrices that adjust themselves

Some shop systems now set the curve from your own sales data. You enter a target parts gross profit percentage, and the software builds the matrix from the parts you sell and adjusts it as the mix changes.

That removes the range-building work. The audit still matters, because a target measured across all parts can be met while individual categories sit wrong underneath it. A curve hitting 58% overall can still be leaving money on dealer-sourced parts and overpricing tires at the same time.

The other places it leaks

Four categories sit outside most matrices and each one is worth a separate look:

  • Dealer-sourced parts. Bought at list, marked up on a band built for aftermarket cost, and now priced above what the customer can buy it for at the parts counter down the road.
  • Core charges. A core is a deposit rather than a part. Marking it up is hard to defend when the customer reads the invoice.
  • Sublet. Machine work and alignments usually carry their own markup rule, and a general parts matrix applied to a sublet invoice produces numbers nobody intended.
  • Tires and batteries. Price-shopped by customers more than anything else on the ticket, and a general matrix prices them out of the market.

A twenty-minute audit

Pull the last twenty tickets and check the parts margin line by line against what your table should have produced.

  1. Sort the misses into buckets. Inventory parts, hand-edited prices, parts added before the last matrix change, and the four categories above. The bucket tells you whether this is a settings problem or a habit problem.
  2. Check one compound assumption. Price a mid-cost part by hand and compare it against the ticket. A mismatch means the calculation method is not what you think it is.
  3. Write down which parts are exempt on purpose. Cores, sublet and tires belong on that list. Anything else showing up at cost is a leak rather than a policy.

The parts matrix template has a starting table if you are rebuilding from scratch, and more on how pricing reaches the estimate is on the blog.

Why this one is worth the twenty minutes

Parts pricing errors hide better than labor pricing errors. A labor rate that reads wrong gets spotted by the first customer who asks about it, because hours and rate sit right there on the invoice in a form people understand. A part sold at cost looks exactly like a part sold at the right price, and the only place it shows up is in a gross profit number at the end of the month that somebody explains away as a slow fortnight.

That is why shops can run a matrix for years while a category of parts quietly bypasses it. Nothing in the daily work points at it. The advisor sees a price, the customer pays it, the ticket closes.

A shop doing 300 tickets a month with four parts lines each is pricing 1,200 parts. Ten percent of those slipping through at cost is not a rounding error on the month, and it is invisible from inside the workflow that created it.

Where Mechanica prices a job, the shop's own matrix runs on every parts line, including the ones a person would have marked up by hand. The advisor still reviews the estimate before it goes out.

Questions shops ask

Why does my parts matrix skip parts from inventory?
Because the matrix fires when a part is priced from a vendor lookup, and a part pulled off your shelf never goes through that step. Tekmetric documents this directly, stating that markups will not auto-apply towards parts added directly from inventory, though they can be enabled within the estimate. The part still needs marking up. Somebody has to do it by hand.
I changed my matrix and old estimates still show the old price. Why?
Matrix changes apply going forward. Shopmonkey states that updates made to a pricing matrix in General Settings will not update parts already included in a service, and offers an Update to Latest prompt on the line item to pull the new pricing through. Open estimates written before the change keep the price they were built with.
What is the difference between a simple and a compound matrix?
A simple matrix finds the cost in one range and applies that range's markup to the whole amount. A compound matrix spreads the cost across every range it passes through, marking up each slice at its own rate. Compound produces higher retail prices and is also called a sliding or progressive matrix. Two shops with identical range tables will price the same part differently depending on which method is selected.
Is a 50% markup the same as a 50% margin?
No. A part costing $4 at 50% markup sells for $6, because half the cost is added on top. The same part at 50% gross margin sells for $8, because the margin is measured against the retail price rather than the cost. Picking the wrong one on a matrix range quietly costs a third of the profit on every part in that band.
Why is my price higher than the dealer on dealer-sourced parts?
A matrix built for aftermarket cost bands applies the same aggressive markup to a part you bought at dealer list, so the retail price lands above what the customer can buy it for themselves. Most shops carve dealer-sourced parts out into their own band or price them at a fixed margin. The check is worth running on any part you buy at list.
Should tires and batteries run on the same matrix as other parts?
Most shops separate them. A tire bought at a thin margin and marked up on a general parts matrix prices itself out of the market, and customers price-check tires more than they price-check a wheel bearing. Give them their own band or their own matrix.
How do I tell whether my matrix is working?
Pull twenty recent tickets and compare the gross profit on each parts line against what your matrix should have produced. The lines coming up short are the ones that skipped it, usually inventory parts or prices somebody typed over by hand. It takes about twenty minutes and it usually finds money.

Sources

Back to blog