← все проекты

Пульс Цен (дашборд клиента)

Аналитика лидогена My Vision для клиента: события, цепочки, атрибуция.

repo: localserver: cfru :3061, Next.js+Prisma+SQLitedocs: память puls-cen-*память: puls-cen-dashboard, puls-cen-sprint-features
готовS1 · Спринт 6 фич6/6

Цель: Фичи дашборда по запросу клиента

Контекст в цепочках
feature
Sendsay интеграция
feature
Входящие
Раздел /inbound: воронка входящий→оплата, 4 типа обращений, фильтры (менеджер/регион/время/источник/результат/период/поиск), аналитика по дням недели и часам, дозвон-рейт, повторные, режим «Клиенты» с историей. Данные до 20 июля.
feature
Сравнение месяцев
PeriodCompare: сравнение периодов по произвольным датам (A vs B), метрики дропдауном, встроено на Обзор/События/Каналы/Баннеры/Регистранты/Входящие/Продажи. Старая /compare осталась.
feature
Атрибуция first/last/linear
Глобальная атрибуция first/last/linear (переключатель в сайдбаре, localStorage). Каналы/Рассылки(сервер)/Баннеры — устраняет переучёт оплат (сумма сохраняется, распределение по модели).
feature
Демо-Продажи
Конструктор /sales: фильтры (период/менеджер/регион/услуга/триггер/сценарий/стадия/поиск), разрезы, «после какого события берут в работу», «частое след.событие», воронка, скорость сделки, проваливание в путь клиента. ~72 демо-сделки (реального отчёта Тюльпана нет).
feature
готовS2 · Метрика + Аналитика ИИ5/5

Цель: Раздел Метрики (счётчик 200476), детерминированная Аналитика ИИ, полный анализ страниц, обновление данных, кроны

Раздел «Аналитика ИИ»
compiled-AI разбор месяца (/ai, без LLM): cohort-отклик на письма с контролем окна созревания (3/7/14 дн), интенсивность+глубина событий за одинаковый отрезок, метрика ключевых страниц, источники по страницам с драйвером просадки. Вывод: отклик на письма не упал, проблема в притоке.
feature
Раздел «Метрика» (счётчик 200476)
Яндекс.Метрика вживую: динамика/источники/страницы (фильтр по URL-метке)/цели. Токен взят из ПЦ Директ (общий, слать последовательно). Метрика обновляется сама, крон не нужен.
feature
Подраздел «Наши страницы» — полный анализ
6 платформенных страниц: месяц vs прошлый (просмотры/посетители/отказы + Δ), тренд по 6 месяцам с переключателем метрики и спарклайнами, источники по каждой странице (визиты по каналам cur vs prev), топ-25 статей блога по заходам. МОРС=онлайн-магазин сервисов.
feature
Заливка июльских отчётов до 31.07
события/КЦ/звонки/регистранты за июль (папка «Отчеты ПЦ»). Дедуп КЦ на чтении по actionId, ФРАНШ отфильтрован. Аналитика ИИ теперь на полном июле (partial=false).
feature
Кроны: Sendsay + прогрев кэша
Sendsay-выгрузка еженедельно (пятница 08:00 МСК, защита от обнуления при пустом ответе). Прогрев тяжёлой аналитики (страницы+ИИ) каждые 3ч + кэш 6ч → пользователю мгновенная выдача, пересчёт в фоне.
feature
готовS3 · Правки дашборда (страны, разрез, дефолты)3/3

Цель: Регистранты: страна+переименование; дефолт текущий месяц везде; связки-разрез в Сравнении месяцев

Регистранты: клиент→регистрант + разрез «Страна»
Переименование клиент→регистрант по всей странице. Новый разрез «Страна»: РФ/Казахстан отдельно, остальное → «Страны-импортёры» с раскрытием по странам (реальная страна из «Основного региона») + KPI «Стран-импортёров». Уточнён тултип «первое событие→конверсия».
feature
Дефолт «текущий месяц» во всех разделах
currentMonthRange/lastMonths в lib/format; useStickyFilters + Registrants/Inbound/Metrika/AI дефолтят на текущий месяц (жёстко, по решению заказчика). Демо-Продажи не трогали (данные апрельские).
feature
Сравнение месяцев: связки (серии+разрез+поиск)
Билдер серий как в Цепочках: поиск сущности, показатель, опциональный разрез (ЦУ/регион/источник/профильник; события — регион/ЦУ) раскладывает серию на линии по значениям (топ-8). computeSplit в compareCatalog. Проверено: 1 серия × разрез ЦУ → 5 линий.
feature
готовS4 · S29 — режим «Платящие» (портфель ПП)28/37

Цель: Второй дашборд рядом с НК: переключатель режимов, заливка «Аналитики для продаж», обзор портфеля, разбор проработки, реестр сайтов

