Набор 2+2+ товаров в заказе, без скидок (разные цвета/размеры)
2+скидка2 товара, один со скидкой оператора (~20%)
Набор со скидкой3 товара: 2-й −20%, 3-й −30% (скидки на каждый)
1+1=3Купи 2 — третий в подарок (цена 3-го = 0 ₴)
Скидка1 товар со спецценой (напр. из базы выкупленных)
🗂 Маппинг статусов → категории
Как каждый CRM-статус классифицируется для расчёта метрик. FUTURE: редактирование через DB
Формулы расчёта выкупа
Выкуп% (факт)
Выкуп / (Выкуп + Невыкуп + В пути) × 100
В пути = только sent=1: В пути, На почте, ТТН создана. Обмены NEW/Ожидаем НЕ входят. Показывает реальный % из тех заказов, судьба которых известна или ожидается.
Выкуп+Дорога% (прогноз)
(Выкуп + В пути × 0.5) / (Выкуп + Невыкуп + В пути) × 100
Считаем что 50% посылок в дороге → выкупят. Знаменатель = тот же что Выкуп%. Математически гарантировано: Выкуп+Дорога% ≥ Выкуп%.
Выкуп(с обм)% (консерв.)
Выкуп / (Выкуп + Невыкуп + В пути + Обм.ожид.) × 100
Pending-обмены (Обмен NEW/Ожидаем) входят в знаменатель как потенциальный риск. Наихудший сценарий: если все ожидающие обмены не будут приняты клиентом. Математически гарантировано: Выкуп(с обм)% ≤ Выкуп%.
⚠ Для закрытых месяцев (нет В пути и нет Обм.ожид.): все три формулы дают одинаковый результат = Выкуп / (Выкуп + Невыкуп). Разница видна только для текущего месяца.
Логика обменов и манибеков
Обмен NEW / Обмен ожидаем
Клиент получил посылку, недоволен размером, инициировал обмен. Возврат в пути или ожидается.
Текущий учёт: в_процессе, sent=0 (не считаются "посылкой в пути"), exw=1.
Что произойдёт дальше:
Обмен принят клиентом → выкуп (статус "Обмен Устарел")
Клиент отказался от нового → невыкуп
Зависло → отображается в Обм.ожид.
Манибек
Клиент получил товар, отправил назад и запросил возврат средств.
Текущий учёт: невыкуп, mnbk=1.
Это правильно: товар был отправлен, клиент его не принял (или принял и вернул), деньги возвращены. С бизнес-точки зрения — невыкуп.
Входит в Невыкуп счётчик и в знаменатель Выкуп%
Показывается отдельно в summary для контроля
📐 Справочник метрик
📦 Объёмы
Заказов
COUNT( все заказы в выборке )
Выкуплено
COUNT( cat = 'выкуп' )
Невыкуп
COUNT( cat = 'невыкуп' ) — склад + невыкуп в пути + манибек
Отмен
COUNT( cat = 'отмена' )
Финализировано
Выкуп + Невыкуп — заказы с известным исходом
В пути
COUNT( cat = 'в_процессе' AND sent = 1 ) — отправлено, ещё не финализировано
В обработке
COUNT( cat = 'в_процессе' AND sent = 0 ) — новые, перезвон, не отправлены