How to calculate customer acquisition cost and check whether the first order covers it

Clicks get more expensive before the season, and ad platforms report conversions without distinguishing whether a new or returning customer bought; as a result, the question “can I afford a new customer?” gets lost in averages. A high shop-wide MER can hide the fact that every first order loses money on advertising. This guide shows how to calculate e-commerce customer acquisition cost from shop orders and spend across all channels, compare it with first-order margin and judge whether acquisition is profitable straight away or only after customers return. Customer value over time and cohorts are covered in a separate post on LTV; here you calculate the current month.

One example runs through the whole post: a children’s products shop, September, net amounts. Every formula uses figures from this shop, so the calculation can be repeated on your own data in a spreadsheet or with a single question in the chat.

Shop revenue · September€115,200
Ad spend, all channels€18,000
Shop-wide MER6.4

At first glance, the budget could safely be increased. How much of that €18,000 comes back as margin on the first orders of 960 new customers only becomes clear in the following sections.

A scene from September

A high MER can hide losses on new customers

A children’s products shop closes September with a pleasing result: €115,200 net revenue on €18,000 of ad spend across all channels. Ahead of the gift season, the owner plans to add budget because “advertising pays back more than six times over”. Before the decision is made, it is worth checking what exactly this figure measures.

Definition · MER

MER (marketing efficiency ratio) is shop revenue divided by total ad spend across all platforms. Revenue is taken from shop orders; revenue reported by ad platforms is not summed, because the same purchase is often attributed to several platforms at once.

September MER€115,200 revenue / €18,000 spend = 6.4

Breaking down the orders changes the picture. Of September’s 2,400 orders, 960 (40%) are first orders from new customers and 1,440 (60%) are placed by returning customers. New customers bring in €43,200 with a basket of €45, returning customers €72,000 with a basket of €50; €115,200 in total.

Returning customers push MER up, because many of them cost nothing. They come back by searching for the shop’s name, typing in the address or from bookmarks, and their orders (62.5% of revenue) feed the MER numerator without proportional spend in the denominator. If all spend were attributed solely to new customer revenue, the ratio falls to €43,200 / €18,000 = 2.4.

At the level of a single new customer, the calculation looks like this: acquisition costs €18,000 / 960 = €18.75 (this is CAC; the formula and variants are in the next section), while the first order leaves €12 of margin after cost of goods and variable costs (broken down on the receipt later in this guide). The scales tip towards cost.

New customer · September · children’s products shopillustrative data
CAC€18.75
First-order margin€12
CAC coverage by margin (12 / 18.75)0.64
Gap per customer (18.75 − 12)€6.75
Monthly gap (960 × €6.75)€6,480

The shop average mixes two different calculations. Repeat purchases earn money on customers acquired months ago; acquisition currently subsidises every new customer by €6.75, which adds up to a €6,480 gap in September. Adding budget “based on MER” mainly scales the second part, because the extra money buys new customers, while returning customers will come regardless.

The target MER for the whole budget is a separate calculation based on margin and profit target, described in the guide on how much to spend on marketing in an online shop. The budget decision for new customers has to be calculated independently: from acquisition cost and first-basket margin.

Before adding budget ahead of the season, calculate the cost of acquiring a new customer and compare it with the margin on their first order, because the MER of the whole shop does not contain this answer.

The calculation

How to calculate customer acquisition cost (CAC)

CAC consists of two numbers, each from a different source. The numerator is the money spent on advertising across all channels. The denominator is the number of people who bought from the shop for the first time in the period analysed. Most errors in this calculation arise in the denominator, which is why the definition of a new customer comes before the formula.

Working definition

A new customer is a customer whose first order in the shop’s entire history falls within the period analysed. They are identified by order_customer_id, and for guest purchases by email_hash (the hashed email address), so that one person is not counted twice.

CAC (customer acquisition cost) is acquisition spend divided by the number of new customers in the same period.

Full CAC · September€18,000 spend / 960 new customers = €18.75
Acquisition CAC · excluding brand and remarketing(€18,000 − €3,600) / 960 = €14,400 / 960 = €15

The most common shortcut gives a result 2.5 times too low. Dividing spend by all orders (€18,000 / 2,400 = €7.50) also spreads advertising cost over 1,440 orders from returning customers, many of whom come back on their own. The result is a cost per order that cannot fairly be compared with the margin of a new customer.

