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. It is worth being direct about where we sit against it: we meet one of those five today. Discounts are recorded per sale and per line, and margin by item is a real report built on weighted average cost. Price lists, customer tiers, discount authority, sales quotations with validity, and the quote-to-order-to-invoice chain are not built here — the honesty block below sets out exactly what does and does not exist, and it was corrected on 7 August 2026 because an earlier version of this page claimed most of them.
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. Needs a list price to compare against, 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 and four are exports and spreadsheets, or nothing at all. 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
- 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 rather than an assumed one.
- Landed cost feeds that cost side, so imported goods are measured against what they actually cost to land rather than the supplier's invoice price.
- A selling price per item, with its tax treatment, applied automatically at the point of sale.
- Credit limits with live exposure, which do place a hold — the one pricing-adjacent control here that refuses rather than reports.
What it does not do
- No price list. There is no price list entity, so there is no list price for an actual selling price to be compared against. A selling price sits on the item and that is the whole of it.
- No customer price tiers. A distributor and a walk-in are priced from the same field, so structured pricing has to be applied by whoever is selling.
- No discount authority. Nothing grants, limits or approves a discount — there is no authority field and no discount permission. Discounts are recorded, not authorised, and the difference is the entire subject of this page.
- No sales quotation. The quotation in this system belongs to a vendor and an RFQ; it is the procurement side. There is no customer-facing quote, and therefore no validity date and nothing to expire.
- No sales order, and so no quote-to-order-to-invoice chain to carry a price along without re-keying.
- No margin by customer or by salesperson. Margin is grouped by item. There is no salesperson recorded on a sale or an invoice at all, so that grouping is not merely unbuilt — the data to group by does not exist.
Not ours, by choice
- 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, and would rather say so than sell into a fit we cannot meet.
Price lists, customer tiers, discount authority with limits, and a customer-facing quotation with validity that converts to an invoice, are scope rather than ceilings — but they are a substantial and well-defined build rather than a setting, and it would be dishonest to imply otherwise. The discount recording, the margin computation and the credit-hold refusal mechanism all exist and work.
This block was corrected on 7 August 2026. An earlier version listed price lists, customer tiers, discount authority, quotations with validity, and margin by customer and salesperson as built. None of them were. The argument in this post stands on its own and is worth acting on with any system — but do not read it as a description of ours, and do 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.
What is not built today can still be built for you
Anything described above as not built is a statement about what ships in the standard product today — 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 the gap you just read about. Two honest qualifications so this is worth what it claims: a handful of gaps on this blog are deliberate refusals rather than missing work — 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 rather than calling it a gap. 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 gaps, which are the ones this blog admits 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 of those three are not available and the third does not exist, so the honest starting point is narrower: record the discounts, which happens automatically, and run margin by item monthly. Then export selling prices against a list you maintain separately and calculate your real discount rate in a spreadsheet. That is a smaller programme than the one described above, and it still surfaces the number most businesses have never seen.
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, be clear about the fit — discounts are recorded and margin by item is real, and price lists, tiers, discount authority and customer-facing quotations are not built here. 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
Every discount recorded on the sale and the line, margin by item across the counter and invoicing costed on weighted average cost with landed costs already in it, and credit limits that place a real hold.
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. Worth being direct about the fit though: AWRA has no customer-facing quotation. The quotation in this system belongs to a vendor and an RFQ, which is the buying side, so there is nothing here to carry a validity date or to expire. If you issue customer quotes, that document lives outside this system today.
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 in AWRA. Nothing grants, limits or approves a discount — there is no authority field and no discount permission, so a discount is recorded rather than authorised. That is worth stating plainly because "enforced discount authority" is among the most commonly claimed and least commonly built features in this category. What you do get is the aggregate: every discount is on the record, per sale and per line, so the conversation you can have is retrospective rather than preventive.