Один источник правды по понятиям и формулам всех дашбордов Bunny Hill: категорийного отчёта, дашборда портфеля, карточек брендов и Airtable. Если цифра в двух местах не сходится — сначала сюда: чаще всего дело в разной базе (канал, комиссия, брутто/нетто), а не в ошибке.
В отчётах обе величины стоят рядом: выручку показываем и брутто, и нетто. А расчётные метрики — ST, оборачиваемость, маржа — считаются только от выкупа.
| Термин | Формула / база | Где встречается | Что важно знать |
|---|---|---|---|
| Отгрузки Что отгрузили покупателю за период — сумма заказов. |
Σ отгрузок покупателям из 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
при каждом обновлении базы. |