Playbook
How to spot customers who only buy with a discount
No source defines discount dependency, so define it from your own orders: the share of a customer’s orders that used a discount code. Count it per person across profiles, choose the cut line yourself, and test it before you act. A high share is a reason to adjust your offers. It is not a finding about the customer.
By MergeGuard team
Last updated
4 min read
On this page
Some customers buy only when there is a code in the email. Knowing who they are lets you plan sales, test full-price offers and keep a win-back discount for people who need it. The difficulty is that “discount-only” has no agreed meaning. This guide gives you a working definition that comes from your own orders, then walks through the count.
Key insight
Discount dependency has no standard definition, so write down your own before you count anyone.
Define it from your orders
We found no primary source that defines a customer who depends on discounts. So this guide uses a working term of its own, and says so: a customer’s discount share is the number of their orders that used a discount code, divided by all of their orders.
A share is simple to calculate and easy to explain to a colleague. It shows how often a code was used. The reason for the code and the size of the discount are separate questions.
Export orders and calculate the share
Shopify lets you export orders as a CSV from the Orders page, and the file includes a Discount Code column (“The discount code that was applied to the order”) and a Discount Amount column. The Discount Code column covers codes and manually applied draft-order discounts. Automatic discounts are not in it, so a store that runs automatic sales will undercount.
Here is the calculation on two customers: Customer A has 5 orders and 4 used a discount code, a discount share of 80%. Customer B has 4 orders and 1 used a code, a share of 25%. Worked example (made up)
Worked example (made up)
Shopify’s customer segments show a subscription status column and let you filter customers with a query. Shopify’s page says nothing about filtering by discount use, so do this step in a spreadsheet.
Count per person, not per profile
A shopper with two profiles splits their orders, and the share changes with the split. Here is one person counted both ways: One person holds two profiles. Profile 1 has 2 orders, both with a code (100%). Profile 2 has 3 orders, 1 with a code (33%). Counted as one person: 5 orders, 3 with a code, a share of 60%. Worked example (made up)
Counted by profile, the person looks like one customer who always uses a code and one who rarely does. Counted as one person, the share is in the middle. The profiles are one person only when the evidence says so: the same phone number, or emails that differ only by a typo. A shared address alone is a reason to look and is no proof, because partners and flatmates share one. See how Shopify identifies a customer for a discount for why profiles split in the first place.
Worked example (made up)
Pick and test a cut line
There is no right cut line. Our reasoning is that a high share means the customer has often seen a code before ordering, and that tells you about your offers as much as about them. Start with the question you want answered:
- To find regulars, look at customers with several orders and a high share, such as the top tenth.
- To find one-off bargain hunters, look at customers with one order that used a code.
- To check your offers, compare the share across months and see whether it rises when sales run.
Check ten customers on each side of the line by hand. If the list holds loyal customers who happened to order during a sale, move the line.
Do not call it fraud
A discount share describes a buying pattern. It does not describe intent. A customer who buys every Black Friday is a seasonal customer. Someone who joined through a welcome offer and then waited for the next sale is behaving as most price-aware shoppers do. Keep the label out of your notes and out of anything the customer sees.
If your question is about reuse of a single welcome code on several profiles, that is a different check; see welcome discount reuse.
What to do with the list
Use it to change your offers, because that treats everyone the same:
- Run a sale without a code for one group, and compare their orders with a group that got the code.
- Hold back the discount in a win-back email for customers whose share is high, and test full price first.
- Remove people who are still buying under another profile from a “come back” offer, as who should not get a win-back discount explains.
Your own email tool sends the offer. MergeGuard sends nothing, and a list you export or sync never changes anyone’s subscription.
Step by step
Export your orders for a set period
Use the Export button on the Orders page and choose a date range. Pick a period long enough for most customers to have ordered more than once.
Mark each order that used a discount code
The export has a Discount Code column. It covers codes and manually applied draft-order discounts, and it leaves out automatic discounts.
Join the profiles that belong to one person
Combine profiles that share a phone number or differ only by a typo, and count their orders together before you filter anyone out. Keep profiles that share only an address apart.
Group the orders by person and calculate the share
Divide each person’s orders with a code by all of their orders. Then leave out people with a single order, because their share is always 0% or 100%. Apply this filter per person, after the join, so a shopper with one order on each of two profiles stays in.
Choose a cut line and test it
Pick the share that counts as a regular for your store, such as the top tenth of customers by share. Check a few customers by hand before you rely on the line.
Decide what to change in your offers
Use the list to adjust discount timing and size for everyone, and leave individual customers alone unless the pattern is strong.
Sources
Related
- How Shopify identifies a customer for a discountShopify’s one-use limit checks an email or phone number. See who can be eligible for a code, why a new email can pass it, and how to design offers around it.
- Who should not get a win-back discountLeave out customers still buying under another profile and recent buyers, and judge relatives on their own orders. Clean your stopped-ordering list first.
- Welcome discount reuse: what to check before you call it abuseBefore you treat a reused welcome code as abuse, check which signals matter. Relatives, gift buyers and forgotten accounts can look the same as a repeat claim.
- Duplicate customer profileA duplicate customer profile is a second Shopify profile for the same person. Learn how to spot one, how to tell it from relatives, and what to do next.
- Win-back listsMergeGuard’s win-back audience checks every Shopify profile a customer has before saying they stopped ordering, so your discount skips people still buying.
- Build an audience list that counts each person oncePick a ready Audiences list, adjust its rules with a live preview, then sync it to Klaviyo or export a CSV. See which audience each MergeGuard plan includes.