Quotations, Price Lists & Discount Control
Margin is rarely lost in one bad negotiation. It is given away in a hundred small concessions that nobody recorded, by people who were doing their best to close a sale — which is why the fix is structural rather than motivational.
Ask a Kenyan business owner where their margin goes and they will usually talk about supplier prices, import costs, or competitors undercutting them. Ask to see the average selling price of their top ten products against list price, and most cannot produce it. The gap between those two facts is the answer to the question.
Discounting is not a discipline problem. Salespeople discount because they are trying to close, and each individual concession is defensible. The problem is that nobody sees the aggregate, so the business negotiates hard with suppliers over two percentage points while giving away five at the counter.
What an uncontrolled quotation actually costs
The arithmetic is unforgiving, and it is worth doing on your own numbers because the result is usually startling.
What a 5% discount really gives away
A five per cent price concession removed a quarter of the profit. To earn back the same total margin you now need to sell a third more units — which is why "we'll make it up on volume" is almost always wrong on thin-margin lines.
On a 20% margin, a 5% discount costs you a quarter of the profit. Nobody would approve that as a decision — but plenty of businesses approve it a hundred times a week as an accident.
The three things that have to exist
You do not need to ban discounting. You need three structural facts, after which discounting becomes a managed commercial lever rather than ambient leakage.
-
A price list that is genuinely the default
Prices held as data, applied automatically, and updated deliberately. If the price comes from the salesperson's memory or a spreadsheet on their laptop, there is no list — there is a suggestion.
-
Tiers for the customers who deserve them
Volume, wholesale and key-account pricing as defined tiers attached to the customer, so a distributor gets distributor pricing automatically and does not need to negotiate it every order.
-
Discount authority granted to named roles
Anything below the tier price requires authority. Not a warning, not a note — authority, granted to specific people up to specific limits, and recorded when used.
The second point does more work than people expect. Most improvised discounting happens because the customer genuinely deserves a better price and there is no structured way to give it to them, so it gets negotiated ad hoc every single time — inconsistently, and differently depending on who answers the phone. Tiers convert that into a decision made once.
Quotation, not conversation
A quotation that exists as a typed document is a record of what somebody offered. A quotation that exists in the system is a priced offer with a validity period, a discount trail, and a straight path into an order and then an invoice — so what was quoted is what gets billed.
Quotes as documents
- Prices typed by hand, from memory or an old file
- Discounts invisible in aggregate; nobody knows the average selling price
- No validity, so a quote from four months ago is honoured at today's cost
- The invoice is re-typed and quietly differs from the quote
- "Margin by customer" is a question nobody can answer
Quotes as records — what to require
- Prices applied from the list and the customer's tier
- Every departure from list attributed to whoever authorised it
- Validity dates, so stale quotes expire rather than being honoured
- Quote becomes order becomes invoice, so billing matches the offer
- Margin by customer, product and salesperson is a report
That right-hand column is a specification to hold vendors to, including us. Where we sit against it: we meet three of those five today, and part of a fourth. Prices come from the customer’s own price list, falling back to a default list and then to the item price. Customer quotes carry a validity date and expire on their own. A quote converts to an order and the order to an invoice, with the lines copied rather than repriced, so the invoice bills what the customer accepted. Margin by product is a real report on weighted average cost; margin by customer and by salesperson are not. And every discount is recorded, but nothing yet authorises one — the honesty block below sets out exactly which is which.
That validity point causes real losses in Kenya specifically, because imported cost bases move. A quotation issued three months ago at a landed cost that has since changed is a commitment made at a price you can no longer supply profitably — and honouring it feels like good service right up until you calculate it. Quotes should expire, and expiry should be automatic rather than remembered. The landed-cost mechanics behind this are in landed costs on imports.
What to measure once it exists
The point of the structure is that three questions become answerable, and all three tend to change behaviour immediately.
The reports that change conversations — and where each one comes from
- Margin by product — built here, across both the counter and invoicing, costed on weighted average cost so landed costs are already in it.
- Discounts recorded per sale and per line — built here, so what was given away is on the record even though nothing authorised it.
- Average selling price against list, by product — your real discount rate, and almost always higher than anyone estimates. The list price exists and the comparison report is a build, so this is an export and a spreadsheet today.
- Margin by customer — reliably reveals one or two large, demanding accounts that are unprofitable at their terms. Not a report here; margin is grouped by item.
- Margin by salesperson — not to punish anyone, but because discounting behaviour varies enormously between people selling the same thing. Not available: there is no salesperson on a sale or an invoice, so the data does not exist to group by.
- Discount authorisations by approver and value — not available, because nothing authorises a discount. Discounts are recorded, not approved.
Two of those six are reports you can run this afternoon, one is an export against the price list, and three need data or a report we would add. That distinction is worth having in front of you before an evaluation, because every one of the six sounds equally plausible in a demo.
The uncomfortable finding to expect
Nearly every business that runs margin-by-customer for the first time discovers that one significant account is unprofitable. It is usually a large, demanding customer everyone is proud to have, whose terms were agreed years ago and never revisited. The report does not tell you to drop them — it tells you the conversation you have been avoiding is a commercial one, not a relationship one.
What we do and do not do
What AWRA OpsHub does today
- Customer price lists — the customer’s own list, then the default list, then the item price — with quantity breaks, bounded by currency and by date. A list assigned to every distributor is a distributor tier.
- Customer quotes priced from that list, with a validity date that expires on its own, and a signed link the customer can accept or decline without logging in.
- Quote to order to invoice, with each line copied forward rather than repriced, so what was accepted is what is billed — and proformas printed from a quote or an order.
- Every discount is recorded, on the sale and on the individual line, so what was given away is on the record and quantifiable after the fact.
- Margin by item, across both the counter and invoicing, computed from weighted average cost with landed cost already in it.
- Credit limits with live exposure, which do place a hold — the one pricing-adjacent control here that refuses rather than reports.
More we can add to your workspace
- A discount authority: a limit per role and an approval above it, on quote, order and invoice lines alike. Discounts are recorded today rather than authorised, and the difference is the entire subject of this page.
- An average-selling-price-against-list report, by product and by period — the real discount rate, computed rather than exported.
- Margin by customer, grouped from the same weighted-average cost the item report already uses.
- Margin by salesperson, which starts with a salesperson recorded on the sale and the invoice and then becomes a report.
Where we point you to a specialist
- We will not set your prices or recommend a pricing strategy, and we do not do competitor-based or dynamic repricing. What to charge is the most consequential commercial judgement a business makes, and a vendor automating it is automating your position rather than your admin.
- We will not model price elasticity. Telling you what discounting cost is arithmetic; predicting what a price change would do to demand is a forecast dressed as a figure.
- We are not a configure-price-quote engine for configured products with option rules, and would rather say so than sell into a fit we cannot meet.
Discount authority with limits, the selling-price-against-list report and margin by customer and salesperson are scope rather than ceilings. The price lists, the quotes, the conversion chain, the discount record and the margin computation they would sit on all exist and work.
Price lists, customer quotes and the quote-to-invoice chain are built; discount authority on quote, order and invoice lines and the two margin cuts are builds, and they are in the middle column. The argument in this post stands on its own — read it as a method, and use the checklist above to ask any vendor which of the six they actually have. Any pricing practice must also comply with applicable competition and consumer-protection law; confirm your position with your advocate.
Anything above that you need, we can build for you
Everything listed above as something we can add describes what ships in the standard product today — it is a starting point, not a limit on what AWRA OpsHub can do for your organisation. Kenya's eTIMS integration and its maintained payroll engine are both in the product because clients needed them and commissioned them; neither appeared by itself, and the same door is open for whatever you just read about. One qualification so this is worth what it claims: a small number of things on this blog we deliberately leave to a specialist rather than build — a statutory ledger we will not sign our name to, a rule that would decide a tax question for you, a clinical or member-funds record that belongs in a regulated system — and where that is true the post says so in those words. Everything else is a scope, a timeline and a price.
The operational work, which is what most commissions actually are
An extra approval stage in a chain that does not match the standard one, a custom field set on employees or assets that only your sector needs, an expiry that has to block an order rather than send an email, a report your board asks for in a shape nothing produces, or a scanner or weighbridge feeding the goods-in door. These are the commissions we are asked for most often and the smallest ones we quote — and unlike a revenue-authority pipeline, none of them waits on a regulator.
The module-shaped additions, which are the ones readers ask for most often
A price list with real discount authority, a customer-facing quotation that expires, a bill of materials or recipe costing, a staff advance that is issued, acquitted and chased, a member or unit ledger, a matching rule that holds a payment. Each of these is a build rather than a setting, and each has been quoted before — a bigger piece of work than a custom field, with a written spec and a date instead of a roadmap slide.
The report, document or pack nothing currently produces
The board pack in the shape your board actually asks for, a donor or funder layout, an invoice or receipt template carrying what your regulator or your customer expects, a dataset the report builder cannot reach yet. Usually the fastest thing on this list to deliver, because the data is already in the system.
Systems, rails and hardware you already run
The accounting package, CRM, online store, core banking or custom database you intend to keep — connected through our API so a fact is entered once and appears everywhere it is needed. Plus the physical edge: a scanner, a scale, a weighbridge or a till peripheral feeding the door it belongs to.
How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product. Nothing here waits on a regulator or a published specification, which is why operational builds are the ones we quote fastest. Tell us the requirement that would otherwise rule us out — that is a better first conversation than a demo.
Tell us what your operation needsWhere to start
The order matters, whichever system you use. Get the price list in and make it the default before anything else. Then add tiers for the customers who already receive better prices informally — that is not a new concession, it is formalising one you are already granting. Only then introduce discount authority, because approval limits imposed before tiers exist mean everyone hits the wall constantly and the control gets abandoned within a fortnight.
With AWRA specifically, the first two are configuration: build a default price list, then a list for each group of customers who already get better prices, and assign it to them — every quote, order, invoice and till sale then prices from it. The third, discount authority, is the part we would add, so until then the control is retrospective: discounts are recorded on every line, margin by item runs monthly, and an export of selling prices against the list gives you your real discount rate. Quote anything priced specially, with a validity date, so the price was accepted in writing before it reached an invoice.
The wider chain from quote to collection is in sales software in Kenya, and the collection end in receivables and collections.
Our take
The argument holds regardless of what you buy: a five per cent concession on a twenty per cent margin removes a quarter of the profit, and almost nobody knows their real average discount. Put the price list in a system, tier the customers already getting better prices, then require authority to go below tier. On our side, the first two are here — customer price lists with quantity breaks, quotes that expire, and a quote-to-invoice chain that bills the accepted price — and discount authority is the build, with every discount recorded in the meantime. Use the six-item checklist above on every vendor you talk to, this one included, because all six sound equally plausible in a demo and only some of them survive the question.
See what discounting really costs you
Customer price lists with quantity breaks, quotes that expire and convert to an invoice at the accepted price, every discount recorded on the line, and margin by item costed on weighted average cost.
Explore sales managementFrequently asked questions
Should we stop discounting altogether?
No — discounting is a legitimate commercial lever and banning it usually just moves the concession somewhere less visible, like free delivery or extended terms. The aim is that a discount is a decision made by someone with authority and recorded, rather than an ambient practice nobody can quantify. Once you can see your real average selling price against list, you can decide how much discretion to grant and to whom.
Why does a small discount hurt margin so much?
Because the discount comes entirely out of margin while cost stays fixed. On a 20% margin, a 5% price cut removes a quarter of the profit, and you would need roughly a third more volume to recover the same total margin. That is why "we will make it up on volume" is usually wrong on thin-margin lines — the extra volume required is far larger than most people intuit, and it often comes with proportionally more cost to serve.
How do price tiers differ from discounts?
A tier is a structured price attached to a customer because of what they are — a distributor, a wholesale account, a volume buyer — applied automatically on every order. A discount is a departure from whatever price applies. Most improvised discounting exists because deserving customers have no tier, so the better price gets renegotiated ad hoc every time, inconsistently and depending on who answers. Tiers turn that into a decision made once.
Should quotations expire?
Yes, and automatically rather than by memory — this matters especially where your cost base is imported, because a quote issued months ago was priced on a landed cost that has since moved. Honouring a stale quote feels like good service until you calculate it. In AWRA a customer quote carries a validity date, and an overnight job marks it expired once that date passes, after which the customer’s accept link refuses it and asks for an updated quote. This is separate from the procurement quotations a supplier sends you against an RFQ.
What is the first report to run?
Margin by item, because it is the one that exists — across both the counter and invoicing, costed on weighted average cost so landed costs are already inside it. Margin by customer is the report you actually want, and almost every business running it for the first time finds a significant account that is unprofitable at its current terms. It is not available here: margin is grouped by item, and there is no salesperson recorded on a sale or an invoice at all, so neither the customer nor the salesperson cut can be produced without exporting and joining the data yourself.
Can we stop a salesperson discounting below a limit?
Not yet in AWRA: a discount limit per role, with an approval above it, is one we can add to your workspace. Today a discount is recorded rather than authorised. Two things narrow the gap in the meantime. A customer price list means deserving accounts get their price automatically, which removes most of the reasons to discount by hand. And every discount is on the record, per sale and per line, so the conversation you can have is retrospective rather than preventive. Worth asking every vendor directly, because enforced discount authority is among the most commonly claimed and least commonly built features in this category.