Месторасположение: Отчёты → Заявки → Воронка продаж по менеджерам

Отчёт показывает воронку продаж в разрезе менеджеров: количество заявок, встреч, броней и сделок с конверсиями между этапами, а также финансовые показатели по проведённым сделкам.
Целевые заявки (ЦЗ) — заявки в статусах: Подбор, Отложено, Отказ, Бронь, Сделка в работе, Сделка проведена. Статус «Проверка» включается в целевые, если это настроено в параметрах компании.
Старые заявки в работе — заявки, созданные до начала выбранного периода, находящиеся в активных статусах (Проверка, Подбор, Бронь, Сделка в работе) на момент построения отчёта.
#Работа с отчётом
#Фильтры
Тип — тип недвижимости (Жилая, Коммерческая и др.).
Дата (с/по) — период отчёта. Заявки отбираются по дате создания.
Отдел продаж — отбор по отделу менеджера.
Менеджер — отбор по конкретному менеджеру.
Источники — отбор по рекламному источнику заявки.
Категория — отбор по категории объекта.
Звонок — отбор по характеристикам первого звонка по заявке: целевой / нецелевой, первичный / вторичный.
Скрыть столбцы — позволяет убрать из таблицы ненужные столбцы.

#Опции
Считать отдельно сделки в работе и завершены — разделяет столбец (14) на два: (12) Сделки в работе и (13) Сделок завершено. Добавляет столбец (19) Конверсия ЦЗ в завершённые сделки и меняет формулу в (23).
Считать конверсии за период — ограничивает числитель конверсий периодом отчёта: встречи и даты сделок также должны попадать в выбранный диапазон. Без этой опции встречи и сделки учитываются за всё время заявки.
Уникальные первичные обращения — учитывает только первичные заявки (не повторные обращения клиента).
С посредником / Без посредника — отбор по наличию агента в сделке. Если выбраны обе опции, фильтр не применяется.
Показать звонки — добавляет в таблицу столбец с количеством звонков менеджера за период.

#Структура отчёта
Каждая строка — один менеджер. В конце таблицы — строка «Итого».

