ROAS Calculator
ROAS means return on ad spend. To get it, divide the revenue from your ads by what you spent on those ads. Spend $2,500 and make $10,000 in sales, and your ROAS is 400%. That's $4.00 back for every $1 you spend. Type your own numbers below. Add your gross margin to see if that ROAS makes money or loses it.
Pawel Wilk, founder of PerfoAds and Google Ads specialist.
Your numbers
What you spent on ads in the period, like the last 30 days.
In Google Ads this is your conversion value.
The share of each sale you keep after paying for the product.
We'll show the sales you need at your ad spend.
Results
How to use this ROAS calculator
- Enter your ad spend for a set period, like the last 30 days.
- Enter the revenue those ads brought in. In Google Ads this is your conversion value: the sales Google Ads tracked from your ads.
- Optional: enter your gross margin. That's the share of each sale you keep after paying for the product. A $100 sale with a $60 product cost has a 40% margin.
- Optional: enter a target ROAS. You'll see the sales you need at your spend to hit it.
The formula is ROAS = revenue from ads / ad spend x 100%. Google uses the same math for Target ROAS bidding, the bid setting where you tell Google the return you want. $5 in sales for $1 of spend is a 500% target.
3 worked examples
Example 1: a simple ROAS. You spend $2,500 on Google Ads in a month. Your conversion value is $10,000. $10,000 / $2,500 = 4. Your ROAS is 400%, or $4.00 per $1.
Example 2: sales needed for a target. You plan to spend $1,200 next month. You want a 500% ROAS. $1,200 x 5 = $6,000. Your ads need to bring in $6,000 in sales.
Example 3: a 300% ROAS that loses money. You spend $1,000 and make $3,000 in sales. That's a 300% ROAS, which sounds fine. Your gross margin is 25%, though. So $3,000 in sales leaves you $750 after product costs. Take away the $1,000 you paid for ads and you're $250 down. At a 25% margin you need a 400% ROAS just to break even.
What is a good ROAS?
A good ROAS is any ROAS above your break-even point. No single number fits every shop. Your margin sets the line.
Break-even ROAS = 1 / gross margin. At a 40% margin that's 1 / 0.40 = 2.5, so 250%. Below 250% your ads cost more than the sales earn you. Above it you keep some profit.
Here's how that plays out. A shop with a 40% margin spends $1,000 and gets a 300% ROAS. That's $3,000 in sales and $1,200 left after product costs. Minus the $1,000 in ads, the shop keeps $200. It's the same 300% ROAS as Example 3, and this time it makes money.
This line leaves out other costs like shipping, payment fees and staff. Take those out of your margin if you want a stricter line.
When your ROAS number lies
The calculator is only as good as the revenue you type in. If you copy it from Google Ads, check these 4 things first. Each one makes Google Ads show more sales than your store really got.
1. The same order is counted twice
A conversion action is 1 thing Google Ads tracks, like a purchase. Many shops end up with 2 purchase actions. Often 1 tag was added by hand and a store app later added a second. Google Ads drops a repeat only when it arrives for the same conversion action with the same transaction ID. The transaction ID is your order number. 2 separate purchase actions each report the order. If both are set to Primary, both count in your Conversions column. Your ROAS can look close to double.
To check, compare your Google Ads conversion value with your store's sales from Google Ads for the same 30 days.
2. Add to cart is set as a Primary conversion
A Primary conversion action counts in your Conversions column and can steer your bids. A Secondary action only shows in the All conversions column (Google's guide). If Add to cart is Primary and carries a value, every cart adds to your revenue. Most carts never turn into orders. So Google Ads reports sales that never happened. Set Add to cart to Secondary.
3. Video views count as sales in Demand Gen and Performance Max
Demand Gen and Performance Max are Google campaign types that can show your ads on YouTube. They can count a sale after someone watched your video ad and didn't click. Google calls this an engaged-view conversion. Say a person watches 10 seconds of a skippable YouTube ad, doesn't click, and buys later that day. Google puts that sale in your Conversions column. For these 2 campaign types Google's default window is 1 day, and you can set it longer. In Demand Gen, view-through conversion bidding can also add sales after a plain ad view. Google says your own store data won't show these, so the 2 numbers won't match.
Some of these sales are real. The ad may have helped. The person might also have bought anyway. In Google Ads, open Segments, then Conversions, then Ad event type. The Clicks row shows the sales that came from a click. Check that ROAS before you raise a budget.
4. Tax and shipping are inside the revenue
Google Analytics' purchase event guide says the order value should leave out tax and shipping. Some store tags send the full order total instead. On a $100 order with $20 tax and $10 shipping, the tag can report $130. That's 30% more than you made from the products. Your margin only applies to the $100, so your ROAS looks better than it is.
Before you use the calculator, take tax and shipping out of the revenue. Or count them in your margin.
Want your real ROAS from your live account?
A PerfoAds audit reads your Google Ads account and flags 3 of the problems above: 2 Primary purchase actions, Add to cart set as Primary, and campaigns where many conversions come from people who saw the ad and didn't click.
Start the audit: $149/mo per accountUp to 10 accounts, $149 each · Cancel anytime
Other calculators
Google Ads ROI Calculator
Adds net profit and ROI % to your ROAS, so you see the dollars you keep.
Open calculatorCPA Calculator
Find the most you can pay for 1 sale or lead and still make money.
Open calculatorCPC Calculator
Turn order value and conversion rate into a max bid per click.
Open calculatorBreak-Even ROAS Calculator
Build your margin from shipping, fees and returns for a stricter line.
Open calculator