Разбор выгрузки «Аналитика для продаж» и сверка формул
100 строк / 98 клиентов, 60 колонок. Проверено: метка о проработке = количество товаров (%=метка/публикуемые, 100 из 100), масса=публикуемые+непубликуемые, динамика год/год сходится 52 из 52. Фасеты не сходятся с публикуемыми (12 из 100) — вопрос клиенту.
feature
Модель данных и заливка портфеля
PpSite (снимок), PpViews (просмотры по месяцам, накопительно — переживают смену колонок в новых файлах), ShowcaseDomain (под Метрику, пустая). Детект по шапке в общем ingestFile, повторная заливка месяца заменяет снимок. Миграция 20260821120000_pp_sites.
feature
Переключатель дашбордов НК / Платящие
Вверху сайдбара, режим из адреса (/pp*). В режиме платящих скрыты разделы лидогенерации и тумблеры сегмента/ЦУ/атрибуции.
feature
Обзор портфеля платящих
KPI (просмотры за месяц и год к году, размечено товаров, сайты с проработкой, масса, ЦД, трафик), график по 13 месяцам, блоки внимания: не проработаны / пакет заканчивается / проработаны без роста. Нулевые показатели не выводятся.
feature
Раздел «Проработка» с эффектом по когортам
Охват и корзины процента, динамика по месяцам, эффект «до/после метки» по месяцам простановки (база = среднее за 3 месяца до), медиана роста рядом со средним (декабрь: среднее +812%, медиана +67%), топы роста/падения/без отдачи, разрезы по ЦУ/менеджеру/региону/пакету/рубрике, ЦД на 1000 просмотров, выгрузка в Excel.
feature
Реестр «Проработанные товары»
Сортировка по любой колонке, фильтры (ЦУ, менеджер, регион, пакет, рубрика, поиск, есть/нет проработки), спарклайн по месяцам, ссылка в портал из гиперссылки файла, пагинация, выгрузка всей выборки в Excel (лимит 5000 строк с честным предупреждением).
feature
Проверка на объёме и ускорение заливки
Файл на 5000 строк: построчный upsert просмотров давал 65 000 запросов и дольше 5 минут → пакетная запись, стало 9 секунд. API: обзор 0,35 с холодный / 0,02 с из кэша, реестр 0,013 с.
feature
Метрика по витринам клиентов
Проверено на живом API счётчика 200476: витрины клиентов на своих доменах видны (ym:pv:URLDomain работает), а страницы pulscen.ru/firms/<ид сайта> по 100 сайтам за 3 месяца дали ~95 просмотров — привязки по ид сайта нет. Нужен адрес витрины в выгрузке клиента; таблица ShowcaseDomain уже есть. Владелец попросит колонку у клиента.
feature
Деньги по платящим (приходы за продления)
Выгрузка приходов по платящим будет позже — владелец обещал файл. Сейчас в базе 61 платёж, из 98 клиентов портфеля совпал 1: это первые оплаты НК, продлений нет. До файла денежные блоки не показываем.
feature
Волна 2: качество карточек, трафик, карточка клиента, конструктор отчётов
Данные по фото/фасетам/группам уже заливаются в PpSite, экранов нет. Плюс сравнение снимков между выгрузками и режим платящих для событий/цепочек/звонков (в пуле добавить сегмент pp).
feature
S29.1 Общие разделы в режиме ПП + правки фильтров
Вкладка переименована в ПП. В пул событий добавлен сегмент pp (всё кроме НК): на проде НК 15 572 события / 7 124 клиента, ПП 13 321 / 3 679. Разделы «События» и «Цепочки» работают в ПП на этом пуле, подписи «лид» заменены на «клиент». «Сравнение месяцев» для ПП написано заново (НК-версия строится на РЕГИ, где платящих почти нет): месяц × показатель с разрезом по ЦУ/региону/пакету/менеджеру/событию, график, таблица, Excel; итог по клиентам — уникальные за период, а не сумма месяцев. Во все выпадающие списки добавлен поиск, значения не обрезаются, написание ЦУ нормализовано.
feature
S29.2 Кликабельные разрезы в Событиях
Блок «Разрезы» в разделе Событий (оба режима): вкладки ЦУ / менеджер / регион / пакет / событие / рубрика / статус сайта / критерий, колонки события, клиенты, приходы, доля; сортировка по любой колонке, клик по строке кладёт значение в фильтр раздела (и снимает повторным кликом). Деньги считаются по уникальным клиентам среза, чтобы не задваивать на событиях. Написание ЦУ нормализуется для группировки, а в фильтр уходят исходные написания — иначе клик по «Пульс Цен Пермь» не находил «Пульс цен Пермь» и обнулял выборку. Пункт меню «Обзор портфеля» переименован в «Обзор».
feature
Выгрузка состава плана месяца по ЦУ для аналитика
Эндпоинт /api/export/plan-clients (месяцы, ЦУ, сегмент) повторяет логику разреза «План месяца»: категории, КЦ из отчёта по действиям, ЦУ из РЕГИ → справочник городов → фолбэк. Отдан файл по СО (ЕК+ПМ) за июль и август: 317 строк клиент × категория × месяц, 190 компаний, листы «Клиенты по категориям», «Компании (свод)», «Сводка с колонкой как на экране», «Как считалось». Сверено с дашбордом: август сходится полностью, июль — кроме прайса (75 против 77).
feature
ПП: подсказки, ид компаний, карточка по клику
1) Подсказки-вопросики переведены на портал в body с фиксированными координатами — в таблицах с прокруткой их срезал контейнер, текст не появлялся (починилось и в НК). 2) В реестре под названием видно ид клиента и ид сайта, в топах проработки — ид сайта. 3) Клик по компании в реестре, в топах проработки и в блоках внимания на обзоре открывает карточку: паспорт, товары, проработка с рубриками, просмотры по месяцам с год к году, отдача и трафик, группы, ссылка в портал. Нули в карточке не выводятся.
feature
Разобраться со сдвигом месяца на границе (часовой пояс)
События хранятся с временем суток, а месяц на экране считается по локальному времени браузера (UTC+5). Из-за этого события последнего дня месяца после 19:00 попадают в следующий месяц: по июлю экран показывает «Просмотрел прайс лист» 341 (СО ЕК+ПМ 77), а по календарным датам 339 (75); в августе СК 72 против 71. Чинится переводом расчёта месяца на компоненты даты без часового пояса, но это изменит числа в разделах НК — согласовать с владельцем перед правкой.
bug
Тарифы и непроработанные товары в ПП
Запрос заказчицы. Тариф: фильтр в панели, колонка в реестре, строка в карточке, разрез «По тарифам» (Бизнес 18 сайтов / 223 030 непроработанных / 16 052 просмотра / ЦД 326, SEO PRO, Региональный кластер, Стандарт, Вся Россия, Всё включено, Старт). Непроработанные = публикуемые минус размеченные: плитка на обзоре, колонка в реестре и разрезах, строка в карточке, обе колонки в выгрузках Excel.
feature
Движение по тарифам между выгрузками
Снимки портфеля копятся по месяцам (Report type=ppsites), но пока залит один — июль. Со второй выгрузкой сделать раздел: кто сменил тариф, в какую сторону, что стало с товарами и просмотрами. Для гипотезы про рост бюджета нужна ещё цена тарифа (отдельная задача).
feature
Цена тарифа: нужен прайс или оплаты по действующим клиентам
В выгрузке «Аналитика для продаж» цены нет. В отчёте приходов 151 строка за май-август, из 98 клиентов портфеля совпали 2: там первые оплаты новых клиентов (102 строки), продлений действующих нет. Нужен один из двух источников: справочник «тариф → цена» или выгрузка оплат действующих клиентов (ид клиента, дата, сумма, тариф). Второй лучше: даст факт, средний чек и динамику бюджета.
feature
Мини-аналитика по клиенту (как разбор Экополиса)
Разобран файл «сравнение для 98207662 Экополис»: 4 листа. У нас нет данных для трёх: 1) помесячная статистика ЛК (просмотры, посетители, просмотры телефона, эл. контактов, адреса, итого ЦД) — есть только просмотры проработанных товаров и одно число ЦД за прошлый месяц; проверено, что Метрика по домену витрины даёт другие числа (stroikzn.ru за май 2026: 6,3 тыс. против 12,4 тыс. в файле), то есть источник другой; 2) заказы в ЛК (ид, дата, тип, товар, рубрика, сумма, регион, урл первого захода, место оформления, устройство) — их нет совсем; 3) показатели рекламной кампании клиента (показы, клики, макроконверсии). Если выгрузки будут приходить файлами, страница собирается автоматически по всем клиентам. Отдельно: Экополиса нет в нашем срезе — нужен полный список вместо 100 строк.
feature
Разобрать расхождение 1009 и 1154 в Плане месяца
Потери нет, это три разные величины. 1154 — сумма фактов по семи категориям, где компания считается в каждой категории, куда попала: 647 уникальных компаний дали 1153 засчитанных попадания, переучёт 506 (2 категории у 192, 3 у 86, 4 у 39, 5 у 5, 6 у одной). 1009 — уникальные компании с любыми событиями за месяц, из них в категориях плана только 647, остальные 462 были в других событиях. Плюс 100 компаний есть только в отчёте КЦ и в пул событий не попадают (отсюда 49 в колонке «не определён»). Правки интерфейса готовы локально, НЕ выкачены по просьбе владельца: «Факт лидов» получил подпись «уникальных компаний 647» и честный тултип про сумму, в разрезе по ЦУ строка переименована в «Уникальных компаний» и добавлена строка «Из них в категориях плана» (МСК 169, СО ЕК+ПМ 113, СО РОССИЯ 316, не определён 49, всего 647).
bug
Выкатить правки подписей в Плане месяца
Собрано и проверено локально на копии продовой базы. Ждёт отмашки владельца: просил не заливать, пока в разделе ПП идут правки.
feature
ЦУ для клиентов колл-центра: убрать «не определён»
Замечание владельца: у действий колл-центра регион есть, а в расчёт ЦУ не попадал. Проверено: у всех 1021 августовской записи КЦ регион заполнен, все 478 клиентов с регионом, справочник городов на 269 строк. Причина: регион брался только из событий месяца, у клиентов без событий его не было. Теперь getKcActions отдаёт регион, План месяца использует его как запасной источник. Колонка «не определён» исчезла: 49 клиентов КЦ разошлись по своим ЦУ (МСК 106, СО ЕК+ПМ 90, СО РОССИЯ 221 в строке КЦ АКТИВНОСТИ). Заодно клиенты, которых касался только колл-центр, вошли в число уникальных компаний: 1109 вместо 1009 (МСК 295, СО ЕК+ПМ 234, СО РОССИЯ 580) — иначе строка «из них в категориях плана» могла превысить итог. Собрано локально на копии продовой базы, на прод НЕ выкачено.
bug
Приходы по ЦУ: Екатеринбург (НК) больше не отдельной строкой
Вопрос владельца. В отчёте приходов ЦУ записан офисом менеджера («Пульс Цен Екатеринбург (НК)»), а свод работает в системе МСК / СО (ЕК+ПМ) / СО РОССИЯ. В normalizePayCu были правила только для Москвы, Новосибирска и Сетевого отдела, Екатеринбург и Казань падали как есть. Теперь значения, не сведённые к своду, доводятся по справочнику городов клиента. Итог: СО (ЕК+ПМ) 819 880 руб и 10 клиентов вместо 704 880 и 9 плюс отдельная строка на 115 000; МСК и СО РОССИЯ не изменились, общий приход те же 1 941 445. Попутно выяснилось: у ЭНЕРГОСЕРВИС (554649) и Ди-трейд (582660) нет записей в РЕГИ, их ЦУ берётся только из приходов. Собрано локально, на прод не выкачено.
bug
Единое правило ЦУ на весь дашборд
Главная причина «где фильтрует, где нет»: ЦУ считался только по карте из РЕГИ, а она покрывает не всех. Вынес правило в lib/cu.ts (реги → город по справочнику → страны СНГ в МСК → остальное в СО РОССИЯ) и подключил везде: события, обзор, входящие, план, регистранты, сравнение, источники регистрации, звонки, приходы. Регион строки передаётся в фильтр, а для данных без региона собирается карта клиент→регион из пула событий. Список ЦУ в сайдбаре теперь система свода, а не «что попалось в реги».
bug
Фильтр ЦУ в приходах, источниках регистрации и звонках
Приходы игнорировали выбранный ЦУ целиком — теперь режут KPI, разрез и топ клиентов (МСК: 560 600 руб, 4 клиента). Источники регистрации: было «370 из 600» при любом ЦУ, стало «107 из 174» для МСК. Звонки реагировали только деньгами, теперь фильтруется и сам список. Помесячная строка приходов помечена «по всем ЦУ» — её сервер отдаёт без разбивки по клиентам.
bug
Разрезы: центр учёта отдельно от офиса менеджера
Вопрос владельца «почему при выборе ЦУ показываются другие ЦУ». В разрезе стоял ЦУ менеджера из строки события (Сетевой отдел, Беларусь и прочие), а фильтр работает по своду. Добавлена вкладка «Центр учёта» (по умолчанию, три значения как в сайдбаре, клиенты без реги раскиданы по городам), старая переименована в «Офис менеджера».
feature
Карточка клиента: одно боковое окно везде
Было: часть разделов открывала окно, приходы уводили на отдельную страницу, а платящий клиент выдавал «не найден в пуле НК». Добавлен эндпоинт /api/client (полный пул + приходы) и общий компонент ClientDrawerById: открывается везде боковым окном, работает для клиентов без событий (показывает деньги из оплат). Страница /client/[id] переведена на тот же источник.
feature
Статус счёта и деньги в таблице событий
Счёт показывался «ждёт» рядом с «оплачено 167 400» — статус брался из событий, а деньги из приходов. Теперь если приходов клиента хватает на счёт, он «оплачен» (проверено на Техмаш). В таблицу событий добавлены колонки «Счёт» и «Приходы» по клиенту.
feature
Фильтры прилипают к верху экрана
В Событиях панель фильтров стала sticky. Сначала не липла: контейнер страницы имел overflow-x-hidden, который делает элемент прокручиваемым и ломает sticky — заменено на overflow-x-clip.
feature
Деньги считаются за выбранный период, а не за всё время
Корень жалоб «июльские суммы в августе». payMap.money отдавал приходы клиента за всю историю, и это показывалось рядом с выборкой месяца: у Капустиной 680 000 за август, в раскладке лидов всплывал Глобал Трейдинг (клиент июля), в Событиях приходы 474 100 против 560 600 в Обзоре. Теперь сервер отдаёт учтённые платежи с датами, у провайдера появился moneyIn(клиент, с, по) и хук useMoney(период). Переведены Обзор, События, Каналы, Рассылки, Входящие, Регистранты, Сравнение периодов (там деньги ложатся в тот период, когда пришли). В карточке клиента осознанно осталась сумма за всё время — подписано «приходы, всего».
bug
Фильтр «ЦУ» в панели переименован в «Офис менеджера»
В панели фильтров это ЦУ из строки события (Сетевой отдел, Беларусь, офисы НК), а не свод из сайдбара — владелец справедливо путался, почему при выбранном МСК в списке много других ЦУ. Название разведено, как и во вкладках разрезов.
feature
Раздел «Продажи»: крупная плашка про придуманные данные
Аудит фильтров показал: раздел не реагирует ни на ЦУ, ни на сегмент, потому что работает на выдуманных сделках (менеджеры Волкова, Иванов и прочие). Мелкий бейдж «Демо-данные» терялся. Добавлена плашка в потоке страницы: числа брать в отчёты нельзя, выгрузки по продажам нет.
feature
НК: убрать из приходов деньги действующих клиентов
Директор по НК заметил Энергосервис (554649) в приходах НК — проверено, обе его оплаты за август это «Доплата» (60 000 и 55 000), то есть ПП. Теперь блок называется «Приходы новых клиентов» и показывает только тех, у кого ПЕРВАЯ оплата за всю историю отчёта попала в период: доплаты, повышения пакета и оплаты ранее плативших исключены. По августу это отсекло 429 845 руб у 6 компаний, включая АВИТЕКС (первая оплата 29.06) и ДЕКСИС (31.07) — их владелец тоже назвал ПП. Стало 1 511 600 руб и 16 НК вместо 1 941 445 и 18. Исключённая сумма показана строкой с именами, чтобы сходилось с полным отчётом.
bug
Разрезы: убрана вкладка офиса менеджера
Владелец дважды указал, что в разрезе ЦУ должно быть три значения. Вкладка «Офис менеджера» (Сетевой отдел, Беларусь, офисы НК) из разрезов убрана совсем, остался только «Центр учёта» — три строки как в фильтре сайдбара. Офис по-прежнему доступен как фильтр панели.
feature
Аудит фильтров по всем страницам и блокам
Прогнано автоматом: на Обзоре и в Событиях каждый из семи фильтров панели (события, офис менеджера, регионы, пакеты, менеджеры, статусы, критерии) реагирует; фильтр ЦУ проверен на 11 страницах — везде режет, кроме Продаж (там придуманные данные, помечено плашкой). НЕ проверено: каждый блок внутри страниц по отдельности, фильтры дат на всех страницах, взаимодействие фильтров между собой, сходимость чисел между разделами после перевода денег на период. Продолжить прогон и свести таблицу «страница × фильтр × блок».
feature
Правило НК: вернули учёт по разметке строк оплаты
Владелец уточнил: АВИТЕКС это НК и раньше считали правильно — повторная «Первая оплата» (новый сайт или регион у знакомой компании) остаётся новым клиентом. Убрал введённое было правило «первая оплата за всю историю». Сейчас в НК попадают строки «Первая оплата» и «Доп. регион», исключаются только доплаты и повышения пакета: 1 690 170 руб и 18 НК за август, отсечено 251 275 руб у 4 компаний (Энергосервис, ЗСК Бетон, Техимпульс, Снабэкс-ДВ).
feature
Липкие фильтры на всех страницах
Раньше липла только панель в Событиях. Sticky перенесён в сам компонент панели фильтров, поэтому работает на обзоре, событиях, каналах, баннерах, рассылках и цепочках. Отдельно сделаны свои панели: регистранты (проверено на проде — прилипает, top 0), входящие и все разделы ПП.
feature
готовS5 · S30 — Приходы: ЦУ, сверка, A/B-тесты, метрики Обзора19/20

