A distributor was preparing for an ERP cutover. Every customer’s terms had to be settled before the integrator loaded them.
Plant 14 placed an order on a Tuesday: six line items, standard SKUs, the kind the plant had been placing for three years.
The order priced from the price file, six percent above the contract price. The CSR who usually corrected the plant-level price by hand before release was on PTO. The order released through standard workflow, shipped, and was invoiced on Friday. The customer’s AP system matched the invoice to Plant 14’s purchase order, found the unit prices six percent above it, and blocked payment.
The plant’s buyer called the rep. The rep asked the order desk lead for a credit before the end of the day. The credit clerk would not issue an unreferenced credit that size without the regional sales director’s approval, and the director was in customer reviews until Thursday. By the time the approval came, the customer’s category manager had frozen the distributor’s account: every open invoice on hold until the recurring price variance was explained.
That was when it reached the CFO and the CRO: not as a pricing question, but as a payment hold across eighteen plants.
The CRO opened the account: plants 1 to 9 mapped to the 2019 contract; plants 10 to 18 not. The dispute log showed eleven earlier disputes from this customer in two years, each resolved the same way: a credit memo for the price difference. This one, the twelfth, was settled with another credit memo, and the hold came off.
The controller, asked how an account that size kept generating credits, set its last two years against the 2019 account model. The contract had been priced for a 22% margin after product, freight, kitting, and account-service costs. On that basis, the account now earned 14.3%.
The model assumed monthly consolidated buys. The plants now ordered weekly, each order about a quarter the old size, and every one of them shipped and invoiced on its own. Freight to the southeast plants had moved to a 3PL the model never priced.
The model costed kitting as standard master-carton packs. Over three years, the plants’ maintenance planners had asked for pre-sorted job kits, bagged and tagged, so their crews would not sort parts on the floor. Customer service agreed to protect the relationship, and the warehouse added two bench steps to every pick for eleven SKUs. Nobody added a charge.
Service touches per order had doubled.
The contract was still the contract on file, but the account no longer behaved like the account priced in 2019.
Against the original account model, the shortfall came to $1.1M a year, and it was widening.
The CRO put thirty minutes on the calendar for Thursday with the pricing lead and the master data team. The meeting moved twice. The same people were loading customer files into the test environment and working through the integrator’s defect list, and the cutover date did not move for anyone.
On cutover weekend, the integrator would load the customer file as it stood: nine plants on the contract, nine on the price file, and no trace of the corrections made by hand in between. In the new system, nobody at order entry could change a price without an approval route, and the route had not been built.
Six other accounts on the books had the same shape. Plant 14 was only the second-largest.