Your acquisition spend keeps growing and first-order ROAS looks acceptable, but profit does not follow. You suspect some channels fill the store with one-time buyers who take the deal and never return, while others quietly bring customers who reorder for years.
Repeat purchase rate by acquisition channel measures the share of first-time buyers from each channel who place a second order within a set window, such as 60 or 90 days. It separates channel volume from channel quality, for a merchant deciding where to spend and for a retention team that needs a defensible client deliverable. Until you measure the second order by channel, every budget decision is made on the first order alone.
Key takeaways
-
Measure repeat purchase rate by channel as the share of each channel's first-time buyers who place a second order within a fixed window, such as 90 days.
-
The channel is a property of the customer's first order. Assign it once, with one consistent rule, from the fields your order export already has.
-
Build one table: channel by first-order month, with first-time buyers, second-order rate at 90 days and median days to second order.
-
Compare channels only at the same cohort age, and ignore rows with too few customers to trust.
-
Split each channel by first product before blaming the channel. Channels often sell different entry products, and the product may explain the gap.
How do I measure repeat purchase rate by acquisition channel?
For each channel, divide the number of first-time buyers who made a second purchase within a fixed window by the number of unique customers whose first purchase came from that channel. Use the same defined time period for every channel.
In plain terms:
Second-order rate for a channel = customers whose first order came from that channel and who ordered again within the window, divided by all customers whose first order came from that channel.
This is cohort analysis, specifically cohort retention analysis: grouping customers by when and where you acquired them, and tracking which of them become repeat customers. If the idea is new, the what is cohort analysis guide covers the basics. The general version of the metric, without the channel split, is in the repeat purchase rate guide.
Pick a window that fits how fast your products get used: 60 or 90 days for consumables, longer for products that last. Whatever you pick, apply it to every channel and every month. A fixed window is what makes the comparison fair and gives a clearer read on customer loyalty over time.
Which data do I need, and where does the channel come from?
An order-level export with customer id or email, order id, order date, the products in each order, and one field that tells you where the first order came from.
Fields to have or derive:
-
customer_id or email, to link orders to one person
-
order_id and order_date
-
first_product, the main item in the customer's first order
-
acquisition_channel, derived from the first order only
-
cohort_month, the month of the acquisition date (the first order)
Where the channel comes from depends on your platform and setup. Common sources are the order's source or sales channel field, discount code prefixes (for example, every influencer code starting with the same letters), marketplace versus own-store orders, and UTM or landing-page fields if your store saves them on the order. When several signals disagree, write down one rule, such as "discount code first, then order source", and apply it to every customer.
You do not need ad-platform data for this. The point is to look at what happened after the first order, which the order history records without any attribution model.
Behavioral data: why do some channels bring customers who never come back?
Because channels attract different buyers with different reasons for the first purchase, and that customer behavior carries into everything after it. A buyer who came for a deep discount or a single viral product has less reason to return than one who searched for exactly what you sell.
Patterns worth checking in your own data, not rules:
-
Deal sites and coupon-heavy affiliates tend to bring price-driven buyers who wait for the next offer. Discount-driven acquisition often means weaker long-term retention.
-
Paid social can bring impulse buyers who never build a habit with the product, so habit formation has to happen after the order.
-
Organic search often shows stronger repeat rates, because buyers arrive with intent and a specific problem to solve.
-
Referrals bring buyers who arrive with a recommendation from someone they trust, and are often among the strongest channels for second orders.
Your order history holds the behavioral data to check these behavioral patterns for your own store, and any of them can go the other way. A channel that looks expensive on first-order cost can still be the best one if its customers reorder sooner and more often. That is the reason to measure it rather than assume it: customer loyalty shows up in the orders, not in the ad report. Acquisition channels shape customer lifetime value and churn, and the acquisition cohort shows exactly when each channel's customers drop off after their first order.
How do I separate the channel effect from the first-product effect?
Split each channel's first-time buyers by the product they bought first, and compare second-order rates for the same first product across channels. If the gap disappears within each product, the product mix explains it, not the channel.
Channels rarely sell the same things. One campaign may push a starter kit while search mostly brings refill buyers. The raw channel rate mixes two effects: who the channel brings, and what it sells them first. Some products are natural gateways to a second order and some are one-offs, as the products that drive repeat purchases article explains.
This split changes the decision. If the channel is the problem, you move budget. If the entry product is the problem, you change what the channel sells, and the channel may be fine. Affinsy's first-product retention view shows which first products bring customers back against the store baseline, computed from an uploaded order export, which is the product half of this comparison.
The core table: cohort retention rates by acquisition cohort
One row per acquisition channel and first-order month. The columns:
-
first_time_buyers: customers acquired from that channel in that month
-
second_order_90d: of those, how many placed another order within 90 days
-
second_order_rate_90d: the second column divided by the first
-
median_days_to_second_order: computed only for customers who did reorder
The rate tells you how many become repeat buyers. The median tells you how fast. Read across several months and you have a simple retention curve per channel, and an early view of long term retention. A channel with a decent rate but a slow median may just need a better-timed follow-up, while a channel with a low rate and a slow median has a harder problem.
Stores with high second-order rates usually see higher customer lifetime value and better profitability, so this table is also a profit view, not just a retention one. Keep a second version of the table split by first product for your top entry products. That is the one you use before cutting any channel.
Common mistakes in cohort retention analysis: cohort age and small samples
Compare channels only at the same age. A January cohort that has had a full year to reorder will always look better than a cohort acquired last month.
Newer cohorts always look worse than older ones. Include a cohort in the comparison only once its full window has passed. If the window is 90 days, a cohort acquired 60 days ago is not ready; show it separately as "in progress" if you show it at all.
Small rows are noisy. A new channel with a few dozen first-time buyers in one month can swing wildly from one month to the next. Combine several months, or group small channels together, until each row has enough customers to trust. Treat small channels as early signals, and do not move budget on them.