Цель: ЦУ приходов из файла, сверка с ручной чисткой, A/B по переходам, конверсия+деньги в Обзоре

A/B-тесты: метрика «Переходы» + тест мобильных прайс-табов
Добавил метрику «Переходы (просмотры)». Завёл тест «Прайс мобайл — переходы по табам»: эталон июль, устройство mobile, линия на каждый таб + сумма. Считает и рендерит на бою.
feature
Приходы: ЦУ берём из файла приходов (фикс «не определён»)
В файле приходов ЦУ есть у 100% строк, а брали из РЕГИ, где НК не зарегистрированы → «не определён». Теперь читаем ЦУ прямо из прихода, нормализация МСК/СО(ЕК+ПМ)/СО РОССИЯ/Новосибирск. «Не определён»=0, совпало с ручной разбивкой аналитика (5/7/24).
bug
Обзор: конверсия в НК + деньги в блоке «Лиды по числу событий»
На каждой корзине (1/2/3/4+ событий) показываю сколько лидов стали НК (+% конверсии) и сколько денег принесли. В раскрытии — строка-итог и деньги по компаниям с бейджем нк. Инсайт: 3 события конвертят лучше всего (7%).
feature
Сверка приходов с ручной чисткой аналитика (Книга1, июль)
34/36 клиентов копейка в копейку. Разрыв −30 000 = клиент 362935 (система 30к из 29900+100, аналитик 60к). Плюс пара 620351/620597 — разные записи по 108 400, взаимно гасятся. Строка «Общий итог» в файле задваивала сумму — исключил.
chore
Аналитика ИИ: свежий пересчёт за август
6 понятных инсайтов, partial-aware (до 21.08), сравнение на равном окне 1–21. Рассылки, активность лидов, сильные действия, переходы, ключевые страницы, источники просадки.
chore
Свести приходы к 0 по исходной полной выгрузке (−30к, клиент 362935)
Нужна исходная ПОЛНАЯ выгрузка приходов (сырая, со всеми строками и датами), из которой аналитик чистил июль. Сверить построчно: реально было 60 000 у 362935 или задвоение.
chore
Решить, куда относить ЦУ «Новосибирск (НК)»
В таксономии РЕГИ только МСК/СО(ЕК+ПМ)/СО РОССИЯ. Новосибирск (10 приходов) сейчас отдельной строкой. Спросить у клиента: отдельно или влить в один из трёх.
Новосибирск переехал в СО РОССИЯ — применено в приходах и регах.
chore
Реги+События: раскидать все по справочнику город→ЦУ (фикс #REF!)
3978 регов висели с cu=#REF! (сломанная формула мастера) — справочник по городу к ним не применялся, т.к. #REF! непустой. Теперь #REF!/#Н/Д трактуем как пусто → включается cityCu[город]. Бэкфилл: 3892 из 3983 разложены (СО РОССИЯ 1822/МСК 1337/СО(ЕК+ПМ) 733), #REF!=0. Карта клиент→ЦУ для событий выросла ~1115→4701. 92 зарубежных (Астана, Турция…) без ЦУ — их нет в справочнике.
bug
Перезалить справочник город→ЦУ + обогатить регов (companies_report 21.08)
Справочник = «Правила передачи клиентов + города.xlsx», лист «Города и ЦУ» (269): Ощепкова→СО РОССИЯ, Бойдова→СО(ЕК+ПМ), Москва→МСК. Перезалит. Плюс залит 21.08.2026_companies_report.csv (499 регов) — cu выведен из региона по справочнику.
chore
UI: проценты конверсии в карточках корзин (точка ниже, цифры ближе)
В блоке «Лиды по числу событий» на строке «в НК» точку опустил к базовой линии и сжал отступы: было «6 · 1%» по центру → стало «6·1%» с точкой внизу.
chore
Правило ЦУ для непокрытых: зарубеж→СО РОССИЯ, 3 СНГ→МСК
Фолбэк fallbackCu: всё, чего нет в справочнике город→ЦУ → СО РОССИЯ, КРОМЕ Азербайджана/Кыргызстана/Узбекистана → МСК (уже и так в справочнике). Русские города вне справочника (Королёв, Берёзовский, Новочебоксарск) → СО РОССИЯ. Бэкфилл 92 непокрытых рега, без ЦУ=0. Справочник = «Правила передачи клиентов + города», лист «Города и ЦУ».
feature
План месяца: вкладка «По ЦУ» (сколько и каких лидов по ЦУ)
Табы «По категориям»/«По ЦУ». Матрица категория×ЦУ (МСК/СО(ЕК+ПМ)/СО РОССИЯ) + строка «Уникальных лидов» + Всего, группировка Горячие/Тёплые. Клиент считается один раз в категории.
feature
События раскидываем по ЦУ по региону события (справочник)
События клиентов без рега теперь получают ЦУ по своему региону через справочник город→ЦУ (fallback тем же правилом). cityCu проброшен на клиент через /api/regi + CuProvider. «Не определён» в разрезе плана упал с 354 до 0 по пулу. ФРАНШ (Беларусь) свёрнут в СО РОССИЯ. Остаток: 35 КЦ-активности из отчёта действий без региона — привязать не по чему.
feature
Загрузка: авто-детект кодировки CSV (UTF-8/cp1251)
Новые выгрузки ПЦ в UTF-8, старые cp1251. Парсеры жёстко читали cp1251 → кракозябры в заголовках, файл приходов не распознавался. Добавил lib/xlsxRead.ts (pickCodepage по валидности UTF-8) и завёл во все 5 CSV-читалок (reports/payments/regi/ops/pp).
bug
Загрузка приходов: даты ММ.ДД наоборот + двойной счёт
xlsx угадывал даты CSV по US-раскладке ММ.ДД: 07.08(7авг)→8июля, 12.08→8дек (ломалось при дне ≤12). 12 августовских платежей улетали в чужие месяцы, дедуп не ловил (дата другая) → задвоение. Фикс: читаю даты как текст (raw:true), parseDate по дд.мм.гггг. Откатил битый отчёт, перезалил. Август=1 941 445 ₽ (=Итого файла), месяцы только V–VIII.
bug
Обогащение НК: события/реги/КЦ/приходы на 28.08
Залито из папки Отчет ПЦ: события +639 (до 28.08), companies 670 (ЦУ по справочнику), КЦ +224, приходы (полный август). ПП-файла (Аналитика для продаж) в папке не было — ждём отдельно.
chore
ПП: поиск по клиенту (е/ё/э, токены)
Причина: в базе «НПО Протэкт» (э), ввод «Протект» (е) не совпадал; поиск был однопроходный includes. Нормализация ё/э→е + пунктуация→пробел + AND по словам в filterSites (общий для всех ПП-экранов). «НПО Протект» теперь находит.
bug
ПП Обзор: месяц-фильтр + кликабельный график + Excel
Значение над КАЖДЫМ столбцом (июнь больше не «непонятно»), клик по столбцу выбирает месяц, плитка «Просмотры за <месяц>» + YoY по выбранному месяцу. Селектор месяца в фильтрах. Кнопка Excel на Обзоре (была только на Проработке/Реестре).
feature
ПП карточка клиента: паспорт + подписи + целевые-заглушка
Паспорт: ЦУ менеджера/менеджер/тариф/пакет/ид клиента+сайта + слот «Домен витрины: уточняется». «Отдача и трафик» — подпись периода и источника. Новый блок «Целевые действия»: телефон/почта/адрес как «появится позже» (данных пока нет) + итог за прошлый месяц.
feature
ПП ссылки 403: разобрал
processedUrl корректный и полный (297 симв.), ведёт на портал pulscen.ru/firms/{ид}/predl/binds?filters[...]. 403 даёт WAF/SmartCaptcha портала на тяжёлый bracket-запрос, не наша ошибка и не авторизация. Решить с владельцем: оставить или заменить на простую ссылку pulscen.ru/firms/{ид}.
chore

Ворклог (места остановки)

28.08.2026, 10:34:47 · S30.3 · claude

Вернул правило НК по разметке строк: АВИТЕКС снова считается новым клиентом, как и было принято в отделе. В приходах НК остались только «Первая оплата» и «Доп. регион», доплаты и повышения пакета исключены — 1 690 170 руб и 18 НК за август. Липкие фильтры сделал на всех страницах, а не только в Событиях: перенёс sticky в саму панель фильтров и добавил в собственные панели регистрантов, входящих и разделов ПП.

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

28.08.2026, 10:24:00 · S30.2 · claude

Разобрал вопрос про Энергосервис: он попал в приходы НК, потому что блок показывал все строки отчёта, включая доплаты действующих клиентов. Теперь в НК только новые клиенты, и новизна определяется по первой оплате за всю историю отчёта, а не по пометке строки — иначе АВИТЕКС и ДЕКСИС, платившие в июне и июле, снова считались новыми в августе. Отсечено 429 845 руб у 6 компаний, сумма и имена показаны отдельной строкой. Также убрал из разрезов вкладку офиса менеджера — в разрезе ЦУ теперь ровно три значения. Начал системный аудит фильтров: на Обзоре и в Событиях все семь фильтров панели реагируют, фильтр ЦУ проверен на 11 страницах.

Доделать аудит: каждый блок внутри страниц, фильтры дат, сочетания фильтров, сверка сумм между разделами. Отдельно: правило новизны ограничено глубиной загруженного отчёта приходов (сейчас с мая) — если клиент платил раньше мая, он всё ещё будет выглядеть новым; сказать владельцу, нужна ли более длинная выгрузка.

28.08.2026, 09:43:30 · S30.1 · claude

Владелец прислал список расхождений: у менеджеров июльские деньги, в раскладке лидов клиент из июля, в Событиях приходы не сходятся с Обзором, в фильтре ЦУ много лишних значений. Причина одна и системная: деньги везде брались за всю историю клиента, а показывались рядом с выборкой периода. Сервер теперь отдаёт платежи с датами, добавлен хук денег за период, переведены все разделы. Плюс переименован фильтр «ЦУ» в «Офис менеджера» и добавлена честная плашка в демо-раздел «Продажи». Прогнал страницы на реакцию к фильтру ЦУ: обзор, события, каналы, цепочки, баннеры, рассылки, входящие, регистранты, план, звонки — реагируют; продажи не реагируют, потому что данные придуманные.

Продолжить аудит: сверить, что период фильтра одинаково понимается во всех разделах (в шапке пула показывается диапазон всего пула, а не выбранный период — возможная причина ощущения «данные за год»), и пройти критерии и пакеты. Затем вернуться к аналитике ИИ и данным ПП от клиента.

28.08.2026, 08:07:19 · S30 · claude

Разбор багов по фильтру ЦУ и выкатка всего накопленного. Корень проблемы: ЦУ считался по карте из РЕГИ, которая покрывает не всех, и у каждого раздела была своя копия логики. Вынес единое правило (реги → город по справочнику → страна) в lib/cu.ts и подключил во все разделы, включая те, где фильтр не работал вовсе: приходы, источники регистрации, звонки. Для данных без региона собирается карта клиент→регион из пула событий. Развёл «Центр учёта» и «Офис менеджера» в разрезах. Карточку клиента унифицировал: везде боковое окно по /api/client, открывается и для платящих, которых нет в пуле лидов. Починил статус счёта (был «ждёт» при оплаченных приходах), добавил деньги в таблицу событий и липкие фильтры. Аналитику ИИ пересчитал на свежих данных за август.

Показать владельцу аналитику за август: рассылки вытягивают (18 писем против 42 в июле, активация 20,7 процента, переходы плюс 40), а верх воронки просел (регистранты 555 против 637, прайс 358 против 440); план держит колл-центр — 417 при плане 298. Дальше по ПП ждём данные клиента.

28.08.2026, 06:42:45 · S29.7 · claude

Три вопроса владельца по НК. Первое: на проде всё ещё 1009, потому что правки Плана не выкачены — ждут отмашки. Второе: «событий на 1 лида» 2.0 считается по всем строкам событий (2027 за 01–28.08 делить на 1009 лидов), а «уникальные события» 1680 — это пары «лид плюс вид события», то есть с дедупом по виду; поэтому числа и расходятся. Третье: «Екатеринбург (НК)» стоял отдельной строкой в приходах, потому что в нормализации ЦУ приходов были только Москва, Новосибирск и Сетевой отдел — добавил доведение по справочнику городов, теперь Екатеринбург входит в СО (ЕК+ПМ): 819 880 руб и 10 клиентов, общий приход не изменился.

Получить от владельца решение: выкатывать ли накопленные правки Плана и приходов (там же смена 1009 на 1109 из-за клиентов колл-центра) и что доработать в «Аналитике ИИ».

28.08.2026, 05:58:30 · S30 · claude

ПП, правки директора — сделал Группу 1 (баги): поиск по клиенту (е/ё/э+токены), месяц-фильтр и кликабельный график с числами над всеми столбцами на Обзоре, Excel на Обзоре, карточка клиента дополнена (паспорт+ид+домен-слот, подписи периода/источника, целевые телефон/почта/адрес как заглушки). Разобрал 403: ссылка корректная, режет WAF портала. Данные ПП обновлены на 28.08 (события=инверсия НК уже была).

КРУПНОЕ ДАЛЕЕ: 1) Деньги ПП — залить Отчет_по_приходам-ПП.xls ОТДЕЛЬНЫМ источником (новая модель), показать Сумма счёта/Сумма лота/ЦУ ПП (8 городов). 2) Месяц-фильтр на Проработку и Реестр. 3) Целевые в разрезе — когда дадут выгрузку с портала. 4) Домен — после встречи. 5) PowerPoint-выгрузка (образец ГОДОВОЙ ОТЧЕТ НАК МАШИНЕРИ) — позже. 6) 403 — решить: оставить или простая ссылка.