Cost per order€7.50

€18,000 / 2,400 orders. Mixes new and returning customers and understates acquisition cost 2.5 times.

Full CAC€18.75

€18,000 / 960 new customers. Upper bound: all spend is charged to acquisition.

Acquisition CAC€15

€14,400 / 960 new customers. Lower bound: excluding brand and remarketing campaigns.

The two numerator variants set the range in which the real cost lies. Brand and remarketing campaigns (separated by campaign name; €3,600 in September, or 20% of spend) work mainly on people who already know the shop, so including them in full overstates CAC. Excluding them entirely understates it, because some first purchases also come through a search for the shop’s name; that is why both variants are calculated and decisions are checked against both.

Exclusions from the denominator, i.e. what not to count as a new customer:

  • Cancelled and unpaid orders. A customer who did not pay has not been acquired; their order inflates the number of new customers and artificially lowers CAC.
  • Customers from before the start of the data history. If the data covers only a few months of orders, a regular customer from last year looks new. Reliable distinction requires at least 12–24 months of order history.
  • Duplicate guest customers. The same person buying once from an account and once as a guest has two identifiers. Merging by email_hash leaves one customer and one first order.
  • New users in GA4. The first_visit event counts devices and browsers visiting the site for the first time, whereas CAC needs new buyers from orders; the guide on first_visit and new customers in GA4 breaks down the difference between these concepts.
  • “New customer” conversions from ad platforms. Each platform judges newness by its own lists and its own attribution window, so the same buyer can be “new” in two platforms at once. The sum from the platforms inflates the denominator.

Marketplaces require a separate calculation. Spend on campaigns in Google Ads, Meta or TikTok drives traffic to the shop’s own website, whereas marketplace buyers arrive through the marketplace, where acquisition cost sits in commissions and listing promotion fees. Adding them to the denominator would understate the shop’s CAC.

The numerator comes from the cost tables of all platforms, and the denominator solely from the shop’s orders. Only a CAC built this way (€18.75 in the full variant, €15 in the acquisition variant) can be compared with the margin left by a new customer’s first order.

First basket

First-order margin as a measure of CAC coverage

First-order revenue is a misleading measure of return. A new customer’s basket in a children’s products shop averages €45 net, and CAC is €18.75, so at first glance every euro spent on acquisition comes back 2.4 times. However, the shop does not keep revenue; it keeps the margin left after paying for the goods and order handling.

Most of the €45 basket leaves the shop straight away. Goods bought from the supplier cost €29.25, plus the variable costs of handling the order itself. Only what remains at the bottom of the receipt is compared with customer acquisition cost:

First ordernew customer average · September · net · illustrative data
Basket (new customer AOV)€45.00
Cost of goods from product_cost (65%)−€29.25
Product margin 35%€15.75
Variable costs: delivery subsidy, payment, packing−€3.75
Contribution margin€12.00
Acquisition cost (full CAC)€18.75
covers 64% of CAC

The receipt closes at €12, which is €6.75 less than the acquisition cost. A return of 2.4 calculated on revenue becomes a return of 0.64 calculated on margin. That second number has its own name and is worth calculating every month.

Definition

First-order contribution margin is the net basket value minus the cost of goods minus the variable costs of handling the order (delivery subsidy, payment fee, packing). It is the amount that actually stays in the shop to cover the acquisition cost.

The CAC coverage ratio is the first-order contribution margin divided by CAC. A result of 1.0 means the first basket fully pays back the acquisition cost; a result below 1.0 means a gap that subsequent orders have to close.

First-order margin€45 × 35% = €15.75; €15.75 − €3.75 = €12
Coverage at full CAC€12 / €18.75 = 0.64
Coverage at acquisition CAC€12 / €15 = 0.80

Both variants fall below 1.0. With the full numerator, the first basket pays back 64% of the acquisition cost, and 36% (€6.75 per customer) waits for repeat purchases. With the acquisition numerator, excluding brand campaigns and remarketing, the first basket pays back 80% of the cost and the gap shrinks to €3.

