Your 1.2 ROAS Might Be Printing Money: Running a 30/60/90-Day Payback Analysis for Your Shopify Brand

Nine times out of ten, when a founder tells me their account is dead, they're looking at one number and reading it wrong.

The number is blended ROAS, it's sitting around 1.2, and they've already written the eulogy. "We're losing money on every order, it's over." I've heard that exact sentence more times than I can count, and most of the time it isn't true. The account isn't losing money. The founder just can't see past day zero.

Here's the thing a 1.2 ROAS doesn't tell you: what that customer does in the 30, 60 and 90 days after they first buy. And for a lot of brands, especially consumables and anything with a genuine reason to repurchase, that's where the actual money is. A 1.2 on the first order can quietly become a 2.5 by day 90 without you spending another cent to make it happen.

The trouble is almost nobody measures it. So they kill campaigns that were compounding, throttle spend that was working, and call a winning account a loser. I've personally reversed kill decisions on campaigns that turned out to be printing money on a 60-day lag. We just couldn't see it until we built the view.

So let me walk you through how to build that view. This is the payback analysis we run before we'll ever let anyone call an account unprofitable. It's a how-to, step by step, on a modern stack. No Zapier-and-duct-tape spreadsheet like the old days.

First, get why blended ROAS lies to you

Quick bit of context before the steps, because if you don't believe the premise you won't bother with the work.

Blended ROAS is a snapshot taken on the day of purchase. It captures the first order and nothing else. For a brand with a real repurchase rate, that's like judging a tenant by the first week's rent and ignoring the twelve-month lease.

What you actually want to know is your payback over time. Not "lifetime value" as some vague number stretching three years out - that figure is useless for cash flow, because nobody can wait three years to find out if an order was worth it. You want defined windows: how much is a customer worth at 30 days, at 60, at 90. Those are the windows you can actually run a business on. Inventory, cash, ad budget, all of it lives in 30-to-90-day reality.

Once you measure those windows, a 1.2 first-order ROAS stops being a death sentence and becomes a starting line.

Step 1: Pull your full Shopify order history

Start with the raw material. Export your complete order history out of Shopify. Every order, every customer, every date.

For each order you need three things at minimum: which customer placed it, the date it was placed, and what they bought first. That last one matters more than people expect, and I'll get to why in step three.

The whole analysis hinges on being able to identify, for every customer, their first-ever order date and their first-ever product. So if your export tool can stamp those two fields, do it now. That's the spine everything else hangs off.

Step 2: Connect your acquisition cost from Meta

Payback is a comparison: what you paid to get the customer versus what they've spent since. So you need the "what you paid" side, and for most Shopify brands that's your Meta spend.

Pull your acquisition cost in from your ad platform. The number you care about is what it cost to acquire that customer on their first purchase, because that's your line in the sand. Everything they spend after is return on that one cost.

One thing that trips people up: only count prospecting spend here. You're measuring the cost to acquire a new customer, so existing-customer spend has no business in this number. Which brings me to a rule you can't skip.

Step 3: Exclude existing customers from the start

This is the step people fudge, and it quietly wrecks the whole analysis.

When you're measuring acquisition payback, you exclude existing customers from your prospecting entirely. The repurchases that drive your 30, 60 and 90-day numbers should come through email, SMS and organic - not paid. If you let retargeting spend on existing customers leak into the maths, you'll double-count and convince yourself the economics are better than they are.

The clean version is simple. New customer comes in via paid. You record what they cost. Then every repurchase after that is measured as free money on top, because you paid nothing to make it happen. That's the honest picture, and it's the one that tells you whether to scale.

Step 4: Sort customers into cohorts two ways

Now the part that turns a flat report into something you can actually act on. You sort every customer into cohorts, which is just a fancy word for groups.

Cohort them two ways at once.

  • By time. Group customers by the month they first bought. The March cohort, the April cohort, and so on. This lets you watch a single month's customers mature over time and compare months against each other.
  • By first product. Group customers by the very first thing they bought. This is the one that surprises people, and it's the most useful cut in the whole exercise.

