Почему среднее врёт
Длительности этапов в агентстве распределены не нормально, а с длинным правым хвостом. Большинство съёмок укладывается в три-четыре дня, но один проект, где клиент две недели не согласовывал локацию, тянет среднее вверх на несколько дней.
Медиана (p50) отвечает на другой вопрос: сколько занимает типичный этап. Половина случаев быстрее, половина медленнее. Один выброс её почти не двигает — для планирования нужна именно она.
Но одной медианы мало. p90 — это граница, в которую укладывается девять случаев из десяти. Разрыв между p50 и p90 показывает предсказуемость процесса.
Планируйте внутри агентства по медиане, а обещайте клиенту по p90. Разница между ними — это и есть ваш риск по срокам, выраженный в днях.
Что именно считать: журнал статусов, а не даты в карточке
Соблазн — взять дату создания этапа и дату завершения. Так делать нельзя: этап мог месяц лежать в ожидании, пока команда занималась другим проектом. Это не длительность работы, это возраст записи.
Правильный источник — журнал смен статусов, где каждый переход пишется отдельной строкой:
stage_history
stage_id | old_status | new_status | created_at
a1 | null | wait | 2026-06-01T09:00
a1 | wait | active | 2026-06-03T10:20
a1 | active | done | 2026-06-05T18:40Отсюда получаются две принципиально разные метрики: lead time — от постановки до сдачи, столько ждёт клиент; и active time — суммарное время в статусе «в работе», столько этап реально делали.
Разница между lead time и active time — самая полезная цифра из всех. Она показывает, сколько времени этап просто лежал. Если из восьми дней шесть — ожидание, проблема не в скорости монтажёра.
Узкое место: сравнивать не длительности, а доли
Узкое место — не самый длинный этап, а тот, что съедает наибольшую долю цикла. Этап «Съёмка» может идти четыре дня и быть нормой, а «Согласование» — два дня, но при общем цикле в шесть дней это треть срока, потраченная на переписку.
Считать так: медиана каждого этапа делится на сумму медиан всех этапов проекта. Полученная доля и есть вклад этапа в срок сдачи.
Переделки: метрика, которую почти никто не считает
Доля возвратов назад по процессу. В журнале это переходы, где новый статус «ниже» старого по рангу.
При продлении договора система сбрасывает все этапы проекта обратно в ожидание — это одна операция, а не десяток персональных провалов. Признак пакетного сброса: три и более этапов одного проекта переведены в «ожидание» в пределах одной операции. Такие строки нужно исключать из персональных возвратов, иначе метрика обвиняет людей в том, чего они не делали.
Открытый WIP: то, что не попадает ни в одну метрику
Все расчёты выше опираются на завершённые этапы. Но самое опасное в агентстве — этап, который начали и забыли: его откатили в ожидание, ответственный ушёл в отпуск, клиент замолчал. Он не завершён, поэтому в медиану не попадает, и в отчёте его не видно вообще.
Ловится отдельным проходом: берём последний переход по каждому этапу и, если он не «готово», считаем время с этого момента до сейчас. Превышает медиану этого типа этапа в полтора-два раза — этап завис, и сообщать об этом нужно до того, как дедлайн станет просроченным.
Что делать с этим на практике
- Планируйте по медиане, обещайте клиенту по p90.
- Ускоряйте не самый длинный этап, а тот, у которого наибольшая доля в цикле.
- Сначала убирайте простой, потом оптимизируйте работу: шесть дней ожидания сократить дешевле, чем два дня монтажа.
- Считайте выборку. Медиана по трём наблюдениям — это совпадение, а не метрика.
Как это устроено в DETROYD
В модуле «Циклы» платформа собирает журнал статусов постранично, строит по каждому этапу p50, p85 и p90, отдельно показывает активное время и простой, вычисляет долю этапа в цикле и подсвечивает узкое место. Возвраты считаются по полной модели рангов, пакетные сбросы при продлении договора распознаются и не засчитываются людям. Зависшие этапы попадают в отдельный блок с указанием, сколько они стоят и по чьей стороне — вашей или клиента.