Applying the shop’s average margin to new customers overstates coverage. First baskets tend to be smaller and made up of cheaper entry products: in the example, the AOV of new customers is €45 compared with €50 for returning ones, and in many children’s shops the first purchase is an accessory with a lower mark-up than the pushchair or car seat bought later. This is why the margin is calculated from the lines of first orders only: each item from order_product multiplied by the product_cost of the given SKU, summed and divided by the number of new customers.

Without the cost of goods in the shop, the calculation needs an approximation. If the product_cost field is empty, the first-basket margin is estimated using the average margin of the categories the first-order products come from; the result is then indicative and should be marked as an estimate in the report. Filling in the cost of goods at least for entry products gives the biggest gain in accuracy for the least work.

One number, the coverage ratio, shows what share of the acquisition cost comes back with the first basket; the rest is a debt that only the customer’s repeat purchases pay off.

Channels

CAC and margin coverage by channel

The averages of €18.75 and 0.64 describe the whole channel mix at once. That mix includes channels that acquire customers more cheaply than average and others that pay more than twice as much for a new buyer. Breaking it down is an estimate built from GA4 and ad platform data, while the shop totals stay the reference point.

The numerator comes from ad platforms, the denominator from GA4. Channel spend is the sum from the cost_* tables for the month, and the number of new buyers per channel is estimated from purchases by new users that GA4 attributes to each channel. The average first-order margin of €12 is calculated from the shop’s orders for the shop as a whole and applied to every channel.

Working definition

Estimated channel CAC is the channel spend from the cost_* tables divided by the number of purchases by new users that GA4 attributes to that channel. GA4 counts devices and browsers rather than customers and credits each purchase according to its own attribution model, so the result is an estimate used to compare channels with each other.

Estimated CAC · Meta€5,500 / 225 new-user purchases (GA4) = €24.44
Estimated coverage · Meta€12 average first-order margin / €24.44 estimated CAC = 0.49

Breakdown for a children’s products shop (September, spend from platform panels, purchases according to GA4, net amounts, illustrative data):

Channel (GA4)Spend (cost_*)New-user purchases (GA4)Estimated CACShare of GA4 new-user purchasesFirst-order margin (shop average)Estimated coverage
Google Ads€9,500554€17.1554.9%€12.000.70
Meta€5,500225€24.4422.3%€12.000.49
TikTok€2,00063€31.756.2%€12.000.38
Criteo€1,00020€50.002.0%€12.000.24
Organic and other€0147–14.6%€12.00–
Total (GA4)€18,0001,009€17.84100%€12.000.67

Check the totals before interpreting: 554 + 225 + 63 + 20 + 147 = 1,009 new-user purchases in GA4, and the shares add up to 100%. GA4 shows 49 more than the 960 new customers in the shop’s orders, because it counts devices and browsers, so a returning customer on a new phone looks new; that is why the estimated total CAC (€17.84) is lower than the €18.75 calculated from orders. Channel figures are read as a ranking, and the shop total of €18.75 with coverage of 0.64 stays the basis for budget decisions.

The coverage bar shows the same thing on a single scale. The dark line marks full coverage (1.0), the dashed peach line the 0.6 threshold, and the chip next to the result shows how many additional orders an average new customer from the channel must place for the gap to close.

00.61.01.5
Google Ads554 new-user purchases (GA4) · CAC ≈ €17.15
0.700.37 repeat orders
Meta225 (GA4) · CAC ≈ €24.44
0.490.90 repeat orders
TikTok63 (GA4) · CAC ≈ €31.75
0.381.44 repeat orders
Criteo20 (GA4) · CAC ≈ €50
0.24judge on returning customers
Organic and other147 (GA4) · no ad cost
–
Shop total960 new customers from orders · CAC €18.75
0.640.49 repeat orders
coverage from 1.0coverage 0.6–1.0coverage below 0.6threshold 0.6full coverage 1.0chip: required repeat orders = gap / €13.75 margin on a repeat order; channels: estimate from GA4 and ad platforms

Criteo acquires few new customers by the very nature of its work. Remarketing shows ads to people who have already visited the shop, and many of them have purchased before; so GA4 credits it with only 20 purchases by new users, and the CAC of €50 stems mainly from the small denominator. Such a channel is judged on its remarketing role and its share of MER, so a high CAC is no reason to switch it off.