Here's why the first-product cohort matters so much. Not all customers are equal, and not all products are equal as a front door into your brand. Two customers can both walk in at a 1.2 ROAS, but if one came in through a product people fall in love with and reorder, and the other came in through a one-and-done item, they are worth wildly different amounts six months later. A blended account-wide target hides that completely.

If you've ever set a single ROAS goal for your whole account and called it a day, this is the thing you've been blind to.

Step 5: Watch each cohort mature across the windows

Now you read it across time, and this is where the picture flips.

Take a cohort and follow it out. Say a group comes in at a $46 acquisition cost against a $55 first-order AOV. On a cash-on-day-one basis that's a 1.19 ROAS, and a nervous founder kills it right there.

But watch what happens as the window extends. By 30 days that same cohort has bumped to roughly a 1.5, because a slice of them came back through email and organic and bought again. By 60 days it's higher. By 90 it's nudging 1.85, and by 120 it's pushing toward double the day-zero figure. Nobody spent another dollar of ad money to make that happen.

That's the entire point of the exercise. The 1.19 that looked dead was a customer base quietly paying you back to a 2.5x and beyond, just on a delay you weren't measuring.

And one practical note from doing this a lot: Meta's reporting will show you most of that early lift inside its own 28-day click window. But the 60, 90 and 120-day reality, the bit that matters for cash flow and inventory and holiday planning, lives well outside what the ad platform shows you. You only see it if you build the cohort view yourself.

Step 6: Predict the windows that haven't closed yet

You don't have to wait 120 days to make a decision, which is the objection I always hear next.

Your most recent cohorts won't have full data. The customers who joined last month obviously don't have a 90-day number yet. But you can be predictive about them, and reasonably so.

Take your last few fully closed cohorts. Work out the average growth from first-order ROAS to the 30, 60 and 90-day marks across those months. Then apply that average growth curve to your fresh cohorts to get a predicted payback. As the real data comes in, the prediction firms up and corrects itself.

So mid-month you can look at customers you acquired three weeks ago and say, with decent confidence, this group is on track to be worth roughly X by day 90. That's enough to make a scale-or-hold call today instead of flying blind for a quarter.

It gets better around peak periods too. Cohorts you acquire heading into a big sales window tend to be worth more, because their repurchase intent climbs exactly when everyone's buying. The customers you bring in now can be disproportionately valuable later, which is an argument for leaning in earlier than feels comfortable.

What the analysis usually changes

Once a brand can see this properly, two decisions tend to flip.

The first is spending. Founders who thought they were scraping by realise they've been winning the whole time and just didn't have permission to push. I've watched a brand go from cautiously tapping the brakes to scaling hard inside a fortnight, having changed nothing about the actual business. The only thing that changed was understanding what their customers were truly worth.

The second is what you lead with. When the first-product cohorts come back, there's almost always a clear winner: one product that brings in customers who reorder, review well and stick around. That product should be the front door for your ads. Not your highest-margin item, not your founder's favourite. The one that earns the best payback over 90 days. We then build acquisition around it and let the rest of the catalogue do its job once people are in.

The smaller truth underneath all this

You can no longer count on the first order being profitable, and that's fine.

As you scale, acquisition gets more expensive - more advertisers, pricier clicks, the usual. The brands that keep growing aren't the ones squeezing a profit out of order one. They're the ones who know their 30, 60 and 90-day payback cold, separate new-customer revenue from returning-customer revenue, and spend confidently against a number most of their competitors can't even see. The brand willing to pay the most to acquire a customer wins, and you can only be that brand if you know what the customer is actually worth.

So before you kill another campaign sitting at a 1.2, build this view first. Pull your Shopify history, bring in your prospecting cost, exclude existing customers, cohort by month and by first product, and follow each group out to 90 days. Even a rough version on a single spreadsheet will tell you whether you're dying or quietly compounding.

Run it on your own account this week. Then ask yourself the honest question: how many of the campaigns you've already turned off were actually paying you back on a 60-day lag, and you killed them before they got the chance?

Ethan To
CEO @ Pigeon Digital