For Industrial and MRO distributors
Industrial and MRO: the discount nobody decided becomes the price everybody pays.
A rep clears one line to hold an account, the discount is recorded as that customer's last price paid, and next quarter it is the number the quote opens at — nobody decided that, and nothing in the process noticed.
A working session on your numbers, not a slide deck. No account, no card, and nothing connected until you say so.
Four things that go wrong on a industrial and MRO book
Named rather than categorized. “Margin erosion” is a heading a reader cannot check against their own week; each of these is something that happened on a Tuesday, and if none of them is familiar then this is the wrong page and the rest of it will not improve.
Problem one
Last price paid is a decision nobody made
A rep under competitive pressure clears a line at a number that made sense on that afternoon, for that order. It is written down as what this customer pays. The next enquiry for the same item opens at that figure rather than at your price, and the one after that opens a little lower. No pricing meeting approved any of it, and by the time the account is reviewed there is nothing left to review against. Ask the rep and they remember one order; ask the system and it reports a price. Neither is wrong, and between the two of them there is no version of events in which anybody chose this.
- Each discount is defensible on its own terms
- The record of it is indistinguishable from a policy
- The next quote inherits it as the default
- Nobody in the chain experiences it as a decision
Problem two
One book, two pricing regimes, one report
National accounts and contract customers are priced off agreements. Spot, breakdown and non-contract business is quoted line by line with real discretion. A margin report averages the two, so the half with the discretion in it — the half that leaks — never appears as a number of its own. The stable half is large enough to keep the total looking reasonable. Which half a given line sits in is not a field anybody can filter on either, so even somebody who wanted to read the negotiated tail on its own would have to reconstruct it by hand from customer names.
- The contract half barely moves month to month
- The negotiated tail moves and is never reported separately
- A book-wide margin figure is the average of the two
- No field marks which regime a line was priced under
Problem three
Discretion belongs to whoever answered the phone
The same part leaves at three prices in a week because a counter, a branch and an outside rep each priced it, and none of the three had the other two's reasoning or the item's own history in front of them. Each of them was doing the job as they understand it. There is no written rule they were breaking, which is the actual problem. And the three of them will not find out. Nothing routes a price past anybody, so the first time the inconsistency surfaces it surfaces from the customer's side, as a question about which number is real.
- No two of those three see the same screen
- None of them sees what this customer last paid for it
- The customer often sees all three
- The inconsistency surfaces from the customer's side
Problem four
The same part, carrying four numbers
The book is multi-supplier with no shared nomenclature. One filter arrives as your SKU, as the manufacturer's number, as whatever the customer's maintenance system calls it, and as the string the last person typed into the enquiry. Nothing ties a price history to a part that has four names, so the question "what do we usually get for this" has no reliable answer even when the data is all there. The practical effect is that the question nobody can answer is the easy-sounding one: has this customer bought this before, and at what. A desk that cannot answer it prices from the list.
- An enquiry rarely arrives under your own part number
- Price history is keyed to the item, not to the words
- A line matched to the wrong item inherits the wrong history
- "Has this customer bought this before" has no reliable answer
What it costs is the way it accumulates
Nothing on this page is a bad deal. Each one is a small decision made correctly with what was on the screen at the time, and the cost is entirely in how they accumulate.
How it compounds
A discount becomes a recorded price, a recorded price becomes the next quote's default, and a default is never re-argued because nobody remembers it was once a concession. The floor under an account ratchets in one direction only. Three years of that is not a discount any more; it is a price list you did not write, agreed by nobody, and the first person to notice is usually the one who inherits the account.
Why nothing catches it
A monthly margin report tells you this happened. It tells you after the customer has the number, aggregated across a book whose contract half is stable — which is why movement in the negotiated tail rarely clears the noise. The transaction it describes closed weeks ago, and the conversation it enables is about a price the customer already considers theirs.
No figure on this page is a claim about your book. There are no industry averages here and no recovered-margin percentages: the only numbers on the page are on the card further down, and they are sample figures re-derived by a test from the operands the card itself shows.
What a industrial and MRO desk does about it today
Not a list of mistakes. Every one of these is a sensible response to a real constraint, which is exactly why it has survived — and the last one is usually the most rational of them. A product that does not understand why the current answer is the current answer has nothing useful to replace it with.
A spreadsheet somebody maintains
One workbook, owned by one person, holding the floors that matter, last refreshed whenever they last had a quiet afternoon. It is usually correct and it is never current, and it is not open on the screen of the person typing the quote.
Tribal knowledge
The sales manager knows which accounts have been given too much. They know it as a feeling about a handful of names rather than as a list, which is enough to act on and impossible to hand over. It leaves when they do.
An ERP margin report
Real numbers, correctly computed, delivered monthly against transactions that have already closed. It answers what happened. That is a useful question and it is not the one a quote desk has at four o'clock.
Nothing at all
The commonest answer, and not a careless one. Re-deriving a floor by hand costs more time per line than most lines are worth, so it is not done. That is arithmetic rather than negligence, and it is the reason a check has to cost nothing per line to survive contact with a real desk.
Where PIE intervenes, and at which moment
Every figure below is deterministic arithmetic over rows your ERP already wrote, stamped with the version of the margin policy that judged it. The AI on this platform reads those numbers and phrases them; it never produces one. What is not listed here does not apply to a industrial and MRO book, and the limits further down say which of those are permanent.
The floor arrives before the quote does
Your invoice and AP-invoice lines are what a floor is computed from: what you sold, to whom, and what it cost. PIE checks the price typed on each line against the policy you set, at the moment it is typed, and a breach is held for a named approver rather than sent. The platform holds it, not the salesperson, and the sign-off is append-only and carries the version of the policy that was in force when it was given.
The enquiry, read into lines against your own book
Paste a customer's enquiry as it arrived — a forwarded email, a line of WhatsApp — and PIE reads it into quote lines and resolves each one against the catalog you uploaded: an exact match where there is one, the nearest neighbours by description otherwise, scored the same way every time. It is deterministic and offline, so the same text resolves the same way on every machine and no model is asked. It finds the line in your book; it does not propose a substitute from another manufacturer's. A line it cannot place stays unresolved and says so.
The accounts going quiet, named before the renewal
Four detectors run over the rows already synced — decline, dormancy, margin deterioration and cost that was never passed through — plus six more at the customer-and-item grain. Each one opens into the figures that raised it, so the first thing you see is not a score but the rows behind it.
What it was worth, including when it was nothing
The value ledger counts lines held to a floor and declines raised in time, carrying the operands each figure came from. A month with no detection reads UNKNOWN rather than zero, and what could not be measured prints above what could — which is the only version of this number worth having.
One quote line, start to finish
One line, from the enquiry arriving to the record that explains it a year later. The card carries sample figures and the arithmetic under it is the arithmetic the platform applies.
Part 4114-08
200 units for A repeat account in Ohio, quoted at $41.20 — routed to a sales manager, no individual owner. The platform holds it, not the salesperson.
| Quoted unit pricethis quote | $41.20 |
| Effective unit costbill | $38.08 |
| Margin flooryour margin policy | $44.80 |
| Recommendedthis customer’s own history | $48.70 |
| Margin at this pricecomputed | 7.6% |
The manager’s decision card, as the product draws it — with sample figures, because no customer’s numbers belong on a public page.
The line arrives as the customer wrote it
An enquiry is pasted in and one of its lines resolves against your catalog to the item on the card. The resolution records which route found it — an exact match or a nearest neighbour — and the span of text it read, so a wrong match is visible as a wrong match rather than as a wrong price.
A salesperson types the price the customer asked for
The desk sees the floor, the recommended price and this customer's own history for the item. It does not see cost and it does not see margin: those fields are absent from the server's response rather than hidden by the screen, and so is any rule whose boundary is cost.
The policy answers, not a person
Cost, divided by one minus the margin floor your policy sets. Nothing is rounded in your favor — a floor rounded down is a floor that has moved. The cost is the one on the AP-invoice line your ERP already wrote. On the card, the price asked for is below the result.
The quote does not send
It routes to a sales manager with the rule that stopped it named, and no individual owner: the platform holds the line, not the person who typed it. An approver can clear it, and the clearing is a row rather than a conversation.
A year later it still explains itself
The held line, the rule, the operands and the policy version in force at sign-off are one record. When the customer asks why this year's price differs from last year's, the answer is that record — and the ledger credits the movement up to the floor and no further, because clearing it by more than it asked for was somebody's judgement and not something the guardrail did.
Sample figures throughout. No customer’s numbers appear on a public page, every figure on the card is re-derived by a test from the same operands it shows, and the floor is cost divided by one minus the margin floor your policy sets — nothing rounded in your favor, because a floor rounded down is a floor that has moved.
The limits, before you find them in week three
Every item below is a thing this platform does not do on a industrial and MRO book today. They are on the page because a capability list is not what a distributor who has survived one implementation believes — and because the alternative is you discovering them after a pilot.
- Special pricing agreements and manufacturer rebates are not modelled. PIE computes margin from the cost on the AP-invoice line, so on a book where a large share of purchases is claimed back afterwards, the floor it computes sits above the floor you actually have — and it will hold lines that are genuinely profitable. If that describes your book, say so on the call rather than after the pilot.
- Quotes are not imported from any ERP, so a win rate has no denominator until you start quoting here.
- Cross-manufacturer interchange is not offered outside metalworking. PIE resolves an enquiry against your own catalog; it does not rank one manufacturer's part as an equivalent for another's.
- Nothing resolves until a price list has been uploaded and its decoding confirmed by a person. There is no default decoder and no shared catalog — a company that has uploaded nothing resolves nothing.
- Stock levels and customer payments are not read from Prophet 21 in this version, so the stock, GMROI and collections screens stay empty on a P21 book.
- Salespeople are not imported from any ERP, so every approval routes to management until accounts are assigned inside PIE.
Why it can be trusted
The AI never computes a single number.
Your business data and your rules determine the number. AI explains it.
Same inputs, same answer, every time — with a paper trail.
- Deterministic calculations — every figure is arithmetic on your own records; turn AI off and every number still works
- Auditable decisions — each number names the policy that produced it, so a price you quoted last quarter still explains itself
- Your data — read from your own books, used for you alone, exportable and erasable on request; AI runs on your own account
- Your rules — you set the floors and thresholds, and PIE holds every quote to them
- Provenance — every row carries the connector, the connection and the id it came from, so nothing in PIE claims a source it did not have
What industrial and MRO distributors ask first
Does PIE write anything back to my ERP?
On Prophet 21, Sage X3 and Sage 100, nothing — those connectors are read-only and there is no method in them that creates a record. On NetSuite, Acumatica, Dynamics 365 Business Central and Zoho Books, the one thing PIE can create is the quote itself, and only if you grant that permission separately. Everything else is read.
How far back does the first sync read?
The first pull is offered from the first day of the month 18 months back, and you choose the date before it starts. It commits as it goes, so you can watch it move — and the screens then report the span the rows actually cover, not the window that was asked for.
Can a salesperson see cost or margin?
No, and not because a screen hides it. The server omits those fields from the response, so there is nothing to read out of a network tab, and a rule whose boundary is cost is withheld too and replaced with a single approval-required marker. What the desk does get is the floor, the recommended price and this customer's own history.
Does the AI set the prices?
No. Prices, margins, floors and thresholds are computed deterministically from your persisted rows. A model may read those numbers and phrase them; it never produces one. Turn the AI off entirely and every figure on every screen still works.
We already have a pricing matrix in our ERP. Why add this?
A matrix decides what price to offer. PIE checks what was actually typed on the line against the floor your policy sets, at the moment it is typed, and holds a breach for a named approver. The two answer different questions and PIE does not replace the matrix.
Which of the seven this trade runs
Prophet 21 is what most of this trade runs — Epicor's own vertical list names industrial and fasteners first — with Acumatica, Business Central and NetSuite common at the mid-market end. PIE reads all seven the same way; those four are simply the ones this trade asks about.
Your book already knows where the margin went.
30–45 minutes, your own numbers on the screen, and an honest answer about what PIE can and cannot see on a industrial and MRO book.