How to Measure First-Purchase vs Repeat Purchase ROAS (And Why Blended ROAS Hides the Real Story)
by Trivas.ai
|
8 min read
Sep 30, 2026
Why Blended ROAS Is Lying to You
Pull up your ad platform dashboard right now. See that one clean ROAS number at the top? It's hiding two completely different businesses inside it.
Blended ROAS mixes revenue from brand-new customers with revenue from people who already bought from you three times and were going to buy again anyway. Add those together, divide by total spend, and you get a number that feels reassuring. It tells you almost nothing about whether your acquisition engine actually works.
Here's a real-shaped example. A brand spends $50k a month on Meta and reports 3.2x blended ROAS. Looks great on a board slide. But strip out the repeat buyers, retarget hits, and catalog ads serving people already in Klaviyo flows, and the cold-traffic ROAS on that same $50k is 1.4x. That's not a healthy acquisition channel. That's a channel barely breaking even on new customers, propped up by an email and SMS program doing the real work of squeezing more orders out of the existing base.
This is the trap: blended ROAS can look fine for months while new customer acquisition is quietly stalling. Nobody notices because the topline number hasn't moved. Meanwhile CAC on genuinely new customers is creeping up, and retention is just masking it.
The fix is knowing how to measure first-purchase vs repeat purchase ROAS separately, instead of accepting one blended figure as the whole story. That's what the rest of this post walks through.
What First-Purchase ROAS and Repeat-Purchase ROAS Actually Measure
First-purchase ROAS is ad spend attributed to a channel divided by revenue from customers placing their first-ever order. It's the closest thing you have to a true read on paid acquisition efficiency.
Repeat-purchase ROAS is revenue from returning customers, attributed to ad spend like retargeting, catalog ads, or email-triggered promotions, divided by that spend. It measures how well you're monetizing people who already trust you, not how well you're finding new ones.
The distinction matters more than it sounds like, because "new customer" means different things depending on who's counting. Meta and Google both report their own "new customer" metrics, and both are frequently wrong. They're built on pixel and cookie signals, not actual order history. A customer who bought once in 2022 on a different device, then converts again in 2024, can get counted as "new" by the platform even though they're clearly a repeat buyer in your Shopify data.
Founders and growth leads need both numbers isolated because they answer different questions. First-purchase ROAS tells you if your acquisition spend is sustainable. Repeat-purchase ROAS tells you if your retention and reactivation spend is earning its keep. Collapse them into one number and you lose the ability to diagnose which half of the business is actually broken.
Step 1: Build a Clean Purchase Cohort in Your Data
You can't split ROAS by cohort without a clean cohort to split by. That starts with a customer-level order history table, keyed by customer ID, not order ID, pulled straight from Shopify.
Every order needs a tag: first purchase, or Nth repeat purchase, based on that customer's full order history. Not a platform guess. Not a pixel signal. The actual sequence of orders tied to the actual person.
This is where a lot of reporting quietly falls apart. Shopify's built-in "returning customer" tag looks like it should do this job, but it undercounts. It doesn't always reconcile guest checkouts against a later logged-in order, and it doesn't handle merged customer profiles cleanly. So you get repeat buyers misclassified as new, which inflates first-purchase revenue and makes your acquisition channel look better than it is.
This cohort table isn't a nice-to-have. It's the foundation everything else in this post depends on. Get it wrong here and every ROAS number downstream is wrong too.
Step 2: Attribute Ad Spend to the Right Cohort
Once you've got clean cohorts, the next job is matching spend to them.
Prospecting and cold-audience campaigns should feed first-purchase ROAS. Retargeting, catalog, and winback campaigns should feed repeat-purchase ROAS. That part's straightforward when campaigns are cleanly segmented.
The messy middle is broad, algorithm-driven campaigns like Advantage+ or Performance Max, which serve both new and returning customers inside the same campaign. You can't split those by campaign label, because the label doesn't tell you who actually saw the ad. Instead, allocate spend proportionally using conversion-level cohort tags: for every conversion the platform reports, check whether that customer was first-purchase or repeat in your Shopify data, then attribute the spend share accordingly.
That means joining ad platform spend and conversion data with your Shopify customer cohort table at the order level, so every dollar of revenue carries a cohort tag before it ever gets matched to spend.
This join is exactly where spreadsheet-based reporting breaks. Manual VLOOKUPs choke on order volume, guest checkout mismatches, and refund adjustments the moment you're running more than a couple thousand orders a month. A warehouse-backed setup (Redshift, in our case) handles this join as a standing query instead of a monthly fire drill, which is one reason teams move their BI reporting off spreadsheets once cohort-level ROAS becomes a real requirement.
Step 3: Calculate and Read Each ROAS Separately
The formulas themselves are simple:
First-Purchase ROAS = revenue from first-time buyers attributed to spend / spend on prospecting
Repeat-Purchase ROAS = revenue from returning buyers attributed to spend / spend on retention and retargeting
Here's a worked example. $30k in prospecting spend generates $54k in first-purchase revenue: 1.8x. $8k in retargeting spend generates $32k in repeat revenue: 4x. Blend those together and you get a number north of 2x that looks solid. Split apart, the story changes.
A low first-purchase ROAS next to a high repeat-purchase ROAS usually means one of two things: your acquisition targeting is off, or your top-of-funnel offer is underpriced relative to what it costs to win that customer. The account can still look profitable overall, because retention is carrying it. But the growth engine isn't actually growing.
Don't judge first-purchase ROAS against a flat "good ROAS" benchmark like 3x or 4x. That number was never meant for cold traffic. Judge it against your payback period and LTV instead. A 1.8x first-purchase ROAS can be completely fine if the customer pays back acquisition cost within 60 days and keeps ordering for a year. A 4x first-purchase ROAS can still be bad if it's buying one-time deal-seekers who never return. If you want a quick gut check on whether a given campaign's math holds up before you build the full cohort split, the ROAS calculator is a fast way to sanity-check it.
Common Mistakes That Skew the Split
A few things quietly wreck this split even when the setup is otherwise solid.
Attribution window mismatches are the most common. A 7-day click window can credit a repeat buyer's second order to "first purchase" revenue if your cohort tagging isn't synced to actual order history rather than platform windows.
Subscription and reorder revenue is another one. That revenue often carries zero attributed ad spend, and if you don't exclude it or bucket it separately, it artificially inflates repeat-purchase ROAS and makes retention spend look more efficient than it is.
Cross-channel double-counting happens when email or SMS drives a repeat purchase, but the last ad touch gets credit for it anyway. Now the same revenue shows up in both your retention report and your ad platform's reported conversions.
And refunds. If you don't refresh the cohort tag after a refund or chargeback, phantom revenue sits in whichever bucket it originally landed in, quietly overstating whichever ROAS you're trying to trust.
Turning the Split Into a Weekly Habit
None of this matters if it's a one-time audit. Report first-purchase ROAS and repeat-purchase ROAS side by side every week, not as a blended number.
Pair first-purchase ROAS with new customer CAC and payback period. Pair repeat-purchase ROAS with repeat rate and time-between-orders. Those pairings are what turn a ROAS number into an actual decision: keep spending, pull back, or fix targeting.
Doing this by hand means pulling Shopify, Meta, Google, and GA4 data into one place every week, which is a multi-hour reconciliation job most teams don't have time for. Automating it, by joining those sources into one warehouse, turns that into a dashboard you check in five minutes. This is the kind of view marketing leaders tend to ask for once they've been burned by a blended number once too often.
Trivas's Wingman layer watches for this specifically: it flags when first-purchase ROAS drops below a threshold you set, even while blended ROAS still looks healthy on the surface. That's usually the earliest warning sign that acquisition is stalling before it shows up anywhere else.
Get a True Read on Acquisition vs Retention Spend
Blended ROAS answers one question: is the ad account profitable. Cohort-split ROAS answers the one that actually matters for growth: is the ad account bringing in new customers, or just monetizing the ones you already have.
Once you've got a handle on how to measure first-purchase vs repeat purchase ROAS, you stop guessing about why blended ROAS looks fine while growth feels stuck. You can see exactly which half of the funnel is working.
If you want to see how this cohort split runs as a live dashboard instead of a monthly spreadsheet project, start a trial and connect your Shopify and ad accounts to see it built automatically.
Content author and contributor at Trivas.ai, sharing insights on e-commerce analytics, business intelligence, and data-driven strategies to help businesses grow.
Continue Reading
explore more insights
Triple Whale Customer Support Reviews: What Ecommerce Teams Are Actually Saying
3 min read
How Do Top DTC Brands Measure Marketing Performance?