← Все отчёты

📖 Словарь терминов отчётности

Один источник правды по понятиям и формулам всех дашбордов Bunny Hill: категорийного отчёта, дашборда портфеля, карточек брендов и Airtable. Если цифра в двух местах не сходится — сначала сюда: чаще всего дело в разной базе (канал, комиссия, брутто/нетто), а не в ошибке.

Главное различие

Введено 13.08.2026, когда в отчётность добавили возвраты покупателей
ОТГРУЗКИ — что отгрузили покупателю (заказы). Возвраты не вычтены.
ВЫКУП = отгрузки − возвраты. Что покупатель оставил себе.
ЗАКУПКИ — что мы купили у поставщика, в евро. Это движение в другую сторону, к нам.

В отчётах обе величины стоят рядом: выручку показываем и брутто, и нетто. А расчётные метрики — ST, оборачиваемость, маржа — считаются только от выкупа.

⚠️ Ловушка в Airtable: поле «Закупки за текущий год €» означает закупки у поставщиков в €, а наши отгрузки покупателям лежат в поле «Отгрузки покупателям ₽». Одно слово в двух смыслах — смотрите на описание поля.

Термины

Что означает, как считается и где встречается
ТерминФормула / базаГде встречаетсяЧто важно знать
Отгрузки
Что отгрузили покупателю за период — сумма заказов.
Σ отгрузок покупателям из 1С, ₽ Плитки сезонов, KPI-блоки, таблица брендов, карточка бренда Возвраты не вычтены. До 13.08.2026 это называлось «Продажи» — переименовано, потому что часть отгруженного возвращается.
Выкуп
Сколько покупатель оставил себе.
отгрузки − возвраты, ₽ и шт Рядом с отгрузками во всех блоках Именно от выкупа считаются ST, оборачиваемость и маржа. Возвращённая вещь физически лежит на складе — при брутто-расчёте она считалась дважды: и как проданная, и как остаток.
Возвраты
Что покупатель вернул.
возвраты ₽ / отгрузки ₽ × 100 % Отдельная плитка, колонки в таблицах, разрезы по SKU Канал берётся из типа документа 1С, а не раскладывается пропорционально: «Возврат товаров от клиента» → ИМ + опт, «Отчет о розничных возвратах» → розница. В ИМ возвращают ~27 % оборота, в рознице меньше 1 % — пропорция ошиблась бы в разы.
Закупки
Что мы купили у поставщика.
Volkova + Alexol, € KPI закупок, карточка бренда, бюджет Это приход товара к нам, а не отгрузка покупателю. В Airtable это поля «Закупки … €». До 13–14.08.2026 они назывались «Отгрузки», то есть ровно наоборот, — переименованы.
ST (Sell-through)
Какая доля завезённого разошлась.
выкуп шт / (выкуп шт + остаток шт) × 100 % Плитки сезонов, таблица брендов, основные показатели Цель ≥ 65 %. С 13.08.2026 числитель — выкуп, а не отгрузки: иначе возвращённая вещь попадала и в числитель, и в знаменатель.
Оборачиваемость
За сколько месяцев разойдётся текущий остаток при нынешнем темпе.
остаток шт / средний выкуп шт в месяц Плитки сезонов, таблица брендов, подсорт Среднее — 3-месячное скользящее, текущий неполный месяц экстраполирован до полного (× дней в месяце / дней прошло). Меньше — лучше, цель < 6 мес.
Маржинальность
Доля валовой прибыли в выручке.
(выкуп ₽ − (ЗЦ − ЗЦ возвратов)) / выкуп ₽ × 100 % KPI-блоки, плитки сезонов, таблица брендов Себестоимость вернувшегося товара считается точно (возвраты шт × ЗЦ этого SKU), а не через долю штук: возвраты дороже средней продажи — средний чек возврата ~5 100 ₽ против ~4 200 ₽, и усреднение занижало маржу примерно на 2 п.п. на пустом месте. Если возвраты пропорциональны продажам, процент маржи почти не меняется — содержательна только разница миксов. Падает абсолютная прибыль.
Валовая прибыль
Маржинальность в рублях.
выкуп ₽ − (ЗЦ − ЗЦ возвратов) Подпись под «Маржинальность YTD» Рядом показана цена возвратов — насколько прибыль ниже той, что была бы без единого возврата. Именно эта цифра, а не процент, показывает стоимость возвратов для бизнеса.
Средневзвешенная скидка
Насколько в среднем продаём дешевле РРЦ.
(1 − факт. РЦ / полная РЦ) × 100 % KPI-блоки, таблица брендов Остаётся брутто и это намеренно: скидка — ценовая политика на момент продажи, последующий возврат её не переоценивает.
LFL
Рост к тому же периоду прошлого года.
выкуп текущего периода / выкуп того же периода год назад − 1 Таблица брендов, основные показатели, ключевые наблюдения Считается от выкупа в ОБОИХ годах и по закрытым месяцам. На отгрузках рост выглядит выше: часть «прироста» — товар, который вернулся. Разрыв между двумя версиями равен росту доли возвратов год к году.
main
Основная база расчётов.
ИМ + Розница (ЦДМ + Цветной) + Опт выкуп Практически везде Комиссия исключена — и из продаж, и из остатка, и из возвратов. Так заложено в логику дашборда изначально: плохая оборачиваемость комиссии искажала бы остальные каналы. Возврат от комиссионера — это партнёр вернул непроданное, а не покупатель вернул товар.
Аутлет
Зависшие модели прошлых сезонов.
лист «Неликвид» в Excel Отдельная плитка сезонов, доля аутлета Считается отдельно и не вычитается из сумм по сезонам: SKU остаются в своих базовых сезонах и одновременно входят в аутлет.
Вес размера
Какую долю отгрузок категории даёт этот размер.
отгрузки размера / отгрузки категории × 100 % Разрез по размерам Смотреть обязательно вместе с долей возвратов: 46 % возвратов на размере весом 0,5 % — это две вещи, а не проблема сетки. Размерные сетки у категорий разные (обувь — числа, одежда — ростовки, игрушки — «0+»), поэтому разрез разбит по категориям.
Доля закупки от выкупа
Сколько закупаем относительно того, что покупатель оставил себе.
закупка € × курс / (выкуп main + продажи комиссии) «Основные показатели», таблица брендов, Airtable → «Доля закупки от выкупа YTD» Норматив 45 %: 🟢 <48 % · 🟡 48–70 % · 🔴 >70 % — перезакупка. Знаменатель — выкуп, а не отгрузки: возвращённый товар уже лежит на складе и новой закупки не требует. В комиссии берём продажи партнёра конечному покупателю, а не отгрузки на его склад. Транспорт в числитель не входит — норматив задан в ЗЦ, до транспорта и курса. До 14.08.2026 считалось от отгрузок, и норматив был 38 %; тогда же убрали дубль «Коэф закупки/выкупа».
Экстраполяция текущего месяца
Доводим неполный месяц до полного, чтобы сравнивать с закрытыми.
факт × дней в месяце / дней прошло Колонка «тек. мес», оборачиваемость, прогноз К возвратам применяется осторожно: возврат приходит с лагом 1–3 недели после отгрузки, поэтому доля возвратов текущего месяца почти всегда занижена. Где важна точность — берём последний полный месяц.

