ROMI: what it is, how to calculate it, and how it differs from ROI

11 minutes

ROMI (return on marketing investment) is a measure of how well marketing spend pays off. It shows whether the money put into advertising and promotion came back, and how much came back on top of it. Yandex Advertising’s educational materials give this formula: subtract advertising spend from the revenue it generated, divide the result by the advertising spend, and multiply by one hundred to get a percentage.

Below: what to plug into the formula, a sample calculation, how ROMI differs from ROI, and why the same number can mean something different for different people.

What ROMI means, in plain terms

ROMI answers one question: did the spend on a specific campaign, channel, or all of marketing for a period pay off? Unlike ROI, the calculation includes only marketing costs and the revenue that marketing generated.

As a metric, ROMI shows how much revenue above the spend you get for every ruble invested. Reading the value is simple:

  • ROMI above zero — the investment paid off, and marketing brought in revenue above its cost;
  • ROMI below zero — the investment is not paying off;
  • ROMI equal to zero — revenue matched spend, and the campaign broke even.

The metric alone doesn’t say whether a campaign is good. It says whether it brought the money back — and what counts as «money» depends on the data you plug in.

The ROMI formula

ROMI = (marketing revenue − marketing spend) ÷ marketing spend, multiplied by one hundred percent

  • Marketing revenue — money from sales that could be traced back to the campaign or channel.
  • Marketing spend — everything spent on that campaign or channel.
  • Multiplying by one hundred percent — to express the result as a percentage. That’s how the formula is written in the Yandex Advertising material. The Yandex Direct material writes the formula without the multiplication, so the example’s result is a ratio, and converting it to a percentage is a separate step. A ratio of one and a half and a figure of one hundred fifty percent mean the same thing.

What to plug into the formula

The main question is what counts as revenue. Yandex Direct states outright that businesses calculate ROMI differently: some use revenue, others use profit. The two Yandex materials each take a different approach.

  • Revenue. In the Yandex Advertising material, revenue is money from sales attributed to the campaign. This calculation is simpler: revenue is visible straight from sales records. But it shows whether turnover came back, not whether the business actually made money.
  • Margin profit. The Yandex Direct material plugs margin profit into the formula — revenue minus variable costs, such as the cost of goods sold. This version is closer to actual earnings, but it requires cost data.

Marketing spend includes more than the ad budget. Direct counts designer and copywriter fees, and agency or contractor commissions, as part of it. In the Yandex Advertising example, spend includes payments to a blogger, an email service, and articles. Office rent and other costs unrelated to the campaign are not included in ROMI.

Pick one version of the formula, write down exactly what counts as revenue and spend, and keep it consistent when comparing campaigns and periods. Otherwise you’ll be comparing different metrics under the same name.

A sample calculation

A hypothetical example: the numbers are made up for illustration and don’t describe a real business; amounts are in arbitrary units. Over a month, advertising cost ten units — the campaign budget and the contractor’s fee combined. Sales that could be traced to that advertising brought in thirty units of revenue. ROMI by revenue: thirty minus ten, divided by ten — that’s two, or two hundred percent.

Now the same campaign by margin profit. Say the cost of goods and other variable costs on those sales came to eighteen units. Margin profit is twelve units. ROMI: twelve minus ten, divided by ten — that’s two tenths, or twenty percent.

It’s the same campaign, but the ROMI figures differ tenfold. So before comparing your ROMI with last year’s or with someone else’s number, check which formula it was calculated with. A ROMI calculator will do the same arithmetic, but the choice of formula and data is still up to you.

How ROMI differs from ROI

ROI (return on investment) measures the payback of an investment overall: Yandex Direct describes it as a metric for a whole project’s payback. For more on what ROI shows and how it’s calculated, see a separate article. ROMI is a special case of it: it only accounts for investment in marketing.

MetricWhat investment it coversWhat decision it informs
ROMIMarketing only: ad budget, contractors, production of materialsWhether to continue a campaign or channel, where to reallocate budget
ROIAll investment in the project: product, team, rent, marketingWhether the project or investment pays off as a whole

Report names don’t always match the educational materials. In the Yandex Metrica report «Sources, costs and ROI,» the «ROI by revenue» metric is calculated as revenue minus cost, divided by cost and multiplied by one hundred. The cost there comes from ad systems: from Direct, or uploaded as a file from other systems. In substance, this is the ROMI of advertising. In Direct, revenue from selected goals is also used to calculate derived metrics, including ROI and the ad spend ratio (DRR). When you see «ROI» in an ad report, check what cost it actually includes.

ROMI, the ad spend ratio (DRR), and ROAS

  • ROAS (return on ad spend) — ad revenue divided by ad spend. Cost isn’t subtracted from revenue, so ROAS shows turnover per ruble spent on advertising, not earnings above the cost.
  • The ad spend ratio (DRR) — the Russian abbreviation («share of advertising expenses») used in Yandex reports. Metrica calculates it as cost divided by revenue. The lower the ratio, the smaller the share of revenue advertising takes.

