Bf pic
Bf pic
Share
01.12.2024
82
8 min
4.9
(27)

The Ad ROI Table: ROMI, ROI, and ROAS Without the Confusion

'Our ads delivered a 300% ROI.' I've heard this phrase from contractors, from media buyers' resumes, from business owners in consultations. And almost every time, after one question — 'what exactly did you divide by what?' — it turned out not to be ROI at all. Sometimes it was ROAS, sometimes ROMI without accounting for cost of goods, sometimes just a revenue-to-budget ratio that doesn't even have a name.

This confusion isn't harmless. If you calculate ad payback as revenue divided by budget, you can spend years scaling a campaign that's actually eating your profit. The number on screen will look great while the money in your account disappears. I've seen businesses shut down 'profitable' ads only after their accountant showed them the annual report.

This article covers a table of formulas you need to keep straight, how to structure a payback sheet you can build in any spreadsheet tool, and the order in which to read these metrics so budget decisions rest on profit, not revenue.

Three Metrics with Different Denominators

All three — ROI, ROMI, and ROAS — answer the question 'what did I get for the money I put in.' The difference is in what counts as the investment and what counts as the result. That's exactly where the confusion is born.

MetricFormulaWhat's in the numeratorWhat's in the denominatorWhat it answers
ROASAd revenue ÷ Ad spendRevenue the campaign generatedAd budget onlyHow much revenue one dollar of ad spend generates
ROMI(Marketing profit − Marketing costs) ÷ Marketing costs × 100%Gross profit generated by the activity, minus its costAll marketing costs: budget, contractors, tools, creativeWhether marketing as a function paid for itself
ROI(Net profit − Investment) ÷ Investment × 100%Profit after all business expensesTotal investment in the project, not just marketingWhether the project as a whole paid for itself

Notice two things. ROAS works with revenue and knows nothing about cost of goods, which is why it always looks the best. ROMI and ROI work with profit, and marketing can turn out to be a loss under them even with a great ROAS. That's not a contradiction — they're just answering different questions.

Second: the ROMI denominator is broader than just the ad budget. A media buyer's salary, analytics tools, shooting creative, work on the website — all of that is marketing spend. When it's left out, ROMI is artificially inflated. That's exactly how 'specialists' end up with hundreds of percent in their portfolios.

Lower-Level Metrics the Table Can't Work Without

ROMI is a bottom-line number. To calculate it honestly, you need a chain of intermediate metrics, each one responsible for its own step of the funnel. Here they are, in order from the ad to the profit.

MetricFormulaWhat it's responsible for
CPCSpend ÷ ClicksCost of a click to the site
Site CRLeads ÷ Visitors × 100%How well the page turns traffic into leads
CPLSpend ÷ LeadsCost of a single lead
Sales CRSales ÷ Leads × 100%How well the sales team or automated funnel closes leads
CACAll marketing spend ÷ New customersThe full cost of acquiring one customer
AOVRevenue ÷ Number of ordersAverage order value
Margin(Revenue − Cost of goods) ÷ Revenue × 100%How much of every dollar of revenue is left to cover marketing and profit
LTVAverage profit per customer per period × Average relationship lengthHow much a customer brings in over their whole lifetime, not just the first order

Every row is a place where something can break — or get fixed. An expensive click is treated with creative and audience targeting. Low site conversion, with the page. Low sales conversion, with scripts and response speed. When all you have is a bottom-line ROMI, you can see that something's wrong, but not where.

Breakeven: The Number You Need Before You Launch

Before you look at the ROAS in your ad account, calculate the ROAS you actually need just to break even. The formula is simple: breakeven ROAS equals 1 divided by your margin, expressed as a decimal. If a certain share of every dollar of revenue is left after cost of goods, that's the share you divide 1 by.

Write this number down on its own sheet and keep it in view. Anything above it in your ad account is working for profit. Anything below it is working for turnover — which looks great in reports and terrible in the till. Without this number, any ROAS is just a figure with no context.

One important caveat: if you sell something customers buy repeatedly, you can calculate breakeven against LTV instead of the first order. That raises your acceptable CAC. But that's a deliberate decision to invest in a customer, not self-deception, and it needs confirmed data on repeat purchases, not wishful thinking.

The Structure of a Payback Sheet

This sheet doesn't need any special software. A regular spreadsheet and the discipline to fill it in weekly are enough. Here are the columns I recommend, in the order that's easiest to read.

  1. Period and channel. Week or month; a separate row for each channel and, if needed, each campaign.
  2. Ad spend. What the platform actually charged.
  3. Other marketing costs. Contractors, tools, creative, a share of salaries. Allocate them proportionally to each channel's budget if you can't be more precise.
  4. Impressions, clicks, visitors. Data from the ad account and analytics.
  5. Leads, sales. From the CRM or the form, tied to the source.
  6. Revenue. Actually paid; the value of leads doesn't count here.
  7. Cost of goods. What you paid for the product, or for the time spent on the service.
  8. Gross profit. Revenue minus cost of goods.
  9. Calculated columns. CPC, CR, CPL, CAC, ROAS, ROMI — built as formulas from the previous columns.

