You can identify who makes repeat purchases by tracking first time buyers through a realistic buying window. Sales totals can’t provide that information, and last week’s buyer hasn’t had the same opportunity to return as the buyer from months ago. I consider repeat purchases separately from whether the business pays: repeat purchases help, but a one-time profitable offer doesn’t need to become a subscription.
Imagine I’m checking orders after dinner, pleased to see a familiar customer name. Then I open the receipt: it’s a free replacement for a damaged shipment. My supposed repeat sale is another packaging task. I put the tape away, a little less triumphant, and decide to separate paid returns from service fixes before buying a customer-retention tool.
When would a satisfied buyer actually need you again?
I’d answer that before calculating the rate. Repeating books, invoicing, and tracking projects mean the coffee is out and the books need balancing again. The offers shouldn’t face the same monthly repeat target.
Ask how long the purchase lasts for consumables. For services, look for the next project or reporting period, not for when an email can be sent. For one-time-purchase projects, look for the next project or referral before buying the product again. For seasonal products, follow the buyers through the next seasonal period before making a repeat purchase offer. A summer purchase doesn't need to warrant an autumn offer.
Research on customer-base analysis separates purchases made from one-time choices from purchases made from scheduled purchases or contracts. In the absence of a contract, silence doesn’t tell you whether someone has left for good or has just not made a purchase. Until you understand the use cycle of the good or service, assume the window you’ve set is temporary and ask customers when they expect to need the good or service again.[3]
Give each customer the same chance to return
Your invoices or order export are enough to start. You need a customer ID, purchase date, offer, amount paid, and refund status so you can follow a group of first-time buyers, a cohort, rather than just watch revenue rise. If someone uses different emails, merge the records only when you can confirm it’s the same person. Otherwise, acknowledge that you may be missing returns.
Here’s a hypothetical example for an offer with a plausible 90-day buying cycle, observed through October 7, 2026. We’ll count a repeat only if it’s a separate, paid purchase of the same offer within 90 days after the first purchase, with payment retained at that cutoff. All the first purchases below were retained. Free replacements, fully refunded repeats, and purchases of different offers don’t qualify for this particular measure.
| Buyer | First purchase | Later activity through October 7 | Qualifying repeat? |
|---|---|---|---|
| A | June 1 | Paid same-offer purchase June 30 | Yes |
| B | June 2 | Paid same-offer purchase July 31 | Yes |
| C | June 3 | Paid same-offer purchase September 1, day 90 | Yes |
| D | June 4 | Paid same-offer purchase September 12, day 100 | No, outside this window |
| E | June 5 | July 10 purchase fully refunded | No, record refund separately |
| F | June 6 | Different offer purchased August 1 | No, cross-sell |
| G | June 7 | Free replacement July 1 | No, service recovery |
| H | June 8 | No further purchase | No |

Out of the eight first time buyers, three returned (3 ÷ 8 = 37.5%). Buyer D returned too, just after day 90. Although Buyer D may have returned after the use window for the offer, I’d keep the purchase observed and not consider it a failure, as long as others return purchases outside the use window for the offer, the return window may be set too short.
Let's now suppose that eight additional buyers made purchases between July 20 and July 27. As of October 7, none of them has reached Day 90, and one of them has already made a repeat purchase. It’s tempting to include the early success and disregard the others, but that offers quick returners an advantage. All eight of those incomplete purchase stories should be disregarded (neither included in the numerator nor the denominator) until their windows close.
Using the rule of a within-90-day purchase across all 16 buyers, we get 4 ÷ 16 = 25% and some of those buyers are still waiting for their next opportunity to make a purchase. With completed windows, we get 37.5% (not because more purchases occurred, but because everyone included had the same follow-up time). The idea behind cohort analysis is a comparison of equal age groups. An exact 90-day window is still different from three calendar-month report columns.[2]
Keep the different kinds of return separate
One buyer making five repeat purchases is still just one returning customer, and those other purchases need to be considered for frequency and revenue. But, of course, they answer a different question. The comparison that should be made for subscriptions is paid renewals vs. renewals that are actually due. An automatic renewal is still not the same as a conscious decision to purchase again.
I also appreciate the cross-sell or referral in your records, especially if it’s a one-time offer. A cross-sell means the buyer wants to purchase something different, and a referral is demand for something altogether new. Also keep refunded purchases attempts in mind, especially if a lot of interest is followed by a refund. It may mean there’s an issue with the fit or delivery.
I wouldn’t take a dashboard’s “returning customer” label at face value for a couple of reasons. First, Shopify’s Returning customer report includes any customer with at least two orders, which doesn’t necessarily mean there was a paid, same-offer repeat within your repeat window. Instead, Shopify’s cohort reports group customers based on when they made their first order and show repeat activity based on the period. Adding those repeat percentages wouldn’t show you distinct cumulative returners because the same customer can be repeated in several periods.[1]
Does the observed demand pay for the effort?
I’d put actual money beside the repeat rate before committing more cash. Suppose, in this hypothetical completed cohort, the eight first purchases left $240 after order-level cash costs and the qualifying repeats left another $96. Acquiring those buyers cost $160, and retention activity cost $16. You’re left with $240 + $96, $160, $16 = $160. No hoped-for future purchases needed.
That $160 isn’t net profit or your pay. Overhead still needs covering, and the hours spent acquiring buyers, delivering orders, and following up may change whether the work is worthwhile. There’s another limit: a purchase after a reminder doesn’t prove the reminder caused it. The spending belongs in your calculation even when the campaign’s credit for those sales remains uncertain.
With eight completed histories, one buyer changes the repeat rate by 12.5 percentage points. You’ve observed returns, not pinned down a dependable future probability. I wouldn’t use that sample to justify expensive retention software or acquisition spending that only works if several unobserved future purchases arrive.
If repeated requests have gone out to renew a need without buyers returning for it, I would select a few buyers and inquire whether they still have a need, if they bought it from another source, or if there was a problem with your offer. Answer's to these will point you to the right direction for an inexpensive change to test on the next group, if any are warranted. Keep in mind that the reason for the unfulfilled need may be unfinished and therefore you may want to place another review on your calendar.
You can't keep selling a product or service without a steady stream of buyers. For a legitimate one time offer, I would focus on conversion per sale and reliability of the next offer, whether it be through referrals or other sales and acquisition channels. Make sure you are earning a profit from the work, otherwise you may be burning yourself out from an emotionally and physically draining, thankless job.
Sources and references
- Shopify: Customers reports
- Klaviyo: Understanding cohort analysis in the metrics tab
- Journal of Interactive Marketing; author manuscript hosted by the University of Pennsylvania: Probability Models for Customer-Base Analysis (2009)