This is a common source of confusion. If cost isn’t subtracted from revenue, the break-even point shifts from zero to one hundred percent. If you come across a scale where break-even starts at one hundred percent, check which formula was actually used.

What data you need to calculate ROMI

Three things are needed for the calculation: cost, revenue, and the link between them.

  1. Cost. The ad budget comes from the ad system’s account. In Metrica’s «Sources, costs and ROI» report, cost can be pulled from Direct or uploaded as a file from other systems. The remaining costs — contractors, production of materials — are added from your own records.
  2. Revenue. Revenue is passed to Metrica through e-commerce, through goals with a revenue value, or as orders from a CRM. The «Order sources» report shows which traffic source brought in the most revenue. In Direct, the «Revenue» metric only counts goals whose data comes from Metrica, mobile trackers, or offline conversions.
  3. Linking the sale to a channel. To find out where a buyer came from, you use markers: UTM tags, promo codes, dedicated phone numbers, or landing pages. For more on which tags link a sale to an ad campaign, see a separate article.

It also helps to see the intermediate steps: how many clicks turned into inquiries, and how many inquiries turned into sales. That makes it easier to see where revenue is being lost. More on this in the article about how to calculate the conversion rate to an inquiry and a sale.

Report and setting names in Metrica and Direct change from time to time, so check their help documentation before you configure anything.

Limitations of ROMI: when the metric is misleading

ROMI is a simple formula, but the data behind it isn’t simple to collect. Direct notes that it can be hard to tell which sales were actually caused by marketing. Here’s where the metric most often gets distorted.

  • Attribution. An attribution model is the rule by which a visit or a sale is credited to one source or another. Metrica has several models, for example «Last click» and «First click (cross-device),» and visits are distributed across sources differently depending on the model. That means a channel’s revenue, and with it its ROMI, depends on the model chosen. The set of models changes over time: in 2026, some of them were discontinued in Metrica and Direct.
  • Delayed sales. If customers take a long time to decide, ROMI can look unprofitable over a short period. Yandex Advertising gives «long sales» as an example — real estate and equipment. Direct writes that without adjustment, ROMI poorly captures the long-term effect. Repeat purchases by the same customer within a short period are missed too.
  • Sales outside the website. If you count only online orders, you lose in-store or phone purchases from people who saw the ad.
  • Awareness channels. Some advertising works to make people aware of you. It may generate almost no direct sales, even though it helps other channels.
  • Different versions of the formula. Revenue or margin profit, with or without contractor fees — covered above.

That’s why the ROMI of SEO, PPC advertising, and social media shouldn’t be compared head-on: channels differ in how long they take to pay off and in the role they play. For more on why channels can’t be compared on a single number, see a separate breakdown.

How to use ROMI in decisions

  • Compare campaigns within the same channel over the same period and using the same formula.
  • Look at ROMI alongside the volume of sales and profit in rubles: a high percentage on a small budget and a slightly lower one on a large budget are different situations for the business.
  • Recalculate ROMI whenever prices, cost of goods, or margin change.
  • Choose the calculation period based on how long it usually takes from first contact to purchase.

Frequently asked questions

Can ROMI be negative?

Yes. If revenue is less than spend, the formula’s numerator turns negative, and ROMI drops below zero. That means the investment didn’t pay off.

What counts as a good ROMI?

There’s no single benchmark. Yandex’s materials say ROMI depends on the business model, the structure of marketing, the channels, and the path to a sale. Go by your own data: margin, campaign goal, and past periods.

What period should ROMI be calculated over?

Take spend and revenue for the same period. If a deal usually takes a long time to close, a short period will understate ROMI: the money is already spent, but the sales are still ahead. In that case, calculate revenue over a longer stretch, or track open deals separately.

Can ROMI be calculated for SEO or social media?

The logic is the same: revenue tied to the channel, minus the spend on it, divided by the spend. But in SEO and content, spend and revenue are spread far apart in time, and attribution is harder. Calculate that ROMI over a long period, and don’t compare it directly with the ROMI of paid advertising.

Where do you get revenue data if sales happen by phone or offline?

Such sales are called offline conversions — events outside the website: a call to the sales department, an in-store purchase, an order payment. That data can be passed to Metrica, for example from a CRM. The «Offline conversions» report will show whether they’re linked to visits and how much revenue they brought in.

ROMI can only be calculated once advertising is linked to goals and sales, so measurement is worth planning before the first ad is shown. We describe how we set up measurement for Direct campaigns before launch on the service page.

Sources

Documentation this article is based on (checked October 10, 2026):

To measure payback, advertising has to be linked to goals and inquiries. We set up goals in Yandex Metrica before launch, run Direct campaigns by the data, and show in a report what we changed and how the metrics moved. We don’t guarantee payback, the number of inquiries, or their cost: those depend on demand, the auction, the site, and the offer itself. → Discuss advertising in Direct