The single most important condition is tying sales back to their source. If your CRM can't show where a customer came from, the sheet will only calculate payback 'overall,' and you won't be able to tell which channel is pulling its weight and which is just burning money. At minimum, that requires UTM tags on every link and passing the source along with each lead.

Where the Sheet Lies and How to Catch It

Even a carefully built sheet can mislead you if the wrong data goes into it. Here are the three places this happens most often.

Attribution. Ad platforms tend to take credit for sales they were only tangentially involved in: someone clicked a month ago and then bought after searching for your brand name directly. Every platform uses its own attribution model, and the sum of 'their' sales can exceed your actual total. So your CRM is the source of truth. The ad account is only a hint.

Timing. The money is spent today, but the sales from it arrive over the following weeks, especially for services with a long decision cycle. If you compare a week's spend to that same week's sales, ROMI will look worse than it really is right after launch, and better than it really is once you stop advertising. Look at cohorts instead: how much did people acquired in a given period bring in over their entire lifetime.

Returns and cancellations. Revenue in the sheet needs to be counted after returns and unfulfilled orders. Otherwise ROAS is counting money you never actually received.

When a client brings me a 'profitable' campaign that somehow isn't adding money to the account, the problem is usually in one of these three spots. Going through the sheet together with the funnel is a standard part of the website and funnel audit: we look not just at the page, but at how the results are being counted.

Reading Order: From Profit to Click, Not the Other Way Around

Most people read the sheet left to right: impressions, clicks, CPC. I recommend the opposite. Start with ROMI by channel — is this even paying off at all. Then CAC against margin and LTV — can this be scaled. Only then move to the intermediate metrics, to figure out exactly where the money is leaking.

This order protects you from a classic trap: spending weeks optimizing click cost in a channel that won't pay off at any CPC, because the conversion to sale from that source is simply too low. Cheap traffic that doesn't buy is the most expensive traffic there is.

One more rule: budget decisions are made from the sheet alone. A gut feeling of 'seems to be working' doesn't count. If you need to, spend one hour building the sheet together and looking at it with fresh eyes — that's what the 60-minute consultation with a 30-day plan is for. One hour with the right formulas often saves a quarter's worth of budget.

In Short

  • ROAS measures revenue; ROMI and ROI measure profit. Confusing them means scaling a money-losing campaign with a beautiful number attached.
  • The ROMI denominator is all marketing costs, contractors and tools included. Leave those out and the number is inflated.
  • Breakeven ROAS equals 1 divided by your margin. You need to know this number before you launch.
  • A payback sheet is built from period, channel, spend, funnel steps, revenue, cost of goods, and calculated columns. Sales must be tied to their source.
  • Three places the sheet lies: ad-platform attribution, the time gap between spend and sales, and returns.
  • Read the sheet from profit down to the click. Cheap traffic that doesn't buy is the most expensive kind there is.

Frequently Asked Questions

What counts as a good ROMI?

One that's above zero after accounting for every cost, and that still lets the business grow. There's no universal benchmark: high-margin products and long-cycle services have very different normal ranges. Compare yourself to your own past period and to your breakeven point; someone else's numbers from an ad account won't help here.

Can I calculate payback if sales go through a sales rep instead of the site?

You can and should. The condition is that the rep logs the lead's source in the CRM, and that the lead arrives with a UTM tag or with the question 'how did you hear about us' answered. Without that, the sheet will only show payback for marketing as a whole, and you'll have nothing to base channel-level decisions on.

How do I calculate ROMI for brand advertising that doesn't generate direct leads?

Honestly, you can't calculate it directly. For that kind of activity, you use proxy metrics: growth in branded search queries, direct site visits, followers. The key is not to mix them into the same sheet as performance channels, or the brand spend will 'eat' the ROMI of campaigns that are actually selling.

How often should I update the sheet?

Weekly for operational decisions, monthly for budget decisions. Less often, and you'll spot a problem only after the money's already spent. More often, and you'll be reacting to noise instead of the trend.

Ihor Nikolenko
About the author
Founder of DigitTime, author of the D.N.A. Launch Model

In professional digital since 2008: digital marketing and launches. The visionary behind the NEO platform, the Evolve.Place academy and DigitTime Projects. Writes about what he has tested on his own projects, not retold cases of others.

All articles by the author →
Traffic payback calculation table +
By submitting this form you consent to the processing of your personal data Learn more
The club’s Telegram channel: systems that sell
Short breakdowns, tools and launches — no fluff. One or two posts a week, no spam.
Join on Telegram
Gift
Stay in the loop
© 2026. All rights reserved