Amazon vs Shopify for Supplement Brands: Which Has a Higher CAC

Team Upcounting

Table des matières :

Someone scrolls past your ad on Instagram. They like it. They don't click.

Two days later they open Amazon, type your brand name, and buy a bottle in one tap. Their card is already saved. It arrives tomorrow.

Your ad did its job. But your Shopify store never saw that customer, and your ad account logged an impression that went nowhere.

For a lot of products, that's an occasional leak. For supplements, it's a big part of how people buy.

A product you reorder every month tends to get reordered wherever reordering is easiest. For a lot of people, that's Amazon.

A supplement brand we worked with knew this was happening to them. 

A large share of their revenue ran through Amazon, and they could watch their Meta and TikTok Shop spend pull Amazon sales up with it.

They also knew what that meant for their numbers. Work out CAC from Shopify alone and you'd be dividing all of the ad spend by only some of the customers it bought.

So they stopped working it out. They ran the business on MER instead, because it was simple and it was available.

That was a reasonable call. It also turned out to be an expensive one.

MER held steady the whole time they were paying around $120 for customers who could only justify about $90.

The full story of how that gap opened up is in What's a Good CAC for Supplement Companies.

Their instinct about Shopify-only CAC was right. The trouble started with the next step: giving up on CAC entirely, instead of building a version that holds up across both channels.

That's what this post walks through. It starts with the question in the title, because the honest answer is more useful than a single number would be.

Amazon vs Shopify CAC: the short answer

It's a fair question, and most brands selling on both channels have asked it at some point.

The trouble is that for most of your ad spend, it doesn't have a clean answer.

When a Meta or TikTok ad sends one person to your site and another to Amazon, both customers came from the same dollars. There's no honest way to split that spend and give each channel its own CAC.

Any number that claims to do it is built on a guess about which dollar did what.

