How to Calculate Marketing ROI and ROMI

A VP of marketing once showed me a board slide claiming a 6x return on ad spend. We traced the closed deals back to their first touch. Two of the largest came from existing customers who happened to click a branded ad on their way back to the site. Pull those out, attribute the rest honestly, and the real return on new acquisition sat barely above breakeven.

Nobody lied. The number broke because three things were never defined: what counted as return, what counted as cost, and where the revenue actually came from.

This guide fixes that. You will get the ROMI formula and the marketing ROI formula, worked B2B examples you can copy, the difference between ROI, ROMI, and ROAS, and a step-by-step walkthrough to build your own calculator. By the end, the number you report should survive a hard question from your CFO.

What marketing ROI and ROMI actually measure

People use these terms interchangeably, then argue past each other in meetings. They answer different questions.

Marketing ROI is the broad return on a marketing investment. It can load in the cost of goods, overhead, tools, and sometimes salaries. It answers one thing: did this make the business money, all in?

ROMI stands for Return on Marketing Investment. It is narrower and shows up more in day-to-day reporting. ROMI isolates the incremental profit a marketing spend generated, then divides by that spend. It answers: for every dollar I put into this campaign, how much attributable profit came back?

The distinction matters because the same campaign can look strong on one number and weak on the other. A campaign with an 8x ROMI on media alone can still lose money once you add the salary of the team running it and the discount sales gave to close the deal. Decide which question you are answering before you pick a formula. That single choice prevents most reporting fights.

The formulas, plainly

The marketing ROI formula, expressed as a percentage:

Marketing ROI = (Gross profit from marketing − Marketing cost) / Marketing cost × 100%

The ROMI formula uses the same shape and works on the incremental gross profit tied to the spend:

ROMI = (Incremental gross profit − Marketing spend) / Marketing spend × 100%

Notice the word gross profit in both. That term is the part most people skip, and it is the part that turns a flattering number into an honest one. Revenue is not profit. Sell a $50,000 contract at a 40% margin and marketing did not generate $50,000 of value to weigh against cost. It generated $20,000 of gross profit. Feed revenue into the formula and every number you report runs hot.

A quick way to read the result: 0% means you broke even. 100% means you doubled your money, a dollar of profit back for every dollar in, on top of the dollar itself. Negative means you lost money on the spend. Many teams report ROMI as a multiple instead of a percentage, so a 300% ROMI is the same as a 4x return.

Here is how the three common metrics line up.

Marketing return metrics compared (illustrative)
MetricFormulaWhat it measures
ROAS Revenue ÷ Ad spend Gross revenue per dollar of media, before margin and other costs
ROMI (Incremental gross profit − Marketing spend) ÷ Marketing spend × 100% Attributable profit returned by a specific campaign or channel
Marketing ROI (Gross profit from marketing − Marketing cost) ÷ Marketing cost × 100% All-in return on the marketing function, salaries and overhead included

ROMI vs ROI vs ROAS

ROAS answers the shallowest question: how much revenue did a dollar of media buy? It ignores margin and ignores every cost except the media itself. Inside an ad platform, ROAS is a fast optimization signal. As a business metric it flatters you, because a 5x ROAS on a 20% margin product returns one dollar of gross profit per dollar spent, which is a wash after any other cost.

ROMI tightens the lens. It converts revenue to gross profit and subtracts the marketing spend, so a positive ROMI means the campaign genuinely paid back. Most channel and campaign decisions should run on ROMI.

Marketing ROI is the widest view. It carries the fixed costs that ROMI leaves out: salaries, software, agency retainers, content production. Use it for annual planning and business cases, when leadership wants to know whether the whole function earns its keep. Three metrics, three altitudes. Pick the one that matches the decision in front of you.

Three worked examples

Numbers below are illustrative. Swap in your own and the method holds.

Example 1: one quarter, ROMI then ROI

You spend $30,000 on Google Ads and LinkedIn for the quarter. Those campaigns are attributed to 6 closed deals worth $90,000 in total revenue. Your gross margin is 50%.

Start with ROMI, the campaign view:

  • Incremental gross profit: $90,000 × 50% = $45,000
  • ROMI = ($45,000 − $30,000) / $30,000 × 100% = 50%

Every dollar of media returned $1.50 in gross profit. Solid for a quarter.

Now the all-in marketing ROI. Add the people and tools that made those campaigns run: $20,000 in salary allocation and $5,000 in software and creative. Total marketing cost becomes $55,000.

  • Marketing ROI = ($45,000 − $55,000) / $55,000 × 100% = −18%

Same campaign, two verdicts. The ROMI says your ad channels work and deserve more budget. The ROI says the operation has not hit scale yet, so you need more volume against that fixed cost or a higher margin per deal. Both numbers are true. They answer different questions.

Example 2: two channels, same budget

Say you split $40,000 evenly across two channels and want to know which to scale.

Channel A: $20,000 spend, $70,000 attributed revenue, 45% margin. Channel B: $20,000 spend, $120,000 attributed revenue, 30% margin.

