Frustrated about whether your marketing budget is actually bringing in results?
Stop guessing and start measuring the actual results with our Return on Marketing Investment/ROMI Calculator.
If you’re spending money on Google Ads, Meta, or any other channel, you’ve got one question that matters more than CTR, CPC, or even ROAS: is this campaign actually making the business more money than it’s costing? Specifically, that’s what ROMI tells you — and the calculator below works it out from five numbers you already have.
What is ROMI (Return on Marketing Investment)?
ROMI is the percentage of profit you earn back for every dollar you put into marketing, after stripping out sales that would’ve happened anyway. Most marketers confuse it with ROAS (Return on Ad Spend), but the two answer different questions. ROAS is a top-line ratio that ignores product cost and treats every sale as new revenue. However, ROMI is the honest version. It pulls out your Cost of Goods Sold, subtracts the baseline you’d have hit without the campaign, and divides what’s left by what you spent.
The formula our calculator uses is:
ROMI = ((Campaign Revenue − Campaign CoGS) − (Baseline Revenue − Baseline CoGS)) ÷ Marketing Cost
A ROMI of 1.5 (or 150%) means every dollar of marketing spend generated $1.50 in incremental gross profit. However, a ROMI below zero means the campaign is losing money once you factor in production cost and what your store would’ve earned on autopilot. If you’ve never run a baseline comparison before, this is usually where the uncomfortable conversations start.
How do you calculate ROMI step by step?
Pull these five numbers from your ad platform and your finance team:
1. Campaign Revenue. Total revenue attributed to the campaign during the measurement window. Specifically, in Google Ads, pull the Conversion Value column. In Meta, use Purchase Conversion Value. For lead-gen campaigns, count closed-deal revenue, not pipeline.
2. Campaign CoGS. Cost of producing or sourcing the products that were sold. For physical goods, this includes manufacturing, fulfillment, and platform fees (Amazon referral, Shopify transaction fees). For services, however, the delivery cost covers contractor time, software licenses tied to delivery, and anything that scales with sales.
3. Marketing Cost. Not just media spend. Add agency fees, creative production, landing-page builds, attribution software, and a fraction of the in-house team’s time if they worked on this campaign. Notably, most ROMI numbers floating around the internet skip this step, which is why they look better than they actually are.
4. Baseline Revenue. What you’d have earned in the same window without running the campaign. The cleanest approach is to look at a matched prior period: the same days of the week, similar season, no other major promotions. Additionally, for new campaigns, use a holdout audience if your platform supports it (Meta has Conversion Lift, Google has Geo Experiments).
5. Baseline CoGS. The cost of goods sold for that baseline revenue. Simply apply your average gross margin to arrive at the right number.
Drop those five numbers into the calculator and you’ll get three outputs: ROMI as a percentage, ROMI as a ratio, and the actual dollar value of incremental profit the campaign generated.
ROMI calculation example with real numbers
A skincare brand spent $8,000 on a Meta campaign in March. The campaign drove $50,000 in attributed revenue. However, the products carried 40% COGS, so $20,000 went to manufacturing and fulfillment. In February (the comparable baseline), the same store did $30,000 in revenue with $12,000 in COGS, all from organic and email.
Plug it in:
- Campaign gross profit: $50,000 − $20,000 = $30,000
- Baseline gross profit: $30,000 − $12,000 = $18,000
- Incremental gross profit: $30,000 − $18,000 = $12,000
- ROMI: $12,000 ÷ $8,000 = 1.5 or 150%
The Meta campaign produced $1.50 in real, incremental profit for every $1 spent. Compare that to the ROAS reading inside Meta Ads Manager, which would’ve shown 6.25x and looked spectacular — until you remembered that $18,000 of that revenue was going to happen regardless. Indeed, this gap between reported ROAS and actual ROMI is the single most common reason e-commerce brands scale themselves into losses.
What is a good ROMI?
The number that gets quoted in every blog post is 5:1, but it’s a lazy benchmark. A 5:1 ratio means a 400% ROMI, and most channels don’t hit it on a fully-loaded basis. For example, here’s what we actually see across the 500+ ecom and lead-gen accounts we’ve audited:
| Channel | Realistic ROMI Range | What “good” looks like |
|---|---|---|
| Email (existing list) | 800% to 3,600% | 10:1 ratio or higher. Costs are near zero. |
| Google Search (branded) | 500% to 2,000% | 6:1 to 20:1. Brand demand is already there. |
| Google Search (non-brand) | 150% to 500% | 2.5:1 to 6:1 after a 90-day learning period. |
| Meta (cold prospecting) | 50% to 250% | 1.5:1 to 3.5:1. Iteration on creative matters more than budget. |
| Meta (retargeting) | 300% to 1,000% | 4:1 to 11:1, but watch incrementality, not just ROAS. |
| SEO (organic content) | 200% to 1,500% | 3:1 to 16:1 once content compounds, often 12+ months in. |
| Display / programmatic | -20% to 150% | Mostly assists. Don’t judge in isolation. |
What matters more than the absolute number is the trend. A campaign moving from 80% to 180% ROMI over 90 days is more valuable than one stuck at 400% with no growth. However, if you’re consistently below 100%, the marketing is costing more than it’s bringing in, and something needs to change before you scale spend.
ROMI vs ROI vs ROAS: what’s actually different?
Three letters apart, three different jobs.
ROAS (Return on Ad Spend) is the simplest: revenue divided by ad spend. A 4x ROAS means $4 in revenue for every $1 in ad spend. It’s useful for in-platform optimization, but it lies about profit because it ignores COGS, agency fees, and the fact that some sales were already coming. Specifically, it leaves baseline revenue completely out of the equation.
ROMI takes ROAS, subtracts COGS to get to gross profit, subtracts baseline sales to isolate the incremental lift, and includes all marketing costs — not just media. It’s, therefore, the metric you should report to the CEO.
ROI is the broadest measure: total return on any business investment, marketing or otherwise. New warehouse, new hire, new platform, new ad campaign — all of those have ROI. In essence, ROMI is simply the marketing-specific subset.
Run our ROAS calculator to get the ad-spend ratio, then come back here for the profitability picture. Both numbers tell you something. Looking at just one, however, is how brands end up scaling unprofitable campaigns.
Why baseline revenue is the part everyone skips
Most ROMI calculators on the internet skip baseline revenue entirely. They take total campaign revenue, subtract marketing cost, divide, and call it a day. That math works fine for a brand-new business with no organic demand, but it breaks the moment you have repeat customers, email, organic search, or word of mouth.
Here’s why it matters. Say your store does $30,000 a month in organic revenue. You then spend $10,000 on a Google Ads campaign and your monthly revenue jumps to $50,000. The naive ROMI says ($50,000 − $20,000 COGS − $10,000 spend) / $10,000 = 200%. The honest ROMI, however, says ($30,000 incremental gross profit − $18,000 baseline gross profit) / $10,000 = 120%. Same campaign, two very different stories. The 200% number lets you scale into trouble. The 120% number tells you to optimize before you increase budget.
If you can’t establish a clean baseline (new account, no historical data, big seasonal swings), there are two workarounds. First, run a geo holdout: pause ads in one region for a full sales cycle and use that as your baseline. Alternatively, use platform-native incrementality tools like Meta’s Conversion Lift and Google’s Geo Experiments. Set Baseline Revenue and Baseline CoGS to 0 in the calculator if you’re computing gross-profit ROMI without an incrementality control.
Common mistakes that inflate your ROMI
Five errors we see almost every time we audit a new account:
Counting platform-reported revenue at face value. Meta and Google both attribute conversions on their own terms, with their own lookback windows, and the numbers double-count when you run both platforms simultaneously. Consequently, always reconcile against your store backend (Shopify, Magento, custom) before you calculate.
Skipping agency and software fees. A $10K ad budget with a $2K agency retainer and $300 in tooling is a $12,300 marketing cost. Yet reporting on $10K alone inflates ROMI by 23%.
Using revenue instead of gross profit. A clothing brand with 60% COGS and 5x ROAS isn’t running a 400% return campaign. It’s running a 100% return campaign before factoring shipping. Always work in gross profit unless you genuinely have no product cost.
Forgetting returns. Apparel, beauty, and furniture brands sometimes see 20% to 40% return rates. Consequently, if you’re calculating ROMI from raw conversion data, you’re probably 15% to 25% overstated. Use net revenue, not gross.
Mixing time windows. Marketing cost was for March, but you’re counting April sales because of attribution windows. Instead, pick a window, stick to it, then run a separate analysis if you want to see lag effects.
When you should use CLV-based ROMI instead
If you sell subscriptions, run a SaaS product, or have high repeat-purchase rates, the basic ROMI formula understates what good campaigns are doing. Specifically, a campaign that breaks even on the first purchase might be 5x profitable across a customer’s first year.
The CLV-adjusted version is:
ROMI (CLV) = ((New Customers × Average CLV) − Marketing Cost) ÷ Marketing Cost
You’ll need a defensible CLV number (12-month gross profit per customer, or 24-month if your retention is strong). Don’t use lifetime-lifetime — most brands overestimate it. Instead, use a known historical window. For instance, if your CLV is $400 and a campaign brought in 50 new customers at $8,000 cost, that’s ($20,000 − $8,000) / $8,000 = 150% CLV-ROMI, even if the first purchase was unprofitable.
This is where smart marketing teams justify higher acquisition costs. Our team used a CLV-based approach on a recurring household-goods brand to grow revenue 6x in three months without touching the front-end ROAS target. The first-order economics looked thin, but the LTV math made the case to keep scaling.
How to improve a ROMI that’s stuck below 100%
If your number is under 100%, there are usually five levers to pull before you cut spend:
Audit the offer, not just the ad. Creative often gets the blame, but a 7% landing page conversion rate beats a 2% one regardless of headline. Specifically, check the page experience first before touching ad spend.
Cut the bottom 30% of keywords or audiences. Pareto applies here. Specifically, look at the spend-to-revenue ratio at the keyword and audience level, not the campaign level, and pause anything below your break-even ROAS.
Calculate your break-even ROAS first. If you don’t know the floor, you can’t optimize toward profitability. The break-even ROAS calculator tells you the exact ROAS where ROMI hits zero. Anything above it is profit territory.
Switch from broad to specific. Broad audiences and broad-match keywords burn budget on irrelevant traffic. Narrow targeting, however, almost always lifts ROMI in the short term, even if it costs scale.
Fix attribution before scaling. Half the time, ROMI is fine and the measurement is broken. Instead, server-side tracking, GA4 conversion modeling, and a single source of truth between platforms and your backend fix more “underperforming” campaigns than creative refreshes ever will.
Why measure ROMI when you have ROAS in the platform?
Because ROAS lies to you about scaling decisions. We’ve audited e-commerce accounts running at 5x reported ROAS that were burning $30,000 a month once we built the full ROMI picture. The campaigns looked great in Meta Ads Manager, but the COGS was 60%, the baseline organic revenue was $80K/month being credited to ads, and the agency wasn’t reporting their own fees.
ROAS is your in-platform optimization metric. Bid against it inside the auction, set goals against it for campaign-level adjustments, run it as a daily dashboard. ROMI is your business metric. It’s what you take to the CEO, the board, and the budget meeting. The two should track in the same direction. When they don’t, the gap is where the money’s hiding.
Frequently asked questions about ROMI
Can ROMI be negative?
Yes, and it’s surprisingly common. A negative ROMI means the campaign cost more than the gross profit it produced. About 40% of the accounts we audit for the first time have at least one campaign running negative ROMI, usually because no one’s been calculating it properly. The fix is to pause the campaign and rebuild from break-even.
What’s the difference between gross ROMI and net ROMI?
Gross ROMI uses gross profit (revenue minus COGS), while net ROMI uses net profit (revenue minus COGS, overhead, taxes, everything). In practice, use gross ROMI for campaign decisions and channel comparisons. Then switch to net ROMI for annual reporting. Most marketing teams only ever need gross.
How often should you calculate ROMI?
Monthly at the channel level, quarterly at the campaign level. Daily ROMI is noise. Annual ROMI, on the other hand, is too late to act on. The monthly view catches drift early and gives you enough data volume to make real decisions.
Does ROMI work for B2B and long sales cycles?
Yes, but you have to track pipeline value, not closed revenue, in the short term. For B2B with 90-day or longer sales cycles, calculate pipeline ROMI weekly (pipeline value × close rate × average deal value, divided by marketing cost) and reconcile against closed-won revenue quarterly.
Why is my ROAS healthy but my ROMI terrible?
Three usual suspects. Your COGS is higher than you think (especially after shipping and returns). Your baseline revenue is significant and being credited to ads. Or your full marketing cost (agency, creative, tools) isn’t in the spend number you’re optimizing against. Run our calculator with honest inputs, then check which of those is the gap.
Should I include organic and email revenue in Campaign Revenue?
No. Campaign Revenue is the revenue directly attributed to the marketing campaign you’re measuring. Organic and email revenue belong instead in Baseline Revenue if they would’ve happened anyway, or in a separate ROMI calculation for those specific channels.
Ready to fix the campaigns where ROMI is hiding the truth?
Our team runs the same audit framework on every new account: full ROMI by campaign, channel, and product line, with baseline reconciliation and a 90-day improvement plan. We’ve used it to drive a 12.84x ROAS for ArmorPoxy, 9x ROAS for P-REX Hobby, and 280% more leads at 40% lower CPL for CMSC Driving School. If you’ve got an account that looks fine in the platform but doesn’t feel fine on the P&L, that’s usually where we start.