От чего считается каждая метрика

Зелёное — от выкупа (возвраты вычтены), жёлтое — от отгрузок
МетрикаБазаПочему именно так
Sell-throughвыкупвозвращённая вещь лежит на складе — в брутто считалась дважды
Оборачиваемостьвыкупостаток разойдётся тем темпом, который остаётся у покупателя
Маржинальностьвыкупвозврат не принёс ни выручки, ни валовой прибыли
Валовая прибыльвыкупто же самое, но в рублях
Доля закупки от выкупавыкупвозвращённый товар уже на складе — закупать его повторно не нужно
Прогноз выручкивыкупиначе модель считает проданным то, что вернулось
Подсорт (Back in Stock)выкупна брутто-скорости заказывали товар под возвраты
Статус «ДЕФИЦИТ»выкупбыстрый оборот при высоких возвратах — это примерка, а не спрос
Средневзвешенная скидкаотгрузкиценовая политика на момент продажи, возврат её не меняет
Метрики комиссииотгрузкивозвратов покупателей там нет по определению

Почему цифры расходятся между блоками

Три обычные причины — прежде чем искать ошибку
СимптомПричина
Отгрузки в шапке больше, чем в блоке канала В шапке — все каналы, включая Комиссию. В канальных блоках комиссии нет.
Маржа в 1С выше, чем в отчёте В отчёте маржа от выкупа: возврат не принёс ни выручки, ни прибыли. В 1С в «Валовой прибыли» отгрузка и возврат лежат разными строками.
«% канала» и «доля всей компании» разные Разные знаменатели. «% канала» — доля сезона внутри своего канала, «доля всей компании» — в общем объёме ИМ + Розница по всем брендам.
Один артикул несколько раз в топ-15 SKU Это не дубль: один артикул = несколько кодов 1С, по одному на размер. Размер показан плашкой рядом с артикулом.
Доля возвратов текущего месяца подозрительно низкая Возврат приходит с лагом 1–3 недели после отгрузки. Неполный месяц всегда занижен — сравнивайте последние полные месяцы.
Сумма возвратов меньше, чем в 1С Возвраты по SKU, которых уже нет в номенклатуре, теряются везде — и в разрезах, и в итогах: колонки живут по коду 1С. Точная величина потери пишется в Скрипты_БД / data eturns_reconciliation.json при каждом обновлении базы.