Worked example: three channels, one month, very different second orders
An illustration with round numbers, not a benchmark.
In March, three channels each brought 1,000 first-time buyers at a similar cost per customer. Measured 90 days later:
| Channel | First-time buyers | Second order within 90 days | Second-order rate | Median days to second order |
|---|---|---|---|---|
| Paid social | 1,000 | 260 | 26% | 32 |
| Search | 1,000 | 340 | 34% | 27 |
| Influencer | 1,000 | 140 | 14% | 44 |
On first-order numbers these channels look alike. On second orders, search looks best and influencer looks weak. Now split by first product:
| Channel | Starter kit buyers | Of those, reordered | Refill buyers | Of those, reordered |
|---|---|---|---|---|
| Paid social | 700 | 140 (20%) | 300 | 120 (40%) |
| Search | 300 | 60 (20%) | 700 | 280 (40%) |
| Influencer | 600 | 60 (10%) | 400 | 80 (20%) |
Paid social and search perform identically within each product. The whole gap between them comes from product mix: paid social mostly sells the starter kit, search mostly sells refills. The fix for paid social is to test ads that lead with the refill, or a starter kit follow-up that works better, not to cut the budget.
Influencer is lower within both products. That is a real channel effect, and the case for capping spend or changing the partner mix is much stronger.
Turning channel data into a retention strategy and budget decisions
Once the table exists, three decisions follow. Together they shift spend toward channels that bring loyal customers, and let you tailor retention work to each channel's customers instead of sending everyone the same flow.
-
Rank channels on second orders, not only first orders. Put the 90-day second-order rate next to cost per first-time buyer. A channel with a higher cost and a clearly higher second-order rate may have better unit economics over the long term, and deserve more budget, not less. Judge a channel on the retention it produces, not only on what the first order cost, because repeat customers usually spend more over time than the first order suggests.
-
Fix slow channels with retention efforts before cutting them. If a channel's customers do come back but slowly, a tighter onboarding flow in the first few weeks, personalized recommendations based on the first basket, or a better customer experience around delivery, may close the gap. Good onboarding and post-purchase communication make a return more likely, and the post-purchase email flow guide shows how to build it backwards from the reorder window.
-
Cap channels that fail within every product. When a channel's buyers reorder less for the same first product, and a follow-up test does not help, move that budget elsewhere.
For customers from weak channels who are already overdue, a separate list pays off. The lapsed customer definition article shows how to decide who counts as overdue per product.
How to run this from a Shopify or WooCommerce export
A spreadsheet is enough for a store with a few thousand customers.
-
Export all orders with customer id or email, order id, order date, line items, discount codes and whatever source fields your store records.
-
Sort by customer and date. Mark each customer's first order. Assign the channel from that order, using your one rule.
-
Add helper columns: first order date, first product, cohort month, date of the second order if there is one, and days between the two.
-
Group by channel and cohort month. Count first-time buyers, count those with a second order within 90 days, and divide.
-
Take the median of days to second order for the customers who reordered, per group.
-
Repeat step 4 split by first product for your top entry products.
-
Drop cohorts that are younger than the window and flag rows that are too small.
Next steps
-
Decide on one channel rule and one window, and write both down.
-
Build the channel by cohort month table for the last twelve months of mature cohorts.
-
Split the biggest channels by first product before drawing conclusions.
-
Pick one channel to act on: move budget, change the entry product it leads with, or tighten its follow-up.
-
Re-check the same table next month.
If you want the cohort retention and first-product retention worked out from your own orders, the 48-hour analysis delivers them, with the customer lists you need to act on.
FAQ
How often should I refresh repeat purchase rate by channel?
Monthly for most stores. Each month one more cohort completes its window. Compare recent cohorts with earlier cohorts at the same age, so you can see whether a creative change, a new partner or pricing changes moved the second-order rate.
What if a customer's first order has several possible channels?
Pick one rule and apply it to everyone, for example "discount code if present, otherwise order source". Consistency matters more than precision here, because the goal is to compare channels against each other, not to settle attribution.
Can I do this if I only have the order source and no UTM data?
Yes. Start with the source values you have, such as online store, marketplace, point of sale or wholesale. Add discount code families to split the online store bucket further.
How is an acquisition cohort different from a behavioral cohort?
An acquisition cohort groups customers by when and where they first bought. A behavioral cohort groups them by something they did, such as buying two categories in the first order, which helps identify actions that go with retention. Predictive cohorts go a step further and use past behavior to forecast future actions. All three cohort types are useful; this analysis starts with acquisition cohorts because the channel decision is about where customers come from.
How is this different from customer retention rate?
Customer retention rate usually counts all customers still active in a period, across your entire customer base. The channel view counts only new customers and asks one question: did they place a second order within the window? It is narrower, but it is the part of the customer lifecycle that acquisition spend actually controls, and it is easier to act on in marketing campaigns.
How does this relate to customer lifetime value?
The second order is where customer lifetime value starts to separate by channel. Customers who make more than one purchase early tend to keep ordering, so a channel's second-order rate is a practical leading indicator of the customer lifetime value you are buying, long before a full lifetime value figure is available.