28.08.2026, 05:52:56 · S29.6 · claude

Владелец заметил, что у действий колл-центра есть регион, а ЦУ у них не определялся. Так и оказалось: регион брался только из событий месяца, поэтому клиенты, которых касался лишь колл-центр, падали в «не определён». Регион теперь доезжает из отчёта по действиям и раскладывается по справочнику городов — колонка «не определён» ушла совсем, 49 клиентов встали в свои ЦУ. Плюс такие клиенты вошли в число уникальных компаний: 1109 вместо 1009. Всё проверено локально на копии продовой базы, на прод не заливалось.

Показать владельцу и получить решение по двум вещам: выкатывать ли правки Плана (подписи, ЦУ для колл-центра, 1109 вместо 1009) и что доработать в «Аналитике ИИ».

28.08.2026, 05:37:37 · S29.5 · claude

Разобрал вопрос по Плану месяца: 1009 против 1154 — это не потеря лидов, а три разные величины. Сумма по категориям двоит компании (647 уникальных дали 1153 попадания), уникальных компаний за месяц 1009, и только 647 из них попали хотя бы в одну категорию плана; ещё 100 компаний живут только в отчёте КЦ и в пул событий не входят. Поправил подписи, чтобы это было видно на экране: под «Фактом лидов» теперь стоит число уникальных компаний, в разрезе по ЦУ строка называется «Уникальных компаний» и появилась строка «Из них в категориях плана». Проверил на копии продовой базы, на прод не заливал — владелец просил подождать. Проверил раздел «Аналитика ИИ» на проде: считается, август собран по 28.08, шесть выводов на месте, числа сходятся с планом (активных лидов 1009).

