Who made a repeat purchase within 30 or 60 days?

To find who made a repeat purchase within 30 days or 60 days, start from your order export, group orders by customer, identify each customer’s first and second order dates, then calculate the number of days between those two purchases.

A customer belongs in the 30-day repeat purchase group if their second order happened 0–30 days after their first order. A customer belongs in the 60-day repeat purchase group if their second order happened 0–60 days after their first order. Unless you intentionally split the windows, the 60-day group includes the 30-day repeaters.

The useful output is not just a repeat purchase percentage. The useful output is a customer-level list that tells you:

  • Which customer bought for the first time.
  • What they bought first.
  • When they placed their second order, if they did.
  • How many days passed between order one and order two.
  • Whether they repeated within 30 days, within 60 days, after 60 days, or not yet.
  • What product, discount, cohort, or refund pattern may explain the result.
  • Which lifecycle action should happen next.

Direct answer: export your orders, sort by customer and order date, rank each customer’s orders, pull the first and second order into one row, subtract first order date from second order date, then flag customers where days to second order is 30 or less, 60 or less, greater than 60, or blank.

That gives your team the actual people behind the metric: the customers who came back quickly, the customers who came back late, and the customers who bought once and still need a reason to return.

What this cohort report means

A repeat purchase cohort report groups first-time customers by the timing and quality of their second purchase. Instead of asking, “What is our repeat purchase rate?” it asks, “For this group of first-time buyers, who came back, how fast, after buying what, and with what revenue quality?”

The most common mistake is mixing several retention ideas together. Keep these definitions separate before you build the report.

Metric or viewWhat it answersOperator use
30-day repeat purchase cohortWhich customers placed their second order within 0–30 days of their first order?Find fast repeaters, strong first products, subscription/replenishment behavior, and quick cross-sell opportunities.
60-day repeat purchase cohortWhich customers placed their second order within 0–60 days of their first order?Capture customers with a longer consideration or consumption cycle.
Repeat purchase rateWhat percentage of customers bought more than once?Track the overall health of customer return behavior.
Retention rateWhat percentage of customers remained active or continued buying over a defined period?Measure broader customer durability over time.
Time to second orderHow many days passed between first and second purchase?Set email/SMS timing, replenishment reminders, and winback thresholds.
Repurchase cohortHow did a group of first-time buyers behave after acquisition?Compare acquisition months, first products, discount codes, campaigns, and customer segments.

If you report “60-day repeat purchase” as a single inclusive number, customers who repeated within 30 days are counted inside the 60-day group. If you want cleaner lifecycle segments, split them into mutually exclusive windows: 0–30 days, 31–60 days, after 60 days, and no repeat.

The order-export fields you need

You can answer the core question with a simple order export, but the quality of your diagnosis depends on how much context you include. At minimum, you need a reliable customer identifier, order date, and order ID. To understand why customers came back or did not come back, add product, discount, refund, and channel fields.

Use customer ID when possible. Email is helpful, but it can create duplicates when customers check out with different addresses, typos, or forwarded aliases. If you must use email, normalize it before analysis and watch for duplicate customer records.

Export typeFieldsUse it for
Minimum viable exportCustomer ID or email, order ID, order date, order totalFind first order, second order, days to second order, and 30/60-day repeat flags.
Better diagnostic exportCustomer ID, email, order ID, order date, product or SKU, product category, quantity, order total, discount code, refund status, refund amount, channel/source, customer tags, locationExplain which products, discounts, cohorts, channels, and customer types are driving or hurting repeat purchase.

For a practical repeat purchase worksheet, create one row per customer with these columns:

  • Customer ID or email
  • First order ID
  • First order date
  • First product or SKU
  • First product category
  • First discount code
  • First order value
  • First order refund flag and refund amount
  • Second order ID
  • Second order date
  • Days to second order
  • Second product or SKU
  • Second order value
  • 30-day repeat flag
  • 60-day repeat flag
  • Acquisition cohort month or week
  • Lifecycle recommendation
  • Priority score

The goal is not to build a perfect data warehouse before taking action. The goal is to create a trustworthy customer list that your retention, lifecycle, and merchandising teams can use immediately.

Find each customer’s first-to-second purchase gap

Build the report as a map from raw orders to one customer-level row. This keeps the work operational: every row should end with a customer, a repeat timing flag, and a next action.

1. Sort orders by customer and purchase date

Sort the export by customer ID first, then by order date from oldest to newest. If the same customer has multiple orders on the same day, sort by order timestamp or order ID as a secondary field.

2. Rank each customer’s orders

