Метрики и формулы
0. Как читать документ: отношения (ratio) и индексы (index)
В Karometr используются два разных типа метрик, и подменять одно другим методологически неверно:
| Отношение (ratio) | Индекс (index, база 100) | |
|---|---|---|
| Что измеряет | абсолютный физический уровень в моменте | изменение периода относительно периода сравнения, в сопоставимых условиях |
| Пример | , | , |
| Обязательное условие корректности | единый момент фиксации ( — конец периода) | расчёт только на сопоставимой панели дилеров (раздел 4) и с календарной корректировкой (раздел 6) |
| Отвечает на вопрос | «сколько сейчас» | «насколько изменилось с точки сравнения, без искажения от смены состава источников» |
1. Переменные и данные
| Обозначение | Название | Единица | Момент/период фиксации | Источник | Назначение | Ограничения |
|---|---|---|---|---|---|---|
| текущий период (день) | — | — | — | точка отсчёта времени в формулах | — | |
| лаг сравнения периода | дни | — | задаётся пользователем/дашбордом | шаг сравнения для | должен быть согласован (например, 30 дней) | |
| лаг годового сравнения | дни | — | фиксированная константа | шаг сравнения для | обычно 365; вопрос календарного vs скользящего года открыт (см. раздел 14) | |
| окно наблюдения когорты | дни | — | согласуется владельцем продукта | определяет, через сколько дней после заключения контракт считается «устоявшимся» | значение (30/60/90) не выбрано — см. раздел 14 | |
| валовой поток новых контрактов | шт. | заключены в периоде | fact_contracts | базовый поток продаж, точка входа всех метрик | не учитывает последующие расторжения | |
| поток расторжений периода | шт. | расторгнуты в периоде , независимо от даты заключения | fact_cancellations | нужен для | не привязан к когорте — нельзя использовать как показатель «спроса периода » | |
| чистый поток контрактов | шт. | период | расчётная (из , ) | операционный индикатор нетто-активности (сколько контрактов на руках прибавилось за период) | не является показателем спроса — смешивает расторжения разных когорт | |
| когортные расторжения | шт. | контракты когорты , расторгнутые в пределах окна | fact_contracts ⋈ fact_cancellations | числитель для , вычитаемое в | требует ожидания окончания окна для окончательного значения | |
| очищенный контрактный спрос когорты | шт. | контракты когорты , сохранившие силу после окончания окна | расчётная | основная метрика спроса — база для индексов и обеспеченности запасом | до истечения дней после конца периода значение предварительное | |
| доступный складской остаток | шт. | конец периода | fact_inventory_snapshot | знаменатель для обеспеченности запасом | момент фиксации (конец дня) должен быть единым во всех источниках — см. раздел 14 | |
| множество дилеров с валидными данными в периоде | множество ID | период | dim_dealer + DQ-статус | база для сопоставимой панели | дилеры с неполной/невалидной выгрузкой исключаются | |
| сопоставимая панель дилеров | множество ID | пересечение периодов и | расчётная, | ограничивает расчёт индекса только теми, кто присутствует в обоих периодах | без неё сравнение периодов с разным составом источников некорректно |
Примечание: переменные , , , , , (лиды, показы, цена, скидка, резервы, маржа) зафиксированы как возможное расширение модели, но в текущем этапе не являются обязательными к сбору.
2. Первичные показатели: валовой и чистый поток контрактов
Заключение контракта рассматривается как наблюдаемое выражение реализованного покупательского намерения и используется в качестве оперативного индикатора спроса — но не приравнивается ко всему рыночному спросу (часть спроса не доходит до контракта: отказы на более ранних стадиях воронки платформой не фиксируются).
Смысл результата: нетто-изменение числа действующих контрактов за период — сколько контрактов «на руках» прибавилось или убавилось.
Единица измерения: штуки за период .
Пример интерпретации: за день заключили 10 контрактов, расторгли 3 (из них 2 — контракты, заключённые неделями ранее) → .
Условия корректного применения: пригоден как операционный индикатор нетто-активности (например, для дашборда «на сколько выросла база активных контрактов»), но не должен подставляться в формулы, где требуется именно спрос когорты периода .
3. Очищенный контрактный спрос (когортный)
Когортные расторжения — расторжения контрактов, заключённых в периоде , произошедшие в пределах окна наблюдения :
Очищенный контрактный спрос:
Смысл результата: количество контрактов периода , которые остались в силе после завершения окна наблюдения — то есть подтверждённый, устоявшийся спрос именно этой когорты покупателей.
Единица измерения: штуки, привязанные к когорте и окну .
Пример интерпретации: из 10 контрактов, заключённых 1 марта, за 30 дней после заключения 2 были расторгнуты → .
Условия корректного применения: окно должно быть единым во всех формулах, где используется (индексы, обеспеченность запасом, доля расторжений) — сравнение метрик, посчитанных с разным , некорректно.
3.1 Доля расторжений
Смысл результата: какая доля контрактов когорты не дожила до конца окна наблюдения .
Пример интерпретации: заключили 100 контрактов, 12 расторгнуто в пределах 30 дней → .
Для чего нужен: одновременный рост числа контрактов и доли расторжений может указывать на снижение качества спроса, проблемы с кредитованием, поставками, ценами или на наличие повторных/дублирующих договоров — сам по себе рост не является однозначно позитивным сигналом без контроля .
4. Сопоставимая панель дилеров
Не вся дилерская сеть подключена к платформе, и состав подключённых источников может меняться между периодами. Сравнивать абсолютные суммы по периодам с разным составом источников без нормализации нельзя — рост показателя может означать не рост спроса, а просто подключение новых дилеров.
где:
- — множество дилеров с валидными данными в периоде ;
- — множество дилеров с валидными данными в периоде сравнения ;
- — сопоставимая панель: только дилеры, присутствующие в обоих периодах.
Условия корректного применения: все индексы (раздел 5) обязаны считаться только по . Если сравнение по несопоставимой панели всё же нужно (например, для абсолютного объёма рынка «как есть»), это должно сопровождаться явным предупреждением в интерфейсе, а не подаваться как сопоставимая динамика.
5. Индексы (база 100)
Индекс к предыдущему сопоставимому периоду:
Годовой индекс:
где и (или ) считаются только по дилерам сопоставимой панели .
Интерпретация:
| Значение | Смысл |
|---|---|
| показатель не изменился | |
| рост на 8% | |
| снижение на 8% |
Единица измерения: безразмерный пункт индекса (база 100).
Условия корректного применения: индекс считается только на сопоставимой панели ; для ежедневных данных обязательна календарная корректировка (раздел 6); на последних днях перед датой расчёта — предварительное значение (раздел 3), это должно быть видно в интерфейсе.
6. Календарные эффекты (для ежедневных данных)
Понедельник нельзя напрямую сравнивать с воскресеньем — структура спроса по дням недели неоднородна. Для оперативного дневного сравнения применяется один или несколько подходов:
- сравнение с аналогичным днём предыдущей недели ();
- семидневное скользящее среднее;
- календарная корректировка по дням недели, праздникам и рабочим дням.
Семидневное скользящее среднее:
7. Складские остатки и обеспеченность запасом
— количество доступных для продажи автомобилей на конец периода . Момент фиксации должен быть единым во всех источниках (раздел 14) — запас (остаток на момент времени) и поток (события за период) нельзя смешивать без приведения к общему временному масштабу.
где — средний дневной очищенный контрактный спрос за выбранное окно :
Единица измерения: дни.
Пример интерпретации: на складе 300 автомобилей, средний дневной спрос — 10 контрактов в день → дней.
При использовании месячных данных допускается показатель .
Интерпретация в терминах Months of Supply (отраслевой стандарт для недвижимости и авторитейля):
| Состояние | |
|---|---|
| 0–1 (≈ ) | дефицит |
| 1–1.5 (≈ ) | норма для авторынка |
| 3+ (≈ ) | затоваривание |
7.1 Агрегация обеспеченности запасом по сегменту
При своде по нескольким моделям/брендам в сегмент или по всему рынку — сначала суммировать числитель и знаменатель, затем делить, а не усреднять частные значения по моделям:
8. Взвешенные индексы по составу модельного ряда (опциональный слой)
Разделы 5–7 нормализуют сравнение по составу дилерской панели, но не по составу модельного ряда: рост продаж дорогой модели и рост продаж бюджетной модели в сумме учитываются одинаково. Если нужен единый рыночный индекс, устойчивый к изменению модельного ряда (например, при сравнении регионов с разной структурой продаж), применяется классическая схема индексов количества Ласпейреса/Пааше/Фишера, где роль веса значимости играет средняя цена контракта модели.
Ласпейрес (веса базового периода):
Пааше (веса текущего периода):
Фишер (устраняет системные смещения обоих методов):
где / — средняя цена контракта модели в базовом/текущем периоде (источник — mart_pricing), — очищенный когортный спрос по модели .
По той же схеме строится индекс запасов (подстановка вместо ) и индекс баланса рынка:
9. Отложенные/неактуальные для текущего этапа показатели
- (полный сезонно-нормализованный индекс спроса, в отличие от календарной корректировки раздела 6) — не используется в текущей методике. Ориентир при реализации — методология Manheim Used Vehicle Value Index: отсечение выбросов (>2.6σ по цене и пробегу), регрессионная mix-adjustment поправка на пробег, сезонная корректировка (Census X), база 100 на фиксированную дату.
- (индекс предложения через baseline) — требует отдельного согласования знаменателя.
10. Сигналы и алерты
Все пороги алертов интерпретируются как коэффициент изменения: значение означает отсутствие изменений, — рост в 2 раза, — снижение вдвое.
- Аномалия валового потока контрактов (статистическое правило):
где — скользящее среднее числа контрактов за 28 дней, — скользящее стандартное отклонение за тот же период.
- Резкое изменение краткосрочного индекса:
- Значительное изменение среднесрочного индекса ():
- Существенное изменение годового индекса:
- Дополнительные сигналы (опционально на этапе v1):
Второй сигнал: срабатывает, если сегодняшняя доля когортных расторжений выше, чем 90% всех дневных значений за последние 180 дней — попадает в «худшие 10%» за полгода.
11. Контроль качества, версии и предварительные значения
Общий контур контроля качества данных (полнота, дубли, timeliness, справочники) описан в Модели данных и Сверке и аудите. Специфично для когортной методологии данного документа:
- Каждая метрика на основе хранит флаг
is_preliminaryдо истечения окна . - Исторические показатели пересчитываются при поступлении запоздавших расторжений (), исправлений задним числом или уточнённых данных — пересчёт затрагивает все зависимые метрики (
CancellationRate, индексы,StockDays). - Договор должен иметь единый идентификатор на всём жизненном цикле, включая случаи перезаключения — иначе когортный расчёт будет неверно относить расторжение к чужой когорте.
- Тестовые/технические контракты исключаются до расчёта .
- Полнота ежедневной выгрузки проверяется до включения дилера в за период — дилер с неполной выгрузкой не входит в панель этого периода.
12. Конфиденциальность публикации метрик
Ролевой/атрибутный доступ (RBAC/ABAC) и аудит-логирование описаны в ABAC-модели доступа. Дополнительно к общей политике доступа — методологические ограничения именно на публикацию метрик:
- Минимальное число дилеров в выборке для публикации показателя.
- Минимальное число событий (контрактов) в выборке.
- Запрет отображения срезов, по которым можно однозначно определить показатели одного дилера (см. правило анти-деанонимизации в Дашбордах, уровень 2).
- Объединение или скрытие слишком узких региональных/модельных срезов, не проходящих пороги (1)–(2).
- Публикация индекса вместо абсолютного значения там, где абсолютное значение раскрывает объём конкретного дилера.
13. Вопросы владельцу продукта
Следующие параметры методологии не могут быть определены без решения владельца продукта — в документе они оставлены как открытые переменные (, , , ), а не зафиксированы произвольно:
- Какое окно наблюдения используется для очищенного спроса : 30, 60 или 90 дней?
- Какая дата считается датой контракта (дата подписания, дата в DMS, дата первого события)?
- Как учитываются перезаключённые договоры — сохраняется единый идентификатор или это новая когорта?
- Как обрабатываются контракты на один автомобиль, заключённые одним покупателем у нескольких дилеров?
- Считается ли расторжение по инициативе дилера и клиента одинаково, или это разные причины с разным весом?
- Какой остаток используется — на начало или конец дня?
- Какие автомобили считаются доступными для продажи (учитываются ли зарезервированные, находящиеся в пути, демо-автомобили)?
- Какой минимальный размер выборки (дилеров/событий) допустим для отображения индекса (раздел 12, пункты 1–2)?
- Как часто допускается пересчёт исторических показателей и на какую глубину истории?
- Какие абсолютные данные можно показывать пользователям, а какие должны быть доступны только в виде индексов?
- Нужен ли на текущем этапе взвешенный по модельному ряду слой индексов (раздел 8, //), или он переносится на следующий этап?
- Лаг годового сравнения — фиксированные 365 дней или календарный год (с учётом високосных лет)?
14. Источники методологии
- Laspeyres, Paasche, Fisher index number methods — geeksforgeeks.org, efinancemanagement.com.
- Months of Supply (отраслевой стандарт баланса спроса/предложения) — ShowingTime, Redfin.
- Manheim Used Vehicle Value Index (методология ценового индекса: mix-adjustment, сезонность, база 100) — Summary Methodology PDF.
- Сопоставимая панель () методологически аналогична принципу repeat-sales/matched-sample, используемому в индексах недвижимости (например, S&P CoreLogic Case-Shiller): в сравнение включаются только объекты (там — сделки повторной продажи, здесь — дилеры), присутствующие в обоих сравниваемых периодах, что убирает искажение от смены состава выборки.