Всем привет!

Меня зовут Владимир Павлов, я продакт-менеджер. Недавно я проходил кейс-интервью и получил отказ со следующим комментарием: «Правильно выбираешь ключевые метрики, но не хватает измеримости, структуры, прокси‑ и контр‑метрик».

Получив данный фидбек, я решил углубиться в метрики, но не нашел простого инструмента для тренировок их построения и работы с ними. Пришлось создать свой инструмент для этих целей :-)

Оплатив платный доступ к GPT, приступил к Vibe Coding. Весь процесс занял примерно 2 недели, занимаясь по вечерам в будние дни + выходные.

Остановился на следующем объеме функциональности:

  1. Генерация метрик на основе текстового описания продукта.

  2. AI-инсайты для метрик.

  3. Подсказки при ручном добавлении новых метрик.

Работает c GPT-4.o-mini (самая простая модель), GPT-4.o, GPT-4.1 и GPT 5.1 (экспертный уровень).

Ссылка на инструмент

Генерация дерева метрик на основе текстового описания

Разбор живого примера: проект "Яша" - покупка шин с доставкой до шиномонтажа

Это мой реальный B2B2C проект (2024-2025), который объединял маркетплейсы и проверенные шиномонтажи.

Цель продукта: Доставка шин, купленных на маркетплейсе, до шиномонтажа.

North Start Metric: Количество доставок шин до шиномонтажа

Основные продуктовые метрики:

  • Конверсия «выбор доставки — доставка до шиномонтажа»

  • Конверсия «оформление доставки до шиномонтажа — подтверждение шиномонтажом»

  • Доля партнеров, которые принимают заказы

  • Среднее время подтверждения заказа

Применение MetricTree.

Подав "На вход" максимально детальное описание продукта + вышеуказанные метрики, получил следующий результат:

Дерево метрик, сгенерированное с помощью MetricTree
Дерево метрик, сгенерированное с помощью MetricTree

Указанные метрики MetricTree встроил в дерево со следующими дочерними метриками:

1. Конверсия "выбор доставки - доставка до шиномонтажа"

Метрика Конверсия "выбор доставки - доставка до шиномонтажа" с дочерними
Метрика Конверсия "выбор доставки - доставка до шиномонтажа" с дочерними

Дочерние метрики:

  1. CR: просмотр опций доставки → выбор «до шиномонтажа» (Продуктовая)

  2. Доля показов опции «до шиномонтажа» среди всех заказов шин (Прокси)

  3. CR по сегментам (регион, тип клиента, устройство) (Прокси)

Вывод: Первая дочерняя метрика корректно раскрывает родительскую, вторая скорее отражает доступность опции, а третья это разрез/диагностика, а не полноценный драйвер конверсии.

2. Конверсия "оформление доставки до шиномонтажа - подтверждение шиномонтажом"

Метрика Конверсия "оформление доставки до шиномонтажа - подтверждение шиномонтажом" с дочерними
Метрика Конверсия "оформление доставки до шиномонтажа - подтверждение шиномонтажом" с дочерними

Дочерние метрики:

  1. Количество оформленных заказов с доставкой до шиномонтажа (Контр)

  2. Количество заказов, подтверждённых шиномонтажом (Контр)

  3. Доля автоподтверждений (если есть логика авто-accept) (Прокси)

  4. Основные причины отказа от подтверждения (категории) (Прокси)

Вывод: Метрики в целом отражают путь заказа по этапам, но первые две это счётчики, а не коэффициенты, поэтому они описывают объём, а не конверсию. Прокси-метрики помогают объяснить результат, особенно автоподтверждений и причины отказов, однако для полноты картины не хватает именно относительных CR между этапами, а не только количественных значений.

3. Доля партнёров, которые принимают заказы

Метрика Доля партнёров, которые принимают заказы с дочерними
Метрика Доля партнёров, которые принимают заказы с дочерними

Дочерние метрики:

  1. Доля партнёров, принявших ≥1 заказ за период (Продуктовая)

  2. Доля партнёров с отказами > Y% от входящих заказов (Прокси)

  3. Среднее количество заказов на активного партнёра (Продуктовая)

Вывод: Логика дочерних метрик в целом корректна: они описывают активность партнёров и качество работы. Первая и третья метрика являются прямыми составляющими родительской, а вторая является прокси-показателем качества, влияющим на общую долю принимающих партнёров, но не являющийся прямой конверсией.

4. Среднее время подтверждения заказа шиномонтажем

Метрика Среднее время подтверждения заказа шиномонтажем (Продуктовая) с дочерними
Метрика Среднее время подтверждения заказа шиномонтажем (Продуктовая) с дочерними