1) Дождаться отмашки и выкатить правки подписей Плана. 2) Уточнить у владельца, что именно доработать в «Аналитике ИИ» — добавить план и факт по категориям и ЦУ, добавить разбор портфеля ПП или оставить как есть. 3) По ПП ждём данные от клиента: полный список, статистику ЛК, заказы, прайс тарифов.

28.08.2026, 04:55:09 · S30 · claude

Обогатил данные ПЦ на 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) — отдельный вопрос по исходной выгрузке.

25.08.2026, 05:07:50 · S29.4 · claude

Запросы заказчицы по ПП. Сделал и выкатил: тарифы (фильтр, колонка, разрез «По тарифам») и непроработанные товары (плитка, колонки, карточка, выгрузки) — теперь строка читается как «клиент, тариф, не проработано столько-то, просмотры, ЦД, регион». Разобрал присланный файл по Экополису и проверил, что из него воспроизводимо: помесячная статистика ЛК и заказы в личном кабинете у нас отсутствуют, Метрика по домену витрины даёт другие числа, поэтому нужны выгрузки от клиента. Цена тарифа: в приходах только первые оплаты новых клиентов, из 98 компаний портфеля совпали 2 — нужен прайс или оплаты по продлениям.

Запросить у клиента: 1) полный список вместо среза на 100 строк (Экополиса в срезе нет); 2) выгрузку статистики ЛК помесячно; 3) выгрузку заказов ЛК; 4) прайс тарифов или оплаты действующих клиентов; 5) доступ к показателям рекламных кампаний. Как только придёт вторая выгрузка портфеля — раздел движения по тарифам.

