html

The Discount That Never Expired

A promotional price was granted as a temporary exception. Nothing in the system was built to end it, so it became permanent — quietly, and at scale.

Summary: A price concession is granted as a temporary exception. The mechanism to end it is a human intention rather than a system state, so it never ends. Years later the discount is load-bearing and removing it is a customer-relations event rather than a billing change.

Pattern

A customer is given a price below list. The reason is legitimate and specific: an early-adopter arrangement, a goodwill credit after an incident, a discount to close a deal at quarter end, a grandfathered rate from a pricing model that no longer exists.

The concession is understood by everyone involved to be temporary, or at least revisitable. Nothing in the billing system encodes that understanding. The discount is applied as a state, not as an event with an end. Years pass. The discount is still there.


What tends to happen

The exception is granted in a conversation and implemented as a field. Someone sets a percentage, or overrides a plan price, or attaches a coupon with no expiry because the expiry was going to be handled "when we revisit this."

The person who granted it leaves, or moves to a different part of the business, or simply forgets — reasonably, because they granted eleven of these that quarter and this one was not distinctive.

The customer, meanwhile, does not forget. The discounted price becomes the price they budget against, refer to internally, and cite when they renew. From their side there was never anything temporary about it. Nobody told them there would be.

The discovery moment is usually a revenue review. Someone pulls average revenue per account, notices the number is lower than the pricing page implies, and starts pulling the thread. The answer is rarely one large exception. It is a few dozen small ones that nobody has looked at together.


Why it fails

The failure is a mismatch between how the concession was reasoned about and how it was stored.

It was reasoned about as an event with a shape: we will do this now, for this reason, and reconsider later. It was stored as a permanent attribute of the account, indistinguishable from a deliberate pricing decision made at the top of the company.

Six months later there is no way to tell them apart. The record contains a discount. It does not contain the sentence that justified it, the person who approved it, or the condition under which it was supposed to stop. Reconstructing that means finding a conversation, and the conversation was in a channel that has since been archived.

So the discount defaults to permanent, not because anyone decided it should be, but because permanence is what the data structure expresses.


Human layer

Granting an exception feels small and removing one feels large. That asymmetry does most of the work here.

At the moment of granting, the concession is a lubricant: it unblocks a deal, defuses a complaint, ends a difficult call. The cost is deferred and diffuse, and the relief is immediate and specific. Almost nobody weighs those correctly in the moment, and the people best at closing deals or calming customers are structurally the least likely to.

At the moment of removal, the concession has become an expectation. Taking it back is not a pricing adjustment — it is a price increase delivered to a customer who did nothing wrong. The person who would have to make that call is usually not the person who granted it, which means they inherit the cost without having received the benefit. Predictably, they do not prioritise it.

There is also a quieter reason nobody raises it: the exception is mildly embarrassing to surface. Asking "why is this account at forty percent off?" implies someone made a mistake. In practice nobody made a mistake. Everyone made a reasonable local decision.


System layer

The billing system almost certainly supports an end date on the discount. It was not used, because using it would have required deciding what the end date was, and the whole point of the concession was to avoid having that conversation right then.

There is usually no report that lists active exceptions by age. There is a report of revenue, and a report of accounts, but the deviation between contracted price and list price is not a first-class object anywhere. It has to be derived, and deriving it is somebody's afternoon.

There is no approval trail. The concession did not pass through a workflow that captured who authorised it and against what reasoning. It was a field edit, and field edits do not carry justification.

And there is no expiry review. Nothing in the calendar says "exceptions granted in Q3 come up for review in Q1." The system has no concept of a decision that ages.


What it costs

The direct cost is margin, and it compounds. A discount granted against a price that has since risen twice is a discount against the current price, not the old one. The gap widens without anyone widening it.

The second cost is pricing integrity. Once a meaningful share of accounts sits below list for undocumented reasons, the list price stops describing the business. Forecasts built on it are wrong. Sales conversations reference a number the company does not actually charge, which is corrosive in a way that is hard to localise.

The third cost lands whenever the company tries to change pricing. Any migration has to reason about accounts whose current price cannot be explained. That turns a pricing project into an archaeology project, and archaeology projects slip.

The fourth cost is the relationship. Whenever the correction eventually happens, it happens abruptly, because it was deferred until something forced it. The customer experiences a sudden increase justified by internal reasoning they were never party to. From their position, that reads as arbitrary.


Reduction path

The intervention is to make the temporary concession structurally temporary rather than temporary by intention. Every discount gets an end date at the moment it is created, even if the end date is far out and expected to be renewed. A concession that cannot be given an end date is not a concession — it is a price change, and it should be reviewed as one.

The second is to store the reason with the record. One sentence, attached to the discount: who approved it, why, and what would have to be true to remove it. This costs almost nothing at grant time and is the entire difference between a reviewable decision and an unexplainable artefact.

The third is a standing report of price deviation by account and by age, looked at on a fixed schedule by someone with the authority to act. The report matters less than the schedule. An exception nobody is obliged to look at behaves exactly like an exception nobody can see.

The fourth is to accept that some of the existing ones will not be reversed, and to say so explicitly rather than leaving them in an ambiguous state. A concession consciously made permanent is a pricing decision. A concession left in place because nobody wanted the conversation is a liability that keeps growing.

For a worked example of the shape this takes in practice, billing systems that keep the reason attached to the record make the difference between a reviewable concession and an unexplainable one.