🌟 Не сошлись в отчётах: как дебажить бизнес-метрики Знакомая ситуация: в двух отчётах выручка отличается на несколько процентов, EBITDA не совпадает с финансовой моделью, а маржинальность почему-то «прыгает». При этом SQL-запросы выглядят корректно, формулы проверены, но цифры разные

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

👽 Убедись, что сравниваешь одно и то же

Одинаковое название метрики ещё не означает одинаковую логику расчёта

Например, в P&L могут отличаться:

Revenue: выручка с НДС или без, начисленная или фактически полученная Gross Profit: какие именно затраты включены в себестоимость. EBITDA: какие расходы и корректировки учитываются. OPEX: какие статьи относятся к операционным расходам. Profit Margin: какая прибыль используется в числителе — валовая, операционная или чистая.

Также проверь период признания доходов и расходов, валюту, курс конвертации и правила распределения общих затрат

Первым делом нужно сверить определения метрик и методологию их расчёта 🌟🌟 Разбирай расчёт по слоям

Если итоговая EBITDA не совпадает с финансовым отчётом, не пытайся сразу переписать весь запрос

Двигайся от простого к сложному:

Проверь исходные транзакции и проводки Посчитай выручку и расходы отдельно Сверь промежуточные показатели Постепенно возвращай фильтры, JOIN и бизнес-правила

Так можно определить, на каком именно этапе появляется расхождение: при загрузке данных, агрегации или финальном расчёте

✌️ Проверь JOIN и дубликаты

Одна из частых причин ошибок — неправильная кардинальность соединений

Например, одна транзакция связана с несколькими строками распределения затрат. После JOIN сумма расходов может задвоиться, а вместе с ней изменится и EBITDA

Что проверить:

Сколько строк было до и после JOIN? Уникален ли ключ соединения? Не размножаются ли транзакции? Совпадают ли суммы до и после объединения таблиц?

Если выручка или расходы внезапно выросли после JOIN — это повод проверить кардинальность

🎧 Ищи конкретные записи, а не разницу в итогах

Допустим, в одном P&L выручка составляет 12 млн, а в другом — 12,4 млн

Сама разница в 400 тысяч мало что объясняет. Гораздо полезнее найти операции, которые сформировали эти 400 тысяч

Сравни данные по:

ID транзакций датам операций статьям доходов и расходов подразделениям и бизнес-направлениям

В SQL для этого пригодятся EXCEPT, FULL OUTER JOIN и группировки по ключам

😰 Проверь фильтры и временные границы

Иногда проблема не в формулах, а в том, какие данные попали в отчёт

Например:

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

Особенно внимательно проверяй границы периодов, часовые пояса и дату последнего обновления данных

🌟 Не сошлись в отчётах: как дебажить бизнес-метрики
Знакомая ситуация: в двух отчётах выручка отличается на несколько процентов, EBITDA не совпадает с финансовой моделью, а маржинальность почему-то «п... | Сетка — социальная сеть от hh.ru 🌟 Не сошлись в отчётах: как дебажить бизнес-метрики
Знакомая ситуация: в двух отчётах выручка отличается на несколько процентов, EBITDA не совпадает с финансовой моделью, а маржинальность почему-то «п... | Сетка — социальная сеть от hh.ru