← All postsDistribution

How to tell which vendor is actually cheaper

iotoms team · August 31, 2026 · 5 min read

A cleaning-supplies and paper-goods distributor running six vans out of a single depot had been buying case goods from the same vendor for three years. A new supplier came in with a quote 60 cents a case cheaper on the top twenty SKUs. The purchasing manager did the obvious math — twenty SKUs, a few hundred cases a week, real money — and switched.

The invoices looked exactly as promised. Sixty cents a case, every time.

What didn't show up on the invoice was that the new vendor's "next-day" delivery meant next-day when the truck ran, and the truck skipped the route every other Friday without notice. It was that one case in fifteen arrived short a few units, chalked up to "recount on receiving." It was that damaged cases took two weeks to turn into a credit memo instead of two days, so the distributor was carrying the loss on its books until the paperwork caught up.

None of that showed up in the number the purchasing manager had compared.

Why the invoice price is the wrong number to compare

A quoted price is a promise about one thing: what you'll be charged per case if everything goes exactly as planned. It says nothing about how often things don't. Two vendors quoting the same $11.40 a case are not offering the same deal if one of them ships complete orders 98% of the time and the other ships complete orders 89% of the time — the second vendor is quietly making you pay for the gap in rush freight, in backorders that send a route rep out short, in staff time spent chasing a credit that should have posted itself.

Distributors comparing vendor prices almost always compare the number on the quote sheet, because it's the only number either vendor hands over voluntarily. Nobody puts "average days to resolve a damage claim" on a price list. So the comparison happens on the one axis that's visible, and the vendor that's actually cheaper on every other axis — but a nickel higher on paper — loses the business.

Where the real cost hides

At the cleaning-supplies distributor, it took a bad quarter to notice. Route reps were showing up short on a top-selling glass cleaner three separate weeks running, each time blamed on "the new vendor's truck." The office was holding four open credit memos from the same vendor, two of them over a month old, for cases that arrived visibly damaged. A rush order to cover a stockout on a Friday cost more in expedited freight than the sixty-cent-a-case saving had returned all month.

Add it up and the new vendor wasn't cheaper. It only looked cheaper, because the costs it was creating landed in different columns — freight, shrinkage, staff hours, a route rep apologizing to a store owner — that nobody was adding back to the price of the case.

The turning point: pricing the whole relationship, not the quote

The fix wasn't switching vendors again on a hunch. It was pulling the actual order history for both vendors over the prior six months and building one number per vendor instead of comparing two: quoted price per case, adjusted for what the vendor actually delivers.

That adjusted number needs four inputs, tracked per vendor:

Fill rate. Of what was ordered, what percentage arrived complete, on the date promised, without a follow-up call. A vendor quoting a lower price with an 89% fill rate is asking you to eat the other 11% in stockouts, rush orders, or substitutions your reps have to explain at the counter.

Shortage and damage rate. Cases short on receiving, or arriving damaged, as a percentage of cases ordered — not cases the vendor admits to, the ones your own receiving count actually catches.

Credit resolution time. How many days between flagging a shortage or damage and the credit actually posting. A slow vendor isn't just annoying — the gap is real money sitting uncollected on your books.

Freight and surcharge frequency. How often a "standard" order turns into a rush charge, a split shipment, or a minimum-order surcharge that wasn't on the original quote.

Run those four against the quoted price and the picture flips: the vendor charging sixty cents more a case, with a 98% fill rate, same-day credit turnaround, and almost no rush charges, was the cheaper vendor the whole time. The distributor switched back within the quarter and ate the cost of admitting it out loud.

Making the comparison something other than a bad quarter

The reason this usually only gets caught after the damage is done is that the four numbers above live in different places — receiving counts, AR credit memos, freight invoices — and nobody sits down to combine them until a quarter goes badly enough to force the question. What makes the comparison routine instead of reactive is tracking fill rate, shortage rate, and credit turnaround per vendor as data the business already has, not a special audit. iotoms' vendor and procurement reporting keeps that history per vendor automatically, so a purchasing manager can pull true cost per case — not quoted price per case — before signing with a new supplier, not three bad months after.

Practical takeaway

  • Don't compare vendors on quoted price alone — pull fill rate, shortage/damage rate, and credit resolution time from your own receiving and AR records, not the vendor's numbers.
  • Calculate an adjusted cost per case: quoted price, plus the rush freight, shrinkage, and staff time a low fill rate actually causes.
  • Track credit memo age by vendor — a slow-to-resolve vendor is carrying your money on its books, not just being slow.
  • Re-run the comparison quarterly. A vendor's fill rate and reliability drift, and a supplier that was cheap and reliable a year ago may not be either today.
  • Before switching vendors for a lower quote, ask for the same vendor's fill rate and shortage rate over their last hundred orders to someone else — not just their price sheet.

See your own routes running on iotoms

Book a demo