Keep the baseline
Record the price available without a code, membership, first-order status or extra basket condition.

DEEP DIVE · PROMOTION CONDITIONS
A code or promotional banner does not automatically become every shopper's price. The comparison should identify who can use the offer, what basket it requires and whether it can be combined with other benefits.
Record the price available without a code, membership, first-order status or extra basket condition.
Capture minimum spend, eligible products, customer status, channel, market and stated end time.
Use a code shown by the retailer or one that the retailer checkout accepts for the exact item, shopping country and basket.
If the code is rejected or removes another benefit, keep that result rather than advertising the headline percentage.
PRICE TYPES
A public sale price can usually be observed without identifying the shopper. A first-order, account, app or loyalty price depends on eligibility and should be labelled separately.
Personalized codes and targeted offers should not be presented as generally available. A comparison also should not request or store a shopper's private account data merely to produce a lower-looking result.
Stacking rules matter. A coupon that removes free shipping or cannot be combined with a sale may increase the final basket even when the item line decreases.
Available in the shopping country without a private account or code.
Show the retailer code, eligibility, basket rule and expiry when available.
Do not treat a membership price as the default public price.
Label app-only or device-specific offers and preserve the public alternative.
RANKING DISCIPLINE
Compare the retailer-observed checkout outcome for the intended shopper and basket. If eligibility is unknown, rank the unconditional route and show the conditional opportunity separately.
Every displayed promotion should retain its source, terms and check time so an expired or withdrawn code can be removed promptly.