Strategy23 октября 2026 г.7 мин

ARR вырос: разложите изменение на пять движений

Как сверить ARR на начало и конец периода: пять денежных движений, расчёт по клиентам и отдельная проверка neutral, курсового эффекта и ошибок классификации.

Обложка статьи: ARR вырос: разложите изменение на пять движений

ARR вырос на 15%. Эта цифра ещё не объясняет, за счёт чего: пришли новые клиенты, прежние стали платить больше или изменился курс валюты. Я бы начал с таблицы движений, в которой каждый рубль разницы связан с конкретным событием. Сначала проверяем арифметику, затем обсуждаем рост.

Для такого разбора нужны два снимка ARR и журнал изменений между ними. В учебном расчёте ниже я использую ARR = 12 × MRR: годовое выражение текущей регулярной выручки. Это не прогноз поступлений за следующие двенадцать месяцев. У ChartMogul также есть переключение отчёта MRR Movements в годовое представление ARR.

Сначала задайте границы сверки

Сохраните начало и конец одного закрытого периода. Например, состояние непосредственно перед 1 сентября и непосредственно перед 1 октября, с учётом всех событий сентября. Для обеих выгрузок должны совпадать часовой пояс, валюта, состав бизнеса и правила расчёта. Если половину клиентов исключить только из конечного снимка, таблица покажет искусственный отток.

В шапке рабочей таблицы я бы записал правила годового пересчёта, учёта скидок и признания отмены. В строках оставил бы ID клиента и подписки, дату действия изменения, значение до и после, тип движения и ссылку на исходную запись. Разовые работы отделите от подписок; устройство самой модели разобрано в статье «Подписка и MRR: переход на ретейнер».

Зафиксируйте дату выгрузки. Поздно пришедшее событие может изменить старый период. Даже при правильной формуле сравнение вчерашнего журнала с сегодняшним итогом способно дать расхождение.

Какие движения меняют сумму

В классификации ChartMogul тип события зависит от истории клиента и изменения его регулярной выручки:

  • New Business: клиент впервые стал платящим. Учитывается новая регулярная сумма.
  • Expansion: регулярная выручка действующего клиента выросла. Учитывается только прибавка.
  • Reactivation: ранее ушедший платящий клиент вернулся. Его возвращённая сумма выделяется отдельно от новых клиентов.
  • Contraction: выручка клиента уменьшилась, но платная подписка сохранилась. Учитывается потерянная часть.
  • Churn: клиент прекратил последнюю платную подписку. Учитывается вся потерянная регулярная сумма.

Здесь пять направлений денежного изменения. В журнале сервиса есть и шестой тип, Neutral: событие произошло, но MRR не изменился. Поэтому пять строк финансовой сверки не означают, что любое действие клиента обязано попасть в одну из них.

Условный расчёт: от 1,2 до 1,38 млн рублей ARR

Возьмём шесть условных клиентов. Все подписки рублёвые; разовых платежей, курсовых разниц и исправлений прошлых периодов нет. У каждого клиента за сентябрь произошло не больше одного события. Числа ниже нужны для проверки метода и не описывают чей-либо бизнес.

Условный пример
Клиент и событиеMRR до, ₽MRR после, ₽Изменение MRR, ₽Изменение ARR, ₽
А: первая подписка020 000+20 000+240 000
Б: расширение тарифа40 00050 000+10 000+120 000
В: возврат после ухода05 000+5 000+60 000
Г: сокращение тарифа30 00022 000−8 000−96 000
Д: отмена последней подписки12 0000−12 000−144 000
Е: смена плана без изменения суммы18 00018 00000
Всего100 000115 000+15 000+180 000

Для каждой строки изменение MRR равно значению после события минус значение до него. Изменение ARR в этом примере в двенадцать раз больше. Начальный ARR: 100 000 × 12 = 1 200 000 ₽. Конечный: 115 000 × 12 = 1 380 000 ₽.

