Канал выиграл по лидам и проиграл по стоимости сделки: расчёт ROMI по строкам
В отчёте канал с 65 лидами выглядит победителем. После строки «сделки» преимущество исчезает: другой канал дал 16 лидов и те же две сделки, потратив 60 000 ₽ вместо 250 000 ₽.
Это воспроизводимый методологический тест на демонстрационных строках шаблона Finspect. Числа не относятся к компании или клиенту. Расчёт ниже можно повторить на своих данных без файла.
Единицы воронки: что считается лидом
Для каждого канала нужны расходы, показы, клики, лиды, квалифицированные лиды, встречи, предложения, сделки и выручка. Период у строк один.
Квалифицированный лид в шаблоне — целевая компания с подходящей задачей и согласованным следующим коммерческим шагом. Если маркетинг записывает в эту колонку скачивания, а продажи — проведённые встречи, каналы сравниваются по разным событиям.
Неизвестное значение оставляют пустым. Ноль ставят после проверки, когда событие действительно не произошло. Эта разница влияет на решение: пустое поле требует источника, ноль участвует в формуле.
Первый расчёт: стоимость лида
CPL считается как расходы, делённые на число лидов. 
По CPL строки почти одинаковы. Поэтому отчёт, который заканчивается на заявке, не отвечает на вопрос о бюджете.
Второй расчёт: стоимость квалифицированного лида
Между лидом и сделкой в книге стоит ещё одна колонка. CPQL — расходы, делённые не на все лиды, а только на квалифицированные. 
Расчёт по строкам: 250 000 / 18 = 13 889 ₽, 90 000 / 12 = 7 500 ₽, 60 000 / 9 = 6 667 ₽. Разница контекста и партнёров: 13 889 − 6 667 = 7 222 ₽.
На CPL те же два канала расходились на 96 ₽. Здесь — на 7 222 ₽, вдвое. Причина в доле: контекст доводит до квалификации 27,7% лидов, партнёры — 56,2%.
У этого расчёта есть практическое преимущество перед следующим. Событий квалификации в строке в разы больше, чем сделок: восемнадцать против двух у контекста, девять против двух у партнёров. И наступают они раньше — контакт проходит фильтр до того, как подпишет договор. Значит вопрос «почему из 65 лидов до квалификации дошли 18» задаётся в том же периоде, а не после того, как накопятся сделки.
Строка Telegram показывает границу правила «дешёвый лид — хороший лид»: CPL 2 250 ₽ там самый низкий из трёх, а CPQL 7 500 ₽ уже средний. Что с ней происходит на следующем шаге — в третьем расчёте.
Третий расчёт: стоимость сделки
Оба канала дали по две сделки. CAC — стоимость привлечённой сделки — меняет картину. 
Разница появилась не из-за сложной модели. Мы просто дошли до следующего коммерческого события.
Четвёртый расчёт: маржинальный доход и ROMI
Выручка сама по себе тоже не завершает проверку. Нужна маржинальность — доля выручки после переменных расходов на проданный продукт или услугу.
В демонстрации маржинальность равна 40%. Это вход шаблона, а не норматив. ROMI считается так:
(Выручка × Маржинальность − Расходы канала) / Расходы канала. 
Маржинальный доход каждой строки — выручка × 40%: 1 800 000 × 40% = 720 000 ₽, 950 000 × 40% = 380 000 ₽, 2 100 000 × 40% = 840 000 ₽. ROMI строки: (720 000 − 250 000) / 250 000 = 188%, (380 000 − 90 000) / 90 000 = 322%, (840 000 − 60 000) / 60 000 = 1 300%.
Проверка сложением: 250 000 + 90 000 + 60 000 = 400 000 ₽ расходов, 1 800 000 + 950 000 + 2 100 000 = 4 850 000 ₽ выручки, 720 000 + 380 000 + 840 000 = 1 940 000 ₽ маржинального дохода. Итоговый ROMI пересчитывается от сумм: (1 940 000 − 400 000) / 400 000 = 385%.
Сложить проценты каналов и разделить на число строк нельзя: маленький источник с высоким ROMI получил бы такой же вес, как канал с основным бюджетом. Сначала складываются расходы и маржинальный доход, затем применяется формула. Такой агрегат удобен для проверки, но внутри остаются строки с разной экономикой, и решение принимается по каждой отдельно.
CTR — доля кликов от показов. CPC — стоимость клика. Они показывают, что происходило до заявки. Стоимость квалифицированного лида доводит расход до согласованного фильтра. CAC — до сделки. ROMI связывает сделку с выручкой и маржинальным доходом.
Пятый расчёт: в какой базе внесены расходы
Три встроенные проверки книги стерегут структуру воронки, знак расхода и границы маржинальности. Базу расхода не стережёт ни одна.
Счёт рекламной площадки приходит с НДС. Выручка в управленческом учёте стоит без него. Основная ставка — 22% с 1 января 2026 года. Если внести сумму счёта как есть, маржинальный доход в формуле будет очищен от налога, а расход — нет. Расход при этом участвует дважды: он вычитается из маржинального дохода и он же стоит в делителе. 
Сдвиг не общий для всех строк, а пропорциональный: расход делится на 1,22, и во столько же раз растёт отношение маржинального дохода к нему. Поэтому чем выше ROMI строки, тем больше он прибавляет в процентных пунктах.
Порядок каналов при этом сохраняется, а расстояние между ними — нет: разрыв между партнёрами и контекстом вырастает с 1 112 до 1 357 процентных пунктов. Если решение принимается по тому, во сколько раз один канал результативнее другого, база расхода входит и в это решение.
Какая база верна, зависит от режима компании. На общей системе НДС по рекламе принимается к вычету, до компании он не доходит, и в отчёт идёт расход без налога. На упрощённой системе вычета нет, налог остаётся затратой, и в отчёт идёт полная сумма счёта.
Отдельный случай — смешанный: часть подрядчиков работает с налогом, часть без, а в колонке расходов суммы выглядят одинаково. Здесь каналы сравниваются между собой уже неверно. База выбирается один раз на весь отчёт и записывается рядом с периодом и правилом атрибуции.
Какие источники нужны
Рекламный кабинет даёт расходы, показы и клики. CRM — лиды, квалификацию, встречи, предложения и сделки. Управленческий учёт — выручку и маржинальность. Правило атрибуции связывает сделку с каналом.
Каждая связка требует периода и источника. Если сделка записана на последний контакт, канал первого касания не получит результата. Если расход попал в текущий месяц, а длинная сделка закроется позже, ROMI текущего периода будет занижен.
Есть и обратная ошибка. Партнёрский канал может выглядеть почти бесплатным, если в расходах забыта комиссия посредника, производство материалов или время команды. Высокая выручка может быть начислена по договору, который ещё не оплачен. Повторная продажа старому клиенту иногда записывается на последнее рекламное касание, хотя новый канал не создавал весь спрос.
Эти объяснения не отменяют расчёт. Они задают перечень документов для перепроверки: договор, рекламный кабинет, карточка CRM, подтверждение выручки, состав маржинальности и правило атрибуции. Пока связь не воспроизводится, увеличение бюджета по строке остаётся на паузе.
Средняя маржинальность тоже может исказить вывод. Каналы приводят разный продуктовый и клиентский микс. Смежный разбор — «Клиент с самой большой выручкой приносит меньше всех: как это проверить за один месяц».
Отдельно стоит свериться с расчётом по позициям. Реклама на продажу вычитается из цены до прибыли на единицу — если тот же расход учтён и в канале, и в себестоимости продажи, он посчитан дважды. Механика разложения цены разобрана здесь: «Как разложить цену SKU до прибыли на единицу и не субсидировать оборот».
Стоп-сигнал до изменения бюджета
Встроенный контроль проверяет три условия:
- этапы воронки не увеличиваются;
- расходы не отрицательны;
- маржинальность находится в диапазоне 0–100%.
Если условие нарушено, строку исправляют до решения. Если встроенные проверки пройдены, остаются содержательные вопросы: нет ли дублей, оплачена ли выручка, учтены ли комиссии, верно ли окно атрибуции.
MODEL STATUS = PASS означает прохождение формул контроля. Он не подтверждает полноту CRM и не превращает шаблон в аудит.
Отдельный смысл контроля — не обвинять маркетинг или продажи по одной странной строке. Рост этапа воронки может появиться из-за смешения периодов, ручной дозагрузки CRM или другого определения квалификации. Отрицательный расход бывает возвратом от подрядчика. Но каждое такое объяснение оформляется источником и отдельной корректировкой, а не остаётся устным комментарием к отчёту.
Готовое поручение
«Финансовому директору. За пять рабочих дней соберите отчёт по каждому активному маркетинговому каналу за один закрытый период. По каждой строке укажите расходы, показы, клики, лиды, квалифицированные лиды по согласованному определению, встречи, предложения, сделки, выручку, маржинальность и источник каждого показателя. Рассчитайте CTR, CPC, CPL, стоимость квалифицированного лида, CAC и ROMI по формуле шаблона. Отдельной строкой зафиксируйте базу расходов: суммы внесены с НДС или без него, и одинаково ли это сделано по подрядчикам с налогом и без него. Если этап воронки растёт относительно предыдущего, расход отрицательный, маржинальность вне диапазона 0–100% или сделку нельзя связать с выручкой и каналом, увеличение бюджета по строке остановите до исправления. Сдайте XLSX и краткую записку: какие бюджеты оставить, какие не увеличивать и какие данные перепроверить.»
Собственнику остаётся принять таблицу и не разрешать рост расхода по строке, где связь со сделкой не воспроизводится. По демонстрационным строкам решение выглядело бы так: партнёрский канал — кандидат на рост бюджета после проверки состава расходов и атрибуции второй сделки; контекст — бюджет остаётся прежним, разбирается доля квалификации 27,7%; Telegram — бюджет прежний, одна сделка решения не обосновывает. Сам шаблон — управленческий расчёт. Он не заменяет бухгалтерскую сверку, аудит, форензик или систему сквозной аналитики.
Скачать шаблон отчёта по маркетингу можно на странице материала Finspect. Там же лежит полная версия расчёта.