Сформированы дочерние метрики:

  1. Медианное время подтверждения заказа (Продуктовая)

  2. 90-й перцентиль времени подтверждения (Продуктовая)

  3. Доля заказов, подтверждённых за ≤ X минут (Прокси)

  4. Задержка по каналам уведомлений (SMS, мессенджеры) (Операционная)

Вывод: Структура дочерних метрик сформирована корректно: медиана и P90 хорошо раскрывают распределение, доля подтверждений за ≤ X минут отражает SLA-качество, а задержки уведомлений выступают операционным фактором, влияющим на скорость подтверждения.

AI-инсайты для каждой метрики

Для каждой метрики можно получить AI инсайт, который включает в себя:

  • роль метрики

  • влияние на родительскую метрику

  • влияние дочерних метрик

  • риски

  • варианты улучшения

Пример:

Пример AI-инсайта
Пример AI-инсайта

AI подсказки, какие метрики добавить

MetricTree помогает строить дерево, предлагая варианты новых метрик, анализируя структуру дерева и контекст продукта.

Пример:

Пример подсказки при добавлении метрики
Пример подсказки при добавлении метрики

Технические детали

1. Архитектура

Фронтенд:

Компонент

Использование

React + Hooks

состояние, рендер дерева

ReactFlow

визуализация графа метрик

Dagre

автолэйаут дерева

NanoID

генерация ID метрик

LocalStorage

сохранение дерева между сессиями

GPT-4o/4.1/5.1

генерация дерева и инсайтов

Шаги:

  • Запрос от пользователя

  • GPT строит JSON-дерево

  • Визуализация через ReactFlow.

Бэкенд:

Компонент

Что делает

Vercel Edge Functions

обрабатывают запросы к GPT

Serverless API routes

/api/gpt генерация дерева, инсайтов, подсказок

Запрос от фронта:

await fetch("/api/gpt", {
  method: "POST",
  body: JSON.stringify({
    description,
    model
  })
});

API-роут на Vercel вызывает OpenAI API, возвращает JSON-дерево:

export default async function handler(req, res) {
  const { description, model } = JSON.parse(req.body);

  const response = await openai.chat.completions.create({
    model,
    messages: [{ role: "system", content: prompt(description) }]
  });

  res.status(200).json({ tree: response.choices[0].message.parsed });
}

2. Генерация де��ева через AI

const result = await generateMetricTree(description, model);
const treeJson = result.tree; // JSON, который и является деревом метрик

GPT возвращает структуру вида:

{
  "id": "root",
  "name": "North Star Metric",
  "type": "business",
  "children":[]
}

От неё легко строить граф.

3. Построение графа + автолэйаут

const { nodes, edges } = buildGraph(treeJson);
const { nodes: layoutedNodes, edges: layoutedEdges } =
getLayoutedElements(nodes, edges, "TB");

Dagre рассчитывает координаты нод автоматически - дерево читается и не разваливается даже на большом объёме.

4. Редактирование дерева вручную

Добавление метрики:

const newNode = { id, name, type, children: [] };
setNodes([...nodes, newNode]);
setEdges([...edges, { source: parentId, target: id }]);
setTreeData(addNodeToTree(treeData, parentId, newNode));

AI даёт базу, а дальше продукт может развиваться руками.

5. Инсайты для выбранной метрики

await generateMetricInsight({
  metric,
  parent,
  children
}, model);

AI анализирует:

  • роль метрики в дереве

  • влияние родителя/дочерних узлов

  • риски оптимизации

  • варианты роста

и возвращает структурированный текст, прямо в UI.

6. Три режима отображения

Режим

Где используется

Зачем

Visual (ReactFlow)

web-интерфейс

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

Text

plain text export

перенос в ТЗ/Notion

Mobile дерево

собственный рендер

компактный вид + быстрый просмотр

Заключение

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

  • Обучения основам построения дерева метрик (Генерация метрик)

  • Свежего (AI) взгляда на то, куда стоит посмотреть для улучшения показателей конкретной метрики (AI инсайты)

  • В качестве помощника при построении реального дерева (AI подсказки)

Дополнительно:

  • (Side effect): При выборе разных версий GPT для генерации метрик, можно наглядно видеть, как меняется "мощность" AI.

Буду рад вашему фидбеку!

https://metrictree.vercel.app

P.S. Ну, и раз такая возможность, то также открыт к предложениям по работе продакт-менеджером в Москве. Если вы такого ищите - welcome в личку.

Спасибо!
Владимир Павлов
https://vladimirpavlov.tech