Assign an order number inside each customer record: first order, second order, third order, and so on. You only need the first and second order for this report, although later orders are useful for LTV and loyalty analysis.

3. Pull first-order details into the customer row

For each customer, capture first order date, first product, first category, first discount code, first order value, refund flag, and acquisition cohort month. This becomes the baseline for understanding what created the customer relationship.

4. Pull second-order details into the same row

Next, capture second order date, second product, second order value, and second order refund flag. Customers with no second order should remain in the report with blank second-order fields. Do not remove them; they are the no-repeat segment your lifecycle team needs.

5. Calculate days to second order

Conceptually, the formula is simple: second order date minus first order date. If the customer has no second order, leave days to second order blank or label it “No second order.”

6. Create repeat timing flags

Add flags that classify each customer:

  • 30-day repeat: days to second order is 0–30.
  • 60-day repeat: days to second order is 0–60.
  • 31–60-day repeat: days to second order is 31–60, if you want a mutually exclusive segment.
  • Late repeat: days to second order is greater than 60.
  • No repeat yet: no second order exists.

Once this is built, you can filter directly to answer the original question: “Show me every customer who made a repeat purchase within 30 days” or “Show me every customer who made a repeat purchase within 60 days.”

Build 30-day, 60-day, late-repeat, and no-repeat segments

The same customer-level report should produce several operating segments. Each segment means something different, and each one deserves a different action.

SegmentHow to define itWhat it usually meansSuggested action
Repeated within 30 daysSecond order happened 0–30 days after first order.Strong early intent, good product fit, replenishment need, or successful cross-sell path.Add to loyalty, VIP, review, subscription, referral, or cross-sell flows.
Repeated within 31–60 daysSecond order happened 31–60 days after first order.Customer came back, but the buying cycle may be slower or lifecycle timing may be late.Test earlier replenishment reminders, product education, or second-order incentives.
Repeated after 60 daysSecond order happened more than 60 days after first order.Product may have a long usage cycle, or the customer needed stronger reactivation.Build a longer winback path and study what finally caused the return.
First order only, still inside expected windowNo second order yet, but customer has not had enough time to mature.Too early to judge. The customer may still be on track.Keep them in onboarding, education, and product-use sequences.
First order only, overdueNo second order and enough time has passed for the category’s normal reorder cycle.Possible lifecycle gap, product dissatisfaction, wrong acquisition promise, or weak second-order offer.Send winback, replenishment, troubleshooting, or personalized recommendation campaigns.
Refunded first orderFirst order has refund flag or refund amount.Product fit, expectation, sizing, shipping, quality, or acquisition-message problem may be present.Separate from normal no-repeat customers. Review product page, ad promise, onboarding, and support reasons.
High-AOV first order with no repeatFirst order value is high, but no second order exists.Potentially valuable customer may need concierge treatment or a more relevant next offer.Route to high-touch email, SMS, personal follow-up, or premium cross-sell sequence.

This segmentation is more useful than a single blended repeat purchase rate. A 30-day repeater and a high-AOV no-repeat buyer should not receive the same message.

Diagnose which first products and cohorts are helping or hurting retention

Once every customer has a repeat timing flag, group the report by the variables that explain customer quality. The key is to look beyond first-order volume. A product that drives many first orders may still be a weak retention product if customers do not return, return late, or refund often.

Start with these diagnostic cuts:

  • Acquisition month or week: which cohorts repeated faster or slower than normal?
  • First product or SKU: which entry products create second orders?
  • First product category: which category introduces customers who stay?
  • Discount code: do heavy-discount customers repeat, or do they buy once and disappear?
  • Campaign or source: which acquisition sources produce customers who actually come back?
  • First-order AOV band: do low, mid, or high first-order values lead to better second-order behavior?
  • Refund status: are low-repeat cohorts also refund-heavy?
  • Location or customer tag: are certain regions, wholesale tags, loyalty tags, or customer types behaving differently?

The product-level questions to answer

  • Which first-purchase products have the strongest 30-day repeat behavior?
  • Which products create a second order within 60 days, even if they do not create a fast 30-day repeat?
  • Which products sell well on the first order but fail to create a second order?
  • Which second products are most commonly bought after each first product?
  • Which first products have abnormal refund rates?
  • Which products should be promoted as acquisition products, and which should be reserved for existing customers?

A teardown-style example

Imagine Product A drives the highest number of first orders. At first glance, it looks like the acquisition winner. But when you group by first product, Product A has weak 60-day repeat behavior and a noticeable refund flag. That means it may be good at getting attention but poor at creating durable customers.

