Учет расходов на SMS: бюджеты, лимиты и распределение по сценариям

Учёт расходов на SMS начинается до счёта провайдера. Каждая отправка должна быть связана со сценарием, подразделением, кампанией, маршрутом и числом сегментов. Тогда рост затрат можно объяснить: стало больше клиентов, изменился текст, выросла цена направления или началась аномальная генерация OTP.
Общая сумма за месяц нужна бухгалтерии, но почти бесполезна для управления. Для решения нужны стоимость полезного результата, отклонение от бюджета и причина изменения.
Единица учёта
Одна бизнес-SMS может тарифицироваться как несколько сегментов. Поэтому сохраняйте фактическое или рассчитанное число частей, кодировку, направление, оператора, тариф и валюту. Подробно влияние текста разобрано в статье про длину SMS и сегменты.
Минимальные измерения:
scenario_idи тип трафика;- cost center или подразделение;
- campaign ID;
- провайдер и маршрут;
- страна/оператор в допустимой детализации;
- Sender ID;
- сегменты и цена;
- статус принятия и доставки;
- дата события и дата тарификации.
Не используйте номер телефона как аналитическую метку. Для детализации достаточно внутреннего message ID и защищённого журнала.
Сценарий важнее отдела
Один отдел может запускать OTP, сервисные уведомления и рекламу с разной экономикой. Присваивайте расходы бизнес-сценарию в момент создания задачи, а не пытайтесь восстановить назначение по тексту в конце месяца.
Реестр сценариев хранит владельца, шаблон, бюджет, приоритет и целевое действие. Если задача приходит без валидного scenario ID, её либо отклоняют, либо отправляют в отдельный «неразнесённый» поток с алертом. Иначе неизвестная категория быстро становится самой большой.
План, мягкий и жёсткий лимит
Для сценария задают плановый бюджет и два порога. Мягкий предупреждает владельца и требует проверить причину. Жёсткий ограничивает скорость, останавливает необязательный поток или переводит его на ручное согласование.
Критичные сервисные SMS нельзя безусловно выключать из-за месячного лимита. Для них заранее определяют резерв и процедуру эскалации. Массовую кампанию, наоборот, безопасно поставить на паузу до решения.
Порог должен учитывать сезонность и фактический объём. Сравнивайте не только с календарным планом, но и с прогнозом на текущий день: если половина бюджета ушла за первый час, месячный алерт опоздает.
Аномалии расходов
Рост бывает законным: акция привела больше заказов, появились новые клиенты, изменился тариф. Аномалию отличают дополнительные показатели:
- расход растёт без роста бизнес-событий;
- число сегментов изменилось после новой версии шаблона;
- много повторов API на одну операцию;
- OTP выдаются, но почти не проверяются;
- возникло новое дорогое направление;
- доля недоставки выросла;
- неизвестный сервис отправляет без scenario ID.
Для OTP отдельная угроза — SMS pumping. Бюджетный предохранитель должен остановить её до получения большого счёта.
Плановая и фактическая цена
На этапе отправки система может знать расчётную цену, а окончательная сумма появляется позже в отчёте провайдера. Храните оба значения и регулярно сверяйте их. Разница возникает из-за сегментов, маршрута, тарифа, оператора или округления.
Сверка проходит по периоду, аккаунту и message ID либо другому доступному ключу. Не найденные записи разбирают отдельно: сообщение есть у провайдера, но нет у вас, или наоборот. Это может указывать на прямую интеграцию вне общего контура.
При изменении тарифа сохраняйте версию цен. Пересчёт прошлых отправок по новой цене искажает динамику.
Стоимость результата
Для рекламы считайте не только цену отправки, но и стоимость дополнительной покупки или маржи. Атрибуция SMS связывает действия с кампанией, а контрольная группа помогает оценить инкрементальный эффект.
Для сервисного трафика результат другой: успешный вход, подтверждение заказа, снижение звонков или соблюдение срока. Стоимость доставленного OTP полезнее цены одной попытки, потому что учитывает повторы и недоставку.
Формула должна соответствовать задаче. Нельзя сравнивать рекламную кампанию и аварийное уведомление по одному ROI.
Отчёт владельцу
Хороший еженедельный отчёт показывает:
- план и факт по сценарию;
- объём сообщений и сегментов;
- цену принятого и доставленного сообщения;
- повторы, ошибки и просрочки;
- стоимость целевого действия;
- причины заметных изменений;
- прогноз до конца периода.
Владелец видит не только перерасход, но и рычаг: сократить лишний сегмент, исправить дубли, изменить частоту, остановить слабую кампанию или пересмотреть маршрут.
Права и согласование
Изменение лимита, тарифа, маршрута и владельца сценария попадает в аудит. Маркетолог может видеть бюджет своей кампании, но не должен самостоятельно увеличивать глобальный лимит OTP. Финансовая команда сверяет счета, техническая — источники и маршруты, владелец продукта — ценность сценария.
Роли и пороги закрепляются в регламенте SMS-рассылок, чтобы срочное увеличение бюджета не происходило через неформальную просьбу без следа.
Проверка системы
Возьмите несколько message ID и пройдите от бизнес-события до строки счёта. Проверьте сегменты, тариф, cost center и кампанию. Измените шаблон так, чтобы он пересёк границу сегмента, и убедитесь, что прогноз и алерт это заметили.
Смоделируйте резкий поток OTP и достижение мягкого и жёсткого порога. Критичный маршрут должен перейти в согласованный режим, массовый — остановиться, а уведомление получить правильный владелец.
Прогноз и резерв
Бюджет критичных уведомлений планируют с резервом на сезонный пик и временные повторы, но резерв не скрывает постоянную неэффективность. В отчёте он отображается отдельно: основной план, использованный запас и причина.
Прогноз строят из числа бизнес-событий, ожидаемых сегментов и актуальных тарифов. Если продукт планирует удвоить регистрации, финансовая модель должна увидеть рост OTP до запуска рекламы, а не после счёта.
Для кампаний полезен сценарный расчёт: базовая аудитория, ожидаемая доставляемость, число сегментов, стоимость и минимальный инкрементальный результат для окупаемости.
Распределение общих расходов
Абонентская плата, резервный канал и инфраструктура не всегда относятся к одной отправке. Зафиксируйте правило распределения: по объёму, зарезервированной мощности или прямому владельцу. Не меняйте метод каждый месяц ради красивой экономики отдела.
В отчёте разделяйте прямые расходы провайдера и общую стоимость владения. Для операционного лимита важна первая, для решения «строить или менять канал» — обе.
Контроль изменения шаблона
Новая версия текста может увеличить сегменты для части длинных подстановок. До активации рассчитайте стоимость на распределении реальных длин без вывода персональных данных. Если p95 сообщения стало двухсегментным, средний короткий пример этого не покажет.
После релиза сравните прогноз с фактом по version ID. Рост выше допуска автоматически приостанавливает расширение canary и возвращает шаблон на проверку.
Защита от двойного счёта
Повторный DLR и повторная выгрузка провайдера не должны создавать вторую стоимость. Используйте устойчивый ключ строки тарификации и храните версию импорта. Корректировки отражаются отдельной операцией, а не незаметным переписыванием истории.
Сверка показывает три множества: совпавшие записи, только внутренние и только провайдерские. Каждое расхождение получает статус и владельца, пока итоговая сумма не объяснена.
Итог
Управляемый SMS-бюджет связывает каждую отправку со сценарием, сегментами, тарифом и результатом. Мягкие и жёсткие лимиты защищают от неожиданностей, сверка с провайдером выявляет расхождения, а cost center показывает владельца решения. Тогда экономия достигается не слепым сокращением объёма, а устранением дублей, слабых кампаний и лишних сегментов.