Проверяем равенство: 1 200 000 + 240 000 + 120 000 + 60 000 − 96 000 − 144 000 = 1 380 000 ₽. Разница составляет 180 000 ₽; делим её на начальные 1 200 000 ₽ и получаем 15%.

Теперь видна деталь, которую скрывал общий процент. Клиенты, платившие на начало месяца, дали 120 000 − 96 000 − 144 000 = −120 000 ₽ ARR. Новая подписка и возврат принесли 300 000 ₽ и перекрыли эту потерю. Рост есть, но действующая на начало периода база сократилась. Решение увеличить привлечение потребует отдельной проверки CPL, CAC и LTV: таблица ARR не содержит расходов и маржи.

Что делать с neutral, FX и спорными событиями

Я бы оставил рядом с денежной сверкой отдельный журнал объяснений. Он нужен, чтобы исправление данных не превращалось в удобную строку «рост». Для каждого исключения сохраняйте исходную запись и правило, по которому приняли решение.

Как разбирать исключения
СитуацияКак учитыватьЧто проверить
NeutralНоль в денежной сверке, событие остаётся в журнале.Не изменились ли валюта, сегмент или правила расчёта при прежней сумме.
Изменился только валютный курсПоказать FX отдельно по методике выбранного отчёта.Курс, дату пересчёта и отсутствие двойного учёта FX внутри других строк.
Клиент сменил сегмент или тарифДля всего бизнеса и отдельного сегмента нужны разные сверки.Не попал ли переход между сегментами в отток всего бизнеса.
Отмена и новая подписка рядом по времениПроверить связь подписок и историю клиента перед классификацией.Это реальный уход и возврат или переоформление действующего договора.
Исправили старую записьВыделить объяснённую корректировку либо пересобрать оба снимка.Какая запись изменилась, за какой период и по какой причине.

Для FX у ChartMogul есть строка Exchange Rate Impact. Детализация зависит от настроек аккаунта: в варианте с поддержкой бесплатных подписок часть курсового эффекта раскрывается внутри expansion и contraction. Перед сложением проверьте правила Report Data. Нельзя прибавлять один и тот же эффект ещё раз отдельной строкой.

Та же документация описывает вход и выход из сегмента при фильтре по тарифу. Клиент может перейти с плана А на Б и остаться клиентом бизнеса. Для сверки плана А это выход из сегмента, а для всей базы такой переход сам по себе не означает churn.

С классификацией тоже бывают развилки. ChartMogul может группировать близкие события, а отмену с покупкой новой подписки показывать как churn и reactivation. Связь подписок влияет на представление. Эти случаи описаны в правилах классификации движений. Я бы сначала восстановил последовательность событий, затем закрепил одно правило для всех одинаковых случаев.

Если начало плюс движения не равно концу

Считайте остаток сверки: конечный ARR минус начальный ARR минус сумма всех учтённых изменений со знаком. В чистом примере выше остаток равен нулю. Если отдельно учтены FX и объяснённые корректировки, они тоже входят в сумму изменений. Неизвестный остаток так и подпишите: «не объяснено».

  1. Сравните даты, часовой пояс, валюту и фильтры двух снимков и журнала. Проверьте, что событие на границе периода попало в расчёт ровно один раз.
  2. Сверьте суммы по клиентам, затем по подпискам. Уберите дубли событий, проверьте пропущенные страницы выгрузки и обновления, пришедшие с задержкой.
  3. Проверьте единицы. В ChartMogul List Activities поле activity-mrr-movement содержит изменение MRR, а activity-arr — новый ARR после события. Суммы передаются в целых сотых единиц валюты аккаунта. Складывать состояния ARR как движения нельзя.
  4. Вернитесь к правилам скидок, отмен, курсов и сегментов. Если клиент несколько раз менял тариф, двух конечных снимков хватит для чистой разницы, но не для восстановления всех движений внутри периода.

После сверки выберите несколько крупнейших положительных и отрицательных движений и откройте исходные записи. Это позволит обсудить конкретные причины: какой тариф расширили, какой объём убрали, кто вернулся. До этого момента общий процент роста слишком легко объяснить удобной историей.

Ещё по теме