Почему расходятся расходы на рекламу

В рекламном кабинете одна сумма, в Метрике другая, в отчёте руководителя третья. Прежде чем искать пропавшие деньги, проверьте, что именно посчитала каждая система.
Разница может появиться из-за НДС, разных дат, повторной загрузки или комиссии, которую один отчёт учитывает, а другой нет. Ниже разберём, как найти этот участок и не исправить правильную сумму по ошибке.
Начните с НДС
Сравнение 100 000 ₽ без НДС и 122 000 ₽ с НДС даст разницу 22 000 ₽. Но дополнительного размещения рекламы здесь нет. Это одна стоимость услуги, показанная на разных условиях.
Это учебный пример со ставкой 22%. С 1 января 2026 года основная ставка НДС в России составляет 22%, но применять её ко всем строкам автоматически нельзя. Ставку и включение налога проверяйте по документу, поставщику и периоду услуги. Для старых периодов не подставляйте нынешнюю ставку. Разъяснение ФНС.

Чтобы сравнить суммы, приведите их к одному виду:
- Из суммы без НДС получить сумму с НДС: умножить на
1 + ставка / 100. - Из суммы с НДС получить сумму без НДС: разделить на
1 + ставка / 100. - Выделить налог из общей суммы: вычесть из неё сумму без НДС.
Для примера выше: 122 000 / 1,22 = 100 000 ₽. Вычитать 22% из 122 000 ₽ неправильно, потому что налог начислен на базу, а не на итог.
Для отчёта можно хранить обе суммы. Главное, чтобы столбцы назывались «Расход без НДС» и «Расход с НДС», а не одинаково «Расход». Какую из них использовать в управленческой оценке окупаемости, согласуйте с финансовой службой. Это не определяется настройкой рекламного кабинета.
Откуда пришёл расход и что в нём учтено
У каждого источника есть свои условия. Зафиксируйте их один раз в описании загрузки, чтобы не разгадывать состав суммы после каждого обновления.
| Источник | Что проверить |
|---|---|
| Яндекс.Директ API, сервис Reports | Параметр IncludeVAT, валюту и единицы денежного поля Cost |
| Директ в Метрике | Здесь расходы без НДС. Проверьте состав кампаний и дату, к которой отнесён расход |
| VK Реклама через API | Конкретный кабинет и способ выгрузки, валюту, единицы и включение НДС. Подтвердите на контрольном периоде |
| VK Реклама через интеграцию Метрики | Передаются расходы без НДС. Передача идёт за прошедший день, состав данных может отличаться от полного кабинета |
| Excel или Google Таблицы | Назначение каждой суммы, оплаченный период, НДС и уникальный номер записи |
| Партнёрская сеть с оплатой за действие | Какие действия оплачиваются, их статус, ставка и её период действия, отмены и отдельные платежи |
Директ API. В сервисе Reports IncludeVAT: "YES" включает НДС, "NO" исключает. Денежные значения по умолчанию передаются умноженными на миллион. Заголовок returnMoneyInMicros: false позволяет получать суммы в валюте. Сохраните эти настройки вместе с описанием загрузки. Иначе корректное число легко принять за расход в других единицах. Небольшую разницу между суммой строк и агрегированным итогом проверьте на округление. Спецификация запроса, денежные значения.
Метрика. В отчёте Метрики «Директ, расходы» суммы показываются без НДС. Кампании с оплатой за показы в нём не представлены. Не считайте Метрику независимым вторым расходом, если она получила те же данные Директа. Кроме того, Метрика относит расходы к дате клика. Для кампаний с оплатой за конверсии это может отличаться от даты конверсии в соответствующем отчёте Директа. Справка об отчётах Директа в Метрике.
VK Реклама. Для прямой API-выгрузки нельзя переносить настройки НДС из Директа по аналогии. Сверьте ответ вашей загрузки с кабинетом за один закрытый день. Отдельный путь через интеграцию Метрики описан в справке Яндекса: данные передаются без НДС, ежедневно за предыдущий день. Их полнота зависит в том числе от UTM-меток и доменов счётчика. Условия интеграции VK Рекламы.
Автоматическая загрузка из таблицы тоже требует проверки. Если в ячейке лежит сумма с НДС, загрузчик не сможет надёжно определить это по самому числу.
Один расход не должен приехать двумя маршрутами
Директ может передать расход в Метрику автоматически. Если затем загрузить туда тот же расход самостоятельно, получится повторный учёт. Яндекс прямо предупреждает об этом в инструкции по передаче расходов. В том же формате поле Expenses должно содержать сумму без НДС.
Похожая ошибка возникает в собственном отчёте: расход берут напрямую из рекламного API, затем добавляют его копию из Метрики. Две системы здесь не означают две покупки рекламы.