Run ROMI on gross profit, not the top line:

  • Channel A gross profit: $70,000 × 45% = $31,500. ROMI = ($31,500 − $20,000) / $20,000 = 57.5%
  • Channel B gross profit: $120,000 × 30% = $36,000. ROMI = ($36,000 − $20,000) / $20,000 = 80%

Channel B wins, but the gap is far smaller than the revenue headline suggested. Read it on revenue alone and B looks like a runaway. On margin-adjusted ROMI, the two sit closer, and A may deserve a look for a higher-margin segment. This is why the margin term earns its place in the formula.

Example 3: the LTV view for long cycles

A campaign brings in 5 customers for $25,000 in spend. First contracts total $50,000 at a 60% margin. First-deal ROMI:

  • Gross profit: $50,000 × 60% = $30,000. ROMI = ($30,000 − $25,000) / $25,000 = 20%

Thin. On first-deal math you might cut the campaign. Now factor in that these accounts renew and expand, so their average lifetime gross profit runs closer to $18,000 each, or $90,000 across the five.

  • Lifetime ROMI = ($90,000 − $25,000) / $25,000 = 260%

The channel that looked marginal on first deals is one of your best once you count the full relationship. For anything with renewals, calculating ROMI on first purchase alone will starve your strongest sources. More on that math below.

What to include in the numbers

The formula is the easy part. The number falls apart on inputs. Four adjustments separate an honest calculation from a hopeful one.

Use gross profit, always. Covered above, worth repeating because it is the single most common error. Convert revenue to profit with your real margin before it touches the formula.

Load the right costs for the question. For a campaign ROMI you can leave fixed overhead out on purpose, so channels compare cleanly. For an annual ROI you cannot. Include agency retainers, your analytics stack, content production, and the fully loaded cost of the people involved.

Adjust for sales discounts. In B2B the deal that closes is often smaller than the deal that was quoted. If reps routinely discount 10 to 15% to close, your effective margin sits below your list margin. Pull actual closed-won revenue from the CRM, not pipeline value.

Match the money to the right time window. A long cycle means this quarter's spend produces revenue two or three quarters out. Comparing this quarter's spend to this quarter's closings measures two unrelated things.

Getting the cost side right is the same discipline behind a defensible customer acquisition cost: count all the spend, not just the media line. When your CAC, your margin, and your revenue figures agree, your ROI story holds up under scrutiny.

ROI on long sales cycles needs LTV

This is where standard ROI breaks for most B2B companies. Your sales cycle runs three to nine months. A campaign from Q1 closes deals in Q3. And the real value of a B2B customer is rarely the first contract. It is the renewals, the expansion, the second product line two years later.

Calculate ROI on first-deal revenue only and you will systematically underprice your marketing. You starve the channels that bring your best customers, because those customers pay back slowly. The fix is to run the ROI on customer lifetime value instead of first-purchase value.

That depends on getting one input honest: a defensible lifetime value figure built from real retention and expansion data, not wishful averages. A practical compromise works well in reporting. Show a short-term ROMI on first deals for fast campaign calls, and a separate LTV-based ROI for annual budget cases. Label each one clearly so nobody mixes a quarterly campaign number with a lifetime number in the same slide.

How attribution changes the answer

You cannot calculate return on marketing without knowing which revenue came from marketing. This is the plumbing, and it is where most ROI reports quietly fail.

The chain you need looks like this.

From click to revenue A four-step chain: tagged traffic flows to a tracked lead, the lead is stamped with its source in the CRM, the deal closes with revenue, and revenue is tied back to the original campaign for ROI. Tagged traffic (UTM) Tracked lead with source Deal in CRM with revenue Revenue tied to campaign

Break any link in that chain and ROI becomes a guess. The attribution model you choose changes how credit gets split when a buyer sees several campaigns before signing. First-touch hands all the credit to the campaign that started the journey. Last-touch gives it to the final one. Multi-touch spreads it across the path. Swap models and a single channel's ROMI can move by a wide margin without a dollar of spend changing.

Sorting this out is the whole point of a proper revenue attribution setup, and the payoff is bigger than a cleaner report. Import closed-won revenue back into your ad platforms and the bidding algorithms start optimizing toward profit instead of form fills. That one step often does more for ROI than any creative test. For the field-level detail on wiring the CRM and offline conversions together, our guide to measuring PPC by revenue, not clicks walks through the setup.

Build your own ROMI calculator

You do not need a data platform or a data scientist. You need a monthly rhythm and one honest spreadsheet. Here is the walkthrough to compute your own ROMI, channel by channel.

  1. Pull spend by channel. Combine ad platform totals with any invoices for the period. For a pure ROMI, keep this to media and direct campaign costs.
  2. Pull attributed revenue by source. From your CRM, list closed-won deals tagged to each channel. Match the window to your cycle, so long-cycle deals line up with the spend that created them.
  3. Apply your gross margin. Multiply revenue by your real margin, discounts included, to get gross profit per channel.
  4. Run the formula. For each channel: (gross profit − spend) ÷ spend × 100%. That is your ROMI.
  5. Blend for the function. Sum all gross profit and all cost, add fixed costs if you want the full picture, and you have a blended marketing ROI.
  6. Decide. Flag every channel below your target and choose one action for each: fix, scale, or cut.

