How to calculate ROAS and cost per buyer

4 min read

Short answer

ROAS is revenue divided by ad spend, and cost per buyer is ad spend divided by the people who bought. A campaign pays for itself when its ROAS is above 1 divided by your gross margin, which is 2.5 at a 40% margin.

Two numbers tell you whether a campaign earns its budget. ROAS, return on ad spend, is revenue divided by ad spend. Cost per buyer is ad spend divided by the people who bought. Your gross margin turns both into a line: above it the campaign pays for itself, below it the ads cost more than the orders earn.

How do you calculate ROAS?

Divide the revenue a campaign brought by what it cost:

ROAS = revenue ÷ ad spend

In the sample shop, Acme Shop, Google Ads cost €312.40 over the last 30 days and brought €2,870 in revenue. €2,870 ÷ €312.40 = 9.19, so the ROAS is 9.2: every euro of spend came back as about €9.20 of revenue. Some tools write the same figure as a percentage, about 920%.

How do you calculate cost per buyer?

Divide the spend by the buyers it brought:

Cost per buyer = ad spend ÷ buyers

A buyer is a person who bought in the period, counted once however many orders they placed. The sample shop’s Google Ads brought 41 buyers, so €312.40 ÷ 41 = €7.62 per buyer.

The two numbers are linked through revenue per buyer. €2,870 ÷ 41 = €70 per buyer, and €70 ÷ €7.62 gives the ROAS of 9.2 again. Cost per buyer tells you what a customer costs; ROAS tells you whether their orders pay that back. Cost per buyer is not the same as the cost per conversion Google Ads shows, which divides by conversions instead of people; how to see your Google Ads cost per buyer explains the difference.

What ROAS do you need to break even?

One divided by your gross margin:

Break-even ROAS = 1 ÷ gross margin

Gross margin is the share of revenue left after the cost of the goods, and ideally after shipping, payment fees and returns as well.

Gross margin Break-even ROAS
20% 5.0
25% 4.0
40% 2.5
60% 1.7

The same line exists for cost per buyer. The most you can pay for a buyer is revenue per buyer times margin. At a 40% margin, a buyer worth €70 in revenue leaves €28, and the sample shop pays €7.62.

What does that look like per campaign?

The sample shop’s three campaigns over the last 30 days:

Campaign Spend Buyers Revenue ROAS Cost per buyer
Shopping · merino €151.60 19 €1,310 8.6 €7.98
Brand search €84.20 17 €1,240 14.7 €4.95
Performance Max €76.60 5 €320 4.2 €15.32

At a 40% margin the break-even ROAS is 2.5, and all three campaigns clear it. Performance Max’s €320 of revenue leaves €128 of margin against €76.60 of spend, €51.40 before other costs. At a 20% margin the line moves to 5. The same €320 then leaves €64 against €76.60 of spend, a loss of €12.60, although a ROAS of 4.2 sounds healthy.

Why is ROAS on revenue not profit?

Because revenue is not what you keep. It includes the cost of the goods, shipping and payment fees, and, depending on what you send, VAT. Refunds and returns arrive later. And a 30-day ROAS counts the orders in those 30 days: a customer who comes back next quarter adds nothing to it, so a campaign that finds loyal customers is worth more than its ROAS shows.

Decide once whether the revenue you send includes VAT and shipping, and calculate the margin on the same basis. The profit left after ads is revenue times margin minus spend: for the sample shop at 40%, €2,870 × 0.4 − €312.40 = €835.60.

Why are currencies never mixed?

Because €1,000 and CHF 1,000 do not add up to anything meaningful, and exchange rates change every day. A shop that sells in euros and Swiss francs has two revenue totals, and each ROAS needs spend and revenue in the same currency. Converting at one rate hides the movement of the other.

How do you check your own numbers?

Take spend from the ad account, and buyers and revenue from your own purchase events rather than the platform’s conversions, for the same period. The free ROAS calculator works out ROAS and cost per buyer from those figures. Why the platform’s own numbers run higher is covered in why Google Ads reports more sales than your shop.

Where does MIRA FIVE show ROAS and cost per buyer?

On Acquisition › Ads, once Google Ads is connected under Data → Sources. Each campaign shows its spend, clicks, cost per visit, buyers, revenue, ROAS and cost per buyer, with spend imported daily and joined to visits by utm_campaign or gclid. Revenue comes from your purchase goal, read from the event’s revenue property or a property the goal names, per currency; ROAS divides only amounts in the same currency. Buyers and revenue go to the buyer’s first visit, or under last touch to the last outside visit before the purchase, and a buyer credited to two campaigns counts on both rows but once in the total. Buyers need visitors who consented. Margin stays with you, so the break-even line is yours to draw.

Questions and answers

What is a good ROAS?
One above your break-even ROAS, which is 1 divided by your gross margin. At a 40% margin that is 2.5, at 25% it is 4. An industry average says little about your own shop.
Is ROAS the same as ROI?
No. ROAS compares revenue with ad spend. ROI compares profit with everything the campaign cost, so a ROAS of 3 can still lose money.
How does MIRA FIVE handle several currencies?
It keeps them apart. Revenue is shown per currency and never summed, and ROAS divides only revenue and spend in the same currency.
Where does the revenue in the ROAS come from?
From your own purchase events. MIRA FIVE reads the event's revenue property, or a property the goal names, so ROAS rests on the orders you recorded rather than a platform's conversion value.

Read next

How to see your Google Ads cost per buyer

Google Ads cost per buyer divides spend by the people who paid, not by the conversions Google counts. How MIRA FIVE joins spend to visits and shows ROAS.

Why Google Ads reports more sales than your shop

Why Google Ads and Meta report more conversions than your shop has orders, from view-through to modeling and double counting, and how to count each buyer once.

How to set up a purchase goal

Set up conversion tracking with a purchase goal, revenue read from your events, one total per currency, and the time from first visit to paid plan.

Related terms

All guides

See which channel brings buyers

Free for 25,000 events a month. No card needed.