Как посчитать Product-Market Fit Survey в SQL

Закрепи формулу pmf survey в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать pmf survey в Telegram

Зачем PMF Survey

Sean Ellis (создатель термина growth hacking) предложил metric: спросите юзеров «как бы вы себя чувствовали, если бы не могли использовать продукт?». Если ≥ 40% отвечают «very disappointed» — у вас Product-Market Fit. <40% — нет, ещё работайте.

Sean Ellis 40% rule

Вопрос: «How would you feel if you could no longer use [product]?»

Ответы:

  • Very disappointed
  • Somewhat disappointed
  • Not disappointed
  • N/A — I don't use [product]

PMF score = % "very disappointed".

Базовый расчёт

Данные: pmf_responses(user_id, response, submitted_at).

SELECT
    COUNT(*) AS total_responses,
    COUNT(*) FILTER (WHERE response = 'very_disappointed') AS very_disappointed,
    COUNT(*) FILTER (WHERE response = 'very_disappointed')::NUMERIC * 100
        / NULLIF(COUNT(*), 0) AS pmf_score_pct
FROM pmf_responses
WHERE submitted_at >= CURRENT_DATE - INTERVAL '90 days';

PMF score > 40% — у вас PMF.

По сегментам

SELECT
    u.segment,
    COUNT(p.user_id) AS responses,
    COUNT(p.user_id) FILTER (WHERE p.response = 'very_disappointed')::NUMERIC * 100
        / NULLIF(COUNT(p.user_id), 0) AS pmf_score_pct
FROM pmf_responses p
JOIN users u ON u.user_id = p.user_id
WHERE p.submitted_at >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY u.segment
HAVING COUNT(p.user_id) >= 30
ORDER BY pmf_score_pct DESC;

Если PMF score высокий в одном сегменте, низкий в другом — focus на той аудитории.

Закрепи формулу pmf survey в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать pmf survey в Telegram

Какие изменения отслеживать

SELECT
    DATE_TRUNC('quarter', submitted_at) AS quarter,
    COUNT(*) FILTER (WHERE response = 'very_disappointed')::NUMERIC * 100
        / NULLIF(COUNT(*), 0) AS pmf_score_pct
FROM pmf_responses
WHERE submitted_at >= '2026-01-01'
GROUP BY 1
ORDER BY 1;

Если PMF score падает — продукт менее ценен для активных юзеров. Bad sign.

Частые ошибки

Ошибка 1. Опрос неправильной аудитории. Спрашивать всех — много «N/A» (не используют). Спрашивайте только активных юзеров.

Ошибка 2. Включать «N/A» в знаменатель. Формально нет: PMF score = «very disappointed» / (very + somewhat + not). Игнорируйте N/A.

Ошибка 3. Sample size. n=20 → ±20% margin. Минимум 100+ для reliable PMF score.

Ошибка 4. Сравнивать with vanity metrics. PMF score 35% и DAU 1М — DAU не значит PMF. Реверс тоже верен.

Ошибка 5. Одноразовый PMF. PMF меняется со временем (market shift, new competitors). Re-measure quarterly.

Связанные темы

FAQ

Какой PMF score считается хорошим?

40%+ — Sean Ellis threshold = у вас PMF. 25-40% — близко. <25% — нет PMF.

Спрашивать всех или активных?

Только активных. Иначе много N/A → biased.

PMF score vs NPS?

PMF — strong signal of must-have. NPS — likelihood to recommend. Связаны, но разные.

PMF падает — что делать?

  1. Найдите, кто остался very disappointed (best segment). 2) Talk to them. 3) Double-down на их use case.

PMF в стартапе с 50 юзерами?

n=50 даёт ±15% error. Lord-cumulative — opt for narrative + signals (referrals, retention), не number.