Using Discount Affinity to protect margins: Best practices
Discount Affinity is in Preview for selected Personalization accounts. If your account is included, it's already on. To ask about access, contact your customer success manager or contact support.
When everyone being sent a promotion gets the same offer, some of those discounts go to customers who were going to buy at full price anyway. Discount Affinity, now in Preview, shows how often each customer has bought with a discount compared with your typical customer, so you can decide who gets an offer and who gets your full-price message.

Here's how to put it to work, plus the gotchas to know before you use the pre-built segments.
Discount Affinity is in Preview (beta) for selected accounts on the Personalization plan. If your account is included, it's already on, and four starter segments, leveraging both RFM and Discount Affinity, are waiting in your Lists & segments.

The four groups
- Deal seeker: uses discounts more often than your typical customer.
- Mixed buyer: uses discounts about as often as your typical customer.
- Full-price buyer: uses discounts less often than your typical customer.
- Unknown: doesn't have enough order history yet.
Klaviyo looks at the last 2 years of orders and compares each customer with your store, so you get a useful mix whether you discount often or rarely. Customers with only 1 or 2 orders lean toward your store's typical rate, and their own history counts for more with each order they place.
Best practices
Start by checking your mix
Open the Discount affinity page on your Personalization overview to see how many customers are in each group, along with their average order value and customer lifetime value. Let those numbers set your priorities. If your Full-price buyers have the highest lifetime value, they're the group to protect first.
Send Full-price buyers the same message without the code
Duplicate your promotional campaign. Exclude the Full-price buyers segment from the discounted version, then send them the copy with the code removed. Lead with what they already buy at full price, like bestsellers and new arrivals. Keep the subject line, send time, and design the same in both versions, so the code is the only difference.
Reward full-price VIPs with access
Build a segment with two conditions: Discount Affinity is Full-price buyer, and Current RFM group is Champions or Loyal. These are your best customers, and they rarely need a code. Give them early access, a limited release, or a first look at a new collection.
Save your deepest offers for Deal seekers
Send clearance, last-chance, and sale-extension offers to the Deal seekers segment, and keep everyone else on your standard offer.
Tier the offers in your flows
In your abandoned cart and browse abandonment flows, add a split before the first message with a discount. Paths are checked in order:
- Full-price buyers: a reminder with no code, or your lightest offer
- Deal seekers: a reminder with your strongest code
- Everyone else, including Unknown: your standard reminder

Match winback offers to the customer
Build a segment for Deal seekers whose Current RFM group is At risk or Inactive, and give them your strongest winback offer. Lapsed Full-price buyers can get a winback message with a smaller offer.
Create A/B tests with various offer types and depths for these RFM groups to find the sweet spot that converts lapsing customers while protecting your margins.
Decide what Unknown gets
Unknown is usually your biggest group. Leaving it out of an offer removes most of your audience, so keeping Unknown on your standard offer is a safe default.
Gotchas to know before you build
Sale prices don't count as discounts. Discount Affinity counts discounts recorded on the order, like codes, automatic promotions, and loyalty discounts. Sale, compare-at, and markdown prices don't count. If you run site-wide sales mostly by lowering product prices, some of your sale shoppers will show as Full-price buyers. Open a few profiles in your Full-price buyers segment and check their order history before you pull an offer from them.
Welcome codes count. So do 100%-off replacement orders and, on Shopify, free shipping, including free shipping over a spend threshold. If most of your first orders use a welcome code, some 1-order customers can show as Deal seekers. To reach repeat deal seekers, add a condition in the segment for customers who placed more than 1 order.
Using Discount Affinity for BFCM
Black Friday Cyber Monday (BFCM) is when most brands send their biggest discounts of the year, so it's a good time to put these plays to work. Your groups already reflect your order history, so you can build segments today.
This week: check your mix, and spot-check your Full-price buyers for sale shoppers before you pull them from any BFCM offer.
Before Black Friday: build a no-code version of each BFCM promotion for Full-price buyers, add a Discount Affinity split to your abandoned cart and browse abandonment flows, and send full-price VIPs early access a day or two before your sale opens.
Over the weekend: save your Cyber Monday extension or last-chance send for Deal seekers, and keep Unknown on your standard BFCM offer.
After Cyber Monday: give lapsed Deal seekers your strongest winback offer. When you check the Discount affinity page, compare against the same dates last year, since BFCM raises every November number.
Get started
Read Getting started with Discount Affinity to see everywhere Discount Affinity shows up and exactly what counts as a discount.