КПКейсПрактика
Все материалы
Продуктовая аналитикагайдстарт

Процентили и квантили: как читать p50, p90 и p99 в продуктовой аналитике

Как использовать процентили и квантили для latency, времени доставки, чеков и пользовательского опыта: формулы, примеры, ошибки и правила интерпретации.

КПКейсПрактикаЗапланировано · 19 июля 2026 г.11 мин

Среднее время ответа в API может быть 280 мс, и график будет выглядеть спокойно. Но если p99 равен 7 секундам, часть запросов уже ломает сценарий пользователя. Процентили помогают говорить о доле наблюдений ниже порога, а не о воображаемом «среднем пользователе». В этом материале разберём как увидеть проблемы у части пользователей, если среднее выглядит нормально? и соберём практический порядок действий: от определения данных до формулировки решения.

Коротко

Как увидеть проблемы у части пользователей, если среднее выглядит нормально?

p50 — медиана: половина наблюдений не превышает это значение. p90 означает, что 90% наблюдений не превышают порог, а 10% находятся выше. p99 показывает хвост, но становится шумным при маленькой выборке. Квантиль — более общий термин; процентиль обычно выражает его в шкале от 0 до 100.

  • Назови единицу наблюдения, период и правило включения до расчёта.
  • Показывай оценку рядом с размером выборки, разбросом или интервалом.
  • Отделяй наблюдение, гипотезу и решение: это три разных уровня уверенности.

Какой рабочий вопрос здесь решает статистика

Среднее время ответа в API может быть 280 мс, и график будет выглядеть спокойно. Но если p99 равен 7 секундам, часть запросов уже ломает сценарий пользователя. Процентили помогают говорить о доле наблюдений ниже порога, а не о воображаемом «среднем пользователе».

Процентили легко превращаются в рабочие договорённости: «90% отчётов открываются быстрее 10 секунд» или «95% доставок укладываются в обещанное окно». Важно закрепить окно, объект и способ расчёта. Иначе команда начнёт спорить о цифре, хотя на самом деле использует разные знаменатели.

Правило чтения

Если нельзя одним предложением назвать объект, окно, сравнение и действие, формула пока выбрана слишком рано.

Определение и расчёт

Сначала проверь, что ряд упорядочен и наблюдения сопоставимы. Для latency полезно считать квантили по endpoint, устройству и версии приложения. Для денег — по заказам или пользователям в зависимости от вопроса. Не сравнивай p99 из часа с p99 из недели без понимания размера выборки и состава трафика.

Используй p50 для типичного опыта, p75 или p90 для операционного контроля, p95/p99 для хвоста и SLO. Рядом показывай n и период. Если квантиль прыгает, сначала проверь размер окна, редкие категории и изменение источника. Для денежных распределений добавь абсолютные значения и долю пользователей, а не только красивую линию.

Интерпретация процентиля
p90 = value, below which 90% of observations fall

Оставшиеся 10% не исчезают: их нужно изучать отдельно.

Мини-кейс

Команда сократила среднюю задержку поиска с 420 до 350 мс, но p95 вырос с 1,2 до 2,4 секунды. Оптимизация помогла большинству быстрых запросов и одновременно ухудшила часть тяжёлых фильтров. Если в отчёте оставить только среднее, команда решит, что релиз прошёл без побочных эффектов.

После первого расчёта не переходи сразу к выводу. Проверь, не меняется ли знак или размер результата при разумной альтернативе: другой горизонт, зрелая когорта, user-level агрегация, фиксированный mix или отдельный технический слой. Именно эта проверка отделяет устойчивый сигнал от удачного среза.

Хвост latency после релиза

Условные данные показывают, почему среднее может улучшиться вместе с p95.

Время ответа, мс

Пошаговый алгоритм

Используй p50 для типичного опыта, p75 или p90 для операционного контроля, p95/p99 для хвоста и SLO. Рядом показывай n и период. Если квантиль прыгает, сначала проверь размер окна, редкие категории и изменение источника. Для денежных распределений добавь абсолютные значения и долю пользователей, а не только красивую линию.

Для любого времени или суммы построй таблицу p50, p75, p90, p95, p99 и n. Затем ответь: какой процент пользователей попадает за целевой порог? Какой сегмент формирует хвост? Что произойдёт, если убрать один экстремальный день? Такой мини-анализ часто даёт больше, чем ещё один средний показатель.

Если расчёт станет регулярным, вынеси его из ручной ячейки в понятный pipeline: входные данные, преобразования, проверки и результат должны быть видны отдельно. Тогда новый период можно пересчитать без копирования старого вывода и без риска незаметно поменять знаменатель.

  • Зафиксируй baseline и правило сравнения до просмотра итоговой цифры.
  • Проверь grain, пропуски, дубли, даты и зрелость результата.
  • Разложи изменение по сегментам только после общей контрольной сверки.
  • Запиши, какой факт изменит решение и кто отвечает за следующий шаг.

