Back to Guide

Per-Customer Pricing and Volume Discounts in B2B: Off the Spreadsheet, Onto Rules

Reviewing B2B customer pricing and discounts on a laptop computer

It is a Wednesday afternoon at a distributor outside Milan. A sales rep is on the phone with a long-standing customer who wants 200 cartons instead of the usual 80, and asks, reasonably, whether that earns a better price. The rep says he will check. He opens a spreadsheet, scrolls to the customer's row, sees a margin note from two years ago, hesitates, and offers a number off the top of his head. The customer is happy. The rep is not sure the number was right, and neither is anyone in accounting when the invoice lands. Multiply that small moment of guesswork across hundreds of accounts and you have the real reason most wholesalers eventually move pricing out of spreadsheets and phone deals.

B2B pricing is never one number. The same pallet might cost three different amounts depending on who is buying, how much they take, and what was negotiated last spring. The challenge is not the discounts themselves, it is keeping them consistent, current and defensible when the people setting them are busy and the costs underneath keep moving. Here is how to put that on rails.

Start with customer groups, not individual deals

Most distributors do not actually have five hundred unique price lists. They have a handful of tiers wearing five hundred names. There is the standard reseller, the high-volume account, the strategic partner who gets early access and better terms, and perhaps an export tier priced differently again. Putting customers into groups is the single highest-leverage thing you can do, because a price change at the group level reaches every account inside it at once.

Groups also make onboarding sane. When a new customer signs, you assign them to a tier and they inherit a coherent, deliberate set of prices instead of whatever the last rep happened to type. The exceptions, and there will be exceptions, sit on top of the group rather than replacing the whole structure.

Per-customer prices for the deals you actually negotiated

Some relationships earn their own numbers. The customer who takes a full truck every month, or who agreed to a fixed rate for a year in exchange for committing volume, should not be lumped in with the standard tier. This is where a per-customer price list matters: a specific rate on a specific product for one account, overriding whatever their group would otherwise pay.

The discipline that makes this work is writing it down once, in the system, rather than in a rep's memory or a private sheet. When the negotiated price lives where the order is placed, the customer sees it when they log in, the invoice matches, and the deal survives the rep going on holiday or leaving the company. That is the whole point of getting off phone deals: the agreement outlives the conversation.

Tiered and volume discounts that reward bigger orders

Volume discounts are how you nudge a buyer from 80 cartons to 200 without a phone call. You set thresholds, and the price per unit drops as the quantity climbs: one rate up to a certain quantity, a better rate above it, a better one still for pallet or truckload quantities. The buyer sees the next break point in the cart and does the maths themselves, which is exactly the behaviour you want.

The trick is to keep the tiers legible. Three or four clean break points beat a dozen fiddly ones nobody understands. And volume tiers should layer onto whatever price the customer already has, so a partner-tier account still sees their partner pricing step down as they order more, rather than being kicked back to the standard rate.

When rules collide, decide which one wins

The moment you have groups, per-customer prices and volume tiers all in play, you have to answer one question clearly: when two rules apply to the same line, which one decides the price? If you do not answer it deliberately, the software answers it for you, and you find out when a customer notices.

A sane order of precedence usually looks like this:

  • A specific negotiated price for that customer on that product wins first, because it represents a deal you actually made.
  • Failing that, the customer's group price applies.
  • On top of whichever base price applies, the volume discount for the ordered quantity is calculated.
  • A guest or unassigned visitor, if you allow them to see anything at all, gets list price or nothing.

The exact hierarchy is yours to set, but it must be written down and tested with real examples. Take one customer, one product, one large quantity, and confirm the price that comes out is the price you intended. Stacking rules are where quiet errors hide.

Hiding prices from people who should not see them

In wholesale, the price is not public information. You rarely want a competitor, or a retail shopper, browsing your negotiated rates. So a B2B catalogue usually shows products to guests but hides prices until login, or hides the catalogue entirely. Once a customer signs in, they see their prices, the ones tied to their account and their group, and nobody else's.

This is also where B2B and B2C part ways. If you sell to both businesses and end consumers, the retail side shows public, tax-inclusive prices to anyone, while the wholesale side stays gated. Selldi runs both on one backend, with a single catalogue and one stock figure but two pricing logics and two buying paths, so you are not maintaining the same products in two disconnected systems.

Keeping prices right when your costs move

None of this matters if your prices quietly go stale. Supplier costs change, a currency shifts, a manufacturer pushes through an increase, and suddenly some of those carefully set discounts are eating margin you cannot afford. The way to stop that is to keep one source of truth for cost and terms, and let everything downstream follow it.

This is the strongest argument for letting your ERP or accounting system own the pricing. Selldi connects to any ERP via its API, with price lists and customer terms flowing from the ERP into the platform and syncing automatically on a regular cycle. When a cost or a negotiated term changes in the system your accountant already trusts, the shop reflects it shortly after, without anyone re-keying a spreadsheet. The ERP stays the master; the platform is the window your customers look through.

Multi-currency and per-market pricing for export

Selling across borders multiplies every problem above. A customer in one country should see prices in their currency, on a price list built for their market, not a converted-on-the-fly version of your home rates. Freight, duties and local competition mean the right number genuinely differs by market, so you want separate, deliberate price lists per region rather than a single list with a currency switch bolted on.

A platform built for export handles this natively: multiple currencies, per-market price lists, the catalogue presented in the buyer's language, and online payment by card or local methods at checkout. Selldi supports eight languages and multi-currency pricing out of the box, so a German reseller, an Italian distributor and a customer further afield can each see prices that make sense for them, all drawn from the same product data and the same stock.

When this is not worth it

Be honest about scale. If you sell a short list of products to a dozen accounts who all pay close to the same price, you do not need a pricing engine. A clean spreadsheet and a phone call will serve you fine, and a software project would be solving a problem you do not have. Structured pricing earns its keep when the combinations multiply: many customers, several tiers, real negotiated deals, volume breaks, and more than one market or currency.

It also disappoints if your underlying pricing logic is a mess. If nobody can actually explain why a given customer pays what they pay, automating it just makes the confusion faster and harder to unpick. Sort out the rules first, on paper, in plain language: who is in which group, which deals are genuinely per-customer, what the volume break points are, and which rule wins when they overlap. Once that logic is clear, a platform enforces it consistently. Before then, it just encodes the guesswork.

And if your prices are essentially fixed and public, with no hidden rates and no negotiation, much of this is wasted effort. The payoff comes precisely from complexity you currently manage by memory and goodwill.

For most growing wholesalers, though, the spreadsheet and the off-the-cuff phone deal are exactly what starts costing money as you scale. If you want to see how groups, per-customer rates, volume tiers and gated, multi-currency pricing fit together in one place, there is a live demo at demo.selldi.pl/showcase, and you can book a walkthrough through selldi.pl whenever it is useful.