Check out our AI Agent.Learn more
How to calculate ROAS: a step-by-step guide for media buyers
Learn how to calculate ROAS manually, find it inside Meta Ads Manager, TikTok, and Google Ads, and know when to switch from spreadsheets to automated tracking.
Learn how to calculate ROAS manually, find it inside Meta Ads Manager, TikTok, and Google Ads, and know when to switch from spreadsheets to automated tracking.
The ROAS calculation in 30 seconds
ROAS stands for Return on Ad Spend. The formula is simple:
ROAS = Revenue from Ads / Ad Spend
Spend $2,000 on ads and generate $8,000 in revenue. Your ROAS is $8,000 / $2,000 = 4.0x. That means every dollar you spent returned four dollars in revenue.
You can express ROAS as a multiplier (4.0x) or a percentage (400%). Both mean the same thing. Most media buyers use the multiplier format.
That's the entire formula. For a deeper breakdown of variations and edge cases, read our full guide on the ROAS formula.
Step 1: Gather your numbers
Before you can calculate anything, you need two numbers: revenue and ad spend. Getting them right matters more than the math itself.
What counts as "revenue"
This depends on your business model:
- E-commerce: Total purchase value attributed to ads. Use the value your pixel or conversion API reports. If a customer buys a $120 product after clicking your ad, that's $120 in revenue.
- Lead generation: Assign a dollar value to each lead. If one in ten leads converts to a $5,000 deal, each lead is worth $500.
- Subscription / SaaS: Use first-payment value for short-term ROAS, or customer lifetime value (LTV) for long-term ROAS. A $50/month subscription with 8-month average retention = $400 LTV.
Pick one definition and stick with it. Mixing purchase value and LTV in the same report makes your numbers meaningless.
What counts as "ad spend"
At minimum, include the amount the ad platform charged you. That's your media spend.
Some teams also include:
- Agency fees or management costs
- Creative production costs
- Software and tool subscriptions
Including these gives you a more realistic picture (sometimes called "total ROAS" or "loaded ROAS"), but it makes platform-level comparisons harder. For most day-to-day optimization, use platform media spend only.
Step 2: Calculate ROAS manually
Here's a worked example. Say you're running three campaigns on Meta last month:
| Campaign | Ad Spend | Revenue | ROAS |
|---|---|---|---|
| Prospecting — Lookalike | $4,200 | $12,600 | 3.0x |
| Retargeting — Cart Abandoners | $1,800 | $9,000 | 5.0x |
| Broad — Interest Stacking | $3,000 | $6,600 | 2.2x |
| Total | $9,000 | $28,200 | 3.13x |
Each campaign's ROAS is revenue divided by spend. The total ROAS is total revenue ($28,200) divided by total spend ($9,000) = 3.13x.
Notice the retargeting campaign has the highest ROAS at 5.0x. That's common — retargeting audiences are warmer. But it only spent $1,800. The prospecting campaign drove more total revenue despite the lower ROAS. Both numbers matter.
Want to skip the spreadsheet? Plug your numbers into our ROAS Calculator and get instant results.
How to find ROAS in Meta Ads Manager
Meta calculates ROAS for you, but you need to add the right column to your reporting view.
Adding the ROAS column
- Open Meta Ads Manager and navigate to your Campaigns, Ad Sets, or Ads tab.
- Click the Columns dropdown (next to the search bar).
- Select Customize Columns.
- Search for "ROAS" in the search field.
- Check the box for Purchase ROAS (or Website Purchase ROAS if your conversions happen on your site).
- Click Apply.
Purchase ROAS vs website purchase ROAS
These are different metrics:
- Purchase ROAS tracks revenue from purchases completed within Meta's platform — like checkout through Instagram Shops or Facebook Commerce.
- Website Purchase ROAS tracks revenue from purchases on your website, reported via the Meta Pixel or Conversions API.
If you're sending traffic to your own store, website purchase ROAS is the one you want.
Tips for accurate Meta ROAS
- Check your attribution window. Meta defaults to 7-day click, 1-day view. That means a purchase 6 days after a click gets attributed to the ad, and so does a purchase within 24 hours of viewing (without clicking). Compare results under 7-day click only to see click-attributed ROAS.
- Verify your pixel fires correctly. If your purchase event doesn't pass the correct value parameter, ROAS will be wrong. Check in Events Manager under the "Test Events" tab.
- Use Conversions API alongside the pixel. Browser tracking is increasingly unreliable due to iOS privacy changes and ad blockers. The Conversions API sends data server-side and improves match rates.
How to find ROAS in TikTok Ads Manager
TikTok doesn't show ROAS by default. You need to customize your column set.
Adding the ROAS column
- Log in to TikTok Ads Manager and go to the Campaign tab.
- Click the Custom Columns button above the data table.
- In the column selector, look under Conversions (or App if you're tracking in-app events).
- Find and check Complete Payment ROAS for website conversion campaigns, or ROAS (Shop) for TikTok Shop campaigns.
- Click Confirm to save.
Key differences from Meta
- TikTok's default attribution window is 7-day click, 1-day view — same as Meta, but TikTok attributes slightly differently under the hood.
- TikTok Shop campaigns have their own ROAS metric: ROAS (Shop), based on gross revenue from TikTok Shop orders attributed to your ads.
- TikTok splits some app metrics into "Day 0" values (same-day conversions) and broader windows. For standard website ROAS, use the Complete Payment ROAS column.
Tips for accurate TikTok ROAS
- Make sure your TikTok Pixel or Events API passes the
valueandcurrencyparameters with every purchase event. - Cross-check reported revenue against your order management system. TikTok's attribution can be generous.
- If your numbers look inflated, switch to a 1-day click attribution window for a more conservative view.
How to find ROAS in Google Ads
Google Ads calls ROAS by a different name in its reporting columns.
The "Conv. value / cost" column
- Open Google Ads and navigate to any campaign, ad group, or keyword view.
- Click the Columns icon (looks like three vertical bars) and choose Modify columns.
- Expand the Conversions section.
- Add Conv. value / cost to your column set.
- Click Apply.
This column displays your ROAS as a decimal. A value of 3.60 means 3.6x ROAS — every dollar spent returned $3.60 in conversion value.
Important formatting note
Google Ads displays ROAS differently depending on context:
- Reporting columns: Shown as a decimal (e.g., 3.60).
- Target ROAS bid strategy: Entered as a percentage (e.g., 360%).
Both represent the same thing. Don't confuse 360% target ROAS with 3.6x actual ROAS — they're identical.
Segment by conversion action
If you track multiple conversion types (purchases, sign-ups, phone calls), your conv. value / cost column blends all of them. To isolate purchase ROAS:
- Click the Segment button above your data table.
- Select Conversions > Conversion action.
- Each row now splits into sub-rows by action type, so you can see purchase ROAS separately.
Manual calculation vs automated tracking
When manual works
A spreadsheet is fine when:
- You run ads on one platform only.
- You have fewer than 10 active campaigns.
- You check performance weekly, not daily.
- You don't need real-time alerts.
Export your spend and revenue data, apply the formula in a column, and you're done. Simple and transparent.
When manual breaks down
Manual tracking stops working when:
- You run ads across Meta, TikTok, and Google simultaneously. Exporting and merging three CSVs weekly gets tedious fast.
- You scale past 20-30 campaigns. The time to update the spreadsheet exceeds the time to analyze it.
- You need real-time decisions. A campaign burning budget at 0.8x ROAS for three days before your weekly check costs real money.
- You need to compare cross-platform performance in one view. Platform-reported ROAS uses different attribution models, making apples-to-apples comparison impossible in raw exports.
The automated alternative
Tools like Rule1 track ROAS in real time across Meta and TikTok in a single dashboard. Instead of exporting CSVs, you see spend, revenue, and ROAS side by side with trend charts that update automatically.
Rule1 also supports custom hit rate rules — for example, you can set a threshold like "flag any ad with ROAS below 2.5x after $200 in spend." The system evaluates every ad against your rule and marks it as a hit or miss instantly. No manual checking required.
For a deeper look at real-time ROAS monitoring, see our ROAS Analytics feature page.
When your ROAS numbers don't match
You calculated ROAS manually and got 3.2x. Meta says 4.1x. Your Shopify dashboard says 2.8x. Welcome to the attribution gap.
Why platform ROAS is usually higher than actual ROAS
View-through conversions. If someone sees your ad (but doesn't click) and buys within 24 hours, Meta counts that as an ad-driven purchase. Your backend has no way to know they saw the ad.
Attribution windows inflate results. A 7-day click window means a purchase on day 6 gets attributed to the ad. Some of those buyers would have purchased anyway.
Cross-platform overlap. A customer clicks your Meta ad on Monday, your Google ad on Wednesday, and buys on Thursday. Both platforms claim the full purchase. Your actual revenue is counted once, but platform-reported revenue is counted twice.
How to reconcile
- Pick one source of truth for revenue. Your e-commerce backend (Shopify, WooCommerce, your database) is the most reliable source. Use it as the denominator.
- Use consistent attribution windows. Compare platforms using the same window (e.g., 7-day click only, no view-through) to reduce inflation.
- Accept that platform ROAS is directional. Use it to compare campaigns within a platform, not as an absolute profit number.
- Calculate blended ROAS. Total backend revenue / total ad spend across all platforms. This gives you one honest number.
Understanding what constitutes a good ROAS for your industry and margins helps you set realistic benchmarks regardless of which number you use.
You can also use our Break-Even ROAS Calculator to determine the minimum ROAS you need to cover costs — calculated as 1 / gross margin. If your gross margin is 40%, your break-even ROAS is 2.5x. Anything above that is profit.
Related resources
- ROAS Calculator — plug in your spend and revenue for an instant ROAS calculation
- ROAS Formula — detailed breakdown of the formula, variations, and examples
- What Is a Good ROAS? — benchmarks by industry and how to set targets
- Break-Even ROAS Calculator — find the minimum ROAS you need to stay profitable
- ROAS Analytics — real-time ROAS tracking across your ad platforms
Ready to get started?
See how rule1 can transform your ad analytics and help you find winners faster.