(One exception is the money you spend on ads inside Amazon itself. Amazon reports new-to-brand orders against its own ad products, so that spend has a cleaner CAC of its own. It's also not where the confusion comes from.)

What you can answer is two narrower questions. Together, they get you most of the way there.

Which channel's CAC looks higher on your dashboard? Usually Shopify.

Shopify-only CAC divides all of your ad spend by the customers Shopify can see. Everyone who bought on Amazon is missing from the count, so each Shopify customer looks more expensive than they really were.

In the example we'll build later in this post, the same spend reads as a $124 CAC on Shopify alone, and $88.57 once the Amazon buyers are counted.

Same ads, same money, and a 40% difference in what acquisition appears to cost.

Which channel's customer can justify a higher CAC? Also usually Shopify.

Each Amazon order earns you less once Amazon takes its cut. Here's one $60 bottle sold through each channel.

Per order at $60 (illustrative) Shopify Amazon (FBA)
Product cost $12.00 $12.00
Fulfillment and shipping $4.50 $5.50 FBA fee
Payment processing / referral fee $1.50 $9.00 (15% referral)
Gross profit per order $42.00 $33.50

Illustrative figures. Amazon's fees vary by product size, weight and price, and they change regularly. FBA storage and inbound freight are left out to keep the comparison simple.

The same bottle earns about 20% less on Amazon.

Carry that through a customer's whole relationship with you and the gap stays. A one-time Shopify buyer who orders 1.4 times is worth about $59 in gross profit. The same buyer on Amazon, assuming they reorder at the same rate, is worth $46.90.

So an Amazon customer can justify less acquisition spend than a Shopify customer.

Put the two answers side by side and they pull in opposite directions. Shopify looks more expensive to acquire on than it really is. Amazon customers are worth less than their revenue makes them look.

Both mistakes come from the same habit: measuring each channel as if the other one didn't exist.

None of this makes Amazon a bad channel to be on. It converts people your site never would, it's where a lot of supplement buyers already shop, and your ads are sending people there whether you plan for it or not.

The useful question for a brand on both channels is what a customer is worth when they could end up on either one, and how much that lets you spend to get them. The rest of this post works that out.

Why the one-store CAC formula stops working

On a single Shopify store, CAC is a division problem. Take what you spent on ads, divide it by the new customers you got, and you're done.

Both numbers live in the same place. Your spend is in your ad accounts, your new customers are in Shopify, and every customer your ads bought shows up in that count.

Add Amazon and the pieces scatter.

The spend is still in your ad accounts. Some of the new customers it bought are on Shopify, where you can count them.

The rest are on Amazon, mixed in with people who found you through Amazon search and would have bought anyway.

That creates two errors, and they push in the same direction.

The first is the one from the last section. Shopify-only CAC overstates what each customer cost, because it's dividing your spend by too few people.

The second sits on the other side of the ratio. Your LTV is calculated from Shopify cohorts too, so it only counts the value of customers Shopify can see. The Amazon buyers your ads brought in are worth real gross profit, and none of it shows up.

Cost looks higher than it is. Value looks lower than it is.

Put those together and the brand looks less able to afford its ad spend than it really is.

Why supplements get hit harder

Every brand selling on both channels has some version of this. Supplement brands have more of it, for a reason built into the product.

A supplement runs out. Usually on a schedule, usually every month.

When it does, the customer reorders wherever reordering takes the least effort. For a lot of people that's Amazon, where their card, address and Prime shipping are already set up.

A one-off purchase can leak to Amazon once. A replenishment product gets a fresh chance to leak every 30 days.

The customers who switch halfway through

There's a third group that neither channel reports cleanly.

Say someone finds you through a Meta ad and buys their first bottle on your site. Shopify counts them as a new customer. So far, so good.

Their second bottle, they buy on Amazon, because it's faster.

Shopify now shows that customer as a one-time buyer who never came back. Your cohort report counts them as churn, and your LTV drops a little.

Meanwhile, Amazon has no idea they bought from you before. It may well count them as a new-to-brand customer.

So one person shows up as a lost customer in one place and a new customer in the other. Neither is true.

For a product people reorder monthly, this happens often enough to matter, for two reasons.

It's another way Shopify LTV understates what your customers are worth. And if you later add Amazon's new customers to your count, some of them are people you already counted once.

We'll come back to that second point when we get to the ways this math can go wrong in the other direction.

Before any of this works: split your margins by channel

Everything in the rest of this post depends on one step most brands selling on both channels haven't taken.

The easiest way to explain why is through a problem from a different corner of the books.

A lot of growing brands start out on cash accounting. Profit gets recorded when money moves, which sounds sensible until you buy inventory.

The month you place a big order, profit looks terrible. The month after, with no order, it looks fantastic.

Nothing about the business changed between those two months. The numbers just can't tell you anything, so you can't make decisions from them. Accrual accounting fixes that by matching each cost to the sales it belongs to.

Blended channel books cause the same problem, only across channels instead of across months.

If your Amazon and Shopify costs sit in one line, no number in your business can tell you what a customer is worth on either channel. And you can't make a decision about channels from books that can't tell them apart.

That's exactly where the brand from the intro was.

Their Amazon and Shopify cost of goods were booked together, as one number. There was no way to see what an Amazon order earned compared to a Shopify one.

That mattered because of how the fix normally works. The method we'd usually use, and the one the rest of this post walks through, starts from your Shopify LTV and adds the margin you know you're earning on Amazon.

With blended costs, there was no known Amazon margin to add.

So they did what almost anyone would. They picked the one metric that didn't need their books to answer a question the books couldn't answer. That metric was MER.

It's easy to blame MER for what happened next. But MER was where they ended up because of the books, and the books are where the fix had to start.

The first thing we did was split their profitability by channel, before touching CAC at all.

What splitting your margins actually involves

In practice, it comes down to three things.

  • Cost of goods booked per channel. Amazon inventory often costs more to land than the same product going to your own warehouse. Prep, inbound freight to Amazon's warehouses and storage fees all add up.
  • Amazon's fees booked against Amazon revenue. Referral fees, FBA fees, storage and any Subscribe & Save discount belong to the Amazon channel, not to general overhead.
  • A gross profit per order for each channel. The two numbers from the table earlier in this post, but taken from your own books instead of an example.

Once you have those, every other calculation in this post becomes possible.

Blended costs can also hide a unit cost that's wrong on both channels at once, which is what happened to this brand. We cover how to spot that in our guide to supplement inventory management.

Subscribe & Save vs. a Shopify subscription

Most supplement brands on both channels are running two subscription programs at once. One on their own site, through a Shopify subscription app, and one on Amazon, through Subscribe & Save.

From the customer's side, the two look the same. A discount, a delivery schedule, and a bottle that shows up before the last one runs out.

From your side, they work very differently.

Start with the money. A Subscribe & Save discount comes out of your margin, and Amazon still takes its referral fee and FBA fee on every shipment.

Take the $60 bottle from earlier and give it a 10% Subscribe & Save discount. The customer pays $54.

The referral fee drops slightly, to $8.10, because it's charged on the lower price. The FBA fee and product cost stay where they were.

Gross profit per shipment comes to $28.40, against $33.50 for a full-price Amazon order and $42 on Shopify. (Same illustrative figures as the table above.)

Then there's how much you get to know about the customer.

Shopify subscription app Amazon Subscribe & Save
Who funds the discount You You (Amazon adds an extra 5% when a customer gets five or more subscriptions in one delivery)
Fees on each shipment Payment processing and app fee Referral fee and FBA fee
Customer data Full: email, order history, cancellation reasons Limited: no direct customer contact
Retention levers Yours: emails, skip and swap options, winback offers Mostly Amazon's
What you can see about retention Full cohort curves, customer by customer A dashboard of aggregate figures, by product

The last two rows matter most for this post.

On Shopify, you can follow a subscriber cohort month by month and see exactly when people drop off. You can also do something about it, with a reminder email, a skip option or a winback offer.

On Amazon, you mostly see totals. How many active subscriptions you have, and roughly how many you gained and lost.

You don't see which ad brought a subscriber in, how long they stayed or why they left. And you can't email them to change their mind.

An Amazon subscriber is still a very valuable customer. If they stay for 4.5 shipments, the same assumption we use for Shopify subscribers, they're worth about $127.80 in gross profit. That's more than double a one-time buyer on either channel.

But you know far less about them, and each shipment earns less. You can't pin down what an Amazon customer is worth as precisely as you can on Shopify.

That's why the next section works with a range instead of a single number, and starts at the cautious end of it.

How to gross up your Shopify LTV with the Amazon halo

Once your margins are split by channel, the method itself is simple. Start from the customer value you can measure on Shopify, then add the Amazon margin your ad spend is generating on top.

Here it is step by step. Every figure below is illustrative, built on the same model we used in our supplement CAC benchmark, so you can swap in your own numbers as you go.

Step 1. Work out your Shopify-only ceiling.

This is the most you could pay for a customer if Shopify were the only channel. It's what a Shopify customer is worth in lifetime gross profit.

In our model, a one-time buyer orders 1.4 times at $42 of gross profit per order, which is worth about $59. A subscriber takes 4.5 shipments, which is worth $189.

With half your customers subscribing, the average Shopify customer is worth $124. That's your Shopify-only ceiling.

Step 2. Work out what an Amazon customer is worth.

Same approach, using Amazon's lower margins from the earlier sections.

A one-time Amazon buyer at 1.4 orders and $33.50 per order is worth $46.90. A Subscribe & Save subscriber at 4.5 shipments and $28.40 per shipment is worth $127.80.

Step 3. Estimate your halo ratio.

This is the number that makes the whole calculation work: for every 100 customers your ads bring to Shopify, how many extra customers do they bring to Amazon?

We'll use 40 as the example. That figure is an assumption, not a benchmark. Your ratio could be much lower or much higher, and it's the one number here you'll have to estimate for yourself. The last section of this post covers how.

Step 4. Add the halo to your ceiling.

Since you can't see how Amazon buyers behave after their first order, start cautious. Treat every one of them as a one-time buyer.

Forty Amazon buyers at $46.90 each, spread across 100 Shopify customers, adds $18.76 to what each Shopify customer is really worth to you.

Your grossed-up ceiling is $124 plus $18.76, or $142.76.

Same ads, same customers, and the most you can afford to pay went up by 15%.

Check it the other way

There's a second way to run this math, and it's worth doing once, because it shows you the rule that keeps the whole method honest.

Instead of adding Amazon's value onto each Shopify customer, count every customer on both channels together.

Say you spend $12,400 on ads, and it brings in 100 Shopify customers and 40 Amazon customers. (We've set the spend so that Shopify CAC lands exactly on the $124 Shopify-only ceiling. That's the situation the next section starts from.)

  • Shopify-only CAC: $12,400 of spend ÷ 100 customers = $124
  • Blended CAC: $12,400 of spend ÷ 140 customers = $88.57
  • Total value of those customers: 100 Shopify customers at $124, plus 40 Amazon customers at $46.90, comes to $14,276
  • Blended ceiling: $14,276 of value ÷ 140 customers = $101.97

Now compare the headroom each method gives you.

The first method says you have $18.76 of room per Shopify customer. Across 100 customers, that's $1,876.

The blended method says you have $13.40 of room per customer, the gap between $88.57 and $101.97. Across 140 customers, that's also $1,876.

Same answer. The per-customer numbers look different because they're dividing by different customer counts, but the money is identical.

Which gives you the rule for everything that follows: both methods work, so pick one and stay inside it.

Compare Shopify-only CAC with the grossed-up ceiling, or blended CAC with the blended ceiling. Never compare a number from one method with a number from the other. That mismatch is where the most expensive mistakes in the next section come from.

One last thing to keep in mind. These ceilings apply to the next customer you acquire, not to the average of all the customers you've already acquired. Your average CAC can sit comfortably under the ceiling while your most recent customers cost far more than it. We explain why in our supplement CAC benchmark.

Undershoot and overshoot: two opposite mistakes

The halo can push you wrong in either direction, depending on how you handle it. Here's what each mistake looks like, using the same numbers from the last section.

Undershoot: ignoring the halo

This is the careful brand's mistake.

You calculate CAC from Shopify, get $124, and compare it with your Shopify-only ceiling, also $124. You're at break-even, so you hold spend where it is.

But your real ceiling, with the Amazon halo counted, is $142.76. You're leaving about $19 per customer of affordable spend on the table.

At 100 customers, that's a small number. At the thousands of customers a month a brand at real scale acquires, it's the difference between growing and sitting still while you believe you're maxed out.

This is the most common version, because it's what you get by doing nothing. Shopify reports the numbers it can see, and it's easy to assume that's all of them.

Overshoot: mixing the two methods

This one looks like diligence, which is what makes it dangerous.

You know Shopify-only CAC is misleading, so you count Amazon's new customers too, and get a blended CAC of $88.57. Then you compare it with the ceiling you already had, the Shopify-only $124.

That looks like $35 of room on every customer. Time to scale.

But $124 is what a Shopify customer is worth, and your blended count includes Amazon customers who are worth less. The correct comparison is the blended ceiling, $101.97.

Your real headroom is $13.40 per customer. The mismatch made it look more than two and a half times bigger.

Overshoot: being generous with the halo

The other way to overshoot is to get the method right and the inputs wrong. It usually happens in one of four ways.

  • Assuming Amazon buyers subscribe like your Shopify buyers. If half of them take Subscribe & Save, the average Amazon customer is worth $87.35 instead of $46.90. The halo adds $34.94 instead of $18.76, and your ceiling jumps to $158.94. That might even be true. But you can't see it on Amazon, so you can't know yet.
  • Counting Amazon revenue instead of margin. Forty buyers ordering 1.4 times at $60 is $33.60 of revenue per Shopify customer. The gross profit, the part you can actually spend, is $18.76.
  • Counting every new Amazon customer as halo. Some of the people buying on Amazon found you through Amazon search and would have bought without ever seeing an ad. They belong to Amazon, not to your ad spend. (Separating the two is an incrementality question, and our guide to incrementality testing covers how to measure it.)
  • Counting channel switchers twice. Remember the customer who bought their first bottle on Shopify and their second on Amazon. If Amazon reports them as new-to-brand, they're now in both of your customer counts.

Each of these nudges your ceiling up. Stack two or three and you can talk yourself into a number that looks well supported and isn't.

So which of these is your current target built on? If you haven't checked, it's worth finding out before you raise spend against it.

In our example, the honest range runs from $142.76 at the cautious end to $158.94 if Amazon buyers turn out to behave like Shopify buyers. Set your targets near the bottom of that range until you've tested your halo ratio, then move up only as fast as the evidence lets you.

Where the brand in this story landed

If ignoring the halo leads you to spend too little, you might expect the brand from the intro to have been underspending. They weren't. They were paying around $120 for customers who could justify about $90.

Their overspending came from somewhere else. Their inventory was under-costed, their LTV assumptions were optimistic, and they were judging spend against an average CAC. The halo wasn't behind any of it.

Fixing their numbers moved the ceiling in two directions at once. Correcting the unit cost lowered what every order earned. Counting the Amazon halo raised what every customer was worth.

The net result was a ceiling of about $90.

Counting the halo didn't save them from the cut. It meant the number they cut to was the right one.

How to estimate the halo when Amazon won't show you your customers

Everything above rests on one number you can't look up: how many Amazon customers your ads are really creating.

Amazon won't hand it to you. But you can get close enough to set a target, using a few methods that range from an afternoon's work to a proper test.

1. Watch your branded searches against your ad spend.

If you're brand registered, Amazon's Brand Analytics shows how often people search for your brand name and how many new-to-brand orders you get.

Put those next to your Meta spend, week by week. If branded searches and new Amazon customers rise when you spend more and fall when you pull back, you have a halo. The size of the swing gives you a first rough ratio.

2. Use the retention data Amazon does give you.

Amazon won't show you cohorts, but it does report repeat-purchase rates and Subscribe & Save subscriber numbers in aggregate.

That's enough to test the cautious assumption from earlier. If your Amazon repeat rate looks like your Shopify one, you have grounds to move up from treating every Amazon buyer as a one-time customer.

3. Tag some of your ads with Amazon Attribution links.

Amazon's attribution tool tracks people who click an off-Amazon ad and then buy on Amazon.

It will undercount, because most halo buyers never click. Like the person in the intro, they see the ad, leave, and search later. Treat whatever it reports as a floor, not an estimate.

4. Run a geographic holdout.

This is the most rigorous option. Cut or pause your ad spend in a set of regions for a few weeks, keep it running everywhere else, and compare Amazon sales between the two.

Amazon's order reports include where each order ships, so you can see the difference directly. The drop in the regions you went dark in is your halo, with the people who'd have bought anyway already filtered out. Our guide to incrementality testing covers how to set one up.

Whichever you use, start cautious. Treat Amazon buyers as one-time buyers, take the lowest halo ratio your evidence supports, and set your ceiling from that.

Then check the ratio again every quarter. Raise the ceiling when the evidence does, and not before.

Putting it together

So which has a higher CAC, Amazon or Shopify?

For the spend that reaches both channels, the honest answer is that you can't split it. What you can do is work out what that spend is really buying across both.

In order:

  1. Split your margins by channel. Nothing else in this post works until you do.
  2. Know what each channel earns per order, including Subscribe & Save shipments.
  3. Pick one method, Shopify-plus-halo or fully blended, and stay inside it.
  4. Estimate your halo cautiously, then test it.
  5. Set your CAC ceiling from the result, as a table by spend level, not a single number.

The brand in this story was right that Shopify-only CAC would mislead them. Where they went wrong was deciding that a number this hard to measure wasn't worth building, and settling for one that couldn't answer the question.

If you'd rather see this on your own numbers

The steps above are doable yourself, and if you run them, that's a good outcome. But splitting margins across two channels and estimating a halo ratio is more than an afternoon's work, and most founders reading this have something more urgent on today.

That's what the Growth Cash Dash is for. We take your historical numbers, run them through 30+ ecommerce finance KPIs, and come back with the ones that are telling a story your dashboard isn't.

For a supplement brand selling on both Amazon and Shopify, that means margins split by channel, the Amazon halo counted, and a scaling target table showing what you can afford to pay at each level of spend.

Sometimes it shows you've been leaving room on the table. Sometimes it finds a $90 ceiling sitting underneath a $120 CAC.

Either way, you'll know which one you're in.

[Take a look at the Growth Cash Dash →]

Blogue rédigé par

Team Upcounting

UpCounting is a comprehensive solution for DTC brands, delivering expertise in ecommerce, marketing, accounting, financial modeling, and taxes.