Meta and TikTok often start journeys that search then closes. A parent sees a car seat or a feeding set in a video, and a few days later types the product name into Google and buys via a search ad or an organic result. A last-click view in GA4 credits that purchase to Google Ads or organic traffic, which inflates the estimated CAC of Meta and TikTok and understates that of Google Ads.

Ad platforms provide a second view. Comparing the purchases each panel claims with the figures GA4 credits to the same channel shows which channels a last-click view penalises: if Meta reports clearly more purchases in its panel than in GA4, its real acquisition cost is probably below €24.44. Panel figures overlap between platforms, so this view corrects how the ranking is read, while the coverage calculation itself relies on the shop’s totals.

Ranking channels by CAC alone leads to the wrong cuts. The cheapest channel may take credit for customers acquired elsewhere, and the most expensive one may work mainly on returning customers. A decision needs three pieces of information side by side: CAC, coverage by first-order margin, and the channel’s role in the journey (whether it initiates, closes or wins back the customer).

Decision thresholds

Three decision thresholds for customer acquisition cost

The coverage ratio only becomes useful for decisions when set against thresholds. Three zones (1.0 and above, 0.6–1.0 and below 0.6) divide channels into those that profit on the first basket, those that profit after repeat purchases, and those that lose money on every new customer. The same CAC of €18.75 can therefore mean scaling up or cutting back: it depends on the first-order margin.

Coverage zoneWhat it meansActionSeptember (channels: GA4 estimate)
≥ 1.0 · profitable from the 1st orderThe first-basket margin covers the full acquisition cost; every repeat order is extra profit.Scale up while watching the CAC of additional customers: audiences from broader groups are more expensive and lower coverage.no channel
0.6–1.0 · profitable after repeat ordersPart of the cost is recovered on the first basket; the rest depends on subsequent orders.Calculate the required repeat orders and compare them with the shop’s history; scale up when the history covers them.shop total 0.64; Google Ads ≈ 0.70
< 0.6 · loses money on each customerThe first order returns less than 60% of the acquisition cost; the gap depends entirely on future purchases.Require evidence from repeat-purchase cohorts or change the entry offer; until then, limit the acquisition budget.Meta ≈ 0.49; TikTok ≈ 0.38; Criteo ≈ 0.24 (judged on its remarketing role)

The middle zone needs a second calculation: how many repeat orders it takes to close the gap. The gap is the difference between CAC and the first-order margin; it is covered by the margin on later purchases by the same customer. A repeat order has a larger basket (€50 instead of €45), so each repeat order closes more of the gap than the first purchase.

Definition and formula

Required repeat orders is the number of additional orders an average new customer must place for their margin to close the gap left after the first basket. Formula: the gap (CAC minus first-order margin) divided by the contribution margin of a repeat order.

Repeat order margin€50 × 35% = €17.50 − €3.75 variable costs = €13.75
Required repeat orders: total€6.75 / €13.75 = 0.49
Required repeat orders: channels (estimate)Google Ads: €5.15 / €13.75 = 0.37
Meta: €12.44 / €13.75 = 0.90
TikTok: €19.75 / €13.75 = 1.44
Repeat orders in the shop’s history (6 months)38% of new customers return × 1.3 orders per returning customer = 0.49 orders per new customer

Required repeat orders are compared with what new customers actually did in the past. The shop’s history shows 0.49 additional orders per new customer within six months, exactly what the total requires: September’s acquisition pays back after roughly six months. On the GA4 estimate, Google Ads (0.37) pays back faster, while Meta (0.90) and TikTok (1.44) would need almost twice and nearly three times as many repeat orders as the average.

The shop average can hide differences between acquisition months. Before cutting Meta or TikTok, it is worth checking repeat purchases of new customers in monthly cohorts: if cohorts from months with a larger social budget return more often than average, a higher CAC may be justified. Criteo (0.24) is left out of this calculation, as it works mainly on returning customers and its CAC is inflated by nature.

The most expensive mistake

Scaling the budget before the season based on a MER of 6.4. At a coverage of 0.64, each new customer leaves a gap of €6.75, so another 960 new customers means about €6,500 (960 × €6.75 = €6,480) tied up while waiting for repeat orders, and that is on the optimistic assumption that the CAC of additional customers does not rise. Seasonal gift buyers return less often than parents buying for their own children, so the historical 0.49 repeat orders may not be repeated in this group.