(1) Менеджер — имя менеджера.
(2) Старых заявок в работе — заявки, созданные до начала периода и находящиеся в активных статусах на момент построения отчёта.
(3) Заявок за период — все заявки менеджера, попавшие в период по выбранной группировке (статус любой положительный).
(4) Целевые заявки — заявки из (3), находящиеся в целевых статусах на момент построения отчёта.
(5) В т.ч. Эксклюзивы — из (4): заявки с признаком «Эксклюзив».
(6) 1-х встреч в офисе / на объекте — первые состоявшиеся встречи по целевым заявкам периода: в офисе / на объекте. Значение кликабельно и ведёт в реестр встреч.
(7) Несостоявшиеся встречи в офисе / на объекте — встречи, не состоявшиеся по причине неявки клиента: в офисе / на объекте.
(8) Конверсия ЦЗ во встречи — доля целевых заявок, по которым состоялась первая встреча: ((6) офис + (6) объект) / (4) × 100%.
(9) Сейчас в брони — заявки периода с текущим статусом Бронь или Маркетинговый резерв.
(10) Поставлено броней — заявки периода, по которым фиксировался перевод в статус Бронь (в том числе если впоследствии статус изменился).
(11) Встречи → Брони — доля встреч, по которым была поставлена бронь: (10) / ((6) офис + (6) объект) × 100%. Значение может превышать 100%, если бронь поставлена по заявке без зафиксированной первой встречи.
(14) Сделки — заявки периода в статусах Сделка в работе и Сделка проведена. При включённой опции «Считать отдельно» делится на столбцы (12) Сделки в работе и (13) Сделок завершено.
(15) Среднее время завершения сделки, дн. — среднее количество дней от создания заявки до проведения сделки.
(16) Сделок завершено по эксклюзивам — из завершённых сделок: только по заявкам с признаком «Эксклюзив».
(17) Сред. срок эксклюзивов, дн. — среднее время завершения сделки по эксклюзивным заявкам.
(18) Сделок проведено за период — сделки, дата проведения которых попала в выбранный период (независимо от даты создания заявки).
(20) ЦЗ → Брони — конверсия целевых заявок в брони: (10) / (4) × 100%.
(21) Брони → Сделки — конверсия броней в завершённые сделки: сделок завершено / (10) × 100%.
(22) Конверсия ЦЗ в сделки — (14) / (4) × 100%.
(23) Конверсия встреч в сделки — (14) / ((6) офис + (6) объект) × 100%.
(24) Сумма проведённых сделок по данным заявкам, ₽ — сумма договоров по заявкам периода, сделки по которым проведены (в любое время).
(25) Сумма проведённых сделок за период — сумма договоров по сделкам, проведённым в выбранном периоде.
(26) Поступления за период от продажи недвиж. по данным сделкам, ₽ — фактически поступившие платежи в периоде по сделкам заявок этого же периода. Без учёта комиссий. Возвраты вычитаются.
(27) Всего от продаж недвиж.* — все поступления менеджера от продажи недвижимости за период, включая сделки прошлых периодов. Без учёта комиссий. Возвраты вычитаются.
(28) Всего комиссий собрано в период — сумма комиссионных платежей, поступивших в периоде.
* Из расчёта исключаются платежи по отдельным источникам финансирования (зачёты, платежи застройщика, завышения, удержания, облигации).
Кнопка → XLS выгружает отчёт в Excel.
#Технический паспорт отчёта
#Условия попадания в отчёт
Строка создаётся по каждому менеджеру компании. В расчёт заявок попадают записи, у которых:
type IN ('living', 'comm');status > 0(не удалены);- менеджер заявки совпадает с менеджером строки;
- дата заявки (по выбранной группировке) попадает в период либо заявка создана до периода и активна сейчас (для столбца (2)), либо сделка проведена в периоде (для столбца (16)).
Набор статусов:
| Группа | Коды | Использование |
|---|---|---|
| Целевые | 4, 15, 20, 30, 50, 100 | Столбцы (4), (8), (20), (22) |
| Проверка (опционально) | 10 | Добавляется к целевым при настройке компании |
| Старые в работе | 10, 20, 30, 50 | Столбец (2) |
| Бронь / Маркетинговый резерв | 30, 32 | Столбец (9) |
| Сделки (все) | 50, 100 | Столбец (14) |
| Сделки завершены | 100 | Столбцы (15), (18), (21), (24), (25) |
Атрибуция денег (столбцы (23), (24), (25)) — по ответственному менеджеру платежа (finances.respons_manager_id), а не по менеджеру заявки.
#Данные в системе
Отчёт строится из трёх независимых запросов, объединяемых по менеджеру.
Заявки — столбцы (2), (3), (4), (9), (10), (14), (15), (18), (20), (21), (22), (24), (25)
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
eb.manager_id,
COUNT(DISTINCT IF(
DATE(eb.created_at) < DATE('{{start_date}}')
AND eb.status IN (10, 20, 30, 50), eb.estate_buy_id, NULL)) AS old_in_work,
COUNT(DISTINCT IF(
DATE(eb.created_at) BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
AND eb.status > 0, eb.estate_buy_id, NULL)) AS buys_period,
COUNT(DISTINCT IF(
DATE(eb.created_at) BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
AND eb.status IN (4,15,20,30,50,100), eb.estate_buy_id, NULL)) AS target,
COUNT(DISTINCT IF(
DATE(eb.created_at) BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
AND eb.status IN (30, 32), eb.estate_buy_id, NULL)) AS now_reserve,
COUNT(DISTINCT IF(
DATE(eb.created_at) BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
AND esl.estate_buy_id IS NOT NULL, eb.estate_buy_id, NULL)) AS set_reserve,
COUNT(DISTINCT IF(
DATE(eb.created_at) BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
AND eb.status IN (50, 100), eb.estate_buy_id, NULL)) AS deals,
COUNT(DISTINCT IF(
DATE(eb.created_at) BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
AND eb.status = 100, eb.estate_buy_id, NULL)) AS deals_done,
COUNT(DISTINCT IF(
ed.deal_date BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
AND eb.status = 100, eb.estate_buy_id, NULL)) AS deals_done_period,
AVG(IF(
eb.status = 100 AND ed.deal_date IS NOT NULL,
ABS(DATEDIFF(ed.deal_date, DATE(eb.created_at))), NULL)) AS avg_deal_days,
SUM(IF(
DATE(eb.created_at) BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
AND eb.status = 100, ed.deal_sum, NULL)) AS deal_sum_by_buys,
SUM(IF(
ed.deal_date BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
AND eb.status = 100, ed.deal_sum, NULL)) AS deal_sum_by_date
FROM estate_buys eb
LEFT JOIN estate_buys_statuses_log esl
ON esl.estate_buy_id = eb.estate_buy_id
AND esl.company_id = eb.company_id
AND esl.status_to = 30
AND esl.status_from < 30
LEFT JOIN estate_deals ed
ON ed.estate_buy_id = eb.estate_buy_id
AND ed.company_id = eb.company_id
AND ed.deal_status IN (110, 150)
WHERE eb.company_id = {{company_id}}
AND eb.type IN ('living', 'comm')
AND eb.status > 0
GROUP BY eb.manager_id
В запросах замените
{{company_id}}на числовой идентификатор компании,{{start_date}}и{{end_date}}— на даты периода в форматеYYYY-MM-DD.
Встречи — столбцы (6), (7), (8), (11), (23)
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
em.users_id AS manager_id,
COUNT(IF(em.is_first_meeting = 1 AND em.no_meeting = 0
AND em.meeting_type_place = 'meeting', em.id, NULL)) AS first_meetings_office,
COUNT(IF(em.is_first_meeting = 1 AND em.no_meeting = 0
AND em.meeting_type_place = 'meeting_house', em.id, NULL)) AS first_meetings_house,
COUNT(IF(em.no_meeting = 1
AND em.meeting_type_place = 'meeting', em.id, NULL)) AS no_meetings_office,
COUNT(IF(em.no_meeting = 1
AND em.meeting_type_place = 'meeting_house', em.id, NULL)) AS no_meetings_house
FROM estate_meetings em
WHERE em.company_id = {{company_id}}
AND em.meeting_date BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
GROUP BY em.users_id
Деньги — столбцы (26), (27), (28)
Атрибуция по finances.respons_manager_id (ответственный менеджер платежа).
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
f.respons_manager_id AS manager_id,
SUM(IF(ft.is_commission = 0
AND DATE(eb.created_at) BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}'),
IF(ft.is_income = 1, f.summa, -f.summa), 0)) AS income_by_buys,
SUM(IF(ft.is_commission = 0,
IF(ft.is_income = 1, f.summa, -f.summa), 0)) AS income_total,
SUM(IF(ft.is_commission = 1, f.summa, 0)) AS commission_total
FROM finances f
JOIN finances_types ft
ON ft.id = f.types_id
AND ft.company_id = f.company_id
AND 1 IN (ft.is_income, ft.is_income_lower, ft.is_commission)
LEFT JOIN estate_deals ed ON ed.deal_id = f.deal_id AND ed.company_id = f.company_id
LEFT JOIN estate_buys eb ON eb.estate_buy_id = ed.estate_buy_id AND eb.company_id = f.company_id
WHERE f.company_id = {{company_id}}
AND f.status = 1
AND DATE(f.date_added) BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
GROUP BY f.respons_manager_id
В т.ч. Эксклюзивы (5), Сделок завершено по эксклюзивам (16), Сред. срок эксклюзивов (17)
Данные не выгружаются в MacroData.
#Расчётные данные
| Столбец | Формула |
|---|---|
| (8) Конверсия ЦЗ во встречи | (first_meetings_office + first_meetings_house) / target × 100 |
| (11) Встречи → Брони | set_reserve / (first_meetings_office + first_meetings_house) × 100 |
| (15) Среднее время сделки | avg_deal_days из запроса заявок |
| (20) ЦЗ → Брони | set_reserve / target × 100 |
| (21) Брони → Сделки | deals_done / set_reserve × 100 |
| (22) Конверсия ЦЗ в сделки | deals / target × 100 |
| (23) Конверсия встреч в сделки | deals / (first_meetings_office + first_meetings_house) × 100 |