25.08.2026, 04:54:23 · S29.3 · claude

Сделал аналитику выгрузку состава плана месяца: какие компании попадают в подсчёт по ЦУ СО (ЕК+ПМ) за июль и август — 190 компаний, 317 строк, с категориями, ид клиента и сайта, регионом, пакетом и тем, откуда взялся ЦУ. Логика повторяет разрез дашборда, сверено по экрану: август сходится полностью, июль — кроме прайса. Попутно нашёл, что месяц на экране считается по времени браузера, поэтому вечерние события последнего дня месяца уезжают в следующий; завёл отдельной задачей, править без согласования не стал. По ПП починил три замечания: подсказки-вопросики (портал вместо absolute — их срезали таблицы с прокруткой), ид компаний в реестре и топах, карточка компании по клику из реестра, проработки и обзора.

1) Решить с владельцем, чинить ли сдвиг месяца по часовому поясу (изменит числа в НК). 2) Ждём от клиента: адрес витрины для Метрики, приходы по продлениям, базу фасет, полный список вместо среза. 3) Волна 2 ПП: качество карточек, трафик, конструктор отчётов.

21.08.2026, 09:10:21 · S30 · claude

Достроил модель ЦУ. Правило непокрытых: зарубеж→СО РОССИЯ, 3 СНГ (Азербайджан/Кыргызстан/Узбекистан)→МСК; русские вне справочника→СО РОССИЯ. Бэкфилл, без ЦУ=0. Новая вкладка «План месяца → По ЦУ»: матрица категория×ЦУ + уникальные лиды. События клиентов без рега раскидываю по региону события через справочник (cityCu проброшен на клиент) — «не определён» в разрезе упал 354→0. ФРАНШ (Беларусь) свёрнут в СО РОССИЯ.