Где результат ломается

Нельзя усреднять процентили разных групп и получать «общий p90». Для общего значения пересчитай квантиль по исходным наблюдениям или используй корректную mergeable-агрегацию. Не называй p99 гарантией: это оценка по окну. И не выбирай p99 только потому, что он драматичнее — метрика должна соответствовать риску сценария.

Ограничение не делает анализ бесполезным. Оно сужает область, в которой вывод можно применять. Если измерение подходит только для активных пользователей, зрелых когорт или одного типа устройства, назови это прямо и не расширяй утверждение на всю базу.

Процентиль под задачу
ПоказательВопросПример применения
p50каков типичный опыт?время первого ответа
p90сколько укладывается большинство?SLO и операционный контроль
p95где начинается ощутимый хвост?медленные экраны
p99какие редкие случаи опасны?платежи и критические запросы

Как интерпретировать без лишней уверенности

Хорошая формулировка выглядит так: «p90 времени до отчёта снизился с 18 до 11 секунд, то есть девять из десяти запусков теперь укладываются в 11 секунд; p99 не изменился из-за редких выгрузок более миллиона строк». В этом выводе видно, что улучшилось и где остался отдельный класс проблем.

Сильный вывод начинается с факта, продолжает его диапазоном и заканчивается действием. Формулировки «связано», «совместимо с», «не удалось отличить» и «следующий шаг» точнее, чем автоматические «улучшилось» или «эффекта нет».

Факт → ограничение → действие

Сначала сообщи, что видно в данных. Затем назови, что мешает сделать более сильный вывод. В конце предложи один проверяемый следующий шаг.

Практика для аналитика

Для любого времени или суммы построй таблицу p50, p75, p90, p95, p99 и n. Затем ответь: какой процент пользователей попадает за целевой порог? Какой сегмент формирует хвост? Что произойдёт, если убрать один экстремальный день? Такой мини-анализ часто даёт больше, чем ещё один средний показатель.

Сохрани не только финальную цифру, но и входной период, параметры расчёта, версию определения и контрольные сверки. Воспроизводимость особенно важна для метрик, которые попадут в статью, дашборд, A/B-тест или решение руководителя.

Как связать материал с соседними задачами

Статистический метод не живёт отдельно от предметной области. Один и тот же приём может понадобиться в продуктовой метрике, SQL-запросе, pandas-пайплайне, эксперименте или бизнес-отчёте. Поэтому после базового расчёта переходи к соседнему материалу, где тот же вопрос разобран на другом уровне.

Не добавляй все возможные разрезы сразу. Выбери следующий материал по решению: проверить данные, понять поведение пользователя, оценить эффект, построить график или подготовиться к разговору с командой.

Чеклист перед публикацией результата

Перед тем как отправить число в чат или на дашборд, пройди короткий чеклист. Его можно превратить в шаблон аналитической задачи и использовать повторно для разных метрик.

Если на один пункт нет ответа, не прячь пробел в подписи графика. Запиши его как ограничение и реши, блокирует ли он действие. Иногда правильный результат — не новая формула, а исправление события или уточнение бизнес-вопроса.

  • Что является единицей наблюдения и почему?
  • Какой знаменатель, период и timezone используются?
  • Есть ли пропуски, дубли, неполный день или незрелая когорта?
  • Какие сегменты и альтернативные baseline меняют интерпретацию?
  • Каков размер эффекта, диапазон неопределённости и бизнес-порог?
  • Какое действие следует из результата и когда его пересмотреть?

Вывод

Хорошая формулировка выглядит так: «p90 времени до отчёта снизился с 18 до 11 секунд, то есть девять из десяти запусков теперь укладываются в 11 секунд; p99 не изменился из-за редких выгрузок более миллиона строк». В этом выводе видно, что улучшилось и где остался отдельный класс проблем.

Статистика становится полезной не тогда, когда в отчёте появляется сложный термин. Она полезна, когда помогает уменьшить ошибку решения: заметить неправильный grain, не спутать календарный шум с ростом, не выдать корреляцию за причину и увидеть, что данных пока недостаточно. Держи этот порядок рядом с SQL, Python и дашбордом — и цифры будут работать как часть процесса.

Продолжить чтение
Вся библиотека
Продуктовая аналитикаЗапланировано · 17 июля 2026 г.11 мин

Среднее, медиана и мода: какую «середину» выбрать в аналитике

Разбираем среднее арифметическое, медиану и моду на примерах выручки, времени доставки и размера заказа: когда показатели расходятся и что писать в выводе.

Читать материал
Продуктовая аналитикаЗапланировано · 16 июля 2026 г.14 мин

Статистика для аналитика с нуля: как читать данные и не делать лишних выводов

Базовый маршрут по статистике для аналитика: выборка, распределение, среднее, медиана, интервал неопределённости и проверка гипотезы на рабочих примерах.

Читать материал