By KYN AI Advisory Team — AI implementation specialists, Singapore
Reps keep re-offering discounts because the reason the last one failed was never recorded where a system could read it. It sits in a free-text note: "client pushed back, will revisit Q3." To stop it, record each negotiation as structured fields, show the precedent to the rep before they offer, and require approval for any discount outside a written limit. The system surfaces history. A person still decides.
Where does negotiation reasoning get lost?
CRMs log that an interaction happened, not why a commercial decision was made. The reasoning dies in three places.
- Free-text notes. A sentence fragment that nothing else reads.
- Unlogged calls. The price discussion happens by phone and only a summary reaches the CRM, if any.
- Rep memory. The full version of "why we said no last time" lives in one person's head and leaves with them.
This is a data-structure problem, not a discipline problem. A new rep picking up the account cannot parse prose scattered across notes, email and memory.
What does re-litigating a discount cost?
Three things, none on a line item.
- Time. A call spent re-deriving a position already settled.
- Margin. A discount rejected for timing gets re-offered, sometimes to a buyer who did not ask again.
- Trust. A buyer who must re-explain their objection concludes the account is managed as a queue, not a relationship.
We have no published figure for how much margin teams lose this way. Measure your own: list the last 20 discounts, mark how many were offered after an earlier rejection on the same account.
Why do call recordings and keyword search not fix it?
They move unstructured data into a searchable archive. A search for "discount" returns every mention. It does not answer "which discounts did this account reject for budget timing, who approved the offer, and under what condition would we revisit?" That is a query on fields. A rep before a call will not replay an hour of audio.
What should a negotiation record contain?
Capture each pricing event as fields.
| Field | Example values | |---|---| | Objection type | Budget, competitor, contract term, timing | | Discount offered | Percentage or amount, and the list price it applied to | | Trigger | Volume commitment, renewal risk, competitive pressure | | Approver and condition | Name, role, the condition attached | | Outcome | Accepted, rejected, deferred (to what date) | | Reason given | One line, in the buyer's words, plus a category | | Revisit date | A date, which creates a task |
Fill them at the moment of the event. A drafting agent can propose the fields from the email thread or call notes, and the rep confirms in one click. The point is to make the structured record cheaper than the free-text note.
When should the system block, and when should it warn?
Surface precedent; do not auto-block. If a rep is about to offer 15% and a record shows 15% was rejected on this account for timing, show the earlier record next to the draft and let the rep decide with context. A wrong block is worse than a glance at one more data point, because the situation may differ.
Match carefully. If there is no exact match on account and amount, widen to the same account or the same product line, but do not present a wider hit as a confident match unless something corroborates it, such as the same approver or the same quote. In our reconciliation agents, a confident wrong match costs more than an item left for a person. The same asymmetry applies here: show fewer, better-supported flags.
A rule keeps discounts in bounds. Write a limit per role: a rep may offer up to X%, a manager up to Y%, anything above goes to the owner. The agent can quote from your approved price list. It cannot go below it. Our guide to hard limits on discount authority covers the pattern, and the one on escaping the pricing objection trap covers the conversation side.
What else stops reps discounting to keep an account?
The record fixes memory. It does not fix incentives. Check three things.
- Pay. If commission rewards closing at any price, the discount will keep appearing. Pay on margin or on a floor.
- Alternatives to price. Give reps pre-approved trades: longer term, smaller scope, payment timing, a phased start.
- Review. Look at discounts by rep and account each month. Outliers are conversations, not punishments.
How do you build it?
- Review. Map where pricing decisions are made and recorded today. At KYN this is the first 14 days, with your CRM and the people who negotiate.
- Schema. Add the fields above to the CRM, or a linked table if the CRM cannot hold them.
- Capture. Have the agent propose fields from threads and call notes. Reps confirm.
- Precedent panel. Show prior records beside any discount draft.
- Limits and approvals. Encode the role limits. Over-limit offers wait for a named approver.
- Report. A monthly view of repeat offers, by account and rep.
A full build ships in under 90 days. Data from calls may include personal data; check what you store against the PDPC guidance and decide retention before the agent logs anything.
What does a precedent panel show?
The example is illustrative. A rep opens a renewal draft for an account and is about to offer 12%.
| Date | Offered | Objection type | Outcome | Approver | Condition | Revisit | |---|---|---|---|---|---|---| | 14 Feb | 8% | Budget | Rejected | Sales manager | Needs 24-month term | 1 Jul | | 3 Apr | 10% | Competitor | Deferred | Sales manager | Match competitor's quote | 1 Jul | | 22 Jun | 12% | Timing | Rejected | Rep | None recorded | - |
Beside the draft, the panel prints one line: "12% offered on 22 Jun, rejected for timing; revisit date 1 Jul passed." It does not block. It shows the rep that the previous attempt carried no condition and that the revisit date has passed. The rep may decide that a condition-based offer, such as a longer term, is the better move. The record changed the quality of the decision without removing it.
Which discount limits should you write?
Write limits per role, and keep them in a table the agent can read.
| Role | Maximum without approval | Needs approval from | Notes | |---|---|---|---| | Rep | Up to the lowest band you set | Sales manager | Only if a trade is attached | | Sales manager | Up to the next band | Owner | Record the reason code | | Owner | Any | None | Logged like every other offer |
Set the bands from your own history, not from habit. Take the last 20 closed deals and mark the discount that was needed to close each one. If most closed within a band, set the rep limit there. The numbers above are left blank on purpose, because they depend on your margin.
Two rules apply on top of the table. A discount offered after a rejection on the same account always needs a manager, whatever the percentage. And the agent may quote from the approved price list but cannot go below it.
What can a rep offer instead of price?
A short menu of pre-approved trades gives the rep something to say that is not a discount. Each trade costs less than the same value in price.
| Trade | What the buyer gets | What you get | |---|---|---| | Longer term | A lower monthly figure | More committed revenue | | Phased start | Lower cost in the first quarter | A signed full scope | | Smaller scope | A lower total | A clean path to expand | | Earlier payment | A modest reduction | Faster cash | | Reference or case study | Recognition | Proof for future deals |
Record the trade as a field alongside the objection. After a quarter you can see which trades closed deals without a price cut.
What edge cases confuse the record?
- Multiple contacts. The buyer's finance contact objects to price and the user does not. Record the contact and role on every event, so a later conversation with a different person is not read as a repeat.
- Bundled offers. A discount on one product that sits inside a bundle needs the bundle id, or the percentages will not compare.
- Verbal agreements. A price said on a call that never reaches a quote. Have the rep log the event the same day, with the agent drafting the entry from call notes.
- Rep handovers. The new owner opens an account with years of history. The panel should show the last three events first, then the rest.
- Competitor quotes. A competitor price quoted by the buyer is a claim, not a fact. Record it as "reported by buyer", with the date.
- Currency and tax. A discount in percentage terms across SGD and USD deals compares badly. Store the list price and currency with each event.
- Renewal and new business. A discount appropriate to a renewal can set a precedent for a new deal in the same account. Keep the deal type as a field.
How do you roll it out without a revolt?
Reps resist tools that add typing. Make the record cheaper than the note.
- Start with a pilot of two reps who handle renewals. Their accounts have the most repeated discounts.
- Let the agent propose every field from the thread. The rep confirms or edits in one step.
- Show the benefit first. For the first two weeks, display the precedent panel only. Do not enforce limits yet.
- Add limits next, with approvals that arrive in the same tool the rep already uses.
- Review with the team monthly. Show the share of repeat offers and the trades that worked.
If reps skip fields, ask why. The usual cause is a form that asks for too much. Cut the fields to those that change a decision.
What data protection points apply?
Negotiation records can include names, roles and sometimes remarks about individuals. Keep the notes factual and business-related. Store the record in the same cloud account and apply the same row-level security as the rest of the CRM, so a user sees only the accounts they own. Decide how long to keep records before the agent writes the first one, and write the retention period into the project scope. For the personal data rules in Singapore, the PDPC is the source.
How do you measure repeat offers on your own data first?
Before building anything, run this check by hand. It takes a few hours and gives you the baseline.
- Export the last 12 months of closed and lost deals, with discount fields if they exist and notes if they do not.
- For 20 accounts with more than one pricing conversation, read the notes in order.
- Mark each discount offer as new, repeat after rejection, or repeat after deferral.
- Count how many repeats had no new condition attached.
- Estimate the margin given away on those repeats, using the list price and the discount.
The result is a number in dollars for your business. If it is small, the problem does not justify a build. If it is large, the same sheet becomes the first requirements document, because the columns you used are the fields the system needs.
What does the monthly report contain?
Keep it to one page for the sales lead.
- Repeat offers by account and rep, with the date of the earlier rejection.
- Discounts above the band, with the approver and the reason code.
- Trades used in place of price, and the deals they closed.
- Revisit dates that passed with no action.
- Fields left empty, by rep, so the form can be fixed if the same field is skipped everywhere.
Discuss it as a team. A pattern across several reps points to the process; a pattern around one rep is a coaching conversation, held privately.
How do you know it is working?
- Share of discounts offered after a prior rejection on the same account. It should fall.
- Share of negotiation events with all fields completed.
- Average discount by deal size and rep, trended.
- Time a rep spends preparing for a renewal call.
Where KYN fits
KYN builds sales agents in your own cloud account, with agents on their own restricted accounts, every action logged with the actor, and anything involving price, terms or sending waiting for a named person. A live example: an insurance brokerage's reply desk sorts each reply at about S$0.01, depending on model and text length, and logs it for the next person. We have not published a client result for discount precedent specifically. See sales systems and security.
Frequently asked questions
How do you stop reps re-offering a rejected discount?
Record each negotiation as structured fields, show prior records beside any new discount draft, and require approval above a written limit. The rep keeps the decision.
Should the system block a discount automatically?
No. Surface the precedent and let the rep decide. Automatic blocks fire on mismatches that are not real and teach reps to ignore the system.
Why does a CRM note not solve this?
A free-text note cannot be queried or trigger an alert. Fields can.
Checked 30 October 2026.
Curious whether Marketing agents fits your business? Talk to KYN on WhatsApp — no forms, just a conversation.