1) 35 КЦ-активности без региона в разрезе плана — привязать не по чему (у записи действия нет региона), решить нужно ли тянуть регион из companies. 2) Глобальный фильтр ЦУ в сайдбаре пока по регам (cuMap), события-без-рега там всё ещё «не определён» — при желании применить тот же region-фолбэк везде. 3) Дополнить справочник редкими зарубежными городами (сейчас закрыты фолбэком).

21.08.2026, 08:25:32 · S30 · claude

Разложил ЦУ по всей воронке. Реги: 3978 висели с #REF! из мастера — справочник город→ЦУ не применялся (пустым не считался). Починил (#REF!→пусто→cityCu), бэкфилл раскидал 3892 рега по 3 ЦУ, #REF!=0, карта клиент→ЦУ для событий выросла до 4701. Перезалил справочник «Правила передачи клиентов + города» (лист «Города и ЦУ»), обогатил регов файлом companies_report 21.08. Новосибирск переехал в СО РОССИЯ (и приходы, и реги). UI: точку в процентах конверсии опустил вниз и сжал.

1) Дополнить справочник город→ЦУ зарубежными городами (Астана 68, Турция 11, Чехия, Польша, США…) — 92 рега без ЦУ. 2) События: сейчас ЦУ берётся через клиента из регов (карта). Проверить, нужно ли ещё альтернативу «по ЦУ продавца». 3) Приходы −30к (клиент 362935) — ждём исходную полную выгрузку.

21.08.2026, 08:12:46 · S30 · claude

Приходы: ЦУ теперь из самого файла приходов (нормализация в коды дашборда) — «не определён» исчез, совпало с ручной разбивкой аналитика. Сверил приходы с Книга1 (ручная чистка июля): 34/36 клиентов в ноль, разрыв −30 000 = один клиент 362935, плюс пара 620351/620597 (разные записи, гасятся). В Обзоре в блок «Лиды по числу событий» добавил конверсию в НК и деньги по каждой корзине + деньги по компаниям в раскрытии. A/B: добавил метрику «Переходы», завёл тест мобильных прайс-табов (эталон июль). Аналитику ИИ пересчитал за август. Всё на бою, проверено скриншотами.