Product B has fewer first orders, but customers who start with Product B repeat within 30 days more often and rarely refund. Product B may be a better first-purchase product for quality growth, even if it does not produce the biggest top-line order count.

Now add discount code. Heavy-discount customers repeat late or not at all, while customers who used a moderate first-order offer return faster. That tells you the issue may not be retention messaging alone. The acquisition offer may be attracting low-intent buyers.

Finally, one acquisition month shows both abnormal refunds and weak second-purchase behavior. That cohort deserves a deeper review: what campaigns ran, which products were featured, whether shipping or inventory issues occurred, and whether the promise in ads or emails matched the product experience.

Operator priority: do not optimize only for first-order volume. Prioritize the products, offers, and cohorts that create second orders with low refund pressure and healthy order value.

Find the customers, products, and cohorts behind your repeat purchase rate

SignalOps helps operators turn order exports into repeat purchase cohorts, product-level retention signals, and customer segments your lifecycle team can act on.

Analyze your order export

Turn each segment into email, SMS, replenishment, or winback action

The report is only useful if it changes what your team does next. Use the customer-level segment to decide who receives loyalty messaging, who needs a second-order push, who needs education, and who should be excluded from standard promotions until you understand refund or product-fit issues.

Customer groupWhat to send or doWhat to watch
30-day repeatersInvite to loyalty, referral, review, subscription, bundle, VIP, or cross-sell paths.Second-order product, second-order AOV, review rate, subscription adoption, third-order timing.
31–60-day repeatersTest earlier replenishment reminders, education content, comparison guides, and second-order offers.Whether nudges pull the second order forward without over-discounting.
Late repeatersCreate a longer winback path based on their actual return timing and the product they eventually bought.Common trigger before the late repeat: offer, product launch, replenishment, seasonality, or support interaction.
No-repeat customers still inside the expected windowKeep onboarding. Teach product use, show complementary products, answer common objections, and collect preference data.Email/SMS engagement, product education clicks, add-to-cart behavior, support tickets.
Overdue no-repeat customersSend winback, replenishment, personalized recommendations, or a limited second-order offer.Conversion rate, margin after discount, unsubscribe rate, and whether certain first products respond better.
Refunded first-order customersDo not treat them like normal winback customers. Review product fit, expectations, onboarding, support reasons, and acquisition message.Refund reason, product, campaign, discount code, replacement order behavior, support notes.
High-AOV no-repeat buyersRoute to a more personal path: concierge email, SMS check-in, premium recommendation, or post-purchase consultation.Response rate, next product purchased, time to second order, and whether high-touch effort pays back.

The same logic applies whether your team acts in email, SMS, direct mail, customer support, or sales outreach. The segment should determine the message. A customer who repeated in 12 days deserves reinforcement. A customer who refunded their first order deserves diagnosis. A customer who spent heavily and never came back deserves priority.

Checks before you trust the report

Before you use the report for lifecycle decisions, run a few quality checks. Repeat purchase analysis is simple, but small data choices can change the answer.

CheckWhy it mattersDecision to document
Exclude canceled and test ordersThey can create false first or second purchases.Define which order statuses count as real purchases.
Decide gross sales vs. net salesRefunds, discounts, shipping, taxes, and gift cards can change revenue quality.State whether order value is gross, net, or another internal definition.
Handle refunds consistentlyA refunded first order may not represent a healthy acquired customer.Choose whether refunded customers stay in the cohort, get flagged, or are analyzed separately.
Avoid same-day order errorsMultiple same-day orders can be real, accidental, split shipments, or order edits.Use timestamp and order status when available.
Separate subscriptions from one-off ordersAuto-renewals can inflate repeat purchase behavior compared with intentional second purchases.Decide whether to report subscription and non-subscription customers together or separately.
Use customer ID over emailEmail changes and duplicate profiles can split one customer into multiple records.Pick the most stable customer key available.
Let cohorts matureA cohort acquired 20 days ago cannot be fairly judged on 60-day repeat behavior.Only compare 60-day cohorts after every customer has had at least 60 days to repeat.
Define inclusive vs. exclusive windowsThe 60-day group usually includes 30-day repeaters unless split into 31–60 days.Document whether your 60-day repeat cohort is inclusive or mutually exclusive.

After the checks, save the report as a recurring operating view. Refresh it by cohort month, first product, discount code, source, refund flag, and lifecycle segment. The output should tell your team exactly which customers came back within 30 or 60 days, which first purchases created that behavior, and which customers need the next retention action.

Final working rule: a repeat purchase cohort report should not end with a percentage. It should end with named customers or customer IDs, product and cohort context, and a clear action for each segment.