Proje vitrini hazırlanıyorPreparing project showcaseПодготавливаем витрину проекта

Sales

Customer-specific price lists and discount matrices

Dealers, enterprise buyers and project accounts never pay the same. Here is how to build price lists, discount matrices and approval tiers properly.

Rocketly · 2026-08-27

A dealer calls and asks: “Can we get the same terms we had last quarter?” The rep hunts for the old quote, cannot find it, asks accounting, accounting pulls up an invoice, and eventually someone says “I think it was something like this” and improvises. Same product, same customer, two different prices. That call costs more than a few points of margin — the customer now believes price depends on who picks up the phone, not on a rule.

In B2B you do not charge everyone the same. Dealers, enterprise buyers, project work and loyal long-term accounts all buy under different terms, and that is normal. The problem is not the difference itself; it is where the difference lives. A policy that exists only in people's heads and old email threads stops being a policy the moment the team grows. This piece covers how many price lists you need, which dimensions build a discount matrix, how off-list requests pass through approval, how multi-currency lists behave, and how it all flows into quotes and orders.

List priceSegment listContract termsFlows into quotes and ordersPricing policy
From pricing policy to quote: a three-layer price structure

What a price list is, and how many you need

A price list defines reference prices for a set of products and the conditions under which they apply. It is not a spreadsheet tab but a living record in your sales system, with a name, a currency, a validity window, a product scope and a defined audience.

Most companies drift to one of two extremes. At one end sits a single list nobody actually sells at, because the real price is typed by hand on every quote. At the other end there is a list per account, so one product change means updating dozens of them. Nobody updates all of them, and the system quietly contradicts itself.

The workable middle is few lists, many rules. For most B2B operations the main lists are reference price, dealer or channel price, key-account price, project and tender price, and export price. The bulk of the difference between customers is expressed not by spinning up another list, but by rules layered on the same one.

The one question to ask before adding a list

Before creating a list, ask whether the difference can be expressed as a rule on an existing one. If it can, do not create it. Every extra list is maintenance you pay for on every price change. For the broader architecture, our write-up on pricing strategies sets the frame, and packaging and tiering covers how the plan structure underneath it should be shaped.

Assigning lists: segment, channel and contract

Wherever list assignment is manual, the wrong list eventually gets picked. It should derive automatically from fields on the customer record: account type (dealer, end user, enterprise), channel (direct, dealer network, marketplace, self-service portal), region, and any active contract.

When several rules match one account, decide in advance and in writing which wins. A defensible precedence runs: terms in an active contract, then an account-specific list, then the segment or channel list, then the default. Encode that order and the “which price applies” argument stops being a conversation.

If you sell through a dealer network, the dealer must see exactly the list you do; any gap means someone corrects an order by hand every time. We cover the channel-facing ordering screen separately in building a B2B dealer order portal.

The dimensions of a discount matrix

A discount matrix is the tabulated answer to one question: who, buying what, under which conditions, earns better terms? Settle the dimensions before arguing about the numbers. The axes vary by business model, but these keep recurring:

  • Volume tiers: Terms improve as order quantity or value crosses defined thresholds, which can differ by product family.
  • Product group: High-margin lines and thin-margin lines should not sit under the same discount regime; the matrix splits by product family.
  • Payment terms: Cash, short and extended terms carry different financing costs, and that difference can be expressed as a term rather than a discount.
  • Contract length and commitment: An account committing for a year should not sit where a one-off buyer sits, provided the commitment is measurable.
  • Channel role: Dealers, integrators and direct customers carry different workloads; when the matrix ignores that, the channel starts discounting on its own.

Once the dimensions are set, the critical decision is how they combine. When several conditions hit at once, do discounts stack, apply in sequence, or does only the best one count? Leave that unwritten and the matrix compounds into an outcome nobody intended. Always cap it: whatever the combination, there is a ceiling.

Off-list discounts and approval tiers

However well the matrix is built, the field will want to step outside it. The goal is not to ban exceptions but to make them visible and tied to authority. Three bands work: what a rep grants alone, what needs a sales manager, and what needs finance or the executive team.

The approval request should live inside the CRM, attached to the quote. The requester writes the rationale, the approver sees it alongside the account's margin history, and the decision stays on the record. Move this to email and you lose both the audit trail and the measurement. We build that workflow in approval workflow automation.

One more thing: most discount requests are not price problems, they are unfinished value conversations. Before approving, check whether the rep has another move — what we cover in defending value without discounting helps build that reflex.