1) Взять у клиента исходную полную выгрузку приходов и свести −30к (клиент 362935). 2) Решить ЦУ «Новосибирск» — отдельно или влить. 3) A/B прайс-табов добить в начале сентября, когда закроются август и сентябрь (сейчас август частичный, до 21.08).

21.08.2026, 05:46:27 · S29.2 · claude

В Событиях появился блок «Разрезы»: восемь срезов (ЦУ, менеджер, регион, пакет, событие, рубрика, статус, критерий), в каждом — события, клиенты, приходы и доля, с сортировкой и кликом для фильтрации раздела. Работает в обоих режимах: в НК показывает лидов и приходы по ЦУ НК (Сетевой отдел Россия 496 051 ₽, Москва НК 704 500 ₽), в ПП — клиентов и приходы платящих (Челябинск 352 253 ₽, Сетевой отдел 708 630 ₽). Пункт меню «Обзор портфеля» сокращён до «Обзор». Выкачено и проверено на проде.

Ждём от клиента адрес витрины (Метрика), приходы по продлениям, ответ про базу фасет и период трафика, полный список вместо среза на 100 строк. Дальше — волна 2 ПП: качество карточек, трафик, карточка клиента, конструктор отчётов.

21.08.2026, 05:26:47 · S29.1 · claude

Доработал режим ПП по замечаниям владельца: вкладка называется ПП, в выпадающих списках появился поиск и перестали обрезаться длинные названия ЦУ, написание ЦУ нормализовано. В ПП перенесены «События» и «Цепочки» — тот же инструмент, но пул считается наоборот: сегмент pp = всё кроме НК (на проде 13 321 событие и 3 679 клиентов против 15 572 и 7 124 в НК). «Сравнение месяцев» написано заново: в НК оно строится на списке регистрантов, а платящих там почти нет, поэтому для ПП сделано сравнение по самому пулу событий с разрезами и выгрузкой. Выкачено и проверено на проде.

1) Ждём от клиента адрес витрины (Метрика), приходы по платящим, ответ про базу фасет и период трафика, полный список вместо среза. 2) Волна 2: качество карточек, трафик, карточка клиента, конструктор отчётов. 3) При желании перенести в ПП «Звонки» и «Каналы».

21.08.2026, 04:50:12 · S29 · claude

Сделал второй дашборд «Платящие» рядом с НК и выкатил на прод (80.90.184.203:3061/pp). Переключатель режимов вверху сайдбара. Источник — выгрузка клиента «Аналитика для продаж»: заливается через обычные «Загрузки», распознаётся по шапке; просмотры по месяцам легли отдельной таблицей, поэтому история копится, даже когда в новом файле другие колонки. Три раздела: обзор портфеля, разбор проработки (охват, эффект по когортам «до/после метки» со средним и медианой, топы, разрезы), реестр сайтов с сортировкой, фильтрами, спарклайнами и выгрузкой. Цифры сверены с независимым разбором файла: 100 сайтов, 57 с проработкой, 27 588 просмотров за июль, +74% год к году, 603 целевых действия. Проверено на 5000 строк: заливка ускорена с 5+ минут до 9 секунд (пакетная запись вместо построчного upsert). Метрику по клиентам проверил на живом API: трафик живёт на витринах с их доменами, привязки по ид сайта нет — механику заложил, подключение отложено до адреса витрины в выгрузке.

1) Ждём от клиента: адрес витрины в выгрузке (для Метрики), приходы по платящим, ответ про базу фасет и период трафика, полный список вместо среза на 100 строк. 2) Волна 2: качество карточек (фото, фасеты, группы), трафик, карточка клиента, конструктор отчётов. 3) Режим платящих для событий/цепочек/звонков — добавить сегмент pp в пул. 4) На проде вместе с ПП уехали три утренние правки (контексты в Событиях, деньги во Входящих, когорты) — владелец просил только ПП, откат не делали, работает штатно.

07.08.2026, 05:07:34 · Спринт 3 — правки дашборда · claude

5 правок по запросу клиента: (1) клиент→регистрант на странице Регистранты; (2) уточнил смысл «первое событие→конверсия»; (3) разрез «Страна» с раскрытием стран-импортёров (Китай/Турция/…) + KPI; (4) дефолт «текущий месяц» во всех реальных разделах (жёстко); (5) ребилд «Сравнение месяцев» — связки через разрез: поиск сущности + показатель + разрез по ЦУ/региону/источнику/профильности, серия раскладывается на линии. Всё задеплоено на cfru :3061 и проверено скринами.

Внимание: дефолт «текущий месяц» = август, а данные по 31 июля → разделы пусты до заливки августа (так решил заказчик). Возможно позже: умный дефолт (последний месяц с данными). Разрез оплат по событию для кросс-городских клиентов приблизителен (payment attributed каждому сегменту).

03.08.2026, 03:39:55 · Спринт 2 — Метрика + Аналитика ИИ · claude

Построил раздел «Аналитика ИИ» (compiled-AI, /ai): cohort-отклик писем с контролем окна созревания, интенсивность/глубина событий, метрика ключевых страниц, источники по страницам. Вывод — отклик на письма НЕ упал (артефакт незрелого окна воронки), просадка июля = приток + провал блога/МОРС по каналам. Раздел «Метрика» (200476) вживую + подраздел «Наши страницы»: месяц-vs-месяц, отказы, тренд 6 мес, источники по каждой странице, топ статей блога. Залил июльские отчёты до 31.07 (события/КЦ/звонки/реги, ФРАНШ убран) — Аналитика ИИ на полном месяце. Кроны: Sendsay еженедельно (пятница 08:00 МСК) + прогрев кэша аналитики каждые 3ч (кэш 6ч, мгновенная выдача).

Задеплоено на cfru :3061, проверено скринами. Докрутки по желанию: сумма «Оплатили» в Регистрантах за выбранный период (сейчас накопленная all-time); блок «Источники (месяц vs месяц)» в самой Аналитике ИИ. Метрика тянется вживую — крон не нужна.

20.07.2026, 13:21:18 · · claude

Спринт «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 был залочен).