Skip to content
MergeGuard
Install free

Playbook

How duplicate customers distort your repeat purchase rate

Repeat purchase rate divides customers with two or more orders by customers with at least one. Duplicate profiles usually pull it down: one loyal shopper split across two profiles counts as two one-time buyers. Measure it twice, once by profile and once by person, and compare. The gap shows how much duplicates are hiding.

By MergeGuard team

Last updated

5 min read

On this page

Most repeat-customer numbers start with a count of customers. In Shopify, that count is a count of profiles, and a person with two profiles counts twice. This page shows the arithmetic, works through a small example, shows when duplicates push the rate the other way, and sets out how to measure the effect on your own store.

Key insight

Counting people usually raises the repeat rate. It can lower it when both profiles of a split person already had repeat orders.

The formulas

All three use the same period, for example the last 12 months.

  • Repeat purchase rate = customers with 2 or more orders ÷ customers with at least 1 order
  • Orders per customer = orders ÷ customers with at least 1 order
  • Revenue per customer (a simple, historical CLV) = revenue ÷ customers with at least 1 order

Orders and revenue don’t change when you count people instead of profiles. The number of customers does, and so does who counts as a repeat buyer. Shopify’s own reports define their customer metrics in their own way, so check the definition before comparing a report with your own sums.

Where to find it in Shopify

Shopify’s customer reports use their own names. Its Returning customers report “displays data about all your customers whose order history includes two or more orders”, and its customer cohort report lists “customer retention rate” as a metric without defining the formula (Customers reports). The page gives no “repeat purchase rate” formula, so write down which formula you use before you compare a report with your own sums.

A worked example

Worked example (made up)

The table below is a made-up example. We invented the numbers to show how it works, and they don’t come from any store. Twelve profiles belong to ten people. Ava has two profiles with one order each, under a home and a work email that share a phone number. Cara has a second profile with a mistyped email.

Profile Person Orders What links it
ava@home Ava 1 Same phone as ava@work
ava@work Ava 1 Same phone as ava@home
ben Ben 2 None
cara@gmail Cara 2 Typo pair with cara@gmial
cara@gmial Cara 1 Typo pair with cara@gmail
dan, eli, fay, hal, ivy, jo Six people 1 each None
gus Gus 3 None

There are 16 orders in total. Say each order is worth $50, so revenue is $800.

Measure Counting profiles Counting people
Customers 12 10
Repeat customers 3 (Ben, Cara’s first profile, Gus) 4 (Ava, Ben, Cara, Gus)
Repeat purchase rate 3 ÷ 12 = 25% 4 ÷ 10 = 40%
Orders per customer 16 ÷ 12 = 1.33 16 ÷ 10 = 1.6
Revenue per customer $800 ÷ 12 = $66.67 $800 ÷ 10 = $80

Two kinds of split cause the change. Ava’s 1 + 1 split hides a repeat buyer entirely, so the number of repeat customers goes up by one. Cara’s 2 + 1 split adds a one-time “customer” who doesn’t exist, so the number of customers goes down by one. In a small example the jump is large. On a real store it depends on how many people are split, and how.

Worked example (made up)

Counting profiles: 25%; Counting people: 40%.Counting profiles25%Counting people40%
The same orders give a higher rate when each person is counted once.

When counting people lowers the rate

Counting people doesn’t always raise the rate. It falls when every profile of a split person is already a repeat buyer. Here is a second made-up example, separate from the first one.

Worked example (made up)

Six profiles belong to five people. Mia has two profiles with two orders each, and four other people have one order each.

Profile Person Orders
mia@home Mia 2
mia@work Mia 2
noor, omar, pia, quinn Four people 1 each
Measure Counting profiles Counting people
Customers 6 5
Repeat customers 2 (both of Mia’s profiles) 1 (Mia)
Repeat purchase rate 2 ÷ 6 = 33.3% 1 ÷ 5 = 20%

Joining two repeat profiles removes one repeat customer and one customer, so the rate falls whenever it was below 100%. Orders per customer still rise in this example, from 8 ÷ 6 = 1.33 to 8 ÷ 5 = 1.6.

Wrong matches skew it too. Group two different people who live together and you invent a repeat buyer. That is why the steps above keep profiles that share only an address apart until someone has checked them, and why the result is a range.

What MergeGuard’s demo store shows

MergeGuard’s demo store (Northsail Supply) shows the same effect on lists that depend on order history:

  • One customer: Amelia Hughes: 3 profiles with 4, 3 and 2 orders → one customer with 9 orders Demo store (Northsail Supply)
  • Win-back, for customers who haven’t ordered in a while: 905 customers look like they stopped ordering → 842 really did; 63 still buy on another profile Demo store (Northsail Supply)
  • VIPs: 18 VIPs on single profiles → 27 VIPs as people Demo store (Northsail Supply)

The win-back line is the costly one. Those 63 customers still buy, under a newer profile, yet counted by profile they look lapsed, as if they had stopped ordering, and would be offered a discount to come back.

Reading your result

A large gap between the two views tells you two things. First, your reports undercount loyalty, so decisions based on them, like how much to spend on winning new customers, rest on a low number. Second, your customer lists are wrong in the same direction: win-back lists include active buyers, and VIP lists miss real VIPs.

A small gap in the repeat rate does not show that duplicates are few. If both profiles of a split person already repeat, the rate stays put while their orders and spend sit on two profiles. Count the surplus profiles too (profiles minus people), and read orders per customer and revenue per customer beside the repeat rate. Cleanup is housekeeping only when the surplus is small.

Either way, merging is a separate decision. You can count people for reporting without merging anyone. Merging in Shopify is permanent, and if any profile in a group is subscribed to marketing, the merged customer stays subscribed. Read the guest checkout guide before you merge.

Step by step

  1. Pick the period and the rules

    Pick one period, such as the last 12 months, and write down which orders count. Leave out test orders, and decide once how to treat canceled, fully refunded and wholesale orders.

  2. Export orders with contact details

    Export the orders in that window with the customer ID, email, phone and shipping address for each order.

  3. Calculate the profile view

    Count orders per customer ID. Repeat purchase rate is the number of IDs with two or more orders divided by the number of IDs with at least one.

  4. Group profiles into people

    Group IDs that clearly match, such as the same phone or emails that differ only by a typo. Keep profiles that share only an address apart unless you have checked them.

  5. Calculate the people view

    Repeat the count with each group treated as one customer. Use the same window and the same order rules.

  6. Report both numbers as a range

    Give the profile view, a cautious people view built from clear matches only, and a wider view that adds the groups you reviewed. The truth for your store sits in that range.

Sources