How to pass a vendor price increase to customers without losing margin
iotoms team · October 4, 2026 · 6 min read
A snack-and-beverage distributor running eleven routes out of one warehouse got the email on a Tuesday: its largest vendor was raising case costs 4% across two hundred SKUs, effective in three weeks. The sales manager forwarded it to the reps with one line — "update your customers" — and moved on to the next fire.
Three weeks later the new cost was live in receiving. The old customer price was still live everywhere else.
The gap nobody owns
Nobody had actually changed what customers were being charged. The reps were busy running routes, the price increase email had scrolled off the top of someone's inbox, and updating two hundred SKUs across price lists for different customer tiers looked like a project, not a Tuesday-afternoon task. So the old prices stayed in the system, cases kept going out the door at the old number, and the four points of margin the vendor had just taken were coming straight out of the distributor's pocket on every single case, every single day, until somebody noticed.
Somebody noticed in month two, when the controller ran margin by category and found soft drinks and energy drinks — the two categories the increase hit hardest — running visibly thinner than everything else. By then the gap had been open for five weeks. Multiplied across two hundred SKUs and eleven routes, it wasn't a rounding error. It was real, and it was gone for good — margin lost on a case that's already been sold doesn't come back.
Why "just raise the price" doesn't happen on its own
The mechanics of a vendor cost increase look simple from the outside: vendor charges more, so charge customers more, done. In practice a distributor runs dozens or hundreds of individual customer price lists — different tiers, different negotiated deals, different exceptions a rep promised somebody two years ago — and a single vendor increase touches a different subset of SKUs on every one of those lists. There's no single button. Someone has to decide which customers get the increase, by how much, on which effective date, and then actually push it into the system the reps are selling from — not just announce it in an email.
That's where it stalls. Sales reps, understandably, don't love being the one to tell a longtime customer their price just went up, so an increase that isn't forced into the price list by a system tends to get quietly delayed route by route. A rep holds off on their biggest account "until the right moment." The right moment doesn't arrive on its own, and the distributor eats the cost every day it doesn't.
The other common failure is passing the increase through wrong rather than late: raising every affected SKU by the same flat dollar amount regardless of what it costs. A nickel increase on a $2 case and a nickel increase on a $40 case are not the same adjustment — the first protects margin, the second barely covers it. Distributors that pass through a flat percentage of cost, rather than a flat dollar figure, hold their margin percentage steady across cheap and expensive cases alike; distributors that do the opposite watch their margin on high-cost items erode every time a vendor raises prices, because the dollar bump that was fine on a cheap case isn't enough on an expensive one.
What the fix actually looks like
The snack distributor's fix wasn't a bigger announcement email. It was turning "update your customers" into something that could actually be tracked and finished, not just forwarded.
Tie the increase to the vendor cost change, not a separate manual edit. When the new vendor cost lands on a purchase order, the SKUs it affects are already known. Pricing off of that list — a percentage markup applied to the new cost — means the customer price moves automatically with the cost it's supposed to cover, instead of waiting on someone to remember and retype two hundred lines.
Set one effective date and apply it everywhere at once. A price change that rolls out route by route, whenever each rep gets to it, guarantees weeks of selling at the old margin on some accounts and the new one on others — and guarantees the owner of the slowest route is quietly subsidizing everyone else's margin. One date, pushed to every price list and every rep's device at once, closes the gap in one step instead of in installments.
Give reps the reason, not just the number. A rep who can tell a customer "our vendor raised cost on this line 4%, and we're passing through that same 4%, not a markup on top of it" keeps the conversation about the vendor's decision, not the distributor's. That's a real difference in how the conversation lands, and it only works if the rep actually knows the number instead of guessing.
Check the account-by-account exceptions before they become permanent. Some accounts will get a discount or a hold on the increase for a real reason — a contract, a volume commitment, a relationship worth protecting. Making that a deliberate, time-boxed exception that someone approved is different from it happening because nobody got around to that one customer's price list. The first is a business decision. The second is the same silent margin leak as before, just smaller.
At the snack distributor, tying price updates to vendor cost changes and pushing them on one date instead of route by route closed the lag from roughly five weeks to same-day. iotoms ties customer price lists to vendor cost on the purchase order and lets a markup rule push an update to every tier and every rep's device the moment the new cost is confirmed, so a vendor increase doesn't depend on an email getting read and acted on by eleven different people before it actually reaches a customer's invoice.
Practical takeaway
- Tie customer price updates to the vendor cost change itself, not a separate manual step someone has to remember.
- Pass through a percentage, not a flat dollar amount, so margin holds steady on cheap and expensive cases alike.
- Set one effective date and push it to every price list and rep device at once — a staggered rollout is a guaranteed margin gap.
- Equip reps with the actual cost-increase number so the conversation is about the vendor's decision, not a guess.
- Treat customer-specific exceptions to an increase as approved, time-boxed decisions — not accounts that simply never got updated.
- Re-check affected categories' margin a few weeks after any vendor increase to confirm the change actually reached every account.