When coverage is below the threshold, the shop has three levers that can be tested on its own data:

  • Entry products with a higher margin. Every extra €2.50 of margin on the first basket narrows the gap by €2.50: with a margin of €14.50, the gap falls from €6.75 to €4.25 and the required repeat orders from 0.49 to 0.31. Acquisition campaigns are then directed at the products that new customers buy most often and that carry a higher margin from product_cost.
  • Free delivery threshold. The delivery subsidy sits within the €3.75 of variable costs; a threshold set slightly above the typical first basket raises the AOV of new customers and reduces the subsidy per order.
  • Cutting campaigns that deviate from their norm. A campaign where spend grows but purchases in GA4 and the panel do not raises the CAC of the whole channel; scaling it back improves coverage faster than any change to the offer.

The coverage threshold shows whether a channel makes money on the first basket; required repeat orders compared with the shop’s history show when it will. The pre-season budget grows where both calculations add up.

DataOrganizer

New customer CAC from shop data in DataOrganizer

The calculation from the previous sections needs several sources at once: shop orders with a customer identifier, the cost of goods, spend from all advertising platforms and, for the channel view, purchases by channel from GA4. DataOrganizer combines them in a single data model: the order table (with order_customer_id and email_hash), order_product lines, product_cost, the cost_* tables from every connected platform and GA4 data. This removes the need to export dashboards or stitch spreadsheets together (more on why sources should be combined in the guide to automated e-commerce analytics).

Data is daily and refreshes each morning with the full previous day. CAC and coverage are best read over a monthly or weekly window, as a single day has too few new customers for the metric to be stable. The first order is determined across the entire order history in the data, so the longer the history, the fewer returning customers pass as new.

A monthly review of acquisition cost looks like this in the chat:

AI assistant DataOrganizer app
connected sourcesSeptember
How much does a new customer cost me in each channel, and does the first order cover that cost? Also work out how many repeat orders are needed to pay it back.
AI
Identifying first orders in the shop and estimating the channel split from GA4 and platform spend…
AI

September: 960 new customers in the shop’s orders, spend of €18,000 across four platforms. First-order margin calculated from first-basket lines (order_product × product_cost) minus an estimated €3.75 of variable costs gives €12 on average; channel CAC is an estimate: platform spend divided by new-user purchases that GA4 credits to the channel. Repeat orders to pay back = gap per customer / €13.75 margin on a returning order.

Channel (GA4)New-user purchases (GA4)Est. CAC, €1st order margin (shop avg), €CoverageRepeat orders to pay back
Google Ads55417.1512.000.700.37
Meta22524.4412.000.490.90
TikTok6331.7512.000.381.44
Criteo2050.0012.000.242.76
Organic and other147–12.00––
Shop total (orders)96018.7512.000.640.49

Overall: coverage of 0.64 and a gap of €6.75 per customer, i.e. 0.49 additional orders for every new customer. Your history: 38% of new customers return within 6 months, with an average of 1.3 orders per returning customer, which gives 0.49; acquisition therefore pays back after about six months.

Channels (estimate from GA4 and panels; 1,009 new-user purchases in GA4 against 960 new customers in orders): Google Ads (0.70) falls within the “profitable after repeat orders” zone. Meta (0.49) and TikTok (0.38) are below the 0.6 threshold and would need 0.90 and 1.44 repeat orders respectively, more than the shop average. Criteo (0.24) works mainly on returning customers, so its CAC is inflated by nature; this channel is better assessed by its remarketing role and the shop-wide MER.

Next question: how did new customers from each of the last six monthly cohorts return, and how did the channel spend mix differ in those months?
First orders by email_hashcost_* spend per channelMargin from product_cost

Channel figures are an estimate from GA4 and the ad platforms. New customers, first-order margin and total coverage come from the shop’s orders, while the channel view uses new-user purchases attributed in GA4 and spend from the cost_* tables; advertising cost is not split across products, because cost per product exists only for Google Shopping. Raw data stays in the backend, the assistant works on aggregates, and the same question can be asked in Claude or ChatGPT via DataOrganizer MCP.

