Загрузка данных…
СИБУР
Analytics Hub
Методология

Методология

Почему так считаем и что за этим стоит

Методология сквозной аналитики

Основана на AMEC Integrated Evaluation Framework (Association for Measurement and Evaluation of Communications) — международном стандарте оценки коммуникаций. Пять уровней воронки: Outputs → Outtakes → Outcomes → Impact → Organisational impact. На дашборде эта воронка русифицирована и приземлена на B2B-контекст СИБУРа.
Охват
Outputs
Глубина
Outtakes
Вовлечение
Outcomes
Действие
Outcomes
Горячих → KAM
Impact

5 KPI и их формулы

Единый словарь метрик дашборда и их ограничения
KPI Определение Формула Ограничения
Охват Уникальные компании, активные в ≥ 1 канале за 30 д COUNT DISTINCT(companies WHERE last_signal >= today−30d) Сигнал = email open/click OR site visit OR TG activity OR webinar
Глубина Из охвата — компании, активные в 2+ каналах COUNT DISTINCT(companies WHERE channels_active_30d >= 2) Измеряет кросс-канальную интеграцию. Не «во всех каналах» — структура каналов разная
Вовлечение Взвешенный open rate финализированных кампаний (snapshot 7d), окно [-30, -7] д SUM(opens_unique_7d) / SUM(sent) × 100 Apple MPP и Gmail image-prefetch инфлируют open rate на iOS. CTOR точнее. БПС: атрибуция в разработке
Действие Уникальные клики из email на статьи magazine.sibur.ru / sibured.ru/businesspractices за 30 д COUNT(clicks WHERE host IN (content_sk, content_bps) AND date >= today−30d) В Google Sheet G5 считается с шумом (ya.ru, соцсети, foquz) — там 654. Категории разделены: content_sk (magazine.sibur.ru) и content_bps (sibured.ru/businesspractices) — блок «Топ-темы» имеет чип СК/БПС.
🔥 Горячих → KAM Компании сегмента Горячий: composite_score ≥ 0.5 COUNT DISTINCT(companies WHERE segment = 'Горячий') Передаются менеджерам отношений (Key Account Managers)

5 каналов и их статус

Где собираем данные, что уже работает и чего ждём
📧
Email · СК
DashaMail API, 26 кампаний за 2026, snapshot 24h/72h/7d, 15 936 подписчиков, 78.7% атрибутировано к компании.
✅ Активен
📧
Email · БПС
DashaMail. Атрибуция email→company через master-файл от коллеги (БПС-Живые-Получатели-2026, ~640 строк) + domain-fallback по справочнику (~12 566 алиасов). Подключено 28.04.2026.
✓ Активен
🌐
Сайт · СК
Яндекс Метрика counter 87766804 (magazine.sibur.ru), 14 915 визитов за 30д.
✅ Активен
🌐
Сайт · БПС
Яндекс Метрика counter 94048583 (sibured.ru), фильтр startURLPath=@'/businesspractices', 6 658 визитов за 30д.
✅ Активен
💬
TG · СК
Сообщество @sibur_clients, 829 клиентов, 1 585 записей (LEAD + Chatkeeper + экспорт).
✅ Активен
🎥
Вебинары · БПС
МТС Линк API, подключено 28.04.2026: события + участники (attended/registered), webinar_score в composite (вес 0.375).
✅ Активен

Composite score и сегментация

Как считается единый score компании и почему именно так
composite  = Σ W[ch] × score[ch]  по каналам email / tg / webinar / site
W = FULL_WEIGHTS {email 0.3, site 0.2, tg 0.2, webinar 0.3}, нормированные
по активным каналам → сейчас email 0.375 · tg 0.25 · webinar 0.375 (site не активен)
email_score = [ log1p(clickers_90d) + 0.15 × log1p(max(0, openers_90d − clickers_90d)) ]
              × 0.5^(days_since_last_event / 60)
tg_score    = max(legacy, telethon)
legacy   = min(1, msgs_lifetime/5 + rx_on_admin/20) × 0.5^(days_since_last_seen / 60)
telethon = min(1, (group_msgs_30d + 2×private_msgs_30d)/20 + reactions_30d/30)
           × 0.5^(days_since_last_msg / 60)
webinar_score = log1p(visits_90d) × 0.5^(days_since_last_visit / 30)

Log-шкала без capping. Крупные компании не «слипаются» в 0.99 — сохраняется разрешение в топе, топ-5 реально ранжируется.

Decay 60 дней. B2B-цикл, а не 14 дней как для consumer-email: клиенты СИБУРа реагируют медленнее, решение о закупке занимает недели.

Ratio click:open = 6.7×. Кликер весомее просто открывателя в 6.7 раза (1 / 0.15), потому что клик = интент.

SIBUR-домены отфильтрованы. 696 адресов из внутреннего домена не участвуют в email_score (иначе искажали бы топ).

