Всем привет!
Меня зовут Владимир Павлов, я продакт-менеджер. Недавно я проходил кейс-интервью и получил отказ со следующим комментарием: «Правильно выбираешь ключевые метрики, но не хватает измеримости, структуры, прокси‑ и контр‑метрик».
Получив данный фидбек, я решил углубиться в метрики, но не нашел простого инструмента для тренировок их построения и работы с ними. Пришлось создать свой инструмент для этих целей :-)
Оплатив платный доступ к GPT, приступил к Vibe Coding. Весь процесс занял примерно 2 недели, занимаясь по вечерам в будние дни + выходные.
Остановился на следующем объеме функциональности:
Генерация метрик на основе текстового описания продукта.
AI-инсайты для метрик.
Подсказки при ручном добавлении новых метрик.
Работает c GPT-4.o-mini (самая простая модель), GPT-4.o, GPT-4.1 и GPT 5.1 (экспертный уровень).
Генерация дерева метрик на основе текстового описания
Разбор живого примера: проект "Яша" - покупка шин с доставкой до шиномонтажа
Это мой реальный B2B2C проект (2024-2025), который объединял маркетплейсы и проверенные шиномонтажи.
Цель продукта: Доставка шин, купленных на маркетплейсе, до шиномонтажа.
North Start Metric: Количество доставок шин до шиномонтажа
Основные продуктовые метрики:
Конверсия «выбор доставки — доставка до шиномонтажа»
Конверсия «оформление доставки до шиномонтажа — подтверждение шиномонтажом»
Доля партнеров, которые принимают заказы
Среднее время подтверждения заказа
Применение MetricTree.
Подав "На вход" максимально детальное описание продукта + вышеуказанные метрики, получил следующий результат:

Указанные метрики MetricTree встроил в дерево со следующими дочерними метриками:
1. Конверсия "выбор доставки - доставка до шиномонтажа"

Дочерние метрики:
CR: просмотр опций доставки → выбор «до шиномонтажа» (Продуктовая)
Доля показов опции «до шиномонтажа» среди всех заказов шин (Прокси)
CR по сегментам (регион, тип клиента, устройство) (Прокси)
Выв��д: Первая дочерняя метрика корректно раскрывает родительскую, вторая скорее отражает доступность опции, а третья это разрез/диагностика, а не полноценный драйвер конверсии.
2. Конверсия "оформление доставки до шиномонтажа - подтверждение шиномонтажом"

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

Дочерние метрики:
Доля партнёров, принявших ≥1 заказ за период (Продуктовая)
Доля партнёров с отказами > Y% от входящих заказов (Прокси)
Среднее количество заказов на активного партнёра (Продуктовая)
Вывод: Логика дочерних метрик в целом корректна: они описывают активность партнёров и качество работы. Первая и третья метрика являются прямыми составляющими родительской, а вторая является прокси-показателем качества, влияющим на общую долю принимающих партнёров, но не являющийся прямой конверсией.
4. Среднее время подтверждения заказа шиномонтажем

Сформированы дочерние метрики:
Медианное время подтверждения заказа (Продуктовая)
90-й перцентиль времени подтверждения (Продуктовая)
Доля заказов, подтверждённых за ≤ X минут (Прокси)
Задержка по каналам уведомлений (SMS, мессенджеры) (Операционная)
Вывод: Структура дочерних метрик сформирована корректно: медиана и P90 хорошо раскрывают распределение, доля подтверждений за ≤ X минут отражает SLA-качество, а задержки уведомлений выступают операционным фактором, влияющим на скорость подтверждения.
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 |
|
Запрос от фронта:
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.
Буду рад вашему фидбеку!
P.S. Ну, и раз такая возможность, то также открыт к предложениям по работе продакт-менеджером в Москве. Если вы такого ищите - welcome в личку.
Спасибо!
Владимир Павлов
https://vladimirpavlov.tech