Metric Builder: Редизайн создания формул в Piano Analytics

Metric Builder: Редизайн создания формул в Piano Analytics

Обзор

Компания: Piano Analytics — аналитическая платформа для крупнейших мировых издательств и медиакомпаний.

Продукт: Metric Builder — полноэкранная модалка для создания кастомных метрик через формулы, сегменты и функции агрегации.

Роль: Единственный дизайнер. Работал с Product Owner, PM и разработчиками.

Сроки: 1 месяц.

Проблема

Старый Metric Builder устарел и ограничивал пользователей. Нельзя было применить сегмент к группе метрик в скобках, не было функций агрегации (Min, Max, Average…), не было мульти-выделения, а сложные формулы было трудно читать.

Фидбек пользователей и обращения в саппорт подтверждали: опытные пользователи упирались в ограничения каждый день.

Ключевые дизайн-решения

Редизайн сфокусирован на пяти направлениях: визуальный язык формул, управление сегментами, функции агрегации, мульти-выделение и drag & drop.

Старый интерфейс metric builder

Предыдущая версия — плоская формула с ограниченной функциональностью

Канвас формулы с визуальным кодированием

У каждого типа элемента свой цвет: оранжевый — метрики, синий — properties, фиолетовый — сегменты. Каждый чип метрики показывает иконку, буквенный идентификатор (A, B, C) и название. Внизу канваса — упрощённая формула (A + B ÷ C) для быстрого чтения.

Канвас формулы с цветовым кодированием

Канвас формулы — цветовые чипы с упрощённой формулой внизу

Сегменты на скобках

Самая важная недостающая функция. Скобки теперь кликабельны — клик позволяет применить сегмент ко всему содержимому. При применении скобки становятся фиолетовыми с названием сегмента.

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

Попап сегмента на скобке

Клик по скобке — попап для применения сегмента

Сегмент применён к скобкам

Сегмент применён — фиолетовые скобки с названием сегмента

Функции агрегации

Новые чипы функций (Min, Max, Sum, Average, Median) работают как обёртки — выбираешь функцию, применяешь property, получаешь метрику. Добавляются через дропдаун в тулбаре операторов.

Список функций

Дропдаун функций — Min, Max, Sum, Average, Median

Применение property к функции

Применение property к выбранной функции

Готовая метрика на основе функции

Готовая метрика — Min применён к property

Мульти-выделение и массовые операции

Три способа выделения: клик (одиночный), Shift+клик (мульти), выделение областью (marquee). У выделенных элементов появляется floating toolbar с массовыми действиями — Apply Segment или Remove.

Умная логика: Apply Segment доступен только если выделены только метрики или только скобки. При смешанном выделении — тултип с объяснением.

Выделение областью

Marquee выделение — перетаскивание для выбора нескольких элементов

Выделенные элементы с floating toolbar

Выделенные элементы с floating toolbar — Apply Segment, Remove

Drag and Drop

Мульти-DnD с индикаторами позиции. Перетаскиваемые элементы остаются видимыми на 50% opacity на старом месте — всегда понятно, откуда они были взяты. Линия 100% opacity показывает, куда они приземлятся. Выделение сохраняется после перетаскивания.

Drag and drop с индикаторами позиции

Мульти-DnD — элементы на 50% opacity на старом месте, индикатор на целевой позиции

Сложные формулы — всё ещё читаемые

Длинные формулы переносятся на несколько строк. Цветовое кодирование, буквенные идентификаторы и строка упрощённой формулы сохраняют читаемость даже в масштабе.

Сложная многострочная формула

Многострочная формула — читаемость через цветовое кодирование и буквенные идентификаторы

Save Drawer — метаданные когда нужны

Раньше поля метаданных (название, ключ, описание, тип отображения, точность) были всегда видны на экране и занимали место, которое нужнее канвасу формулы. Я убрал их в дровер, который открывается только при сохранении. Канвас получил всю ширину для построения формулы — метаданные появляются только когда они действительно нужны.

Save drawer с полями метаданных

Save drawer — поля метаданных скрыты до момента сохранения

Решения и компромиссы

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

  • Одиночная вставка скобок (не авто-пары): полный контроль над структурой формулы, валидация ловит несоответствия.

  • Разделение Use и Save: “Use” применяет метрику без сохранения (разовый анализ), “Save” открывает дровер с метаданными. Разные сценарии, один интерфейс.

  • Метаданные в дровере вместо постоянного отображения: приоритет канвасу формулы — метаданные нужны только при сохранении, не во время построения.

  • Авто-удаление пустых числовых чипов при blur: предотвращает накопление фантомных элементов в формуле.

Результат

  • Выпущено: сегменты на скобках, функции агрегации, мульти-выделение, мульти-DnD

  • Положительный фидбек от внутренней команды и реальных пользователей — функции агрегации были самой запрашиваемой недостающей функцией

  • До/после: создание сложных метрик из процесса с костылями превратилось в прямой визуальный workflow

Рефлексия

В сложных интерфейсах вроде этого 80% работы — это edge cases: конфликты сегментов, состояния валидации, пустые состояния. Их легко пропустить в спеке, но именно они определяют реальный опыт пользователя. Я проработал каждый сценарий в дизайн-файле до передачи в разработку.