Пороги сегментов · обоснованы по перцентилям распределения
🔥 Горячий ≥ 0.5 ≈p99 распределения, передать KAM top ~1%
🟡 Тёплый 0.2–0.5 ≈p90–p99, watchlist для реактивации top ~3%
🟢 Холодный < 0.2 остальная база, стандартная рассылка ~96%
Текущие численности сегментов — на «Обзоре портфеля» (пирамида); здесь не дублируются, чтобы не устаревать.
Пороги подтверждены Викторией как «вариант B, круглые числа».

Снапшоты email-кампаний 24h / 72h / 7d

Почему нельзя сравнивать вчерашнюю кампанию с недельной

Зачем нужны. Метрики email «дотекают» первые 3 суток — открытия, клики и отписки приходят волной. Нельзя сравнивать open rate новой кампании (2 часа назад) с ней же через неделю: это будут разные цифры для одного и того же события.

Как работает. Коллектор dashamail_snapshots.py фризит значения в трёх точках: +24h, +72h, +7d после send_date. Записывает 21 колонку в data_campaigns (opens/clicks/ctor/unsub/bounce × 3 точки + служебные).

Финальные метрики. Все цифры на Dashboard считаются только по _7d, и только для кампаний в окне [today−30, today−7] — чтобы у каждой было не меньше 7 суток «дотекания».

Preliminary. Кампании младше 7 дней помечаются «предварительно» и показываются отдельным блоком, чтобы не искажать weighted average.

Три источника TG-сообщества

Разные файлы — разные области ответственности
📋
LEAD · identity, 1 585 записей
Из формы регистрации в @sibur_clients. Single source of truth для name/company/role.
SoT identity
🚪
Chatkeeper events · community status
События join/leave/returned. Single source of truth для is_in_community и tenure_days.
SoT status
💬
Экспорт чата · activity
Messages, reactions_received. Merge по user_id, не перезапись — только обогащение.
activity
🗑️
USER.group_status
Не используется — Виктория явно подтвердила 19.04: мусорные данные. Замена — Chatkeeper events.
отключено

Ограничения и честные оговорки

Что следует учитывать при интерпретации цифр
  • Apple MPP / Gmail image-prefetch инфлируют open rate на iOS — авто-открытия без участия человека.
  • Δ (динамика за 30 дней) — для каждого из 5 KPI сравнение с snapshot'ом 30-дневной давности. Snapshot'ы хранятся в state/kpi_snapshots.jsonl и обновляются ежедневно после прогона пайплайна (шаг snapshot_kpi в run_pipeline.sh). Если истории меньше 30 дней — берётся самый старый доступный snapshot, фактический интервал виден в поле kpi.delta_base_days data.json. Для процентных метрик Δ — в процентных пунктах (↑ +1.3 пп), для остальных — целое со знаком (↑ +12 / ↓ −3 / — 0). Если истории ещё нет — везде null, UI рендерит «Δ —».
  • Email-атрибуция БПС через master-файл коллеги + domain-fallback. ~35% эмейлов атрибутируются к компании; остальные с публичными доменами (mail.ru/gmail) остаются без company.
  • Вебинары БПС — токен МТС Линк получен 28.04, коллектор в работе. После подключения добавится ~30 событий/мес.
  • data_companies.last_signal хранится как дата через RAW + numberFormat. Без этого Google Sheet превратил бы дату в serial 46129.xx при пересчёте.

Словарь русификации

Единый язык дашборда — без кальки с английского
Open rate% открытий
CTR% кликов
CTOR% кликов от открытий
Unsub rate% отписок
Bounce% отказов
ReachОхват
DepthГлубина
RisersАктивизировались
TierСегмент
Hot / Warm / ColdГорячий / Тёплый / Холодный

Почему так — 6 ключевых архитектурных решений

Короткие обоснования главных MVP-развилок
  1. Одна Google-таблица, не PG. MVP-подход — пользователь видит данные сразу, без деплоя БД и фронта. Миграция на PostgreSQL возможна при превышении ~1 млн строк.
  2. Мульти-базные рассылки = 1 строка с конкатенацией имён баз. Согласовано 18.04. Альтернатива (строка-per-база) дала бы дубли в weighted averages.
  3. Resends = отдельные строки с parent_campaign_id. Видно uplift от досылки; при этом фильтр по send_type=original даёт чистые метрики оригинальной рассылки.
  4. Классификация по базам, не по subject. БПС часто шлёт без префикса в теме («Вебинары в апреле»), а имя базы всегда содержит «бпс» — надёжнее.
  5. Сайт БПС = только /businesspractices. Без фильтра ловит весь sibured.ru — корпоративный трафик к нашей аудитории отношения не имеет.
  6. Контент СК и БПС — раздельные категории URL. magazine.sibur.rucontent_sk, sibured.ru/businesspracticescontent_bps. Раньше оба попадали в один бакет, и блок «Топ-темы» врал — заголовок обещал СК, а top-N мог быть БПС. Теперь в data.json у каждой темы поле project, UI фильтрует чипом.
  7. Email-фильтр SIBUR — 696 адресов не попадают в email_score. Иначе сотрудники СИБУРа, массово открывающие внутренние рассылки, инфлировали бы сегмент «Горячих».