Advertising ROMI: how to calculate it and how fraud bends it
Contents
Share
The word ROMI does not appear on the Yandex glossary page or on the expenses report. Direct’s glossary calls return on investment ROI and defines it as the ratio of return from promotion to spend on promotion. The formula on the help image is (business metric − advertising spend) / advertising spend. The image does not multiply the result by 100.

The page allows the business metric to be sales income, profit as income minus cost, or another measure of return. The formula has no separate subtraction for invalid traffic. How to estimate the loss yourself, without pretending the estimate is a field in the account, is covered in how to calculate click-fraud budget loss.
Two formulas under one name
In Metrica the report opens at “End-to-end analytics → Sources, expenses, and ROI”. There ROI is already a percent.
ROI by income = (total income − spend) / spend × 100.
ROI by goal = (goal value − spend) / spend × 100.
ROI by goal needs a goal of the type “goal event” and income on that goal. The help page reads a higher ROI as more profitable advertising. Zero means there was no extra income and only the costs came back. A negative value means more was put into advertising than came back. Spend of campaigns that pay for impressions is not shown in Metrica’s reports, so those campaigns have no denominator to build in this report.
This is not the Direct glossary formula. That one has no factor of 100. A worked example, not a report: income 180,000 ₽, spend 100,000 ₽. On the glossary image, (180,000 − 100,000) / 100,000 = 0.8. In the Metrica report the same fraction times 100 is 80. Mixing up 0.8 and 80% is easy if the number came from someone else’s screenshot and you never asked which page calculated it.
The expenses page does not measure the percent by which fraud lowers ROI. The CPA and ROI fractions have no separate term for “spam”, “an off-target lead”, or “an invalid click”. They divide spend by goal visits, goal visitors, goal completions, or purchases, and they subtract spend from income or from goal value. An empty click that stayed in spend sits in the subtraction and in the denominator. The report will not lift it into its own row.
Suppose, in the same example, you yourself judge that 15,000 ₽ of spend brought no buyer. For the report, spend is still 100,000 ₽, and ROI by income stays 80. Recalculating (180,000 − 85,000) / 85,000 × 100 is your estimate, not a field in the account. The 15,000 ₽ is an assumption of the example, not a share the help page “usually” assigns to fraud.
Where the spend comes from
To see Direct spend you need to be the campaign owner, the owner’s representative, or an agency representative. A file and Direct campaign data do not fill in visits. UTM tags are matched to visits that already carry those tags. Direct campaign data is tied to that campaign. Spend is not written onto a visit that had no tag.
Which clicks and conversions fall inside the chosen period depends on the attribution model. The example on the expenses page refers to “Last click from Direct” and “First click”. From 20 May 2026 those two models, together with “Last significant click” and “Last click from Direct, cross-device”, are switched off. The date is the help page’s wording, checked on 25 October 2026. The help page promises to move saved reports onto the current models itself.
Four models remain for the report: first click cross-device, last click, last significant click cross-device, and automatic attribution. The attribution window is visits with no break longer than 90 days. After such a break the history ends and starts again. The user cannot change the window. Cross-device for the first-click model and the last-significant model follows device history through Crypta. Attribution by impressions is placed in Metrica for display advertising on that page and is not one of the four models.
The same spend can land on different visits under two models. ROI moves not because the cash register changed, but because the income numerator was collected from another set of visits. Two ROI exports are comparable only on one model.
Cost share is the same pair of numbers, turned around
Direct’s glossary defines the share of advertising expenses as the ratio of promotion spend to the income that promotion brought, and it says the metric is measured in percent. The glossary does not write the fraction and does not say whether income means revenue or profit.
The Metrica expenses report does write the fraction. Cost share by ecommerce income is spend / total ecommerce income. Cost share by goal is spend / goal value. The second needs a “goal event” and income on the goal. The first needs total income in the ecommerce data. The formula on the page has no × 100, even though the glossary calls the share a percent. The page does not say how the interface rounds a ratio into percent.
In the worked example, 100,000 / 180,000 ≈ 0.56. Calling that 56% is a retelling of the glossary, not a quotation of the report formula. ROI by income in the same example is 80 under the formula that multiplies by 100. They are different metrics. One divides spend by income. The other subtracts spend from income and divides by spend.
| Metric | Where it is labeled | Worked figure, income 180,000 ₽, spend 100,000 ₽ |
|---|---|---|
| ROI | Direct glossary image | (180,000 − 100,000) / 100,000 = 0.8 |
| ROI by income | Metrica expenses report | the same fraction × 100 = 80 |
| Cost share by ecommerce income | Metrica expenses report | 100,000 / 180,000 ≈ 0.56 |
Goal value is an estimate, not the till
Direct’s glossary calls conversion value a money estimate of reaching the goal and the margin the goal brings the business. The higher the value, the larger a part the goal takes in the campaign. It is the basis for calculating profit from promotion. It is the advertiser’s estimate, not a cash fact. Putting an “approximate” value into ROI by goal produces a percent of your own estimate. The till does not appear in the report because of that.
On the Direct glossary, the Metrica goals page, the performance-statistics breakdown, and the expenses report, the abbreviation CPL is not defined. The price of an action is called CPA. Those four pages were checked. That is not proof the word CPL is absent everywhere else in the help. How report CPA is built is in how to calculate cost per lead.