When a promotion quietly becomes the permanent price

A promotion is temporary by definition. In practice most become permanent in silence: the campaign ends, nobody clears the special condition from the account record, the next order picks it up, and the customer now treats it as an earned right. Taking it back is far harder than never granting it.

The fix is simple. Every promotional condition gets an end date, the system deactivates it when that date passes, and the account owner gets a reminder. Modeling the promotion as a time-boxed rule on the main list, rather than a separate list, does the same job. If you would rather move price with demand and stock, dynamic pricing details that mechanism.

Multi-currency lists and exchange differences

If you import or sell abroad, your lists will not stay in one currency for long. Two decisions follow: which currency the list is defined in, and which rate gets locked at quote, order and invoice. The quote date, the order confirmation date, or the shipping date? If that is not written plainly in the quote, the gap turns into an argument every time.

What works in practice is stating the rate base date and validity window on the quote, and reserving the right to reprice once it lapses. The bookkeeping side is covered in foreign-currency invoicing and exchange differences; because tax obligations vary by jurisdiction and change over time, confirm the specifics with your accountant.

Versioning: updating lists without losing history

A price list update should create a version, not overwrite a file. The old version is closed, never deleted. Open a past quote, order or invoice and you see the terms exactly as they stood that day.

Without versioning, a customer arrives holding a quote from months ago, the list it was built on no longer exists, and nobody can explain how those terms were derived. In disputes, returns and audits, that missing trail converts directly into money.

Three things must be explicit: the effective date of the new version, which version open quotes are honored at, and whether running contracts are affected. Writing those down in advance removes half the friction of any price increase cycle.

Flowing automatically into quotes and orders

A price list that does not feed the quote screen is ornamental. In a good setup the rep picks the customer, the system applies that customer's list and eligible discount rules, and the rep enters only products and quantities. The one manually typed figure is an off-list request headed for approval.

The same chain has to run through to the order and the invoice; re-keying agreed terms guarantees errors. In Rocketly, quote management and the built-in bookkeeping module share one record, so terms approved on the quote carry straight into the invoice line. Where configuration is complex and options constrain each other, CPQ logic takes over; we treat that mechanism separately in its own piece.

What discount discipline does to margin

Discounts come straight out of profit, not revenue, which is why a concession that looks small takes up far more room in the margin than expected. The board watches revenue grow while contribution per unit quietly erodes underneath. Our guide to gross profit margin walks through how to run that calculation properly.

A discount is not a negotiating tool; it is the most expensive silence a company can buy. The customer stops objecting, the rep relaxes, and the bill arrives at year-end, on the profit line.

The way to build discipline is to attach every concession to something in return: higher volume, shorter payment terms, a longer commitment or a reference agreement. Every concession given for nothing permanently lowers the starting point of the next negotiation.

What to measure

Pricing discipline runs on a few clear metrics, not instinct. The three below are enough to start.

MetricWhat it tells youHow to slice it
Average discount deviationHow far realized terms drift from the matrixBy rep, product group and segment
Off-list transaction rateHow often the rule turns into an exceptionApproved and unapproved counted separately
Gross margin by customerWhich accounts bring revenue but not profitBy period, net of discounts and returns

Put these three in front of you every month in the same format, as a scheduled report. When deviation concentrates in one rep or one product family, the issue is rarely personal — usually the matrix does not match reality there.

Common mistakes

Price list projects stumble in the same places. Knowing them up front cuts months off the rollout.

  • A separate list per customer: Manageable until the first price change, then it collapses; express differences with rules, not lists.
  • An uncapped matrix: Stacked conditions produce outcomes nobody would sign off on; always define an upper limit.
  • Open-ended promotions: A campaign with no end date is the new permanent price; the system should close it automatically.
  • No version history: Overwriting the old list destroys the basis of past quotes and leaves you defenseless in disputes.
  • Approvals over email: A decision made outside the quote can be neither traced nor measured; approval belongs on the record.

So where do you start?

Do not build everything at once. Open your recent invoices and count how many distinct sets of terms you actually sell under; that number is always larger than anyone guesses. Then compress them into three or four core lists, express the rest as matrix dimensions, write down the approval bands, and wire it into the quote screen.

If you want your price lists, discount matrix, approval tiers and quoting flow in one place, open a free Rocketly account and try it against your own products and accounts. Defining just the core lists on the first pass ends most internal pricing arguments.