::: callout-key-takeaways
Key Takeaways
- ROMI is the honest version of ROAS. ROAS measures revenue ÷ ad spend — a top-line ratio that ignores product cost. ROMI subtracts COGS, removes baseline sales, and divides by all marketing costs to tell you whether the marketing actually made the business money.
- Most published ROMI numbers are wrong. They skip COGS, baseline sales, and full marketing cost. A 4× ROAS campaign at 20% gross margin can be a negative ROMI once you do the math honestly.
- The formula has five inputs, not two. Campaign Revenue, Campaign COGS, Baseline Revenue, Baseline COGS, and Full Marketing Cost — the last one is what most calculators skip.
- A good ROMI depends on your channel. Email marketing median 3,600% ROMI (Improvado 2026); paid search median 200%; paid social median 175%; display median 200%. Judge against your own cost of capital, not a headline "5:1 is good" rule.
- Calculate ROMI monthly per channel, quarterly per campaign. Daily is noise. Annual is too late to act on. Use the free ROMI Calculator to run the numbers in under two minutes.
:::
The question every marketer eventually faces
You spent $10,000 on a Google Ads campaign. Revenue jumped from $30,000 a month to $50,000 a month. Your dashboard says 5× ROAS. The marketing looked successful on paper.
But your cost of goods is 40% of revenue. You had $18,000 in sales the month before without spending a dollar on ads. And your true marketing cost — including agency fees, attribution software, creative production, and a share of your in-house team's time — was $15,000, not $10,000.
Was the campaign actually profitable? The ROAS number says yes. The honest number says: maybe not.
That honest number is ROMI — Return on Marketing Investment. And it's the single metric that answers the question your CFO is eventually going to ask: did this marketing actually make us money?
What ROMI actually measures — and why it's different from ROAS
ROAS (Return on Ad Spend) = Revenue ÷ Ad Spend. It's a top-line ratio. A 4× ROAS means you generated $4 in revenue for every $1 spent on ads. That's useful for in-platform optimization — should I bid higher on this keyword? should I scale this ad set? — but it tells you nothing about profit. ROAS treats every dollar of revenue as equal, ignores the cost of the product you sold to generate that revenue, and divides by media spend alone.
ROMI (Return on Marketing Investment) = ((Revenue − COGS − Baseline) ÷ Marketing Cost) × 100. It's a profit metric. It subtracts the cost of goods to get to gross profit, removes the sales that would have happened anyway to isolate the incremental lift, and divides by everything it cost to run the marketing — not just the media bill.
The practical consequence: a campaign at 4× ROAS can be ROI-negative. $100,000 of media returning $400,000 of revenue looks excellent until you add $80,000 of salaries and tooling and apply a 40% gross margin — at which point $160,000 of gross profit against $180,000 of total cost is a loss [^5].
This is why ROMI and ROAS answer fundamentally different questions, and why you need both:
| Metric | Formula | Answers | Who uses it |
|---|---|---|---|
| ROAS | Revenue ÷ Ad Spend | Is this ad account working? | Media buyer, week-to-week |
| MER (Marketing Efficiency Ratio) | Total Revenue ÷ Total Marketing Spend | Is my channel mix working? | Marketing director, monthly |
| ROMI | ((Revenue − COGS) − Baseline) ÷ Total Marketing Cost × 100 | Did this marketing make us money? | CFO, quarterly |
Never treat ROAS and ROMI as interchangeable. They measure different things at different levels of rigor [^5]. A 5× ROAS campaign can have a negative ROMI. A 2× ROAS campaign with high-margin products and low baseline can have an excellent ROMI. The headline "5:1 is good" benchmark is closer to ROAS than ROMI [^7].
[^5]: Refinity.io, Marketing ROI Calculator — ROI vs ROAS vs ROMI distinction.
[^7]: MediaPlanningTool, Marketing ROI Calculator — CFO perspective on why ROI answers the real question.
The ROMI formula — five inputs, not two
The "ROMI" you see quoted in most blog posts and vendor case studies is usually just Revenue ÷ Ad Spend — which is ROAS in disguise. True ROMI has five inputs [^1]:
1. Campaign Revenue
Total revenue attributed to the campaign during the measurement window. In Google Ads, pull the Conversion Value column. In Meta, use Purchase Conversion Value. For lead-gen campaigns, count closed-deal revenue, not pipeline [^1].
2. Campaign COGS (Cost of Goods Sold)
The direct cost of producing or sourcing the products or delivering the services sold through the campaign. For physical goods, include manufacturing, fulfillment, and platform fees (Amazon referral, Shopify transaction fees). For services, include contractor time, software licenses tied to delivery, and anything that scales with sales [^1].
This is the input most marketers skip, and it's the one that causes the biggest distortion. A 4× ROAS campaign at 20% gross margin generates $4 in revenue per dollar spent, but after COGS that's $0.80 in gross profit per dollar — and after full marketing costs it could be negative [^3].
3. Baseline Revenue
What you would have earned in the same period 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 [^1].
4. Baseline COGS
The cost of goods sold for your baseline revenue. Apply your average gross margin to arrive at the right number, or use actual COGS from the matched prior period [^1].
5. Full Marketing Cost
This is the denominator that separates a real ROMI from a ROAS in disguise. Don't just enter ad spend — include agency fees, creative production, landing-page builds, attribution software, and a share of your in-house team's time if they worked on the campaign [^1].
On audited mid-market accounts, total marketing cost is typically 1.3× to 1.8× ad spend once you include tooling, team, and agency fees [^7-sourced]. A ROMI that divides by $10,000 instead of $15,000 inflates the result by 50% — and that's before you even get to COGS and baseline.
The full formula:
ROMI (%) = ((Campaign Revenue − Campaign COGS) − (Baseline Revenue − Baseline COGS)) ÷ Marketing Cost × 100
A concrete example — the same campaign, two different stories
Let's walk through a real e-commerce example. Your store does $30,000 a month in organic revenue. You spend $10,000 on a Google Ads campaign and monthly revenue jumps to $50,000 [^1]. Your COGS is 40% of revenue.
The naive calculation — the one most people use when they say "ROMI" — divides campaign revenue by ad spend:
$50,000 ÷ $10,000 = 5× ROAS
If you're feeling generous and subtract COGS but not baseline:
($50,000 − $20,000 COGS − $10,000 spend) ÷ $10,000 = 200% ROMI
The honest calculation — the one that factors in COGS, baseline sales, and full marketing cost:
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 ÷ $10,000 = 120%
Same campaign, two very different stories. The 200% number tells you to scale. The 120% number tells you to optimize before you increase budget — because you're generating $1.20 of incremental gross profit per dollar of marketing, not $2.00 [^1].
Now add full marketing cost. If your true marketing cost is $15,000 (media + agency + tools + team share):
ROMI: $12,000 ÷ $15,000 = 80%
Below 100%. The campaign is generating less than a dollar of incremental gross profit per dollar of total marketing cost. That's a yellow flag, not necessarily a red one — but it's a flag you would never see if you only looked at ROAS.
[^1]: HustleMarketers, ROMI Calculator — full 5-input formula and the naive vs. honest comparison example.
What counts as marketing cost — the five categories most calculators skip
The single most common ROMI error is treating ad spend as the entire marketing cost [^7]. In reality, total marketing cost is usually 1.3× to 1.8× ad spend. The five categories to include:
- Pure ad spend — clicks, impressions, platform management fees. Pull directly from each platform's billing or cost report [^6].
- Tracking and analytics tools — GTM, GA4, Looker Studio, attribution platforms, server-side tracking. Typically $200–$1,500/month depending on your stack [^7-sourced].
- Internal or external team cost — % of salaries allocated to the campaign, or agency/freelance fees. Typically $2,000–$15,000/month depending on team size [^7-sourced].
- Creative production — photography, video, landing-page builds, copywriting. Not always a monthly cost, but if a campaign used it, allocate it [^1].
- Attribution software and a share of opportunity cost — the cost of the tools you use to measure the campaign, and a small share of the cash tied up between ad spend and customer cash-in [^7-sourced].
Exclude sales team salaries (that's CAC territory) and general overhead not tied to marketing [^7].
If you're not sure where to start, use the eight-calculator ROMI Calculator at /romi-calculator/ — it forces you to enter all five inputs and shows you the result for both Scenario A and Scenario B side by side.
[^6]: Improvado, 2026 ROMI Benchmark Report — data requirements: unified spend schema, one attribution model, CRM-verified revenue.
[^7-sourced]: Refinity.io, Marketing ROI Calculator — total marketing cost is 1.3× to 1.8× ad spend on audited mid-market accounts.
Channel ROMI benchmarks — what "good" actually looks like
ROMI benchmarks vary widely by channel, margin, and business model. Use these as orientation, not targets. They come from the Improvado 2026 ROMI Benchmarks Report, which analyzed data across thousands of programs [^6], cross-referenced with Litmus DMA 2026 [^2], First Page Sage 2026 [^2], and Demand Metric 2026 [^2].
| Channel | Median ROMI | Top Quartile | Why the spread is wide |
|---|---|---|---|
| Email marketing | 3,600% | 4,200% | Mature lists with strong segmentation hit 50:1+; cold imported lists land at 4:1 or worse. Near-zero marginal cost [^6] [^2]. |
| SEO / Organic search | 825% | 1,200% | Compounds over years. Months 1–12 typically show negative ROI; the 825% median assumes a 3–5 year horizon [^6] [^2]. |
| Paid search (Google Ads) | 200% | 400% | Branded keywords can hit 10:1+; non-brand typically 2.5:1 to 6:1 after a 90-day learning period [^6] [^7]. |
| Paid social (Meta) | 175% | 300% | Cold prospecting 50%–250%; retargeting 300%–1,000% but watch incrementality, not just ROAS [^6] [^1]. |
| Display / Programmatic | 200% | 350% | Mostly assists; don't judge in isolation [^6]. |
| Affiliate marketing | 1,400% | 2,000% | Pure pay-for-performance; floor is high, ceiling capped by partner availability [^6] [^2]. |
| Content marketing | 300% | 600% | Depends entirely on distribution. Content with paid amplification often outperforms organic content by 3–5× [^2]. |
The often-quoted "5:1 is good" benchmark (500% ROMI) is a revenue-to-spend ratio — closer to ROAS than ROMI [^6]. Judge your ROMI against your own cost of capital and your channel mix, not against a published figure that uses a different formula.
[^2]: BuyersPrint, Marketing ROI Calculator 2026 — Litmus DMA 2026 (email 36:1), First Page Sage 2026 (SEO 22:1), Demand Metric 2026 (content 7:1).
[^6]: Improvado, 2026 ROMI Benchmark Report — median ROMI by channel, top quartile, and revenue per $1 spent.
[^7]: MediaPlanningTool, Marketing ROI Calculator — full ROMI formula with CFO perspective.
ROMI by business model — the healthy range depends on what you sell
A positive ROMI means the marketing contributed profit after all costs. The healthy range depends on your business model:
- DTC e-commerce: 100%–200% ROMI after COGS and full marketing costs. Above 200% usually means underinvestment relative to opportunity — the right move is to scale spend until ROI compresses to a sustainable level [^7].
- B2B SaaS: 150%–380% ROMI on first-year customer revenue; full-lifetime ROMI is far higher but the payback period is 8–18 months. CFO conversations in SaaS must present 24-month ROI and payback period together — a 300% ROI over 24 months with 14-month payback can be less attractive than 200% ROI over 24 months with 6-month payback, depending on runway [^7-sourced].
- CPG retail: 50%–150% ROMI because margins are compressed [^7].
- Subscription businesses: 200%+ ROMI once customers renew past the first period. Brand campaigns often show negative ROMI in a 30-day window but strong ROMI over 6–24 months — use a longer measurement window and MMM or incrementality testing for brand ROI, not last-touch attribution [^7].
The SaaS standard benchmark is 3:1 minimum, with 4:1 to 5:1 being the healthy operating range. Below 3:1, acquisition is consuming too much of the margin to leave room for product investment, support, and retention [^2].
[^7-sourced]: Improvado, 2026 ROMI Benchmark Report — B2B SaaS 24-month ROI and payback period guidance.
How often should you calculate ROMI?
Monthly at the channel level, quarterly at the campaign level [^1] [^4].
Daily ROMI is noise — there isn't enough data volume to make a real decision, and short-term fluctuations will send you scrambling for optimizations that don't matter. Annual ROMI is too late to act on — by the time you see a bad annual ROMI, you've already spent the year.
Monthly gives you enough data volume to make real decisions and catches drift early. If your ROMI drops from 180% to 110% over two months, you have a signal worth investigating before it becomes a crisis [^1].
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 [^1].
[^1]: HustleMarketers, ROMI Calculator — calculation frequency guidance.
[^4]: DashThis, ROMI Calculator — how often to calculate ROMI by project type.
What to do when you can't establish a baseline
Establishing a clean baseline is the hardest part of an honest ROMI calculation. If you have no historical data, big seasonal swings, or you're running a brand-new campaign with no prior period to compare against, you have two workarounds [^1]:
Option 1: Geo holdout. Pause ads in one region for a full sales cycle and use that region as your baseline. Compare the revenue in the paused region to the revenue in the running region, adjusted for population and historical trends. This is the cleanest non-platform approach.
Option 2: Platform-native incrementality tools. Meta has Conversion Lift. Google has Geo Experiments. These tests run a randomized holdout against your campaign and report the incremental lift directly — which is exactly what you need for the baseline inputs [^6].
Option 3: Set baseline to zero (less rigorous). If neither a geo holdout nor a platform test is available, set Baseline Revenue and Baseline COGS to zero and calculate gross-profit ROMI: (Campaign Revenue − Campaign COGS − Marketing Cost) ÷ Marketing Cost × 100. This is not a real ROMI — it's a gross-profit ROI — but it's better than using ROAS as a proxy and it gives you a directional number to improve over time [^1].
The key is to be explicit about which version you're using. A ROMI calculated without a baseline is a different metric than a ROMI calculated with one, and comparing the two across campaigns is misleading.
[^6]: Improvado, 2026 ROMI Benchmark Report — Meta Conversion Lift and Google Geo Experiments as incrementality controls.
The CLV-adjusted ROMI — when first-order math isn't enough
For growth-stage brands that acquire customers at thin short-term margins but strong lifetime returns, first-order ROMI can look terrible even when the business is healthy. A customer acquired for $100 who generates $40 in first-order gross profit gives you a negative first-order ROMI — but if that customer's lifetime value is $400, the long-term ROMI is excellent.
CLV-adjusted ROMI:
ROMI (CLV) = ((New Customers × Average CLV) − Marketing Cost) ÷ Marketing Cost × 100
For example: if your CLV is $400 and a campaign brought in 50 new customers at $8,000 cost, your CLV-ROMI is ($20,000 − $8,000) ÷ $8,000 = 150% [^1].
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. Use a known historical window you can actually back up [^1].
The CLV-adjusted ROMI is the right frame for justifying acquisition investment that looks thin on first-order math alone. But verify LTV with real cohort data before scaling spend — projected LTVs without cohort validation are where a lot of growth-stage brands get into trouble.
For a deeper dive on LTV and the LTV:CPA ratio, see our guide to mastering the LTV to CPA ratio and the ROI & LTV Calculator.
[^1]: HustleMarketers, ROMI Calculator — CLV-adjusted ROMI formula and the warning about using "lifetime lifetime" LTV.
ROMI vs. ROAS — the mistake that costs marketers their budget
The most expensive mistake in marketing measurement is treating ROAS as ROMI. Here's why it matters:
ROAS only sees clicks and impressions billed by platforms. ROMI sees the entirety of marketing investment — tracking tools, team salaries, agency fees, creative production, affiliate commissions, and a share of opportunity cost [^7-sourced].
On a mid-market e-commerce account with 4× ROAS and a 1.5× total cost / ad spend ratio, typical marketing ROMI = ((4 − 1.5) ÷ 1.5) × 100 = 167% [^7-sourced]. That's not a degradation of the 4× ROAS — it's the true metric that includes total marketing cost, and it's exactly what the CFO is looking to measure.
The structural distinction:
- ROAS = revenue ÷ ad spend. A multiple. Media costs only, revenue not profit. Answers "is this ad account working?" Calculate ROAS for weekly operational steering [^5].
- Marketing ROI = (return − cost) ÷ cost. A percentage. All marketing costs, ideally measured in profit. Answers "is marketing worth what we put into it?" Calculate for quarterly executive review [^5].
- ROMI = the same formula applied to the whole marketing program rather than a single campaign. Answers the same question at budget level [^5].
The three aren't substitutable — each answers a different steering question, at a different time horizon, for a different stakeholder [^7-sourced].
[^5]: Refinity.io, Marketing ROI Calculator — ROI vs ROAS vs ROMI distinction by stakeholder and time horizon.
[^7-sourced]: SteerAds was 404 at time of publication; equivalent guidance from Refinity.io and Improvado 2026.
Conclusion — the honest number, in two minutes
ROMI is not harder to calculate than ROAS. It has five inputs instead of two, and the fifth one — full marketing cost — is the one most people skip. But the difference between a 400% "ROMI" that's actually just ROAS and a 150% true ROMI is the difference between scaling into trouble and optimizing before you increase budget.
Enter your numbers into the free ROMI Calculator and get your incremental gross profit and ROMI percentage in under two minutes. If you want to compare two scenarios — a test campaign vs. your baseline, or two different channel mixes — turn on Compare mode and see the delta side by side.
And if you're building your full marketing measurement stack, pair ROMI with ROAS for weekly campaign steering and MER for monthly channel mix reviews. They're not interchangeable — they're complementary.
FAQ
What is the difference between ROMI and ROAS?
ROAS (Return on Ad Spend) measures revenue against ad spend only — a top-line ratio that ignores product cost and treats every sale as new. ROMI (Return on Marketing Investment) subtracts COGS to get gross profit, removes baseline sales to isolate incremental lift, and divides by all marketing costs (not just media). A 4× ROAS at 20% gross margin can be a negative ROMI [^7] [^4].
What is a good ROMI?
A positive ROMI above 0% means the campaign contributed profit after all costs. Above 100% means every dollar of marketing generated more than a dollar of incremental gross profit. Benchmarks vary by channel: email marketing typically 3,600%+, paid search 200% median, paid social 175% median, display 200% median (Improvado 2026 ROMI Benchmarks [^6]) [^1] [^2].
What costs should I include in Marketing Cost?
Include ad spend, agency fees, creative production, attribution software, landing-page builds, and a proportional share of your in-house marketing team's time. Exclude sales team salaries (that's CAC territory) and general overhead not tied to marketing [^1] [^7].
How do I establish a baseline when I have no historical data?
Run a geo holdout — pause ads in one region for a full sales cycle and use that as your baseline. Or use platform-native incrementality tools like Meta Conversion Lift and Google Geo Experiments. If neither is available, set Baseline Revenue and Baseline COGS to 0 to calculate gross-profit ROMI without a control group — but note that this is a less rigorous measure [^1] [^6].
Can ROMI be negative?
Yes. A negative ROMI means the campaign generated less incremental gross profit than it cost to run — the marketing is costing more than it's bringing in. This is common when marketers optimize to ROAS without accounting for COGS, baseline sales, or full marketing costs [^1] [^4].
How often should I calculate ROMI?
Monthly at the channel level, quarterly at the campaign level. Daily ROMI is noise. Annual ROMI is too late to act on. Monthly gives you enough data volume to make real decisions and catches drift early [^1] [^4].
[^1]: HustleMarketers, ROMI Calculator — all FAQ answers sourced from the 5-input formula, baseline workarounds, and CLV-adjusted ROMI section.
[^2]: BuyersPrint, Marketing ROI Calculator 2026 — channel benchmarks and SaaS 3:1 minimum standard.
[^4]: DashThis, ROMI Calculator — calculation frequency and benchmark ranges by ROMI level (below 100% low, 100–300% moderate, 300–500% high, above 500% excellent).
[^6]: Improvado, 2026 ROMI Benchmark Report — median ROMI by channel and incrementality testing guidance.
[^7]: MediaPlanningTool / Calcrux, Marketing ROI Calculator — full formula with COGS and CFO perspective.
