Short answer: To calculate a repeat customer rate, choose a time window and count people, not sales. For a simple quarterly view, divide the number of identifiable customers who made at least two completed purchases in the quarter by the number of identifiable customers who made at least one. If 75 of 250 identified buyers purchased twice or more, the period repeat-customer share is 30%. For a fairer view of whether new customers come back, group first-time buyers by their first-purchase month and give every person the same number of days to make a second purchase.
Definitions and linked product documentation checked on 16 October 2026. All merchant numbers below are worked examples, not South African benchmarks.
Which “repeat rate” are you trying to measure?
People use the same phrase for different questions. Write the question above the number on your dashboard:
- Repeat-customer share in a period: Of the customers who bought this month or quarter, how many made at least two separate purchases during that same period?
- First-purchase cohort repeat rate: Of people whose first purchase was in a chosen month, how many made another purchase within a fixed number of days?
- Period-to-period return rate: Of customers who bought in the previous period, how many bought again in the next one?
These percentages need not match. A loyal customer who bought last year and once this quarter counts as a returning customer in an order-history report, but does not count among people who bought twice this quarter. Shopify’s customer report documentation uses prior order history to label a buyer as returning and separately offers first-purchase cohorts. If you compare a POS report with an ecommerce report, check their definitions before comparing their percentages.
How do you calculate the simple period repeat-customer share?
Use this formula:
Period repeat-customer share = identified customers with two or more completed purchases in the period ÷ identified customers with at least one completed purchase in the period × 100.
Imagine a Durban specialty grocer’s April-to-June report shows 250 distinct, identifiable customers with a completed sale. Of those, 75 made at least one additional purchase in the same quarter. The calculation is 75 ÷ 250 × 100 = 30%. One buyer who made six purchases still counts as one repeat customer, not five.
Decide what counts as a purchase before you export the data. Exclude cancelled and fully refunded orders. Treat multiple line items on one receipt as one purchase. If your business splits a single visit across two tills, make sure it is not counted as two visits. Keep these rules the same in every reporting period.
This quick measure is useful for spotting changes in shopping frequency. It has a weakness: someone who first buys on the final day of the quarter has almost no opportunity to buy again inside it. That is why a first-purchase cohort is often better for judging whether your onboarding or first visit brings people back.
How do you calculate a new-customer 90-day repeat rate?
Start with customers whose first recorded completed purchase was in April. Follow each one for 90 days after their own first-purchase date. Count a repeat only if a second separate completed purchase lands inside that window.
90-day cohort repeat rate = April first-time buyers who made a second purchase within 90 days ÷ all identifiable April first-time buyers with a full 90 days of observation × 100.
Suppose a Cape Town homeware shop had 100 identifiable first-time buyers in April. By the end of each buyer’s 90-day window, 24 had bought again. Its April cohort’s 90-day repeat rate is 24 ÷ 100 = 24%. If you run this calculation before all April buyers have had 90 days, mark the cohort “incomplete” rather than treating late buyers as non-returners.
Use enough earlier transaction history to tell whether those people really were new. If the shop imported records only in April, “first recorded purchase” may mean “first purchase since the import”, not first-ever purchase. Label the cohort accordingly until the history is reliable.
This is a practical version of cohort analysis: group people by when they first bought, then ask what proportion met the return condition later. Shopify’s customer cohort report groups customers by their first order; Google Analytics explains the separate inclusion and return criteria behind a cohort. Google’s standard “returning user” metric can mean someone revisited a website or app; it is not automatically a second sale. See Google’s user-metric definitions.
How do you measure customers returning from one quarter to the next?
Period-to-period return rate = customers who bought in both quarters ÷ customers who bought in the first quarter × 100. If 200 identified customers bought in January to March and 70 of them bought again in April to June, the return rate is 35%. New customers acquired in the second quarter do not enter this denominator. This measure answers whether a previous customer group came back; it does not tell you how many people bought twice within either quarter.
Pick the period length to suit the buying cycle. For a tyre retailer, a quarter-to-quarter return rate may be a poor test of service because many satisfied customers will not need another tyre that soon.
What data do you need from your till, booking system or spreadsheet?
You can start with four columns: customer ID, transaction or visit ID, completion date, and status. Use a stable customer ID where possible; you do not need to put a person’s name in the working calculation. A booking counts only if your measure is completed visits and you know the guest actually arrived. A reservation made and cancelled is not a visit.
Clean the export before doing any division:
- Remove cancelled, test and fully refunded transactions.
- Deduplicate line items so each order or completed visit appears once.
- Merge obvious duplicate customer records only when you have a reliable basis to do so.
- Count distinct customers in the denominator, then count how many meet the repeat rule.
- Save the exact date range and rules beside the result.
For a salon, one completed appointment may be the unit; for a grocery shop, one receipt; for a restaurant, one completed guest visit if you can identify the diner. A gym membership debit order is a payment, not evidence that the member attended. If the question is whether a member is still using the gym, measure attendance or active membership separately.
What if many customers are anonymous?
Call the result an identified-customer repeat rate. If only loyalty members or online buyers can be linked across visits, your calculation describes that subset. It may not represent cash walk-ins who never identify themselves. Track identification coverage alongside the rate, for example “620 of 1,000 completed transactions had a usable customer ID”. That is 62% transaction coverage, not a claim that 62% of customers were identified.
If coverage rises after you introduce a membership programme, the apparent repeat rate may change simply because you now recognise more visits. Explain that data change before crediting a campaign. Keep access to identifiable transaction data limited to staff who need it; POPIA requires personal information to be collected for a defined purpose and protected with reasonable safeguards.
What is a “good” repeat rate in South Africa?
There is no single useful percentage for a café, a tyre shop and a wedding venue. Their natural purchase cycles differ. A monthly window may suit a takeaway but make a furniture store look unusually weak. Choose a window that matches the product or service, then compare like-for-like cohorts and seasons in your own business.
For instance, compare 90-day repeat rates for first-time buyers acquired in April and May only after both groups have a complete 90-day window. Also look at the time between first and second purchase and the share of sales from existing customers. A higher repeat rate can coexist with lower revenue if customers buy less each visit, so read the rate alongside sales and margin.
What should you do after you calculate it?
Use the number to investigate a decision. If first-time salon clients rarely book a second appointment, check the post-visit booking process and ask a few customers what made returning difficult. If a retailer’s repeat share falls while identification coverage is stable, inspect stock availability, service complaints and opening hours before offering a blanket discount. A short customer survey can help locate the friction; the repeat-rate calculation tells you whether buying behaviour later changed.
When you change a process, write down the date and compare complete cohorts that had the same opportunity to return. A before-and-after rise is a useful signal, but it is not proof that one message or reward caused every extra sale. Watch for seasonality, promotions, price changes and changes in customer identification.
Hydra can help a business recognise members, record qualifying activity and configure rewards for repeat visits. First decide which behaviour you want to improve and how you will measure it. A clear baseline makes any retention programme easier to judge.
Cover photo: MART PRODUCTION / Pexels, used under the Pexels License. The people pictured are illustrative and do not endorse Hydra.
