Пульс Цен (дашборд клиента)
Аналитика лидогена My Vision для клиента: события, цепочки, атрибуция.
готовS1 · Спринт 6 фич6/6
Цель: Фичи дашборда по запросу клиента
готовS2 · Метрика + Аналитика ИИ5/5
Цель: Раздел Метрики (счётчик 200476), детерминированная Аналитика ИИ, полный анализ страниц, обновление данных, кроны
готовS3 · Правки дашборда (страны, разрез, дефолты)3/3
Цель: Регистранты: страна+переименование; дефолт текущий месяц везде; связки-разрез в Сравнении месяцев
готовS4 · S29 — режим «Платящие» (портфель ПП)28/37
Цель: Второй дашборд рядом с НК: переключатель режимов, заливка «Аналитики для продаж», обзор портфеля, разбор проработки, реестр сайтов
готовS5 · S30 — Приходы: ЦУ, сверка, A/B-тесты, метрики Обзора19/20
Цель: ЦУ приходов из файла, сверка с ручной чисткой, A/B по переходам, конверсия+деньги в Обзоре
Ворклог (места остановки)
Вернул правило НК по разметке строк: АВИТЕКС снова считается новым клиентом, как и было принято в отделе. В приходах НК остались только «Первая оплата» и «Доп. регион», доплаты и повышения пакета исключены — 1 690 170 руб и 18 НК за август. Липкие фильтры сделал на всех страницах, а не только в Событиях: перенёс sticky в саму панель фильтров и добавил в собственные панели регистрантов, входящих и разделов ПП.
→ Доделать аудит фильтров: каждый блок внутри страниц, фильтры дат, сочетания фильтров, сверка сумм между разделами. Отдельно уточнить у владельца, нужна ли выгрузка приходов глубже мая.
Разобрал вопрос про Энергосервис: он попал в приходы НК, потому что блок показывал все строки отчёта, включая доплаты действующих клиентов. Теперь в НК только новые клиенты, и новизна определяется по первой оплате за всю историю отчёта, а не по пометке строки — иначе АВИТЕКС и ДЕКСИС, платившие в июне и июле, снова считались новыми в августе. Отсечено 429 845 руб у 6 компаний, сумма и имена показаны отдельной строкой. Также убрал из разрезов вкладку офиса менеджера — в разрезе ЦУ теперь ровно три значения. Начал системный аудит фильтров: на Обзоре и в Событиях все семь фильтров панели реагируют, фильтр ЦУ проверен на 11 страницах.
→ Доделать аудит: каждый блок внутри страниц, фильтры дат, сочетания фильтров, сверка сумм между разделами. Отдельно: правило новизны ограничено глубиной загруженного отчёта приходов (сейчас с мая) — если клиент платил раньше мая, он всё ещё будет выглядеть новым; сказать владельцу, нужна ли более длинная выгрузка.
Владелец прислал список расхождений: у менеджеров июльские деньги, в раскладке лидов клиент из июля, в Событиях приходы не сходятся с Обзором, в фильтре ЦУ много лишних значений. Причина одна и системная: деньги везде брались за всю историю клиента, а показывались рядом с выборкой периода. Сервер теперь отдаёт платежи с датами, добавлен хук денег за период, переведены все разделы. Плюс переименован фильтр «ЦУ» в «Офис менеджера» и добавлена честная плашка в демо-раздел «Продажи». Прогнал страницы на реакцию к фильтру ЦУ: обзор, события, каналы, цепочки, баннеры, рассылки, входящие, регистранты, план, звонки — реагируют; продажи не реагируют, потому что данные придуманные.
→ Продолжить аудит: сверить, что период фильтра одинаково понимается во всех разделах (в шапке пула показывается диапазон всего пула, а не выбранный период — возможная причина ощущения «данные за год»), и пройти критерии и пакеты. Затем вернуться к аналитике ИИ и данным ПП от клиента.
Разбор багов по фильтру ЦУ и выкатка всего накопленного. Корень проблемы: ЦУ считался по карте из РЕГИ, которая покрывает не всех, и у каждого раздела была своя копия логики. Вынес единое правило (реги → город по справочнику → страна) в lib/cu.ts и подключил во все разделы, включая те, где фильтр не работал вовсе: приходы, источники регистрации, звонки. Для данных без региона собирается карта клиент→регион из пула событий. Развёл «Центр учёта» и «Офис менеджера» в разрезах. Карточку клиента унифицировал: везде боковое окно по /api/client, открывается и для платящих, которых нет в пуле лидов. Починил статус счёта (был «ждёт» при оплаченных приходах), добавил деньги в таблицу событий и липкие фильтры. Аналитику ИИ пересчитал на свежих данных за август.
→ Показать владельцу аналитику за август: рассылки вытягивают (18 писем против 42 в июле, активация 20,7 процента, переходы плюс 40), а верх воронки просел (регистранты 555 против 637, прайс 358 против 440); план держит колл-центр — 417 при плане 298. Дальше по ПП ждём данные клиента.
Три вопроса владельца по НК. Первое: на проде всё ещё 1009, потому что правки Плана не выкачены — ждут отмашки. Второе: «событий на 1 лида» 2.0 считается по всем строкам событий (2027 за 01–28.08 делить на 1009 лидов), а «уникальные события» 1680 — это пары «лид плюс вид события», то есть с дедупом по виду; поэтому числа и расходятся. Третье: «Екатеринбург (НК)» стоял отдельной строкой в приходах, потому что в нормализации ЦУ приходов были только Москва, Новосибирск и Сетевой отдел — добавил доведение по справочнику городов, теперь Екатеринбург входит в СО (ЕК+ПМ): 819 880 руб и 10 клиентов, общий приход не изменился.
→ Получить от владельца решение: выкатывать ли накопленные правки Плана и приходов (там же смена 1009 на 1109 из-за клиентов колл-центра) и что доработать в «Аналитике ИИ».
ПП, правки директора — сделал Группу 1 (баги): поиск по клиенту (е/ё/э+токены), месяц-фильтр и кликабельный график с числами над всеми столбцами на Обзоре, Excel на Обзоре, карточка клиента дополнена (паспорт+ид+домен-слот, подписи периода/источника, целевые телефон/почта/адрес как заглушки). Разобрал 403: ссылка корректная, режет WAF портала. Данные ПП обновлены на 28.08 (события=инверсия НК уже была).
→ КРУПНОЕ ДАЛЕЕ: 1) Деньги ПП — залить Отчет_по_приходам-ПП.xls ОТДЕЛЬНЫМ источником (новая модель), показать Сумма счёта/Сумма лота/ЦУ ПП (8 городов). 2) Месяц-фильтр на Проработку и Реестр. 3) Целевые в разрезе — когда дадут выгрузку с портала. 4) Домен — после встречи. 5) PowerPoint-выгрузка (образец ГОДОВОЙ ОТЧЕТ НАК МАШИНЕРИ) — позже. 6) 403 — решить: оставить или простая ссылка.
Владелец заметил, что у действий колл-центра есть регион, а ЦУ у них не определялся. Так и оказалось: регион брался только из событий месяца, поэтому клиенты, которых касался лишь колл-центр, падали в «не определён». Регион теперь доезжает из отчёта по действиям и раскладывается по справочнику городов — колонка «не определён» ушла совсем, 49 клиентов встали в свои ЦУ. Плюс такие клиенты вошли в число уникальных компаний: 1109 вместо 1009. Всё проверено локально на копии продовой базы, на прод не заливалось.
→ Показать владельцу и получить решение по двум вещам: выкатывать ли правки Плана (подписи, ЦУ для колл-центра, 1109 вместо 1009) и что доработать в «Аналитике ИИ».
Разобрал вопрос по Плану месяца: 1009 против 1154 — это не потеря лидов, а три разные величины. Сумма по категориям двоит компании (647 уникальных дали 1153 попадания), уникальных компаний за месяц 1009, и только 647 из них попали хотя бы в одну категорию плана; ещё 100 компаний живут только в отчёте КЦ и в пул событий не входят. Поправил подписи, чтобы это было видно на экране: под «Фактом лидов» теперь стоит число уникальных компаний, в разрезе по ЦУ строка называется «Уникальных компаний» и появилась строка «Из них в категориях плана». Проверил на копии продовой базы, на прод не заливал — владелец просил подождать. Проверил раздел «Аналитика ИИ» на проде: считается, август собран по 28.08, шесть выводов на месте, числа сходятся с планом (активных лидов 1009).
→ 1) Дождаться отмашки и выкатить правки подписей Плана. 2) Уточнить у владельца, что именно доработать в «Аналитике ИИ» — добавить план и факт по категориям и ЦУ, добавить разбор портфеля ПП или оставить как есть. 3) По ПП ждём данные от клиента: полный список, статистику ЛК, заказы, прайс тарифов.
Обогатил данные ПЦ на 28.08 (события +639, реги 670, КЦ +224, приходы). По ходу починил 2 бага загрузки: (1) кодировка — новые выгрузки UTF-8 vs старые cp1251, добавил авто-детект; (2) даты приходов читались по US-раскладке ММ.ДД, 07.08→8июля/12.08→8дек при дне≤12, из-за чего платежи задваивались и уходили в чужие месяцы. Фикс raw:true, откат битого отчёта, перезалив. Август приходов 1 941 445 ₽ = Итого файла.
→ 1) ПП-сторону (Аналитика для продаж) обогатить, когда пришлют файл — в папке его не было. 2) Ждём задачи на доработку от владельца. 3) Хвост: июльские −30к (клиент 362935) — отдельный вопрос по исходной выгрузке.
Запросы заказчицы по ПП. Сделал и выкатил: тарифы (фильтр, колонка, разрез «По тарифам») и непроработанные товары (плитка, колонки, карточка, выгрузки) — теперь строка читается как «клиент, тариф, не проработано столько-то, просмотры, ЦД, регион». Разобрал присланный файл по Экополису и проверил, что из него воспроизводимо: помесячная статистика ЛК и заказы в личном кабинете у нас отсутствуют, Метрика по домену витрины даёт другие числа, поэтому нужны выгрузки от клиента. Цена тарифа: в приходах только первые оплаты новых клиентов, из 98 компаний портфеля совпали 2 — нужен прайс или оплаты по продлениям.
→ Запросить у клиента: 1) полный список вместо среза на 100 строк (Экополиса в срезе нет); 2) выгрузку статистики ЛК помесячно; 3) выгрузку заказов ЛК; 4) прайс тарифов или оплаты действующих клиентов; 5) доступ к показателям рекламных кампаний. Как только придёт вторая выгрузка портфеля — раздел движения по тарифам.
Сделал аналитику выгрузку состава плана месяца: какие компании попадают в подсчёт по ЦУ СО (ЕК+ПМ) за июль и август — 190 компаний, 317 строк, с категориями, ид клиента и сайта, регионом, пакетом и тем, откуда взялся ЦУ. Логика повторяет разрез дашборда, сверено по экрану: август сходится полностью, июль — кроме прайса. Попутно нашёл, что месяц на экране считается по времени браузера, поэтому вечерние события последнего дня месяца уезжают в следующий; завёл отдельной задачей, править без согласования не стал. По ПП починил три замечания: подсказки-вопросики (портал вместо absolute — их срезали таблицы с прокруткой), ид компаний в реестре и топах, карточка компании по клику из реестра, проработки и обзора.
→ 1) Решить с владельцем, чинить ли сдвиг месяца по часовому поясу (изменит числа в НК). 2) Ждём от клиента: адрес витрины для Метрики, приходы по продлениям, базу фасет, полный список вместо среза. 3) Волна 2 ПП: качество карточек, трафик, конструктор отчётов.
Достроил модель ЦУ. Правило непокрытых: зарубеж→СО РОССИЯ, 3 СНГ (Азербайджан/Кыргызстан/Узбекистан)→МСК; русские вне справочника→СО РОССИЯ. Бэкфилл, без ЦУ=0. Новая вкладка «План месяца → По ЦУ»: матрица категория×ЦУ + уникальные лиды. События клиентов без рега раскидываю по региону события через справочник (cityCu проброшен на клиент) — «не определён» в разрезе упал 354→0. ФРАНШ (Беларусь) свёрнут в СО РОССИЯ.
→ 1) 35 КЦ-активности без региона в разрезе плана — привязать не по чему (у записи действия нет региона), решить нужно ли тянуть регион из companies. 2) Глобальный фильтр ЦУ в сайдбаре пока по регам (cuMap), события-без-рега там всё ещё «не определён» — при желании применить тот же region-фолбэк везде. 3) Дополнить справочник редкими зарубежными городами (сейчас закрыты фолбэком).
Разложил ЦУ по всей воронке. Реги: 3978 висели с #REF! из мастера — справочник город→ЦУ не применялся (пустым не считался). Починил (#REF!→пусто→cityCu), бэкфилл раскидал 3892 рега по 3 ЦУ, #REF!=0, карта клиент→ЦУ для событий выросла до 4701. Перезалил справочник «Правила передачи клиентов + города» (лист «Города и ЦУ»), обогатил регов файлом companies_report 21.08. Новосибирск переехал в СО РОССИЯ (и приходы, и реги). UI: точку в процентах конверсии опустил вниз и сжал.
→ 1) Дополнить справочник город→ЦУ зарубежными городами (Астана 68, Турция 11, Чехия, Польша, США…) — 92 рега без ЦУ. 2) События: сейчас ЦУ берётся через клиента из регов (карта). Проверить, нужно ли ещё альтернативу «по ЦУ продавца». 3) Приходы −30к (клиент 362935) — ждём исходную полную выгрузку.
Приходы: ЦУ теперь из самого файла приходов (нормализация в коды дашборда) — «не определён» исчез, совпало с ручной разбивкой аналитика. Сверил приходы с Книга1 (ручная чистка июля): 34/36 клиентов в ноль, разрыв −30 000 = один клиент 362935, плюс пара 620351/620597 (разные записи, гасятся). В Обзоре в блок «Лиды по числу событий» добавил конверсию в НК и деньги по каждой корзине + деньги по компаниям в раскрытии. A/B: добавил метрику «Переходы», завёл тест мобильных прайс-табов (эталон июль). Аналитику ИИ пересчитал за август. Всё на бою, проверено скриншотами.
→ 1) Взять у клиента исходную полную выгрузку приходов и свести −30к (клиент 362935). 2) Решить ЦУ «Новосибирск» — отдельно или влить. 3) A/B прайс-табов добить в начале сентября, когда закроются август и сентябрь (сейчас август частичный, до 21.08).
В Событиях появился блок «Разрезы»: восемь срезов (ЦУ, менеджер, регион, пакет, событие, рубрика, статус, критерий), в каждом — события, клиенты, приходы и доля, с сортировкой и кликом для фильтрации раздела. Работает в обоих режимах: в НК показывает лидов и приходы по ЦУ НК (Сетевой отдел Россия 496 051 ₽, Москва НК 704 500 ₽), в ПП — клиентов и приходы платящих (Челябинск 352 253 ₽, Сетевой отдел 708 630 ₽). Пункт меню «Обзор портфеля» сокращён до «Обзор». Выкачено и проверено на проде.
→ Ждём от клиента адрес витрины (Метрика), приходы по продлениям, ответ про базу фасет и период трафика, полный список вместо среза на 100 строк. Дальше — волна 2 ПП: качество карточек, трафик, карточка клиента, конструктор отчётов.
Доработал режим ПП по замечаниям владельца: вкладка называется ПП, в выпадающих списках появился поиск и перестали обрезаться длинные названия ЦУ, написание ЦУ нормализовано. В ПП перенесены «События» и «Цепочки» — тот же инструмент, но пул считается наоборот: сегмент pp = всё кроме НК (на проде 13 321 событие и 3 679 клиентов против 15 572 и 7 124 в НК). «Сравнение месяцев» написано заново: в НК оно строится на списке регистрантов, а платящих там почти нет, поэтому для ПП сделано сравнение по самому пулу событий с разрезами и выгрузкой. Выкачено и проверено на проде.
→ 1) Ждём от клиента адрес витрины (Метрика), приходы по платящим, ответ про базу фасет и период трафика, полный список вместо среза. 2) Волна 2: качество карточек, трафик, карточка клиента, конструктор отчётов. 3) При желании перенести в ПП «Звонки» и «Каналы».
Сделал второй дашборд «Платящие» рядом с НК и выкатил на прод (80.90.184.203:3061/pp). Переключатель режимов вверху сайдбара. Источник — выгрузка клиента «Аналитика для продаж»: заливается через обычные «Загрузки», распознаётся по шапке; просмотры по месяцам легли отдельной таблицей, поэтому история копится, даже когда в новом файле другие колонки. Три раздела: обзор портфеля, разбор проработки (охват, эффект по когортам «до/после метки» со средним и медианой, топы, разрезы), реестр сайтов с сортировкой, фильтрами, спарклайнами и выгрузкой. Цифры сверены с независимым разбором файла: 100 сайтов, 57 с проработкой, 27 588 просмотров за июль, +74% год к году, 603 целевых действия. Проверено на 5000 строк: заливка ускорена с 5+ минут до 9 секунд (пакетная запись вместо построчного upsert). Метрику по клиентам проверил на живом API: трафик живёт на витринах с их доменами, привязки по ид сайта нет — механику заложил, подключение отложено до адреса витрины в выгрузке.
→ 1) Ждём от клиента: адрес витрины в выгрузке (для Метрики), приходы по платящим, ответ про базу фасет и период трафика, полный список вместо среза на 100 строк. 2) Волна 2: качество карточек (фото, фасеты, группы), трафик, карточка клиента, конструктор отчётов. 3) Режим платящих для событий/цепочек/звонков — добавить сегмент pp в пул. 4) На проде вместе с ПП уехали три утренние правки (контексты в Событиях, деньги во Входящих, когорты) — владелец просил только ПП, откат не делали, работает штатно.
5 правок по запросу клиента: (1) клиент→регистрант на странице Регистранты; (2) уточнил смысл «первое событие→конверсия»; (3) разрез «Страна» с раскрытием стран-импортёров (Китай/Турция/…) + KPI; (4) дефолт «текущий месяц» во всех реальных разделах (жёстко); (5) ребилд «Сравнение месяцев» — связки через разрез: поиск сущности + показатель + разрез по ЦУ/региону/источнику/профильности, серия раскладывается на линии. Всё задеплоено на cfru :3061 и проверено скринами.
→ Внимание: дефолт «текущий месяц» = август, а данные по 31 июля → разделы пусты до заливки августа (так решил заказчик). Возможно позже: умный дефолт (последний месяц с данными). Разрез оплат по событию для кросс-городских клиентов приблизителен (payment attributed каждому сегменту).
Построил раздел «Аналитика ИИ» (compiled-AI, /ai): cohort-отклик писем с контролем окна созревания, интенсивность/глубина событий, метрика ключевых страниц, источники по страницам. Вывод — отклик на письма НЕ упал (артефакт незрелого окна воронки), просадка июля = приток + провал блога/МОРС по каналам. Раздел «Метрика» (200476) вживую + подраздел «Наши страницы»: месяц-vs-месяц, отказы, тренд 6 мес, источники по каждой странице, топ статей блога. Залил июльские отчёты до 31.07 (события/КЦ/звонки/реги, ФРАНШ убран) — Аналитика ИИ на полном месяце. Кроны: Sendsay еженедельно (пятница 08:00 МСК) + прогрев кэша аналитики каждые 3ч (кэш 6ч, мгновенная выдача).
→ Задеплоено на cfru :3061, проверено скринами. Докрутки по желанию: сумма «Оплатили» в Регистрантах за выбранный период (сейчас накопленная all-time); блок «Источники (месяц vs месяц)» в самой Аналитике ИИ. Метрика тянется вживую — крон не нужна.
Спринт «6 фич» закрыт (все 6 done) + большой доп.раунд по фидбеку, всё выкачено на cfru 80.90.184.203:3061. Базовые 6: контекст в цепочках, Sendsay-обновление, Входящие, Сравнение месяцев (→PeriodCompare, по датам), атрибуция first/last/linear (глобально), демо-Продажи (конструктор). Доп по фидбеку: (1) сквозной ГЛОБАЛЬНЫЙ ЦУ — центр учёта, 4 значения (СО РОССИЯ/МСК/СО ЕК+ПМ/НС) из файла РЕГИ, селектор в сайдбаре фильтрует все вкладки; (2) переделка Регистрантов — свод по клиенту (сайты+ид сайта), профильник (кол AP), фильтры/разрезы, непрофильники по ЦУ во времени, «первое событие→конверсия», действий рег→оплата, комментарии в базе; (3) новая таблица RegiRecord + /api/regi (3713 записей янв-июнь); (4) «дата отсчёта» в Плане (пересчёт прогноза на любую дату, обрезка факта); (5) конструктор Продаж; (6) обогащение данными до 20 июля: события(пул 11182), КЦ/действия, входящие, звонки(5393), регистранты(274) + мастер-РЕГИ. Атрибуция и ЦУ — глобальные настройки (localStorage). Профильник AP=1=непрофильник (18%).
→ Хвосты: (1) Jan-May inbound без goal/meta — нет исходника ops за янв-май, прислать→перезалить. (2) ЦУ покрывает 44% клиентов пула (только кто в РЕГИ 2026) — для полного нужен РЕГИ по всем клиентам. (3) Файл РЕГИ 22МБ не влез в загрузку — резал лист локально; сделать детект/резку листа или CSV. (4) Продажи на демо — заменить на реальный отчёт Тюльпана. (5) Проверить визуально новые разделы (Playwright был залочен).