NPS — Net Promoter Score для аналитика
Коротко
NPS (Net Promoter Score) — метрика лояльности клиентов. Один вопрос: «С какой вероятностью от 0 до 10 вы порекомендуете нас другу?». Ответы делят на промоутеров (9–10), нейтралов (7–8) и критиков (0–6). NPS = % промоутеров − % критиков. Диапазон: от −100 до +100. Для аналитика NPS — одна из ключевых метрик продукта наряду с retention и LTV. На собеседованиях спрашивают формулу, интерпретацию и ограничения.
Формула
NPS = % промоутеров − % критиков| Оценка | Группа | Описание |
|---|---|---|
| 9–10 | Промоутеры | Рекомендуют, лояльны, покупают ещё |
| 7–8 | Нейтралы | Удовлетворены, но могут уйти к конкуренту |
| 0–6 | Критики | Недовольны, могут навредить репутации |
Нейтралы в формулу не входят — они не влияют на NPS напрямую.
Пример
Опрошено 100 клиентов:
- 45 поставили 9–10 (промоутеры)
- 30 поставили 7–8 (нейтралы)
- 25 поставили 0–6 (критики)
NPS = 45% − 25% = +20
Расчёт в Python
import pandas as pd
df = pd.DataFrame({
'user_id': range(1, 101),
'score': [10, 9, 8, 7, 6, 5, 10, 9, 8, 3] * 10 # пример данных
})
# Классификация
df['group'] = pd.cut(
df['score'],
bins=[-1, 6, 8, 10],
labels=['detractor', 'passive', 'promoter']
)
# Расчёт NPS
counts = df['group'].value_counts(normalize=True)
nps = (counts.get('promoter', 0) - counts.get('detractor', 0)) * 100
print(f'NPS: {nps:+.0f}')
# Детализация
print(df['group'].value_counts(normalize=True).round(3))Расчёт в SQL
SELECT
ROUND(
(COUNT(CASE WHEN score >= 9 THEN 1 END)::NUMERIC / COUNT(*) * 100)
- (COUNT(CASE WHEN score <= 6 THEN 1 END)::NUMERIC / COUNT(*) * 100)
, 1) AS nps
FROM nps_surveys
WHERE survey_date >= '2025-01-01';NPS по месяцам
SELECT
DATE_TRUNC('month', survey_date) AS month,
COUNT(*) AS responses,
ROUND(
(COUNT(CASE WHEN score >= 9 THEN 1 END)::NUMERIC / COUNT(*) * 100)
- (COUNT(CASE WHEN score <= 6 THEN 1 END)::NUMERIC / COUNT(*) * 100)
, 1) AS nps
FROM nps_surveys
GROUP BY DATE_TRUNC('month', survey_date)
ORDER BY month;NPS по сегментам
SELECT
u.segment,
COUNT(*) AS responses,
ROUND(
(COUNT(CASE WHEN s.score >= 9 THEN 1 END)::NUMERIC / COUNT(*) * 100)
- (COUNT(CASE WHEN s.score <= 6 THEN 1 END)::NUMERIC / COUNT(*) * 100)
, 1) AS nps
FROM nps_surveys s
JOIN users u ON s.user_id = u.user_id
GROUP BY u.segment
ORDER BY nps DESC;Интерпретация
| NPS | Оценка |
|---|---|
| 70+ | Отлично (Apple, Tesla уровень) |
| 50–69 | Очень хорошо |
| 30–49 | Хорошо |
| 0–29 | Нужно улучшать |
| < 0 | Критиков больше, чем промоутеров |
NPS сильно зависит от индустрии. +30 для банка — хороший результат. +30 для SaaS-продукта — средний. Сравнивайте с конкурентами своей отрасли, не с абсолютными цифрами.
NPS в динамике
Абсолютное значение NPS менее информативно, чем тренд:
import matplotlib.pyplot as plt
months = ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн']
nps_values = [25, 28, 22, 35, 40, 38]
plt.plot(months, nps_values, marker='o')
plt.axhline(y=30, color='green', linestyle='--', alpha=0.5, label='Цель')
plt.title('NPS по месяцам')
plt.ylabel('NPS')
plt.legend()
plt.show()Рост NPS → продукт улучшается. Падение → что-то пошло не так (обновление, баг, изменение цен).
NPS как guardrail-метрика
В A/B-тестах NPS часто используется как guardrail-метрика: основная цель теста — увеличить конверсию, но NPS не должен упасть. Если конверсия выросла, а NPS упал — пользователи покупают, но недовольны (например, из-за агрессивных попапов).
Ограничения NPS
Не объясняет «почему». NPS показывает уровень лояльности, но не причину. Критик поставил 3 — из-за цены? UX? Поддержки? Нужен follow-up вопрос: «Что мы можем улучшить?»
Зависит от формулировки и контекста. NPS после покупки vs NPS в email через месяц — разные значения. Стандартизируйте момент и канал опроса.
Низкая response rate. Обычно отвечают 10–30% пользователей. Промоутеры и критики отвечают чаще нейтралов — возможен bias.
Не учитывает интенсивность. Оценка 0 и 6 — оба «критики», но 0 — совсем другой уровень недовольства.
Культурные различия. В Японии редко ставят 10 (скромность). В США 10 — норма. Сравнивать NPS между странами нужно осторожно.
NPS vs другие метрики лояльности
| Метрика | Что измеряет | Вопрос |
|---|---|---|
| NPS | Рекомендация | «Порекомендуете ли?» (0–10) |
| CSAT | Удовлетворённость | «Насколько довольны?» (1–5) |
| CES | Усилие | «Насколько легко было?» (1–7) |
CSAT — про конкретное взаимодействие (поддержка, покупка). NPS — про отношение к бренду в целом. CES — про удобство процесса.
Типичные ошибки
NPS на малой выборке. NPS из 20 ответов — статистически ненадёжен. Минимум 100–200 ответов для значимого результата.
Сравнение NPS разных каналов. NPS из email-опроса и in-app опроса — разные выборки и разные результаты. Сравнивайте like-for-like.
NPS как единственная метрика. NPS не заменяет retention, LTV, churn. Это одна из метрик, не единственная.
Вопросы с собеседований
-- Что такое NPS и как его считать? -- Net Promoter Score. Вопрос: «Порекомендуете от 0 до 10?». 9-10 — промоутеры, 7-8 — нейтралы, 0-6 — критики. NPS = % промоутеров − % критиков.
-- NPS = 0 — это плохо? -- Нейтрально. Промоутеров столько же, сколько критиков. Для большинства индустрий это средний результат. Критично — отрицательный NPS.
-- Как улучшить NPS? -- Анализировать обратную связь критиков, находить системные проблемы. Уменьшить % критиков обычно эффективнее, чем увеличить % промоутеров.
-- Почему нейтралы не входят в формулу? -- Нейтралы удовлетворены, но не лояльны. Они не рекомендуют (не промоутеры) и не вредят (не критики). NPS фокусируется на полярных группах.
Потренируйтесь решать задачи — откройте тренажёр с 1500+ вопросами для подготовки к собеседованиям аналитиков.
FAQ
Как часто измерять NPS?
Для SaaS: ежемесячно или ежеквартально. Для e-commerce: после каждой покупки (transactional NPS) + раз в квартал (relationship NPS). Слишком частые опросы раздражают пользователей.
NPS для B2B vs B2C?
B2B: опрашивайте decision-makers, не конечных пользователей. Один аккаунт = один голос. B2C: каждый пользователь — голос. B2B-бенчмарки обычно выше (30-50), B2C — ниже (20-40).
Как посчитать статистическую значимость изменения NPS?
NPS — разность долей. Используйте z-тест для разности пропорций или бутстрэп для доверительного интервала NPS.
Как тренироваться
NPS — одна из ключевых метрик продуктовой аналитики. Задачи на метрики — в тренажёре Карьерник. Больше вопросов — в разделе с примерами.