AI pricing constraints: bu ne anlama geliyor
Pricing looks like the ideal decision to automate: the objective is clear, the feedback is fast, and the data exists. Then the first recommendation comes back and somebody says “we can’t do that”, and nobody can say precisely why.
The constraints that are never written down
Price relationships within a family that customers notice if broken. Commitments to key accounts. Regional consistency policies. Competitor price-matching promises. Rounding conventions. Lines used as price perception anchors, where margin is not the objective at all.
Almost none of this exists in a system. It lives in the heads of three people in commercial.
Why this is the actual project
An agent that optimises margin without these constraints produces recommendations that get rejected, and rejection teaches it nothing because rejection is not recorded as data.
The work is to write the constraints down. Once they are explicit, the optimisation is comparatively simple — and the constraints themselves usually turn out to be worth reviewing, since several will be defended by nobody once stated aloud.
How to get the constraints out of people’s heads
Not by asking for them. Asked directly, commercial teams produce a short list of the obvious ones and forget the rest, because a constraint you apply automatically does not feel like a constraint.
Run recommendations past them instead. Every rejection is a constraint surfacing, and the question “why not?” produces a precise answer when there is a concrete number to reject.
Twenty rejections will surface more rules than an hour of interviews, and they arrive with the case that motivated them attached.
The categories worth expecting
Family relationships: the 500ml cannot cost more per litre than the 1.5L. This is the most common and the most often violated by naive optimisation.
Account commitments: a customer whose contract fixes a differential to list price. Breaking it is a legal matter rather than a commercial one.
Perception anchors: lines priced to signal value for the whole category, where margin is deliberately sacrificed. An optimiser that does not know which lines these are will raise exactly them, because they look like the largest available gain.
Change limits: how often a price may move, and by how much, before customers notice the movement itself.
Writing them down has a second effect
Several will not survive being stated. A rounding convention nobody can justify, a regional consistency policy that predates the current store network, a differential defended by someone who left two years ago.
This happens reliably enough to be worth expecting. The constraint audit is often worth more than the optimisation that prompted it, and it is cheaper.
What the agent does once they exist
Optimises inside a feasible region rather than proposing points outside it. The recommendations stop being rejected, which is the difference between a system that gets used and one that gets switched off in the second month.
And when a recommendation now conflicts with a constraint, the system can say which one — turning “we can’t do that” into “that breaks the family relationship with SKU 4471”, which is a conversation someone can act on.
The order of work
Constraints first, objective second, automation third. Reversing the first two produces the failure this article describes; skipping to the third produces a system nobody trusts.
Most pricing projects that stall did the optimisation well and the constraint work not at all — which is why they look like modelling failures and are not.
What this looks like when it works
Recommendations that arrive already inside the rules, with the binding constraint named when one binds. Commercial stops reviewing every line and starts reviewing the exceptions, which is the only sustainable version of this.