The feature list of a dynamic pricing engine sounds straightforward: responds to demand signals, adjusts to competitor pricing, accounts for inventory levels, maximises margin. The commercial reality is that a pricing engine without carefully designed constraints can move prices in ways that damage brand perception, trigger race-to-the-bottom dynamics with competitors or simply undercut your own margin targets on high-velocity SKUs.
The Guardrail Architecture
Every pricing agent we deploy has a minimum viable guardrail set: a floor price below which the agent cannot go regardless of any signal; a ceiling price above which the agent cannot go regardless of demand; a maximum single-step change percentage to prevent jarring price movements; and a competitor response rule that prevents the agent from entering a price war without human escalation.
"The guardrails are not a constraint on what the AI can do - they are the definition of what the business is willing to have the AI do. Designing them carefully is strategy, not engineering."
Category-Specific Rule Sets
A single global guardrail set is almost always the wrong architecture. High-margin, low-velocity products have different pricing dynamics than commodity, high-velocity SKUs. Premium products have brand-protection constraints that commodity products don't. The guardrail configuration should be a per-category or per-product-class configuration, not a global parameter.
The Human Override Interface
A production pricing agent needs a commercial team override interface - a way for merchandising or commercial leadership to inspect what the agent is doing, understand why, and intervene when they disagree. The interface is not an emergency stop; it is a normal part of operations. Designing it as an afterthought produces a tool that the commercial team does not trust and eventually works around.