Выберите основной источник для каждого вида расхода. Второй используйте для сверки. Например, размещение в Директе берётся из Reports, а данные Метрики помогают проверить передачу. Комиссия агентства поступает отдельно по своему основанию.
То же правило действует для разных детализаций. Выгрузки по площадкам и устройствам могут показывать одни и те же деньги в разных разрезах. Сначала выясните, что означает строка и какие расходы вошли в каждый итог. Разные названия строк не доказывают, что их можно сложить.
Партнёрские сети: что можно считать автоматически
При оплате за действие, или CPA, расход можно рассчитывать по подтверждённым действиям и согласованной ставке. Например, по принятым заявкам или оплаченным заказам, если именно это предусмотрено условиями партнёра.
Для фиксированной ставки расчёт такой:
Расход = число оплачиваемых действий × ставка
Для процентного вознаграждения:
Расход = согласованная база вознаграждения × процент / 100
База не обязательно равна всей выручке из CRM. В условиях могут быть возвраты, ограничения по продуктам и отдельные правила принятия заказов. Эти правила нужно перенести в расчёт, а не заменить одной общей ставкой.

В учебном примере пять принятых действий по 1 000 ₽ дают комиссию 5 000 ₽. Если отдельно предусмотрена абонентская плата 2 000 ₽, итог составит 7 000 ₽. Все суммы примера приведены без НДС. Запись той же комиссии 5 000 ₽ из ручной таблицы нужна для сверки и не увеличивает итог до 12 000 ₽.
Для автоматического расчёта нужны:
- Уникальный номер действия, чтобы не считать его повторно.
- Статус, при котором возникает оплата. Отправленная заявка и принятая партнёром заявка могут быть разными событиями.
- Ставка и даты её действия. Нынешняя ставка не должна незаметно пересчитывать прошлый месяц.
- Правило отмен и возвратов, включая период корректировки.
- Отдельные правила для абонплаты и доплат, с указанием НДС.
Если сеть уже отдаёт готовый расход, сначала сверяйте свой расчёт с ним. Не прибавляйте готовую сумму к результату собственного калькулятора за те же действия.
Ручные расходы: добавление, замена или только сверка
У ручной суммы должно быть понятное назначение. Она может дополнять автоматический расход, заменять конкретное начисление или просто подтверждать его.
Минимальная запись в таблице выглядит так:
Номер → партнёр → вид расхода → период услуги → сумма → валюта → НДС → способ учёта
Совпадения партнёра и даты недостаточно для удаления «дубля». В один день могли внести комиссию и абонплату. А дата внесения строки не обязательно совпадает с оплаченным периодом.
При повторной загрузке таблицы запись с тем же номером должна обновляться, а не добавляться ещё раз. Если загрузка не прошла, отчёт должен показывать дату последнего успешного обновления. Пустой результат после ошибки нельзя принимать за нулевые расходы.
Что показала рабочая сверка
В одном из рабочих разборов одновременно обнаружились несколько ограничений. Сравнивались разные версии расчёта, расходы были представлены в разных детализациях, а ручные платежи требовали уточнения назначения. Названия компаний, реальные суммы и идентификаторы здесь не раскрываются.
Детализации проверяли отдельно, без сложения их итогов. Абонентскую плату отделили по смыслу от комиссии. Разницы между версиями расчёта не объявляли переплатой, поскольку сверка с первичными документами ещё не была завершена.
Отдельно проверяли расходы без идентификатора объявления. Идентификатор кампании у них был. Поэтому утверждение «расход потерялся» было бы неточным: сумма была видна по кампании, но подтверждённой связи с продуктом не хватало.
Это два разных дефекта. Отсутствие суммы в общем итоге требует проверки загрузки и расчёта. Наличие суммы без распределения по продуктам требует проверки связей. Название кампании не заменяет такую связь, а распределение остатка наугад только скрывает проблему.
Полное устранение расхождений и экономия в этом разборе не подтверждены. Он показывает, какие выводы можно сделать по проверенным данным, а где нужны дополнительные основания. Примеры с НДС и CPA выше учебные, они не являются показателями этого проекта.
Проверка перед следующим отчётом
Возьмите один закрытый период и пройдите расход от источника до итоговой строки.
- Совпадают ли даты, валюта и состав источников?
- Везде ли одинаково учтён НДС и правильно прочитаны единицы суммы?
- Не попали ли одни расходы через API, Метрику и таблицу одновременно?
- Применены ли нужные ставки, статусы и правила возвратов?
- Сошёлся ли итог с контрольной суммой, а остаток получил объяснение?
Если ответы есть, можно обсуждать окупаемость. До этого её изменение может объясняться тем, что расход посчитали иначе. Выбор модели атрибуции не исправит задвоенную комиссию или НДС, добавленный второй раз.