Run it the same way every month. A single month is noisy. The trendline across a quarter or two is where the signal lives. If you want a starting layout, four columns cover it: channel, spend, gross profit, ROMI. Everything else is detail you can add once the basics hold.

Benchmarks, as ranges

Treat any benchmark loosely, because margin and cycle length swing the honest target hard. A widely cited rule of thumb puts a 5:1 revenue-to-cost ratio (roughly a 400% ROI on that basis) in strong territory, with 2:1 as the floor where the spend starts to look questionable. Those figures assume a healthy margin baked into the ratio, so read them as orientation.

For campaign ROMI on gross profit, many B2B teams aim for something in the 100 to 300% range on a mature channel, which is a 2x to 4x return. A brand-new channel often runs negative for a quarter or two while it finds its footing, and that can be fine if the trend points up. High-margin SaaS on an LTV basis can post far higher numbers, because a single retained account pays back across years. The honest move is to compare against your own past performance first and outside benchmarks second. Your margin structure is not the industry's.

Common mistakes

  • Counting revenue instead of profit. The top line looks great and means little. Convert to gross profit every time.
  • Double counting across channels. A lead that touched three campaigns gets full credit in all three, so your channel ROIs sum to more revenue than the company earned. Pick one attribution model and apply it everywhere.
  • Timing mismatch. Reporting this quarter's spend against this quarter's closings on a six-month cycle compares spend to deals that predate it.
  • Branded search inflation. Branded clicks from buyers who would have found you anyway show a sky-high ROI that is partly borrowed from organic. Test it by pausing and watching what organic does.
  • Trusting the ad platform out of the box. Platforms see clicks and conversions, not closed revenue or margin, and each one credits itself. Use their dashboards for optimization, build your real ROI from the CRM.

FAQ

What is the ROMI formula?

ROMI = (incremental gross profit − marketing spend) ÷ marketing spend, usually shown as a percentage by multiplying by 100. The key word is gross profit. Take the revenue a campaign is attributed to, multiply by your gross margin to get profit, subtract the spend, then divide by the spend. A result of 100% means you earned a dollar of profit for every dollar spent, on top of recovering the spend itself.

What is a good marketing ROI?

It depends on your margin and sales cycle, so hold benchmarks loosely. A common rule of thumb treats a 5:1 revenue-to-cost ratio as strong and 2:1 as the floor. On a gross-profit ROMI basis, many mature B2B channels land between 2x and 4x. In high-margin SaaS the LTV-based figure runs higher because one account pays back for years. Compare against your own history first.

What is the difference between ROI and ROAS?

ROAS is revenue divided by ad spend, full stop. It ignores margin and every cost except media, which makes it a quick in-platform gauge and a poor business metric. ROI and ROMI subtract costs and work on gross profit, so they tell you whether marketing actually made money. A 5x ROAS on a low-margin product can still be a break-even ROI.

How do I calculate ROI when deals take months to close?

Match the time windows. Compare a period's spend against revenue from deals that started in that period, not deals that happened to close in it. For long cycles, run the ROI on lifetime value rather than first-deal value, since renewals and expansion carry most B2B profit. Report a fast first-deal ROMI for campaign decisions and a separate LTV-based ROI for annual planning.

Should I include salaries and tools in the calculation?

For a campaign-level ROMI, leave fixed costs out so channels compare cleanly. For an all-in marketing ROI you take to leadership, include them: salaries, software, agency fees, content production. The two versions answer different questions, so be explicit about which one a given slide is showing.

Why does my reported ROI not match the company's actual profit?

Usually attribution. When channel ROIs are calculated independently and a lead touched several of them, credit gets double counted and the parts add up to more than the whole. Other culprits: revenue standing in for margin-adjusted profit, pipeline standing in for closed deals, and timing gaps on long cycles. Fix those inputs and the reported number moves back toward reality.

The checklist

  • Decide first: ROI (all-in) or ROMI (campaign-level). They answer different questions.
  • Use gross profit in the numerator, never raw revenue.
  • Load the right costs for the question you are answering.
  • Match time windows to your sales cycle, and use LTV for the annual view.
  • Tie revenue to source through tagged traffic and the CRM, then import it back to your ad platforms.
  • Apply one attribution model consistently so the parts add up to the whole.
  • Report the trend monthly, not a single quarter in isolation.

Most marketing teams are not bad at math. They work with broken inputs: revenue posing as profit, pipeline posing as deals, and channels claiming credit they never earned. Fix the plumbing and the formula takes care of itself.

If you want a second set of eyes on whether your reported ROI would survive a hard question from finance, we can help. Ask us for a short review of your attribution and ROI math, and we will show you exactly where the number leaks before you set next year's budget.