Methodological note: the figures in the examples are illustrative (a children’s products shop, September, net amounts). The channel breakdown is an estimate: new-user purchases come from GA4, which counts devices and credits purchases according to its attribution model, so channels that start the path, such as Meta and TikTok, may look more expensive than they are; panel figures are worth treating as a second view. Variable costs of €3.75 per order are an estimate, and the calculation does not account for product returns, as DataOrganizer has no returns data; with a high return rate, it is worth reducing the first-order margin by your own estimate.

Key takeaways

CAC is calculated from shop orders and the costs of all channels, and assessed against the first-order margin. The difference between them shows how many repeat orders the shop has to buy: in the September example, a gap of €6.75 per customer, i.e. 0.49 additional orders, which the shop’s history recovers after about six months.

Methodological note: the figures in the examples are illustrative (a children’s products shop, September, net amounts), the variable costs of the first order are estimates, and the channel breakdown is an estimate based on new-user purchases in GA4 and platform spend, while new customers and margin come from the shop’s orders as a whole. The calculation does not account for returns, and correctly identifying a new customer requires at least 12–24 months of order history; with a shorter history, some regular customers look like new ones and understate CAC.

Key takeaways

Customer acquisition cost is calculated from shop orders and spend across all channels, and assessed against the first-order margin. The difference between these two figures shows how many repeat orders the shop has to buy before acquisition starts to make money.

FAQ

Frequently asked questions about customer acquisition cost

How do you calculate customer acquisition cost in e-commerce?

CAC is total advertising spend across all channels divided by the number of new customers, i.e. people whose first order in the shop’s history falls within the period analysed. Example: €18,000 / 960 new customers = €18.75. It is also worth calculating an acquisition-only variant excluding brand and remarketing campaigns (here €14,400 / 960 = €15), as the real cost lies between these values.

How does CAC differ from cost per conversion (CPA)?

CPA divides spend by all orders or conversions, including those from returning customers, so it understates the cost of acquiring a new buyer: in the example, €18,000 / 2,400 orders gives €7.50 instead of a €18.75 CAC. CPA from ad platforms is also based on conversions attributed by the platform, which can be duplicated across channels; CAC is calculated solely from the shop’s orders.

What is a good CAC for an online shop?

There is no universal figure, because CAC is assessed against the first-order margin, i.e. the coverage ratio (first basket margin / CAC). Coverage of 1.0 or more means profit from the first order, the 0.6–1.0 range means profit provided customers return, and a result below 0.6 means a subsidy on every new customer, which requires evidence from return history or a change to the entry offer.

Can CAC be higher than first-order margin?

Yes, and in many shops it is the norm, provided the gap is recovered from subsequent orders. The number of returns needed is the gap divided by the margin on a returning order: with a gap of €6.75 and a margin of €13.75, this comes to 0.49 additional orders per new customer. Whether the shop actually achieves this is shown by the return cohorts described in the guide to customer lifetime value (LTV).

How do you tell a new customer from a returning one in shop data?

A new customer is one whose first order in the shop’s entire history falls within the period analysed; they are identified by customer ID, and guest purchases by a hashed email address, excluding cancelled and unpaid orders. New users in GA4 (first_visit) count devices and visitors, so they cannot replace this definition. DataOrganizer stores orders with order_customer_id and email_hash alongside channel spend, so the assistant identifies first orders and CAC without exporting to a spreadsheet.

Summary of the whole guide

Customer acquisition cost in three steps

1. 1. CAC from shop orders and all costs. The numerator is spend across all channels; the denominator is customers placing their first order in the shop’s history. Cost per order and platform-reported conversions understate the result because they mix new and returning customers.

2. 2. Coverage by first basket margin. The contribution margin of the first order divided by CAC shows what share of the cost is recovered immediately. The gap divided by the margin on a returning order tells you how many returns must happen before the customer becomes profitable.

3. 3. The calculation on connected data in DataOrganizer. Orders with customer IDs, product purchase costs, spend from all connected platforms and GA4 data are in one place, refreshed every morning. CAC, coverage and required returns for the whole shop, plus a channel estimate from GA4, take one question in the chat instead of stitching exports together.


DataOrganizer · customer acquisition cost

Calculate CAC on your own orders

Connect your shop and ad platforms: new customers from first orders, CAC for the whole shop with a channel estimate from GA4, first basket margin and required returns are calculated from your data. Self-service setup, no developer needed; you pay for connected sources.