Месторасположение: Отчёты → Ассортимент → Динамика реализации недвижимости
Отчёт показывает, как меняются цены и продажи по месяцам. Он состоит из двух графиков. Первый отражает среднюю и ожидаемую цену реализации за м², второй — количество и сумму сделок и поступления денег. По графикам можно быстро оценить темп продаж и движение цен по ЖК, дому или категории объектов.

#Работа с отчётом
#Фильтры
Тип даты — дата сделки, по которой отбираются данные за период и распределяются по месяцам. По умолчанию выбрана «Дата проведения сделки». Доступные варианты:
- Дата проведения сделки;
- Дата начала сделки;
- Дата ДДУ;
- Дата сдачи в Росреестр;
- Дата регистрации;
- Дата подписания договора.
Укажите период в полях «с» и «по». По умолчанию отчёт строится с 1 января по последний день текущего месяца.
ЖК/Дом — список домов, сгруппированных по ЖК. Дома без ЖК собраны в группу «Без ЖК». Чтобы отобрать весь ЖК, отметьте каждый дом в нём.
Категория объекта — квартиры, машино-места, кладовые, коммерческие помещения, малоэтажная недвижимость, земельные участки.
Фильтры применяются к обоим графикам сразу. После настройки нажмите Сформировать.
#Структура отчёта
На обоих графиках по оси X откладываются месяцы, независимо от длины периода. Если период охватывает один месяц, вместо линий будут точки. Наведите курсор на точку, чтобы увидеть подсказку со значением.

Динамика изменения средней цены реализации
- Ср. цена реализации, ₽/м² — сумма проданных сделок месяца, делённая на их общую площадь.
- Ожидаемая цена реализации, ₽/м² — средняя цена за м² по объектам дома. В расчёт входит прайсовая цена объектов в продаже, в брони и в сделке, а также цена проданных в этом месяце объектов по сумме сделки.
Динамика продаж
У графика две оси Y: на левой — количество сделок, на правой — суммы в рублях.
- Сделок, шт. — количество объектов, проданных в месяце.
- Сумма сделок, ₽ — общая сумма этих сделок.
- Поступления периода, ₽ — приходные операции по сделкам, проведённые в месяце, независимо от даты самой сделки.
#Технический паспорт отчёта
#Условия попадания в отчёт
Сделки (1), (3), (4). В отчёт попадают объекты из estate_sells с activity = 'sell' и текущим статусом estate_sell_status = 100 (Сделка проведена). Данные сделки берутся из estate_deals по активной сделке объекта: estate_deals.deal_id = estate_sells.deal_id. Статус самой сделки не проверяется. Статус 52 (Сделка проведена (маркетинг)) в отбор не входит. В оптовой сделке учитывается только объект, указанный в ней основным.
Ожидаемая цена (2). Берётся из готовой еженедельной статистики estate_houses_price_stat.
Поступления (5). В расчёт входят операции из finances, которые одновременно:
- имеют статус
status = 1(Проведено); - являются приходными — заполнен счёт зачисления
account_in_id; - привязаны к сделке (
deal_id > 0).
Согласование платежа и статус сделки не проверяются, возвраты не вычитаются.
Месяц на графике. Ось X строится по месяцам из запроса по сделкам. Значения (2) и (5) подставляются по совпадению месяца в формате ГГГГ-ММ. Если в месяце со сделками нет поступлений или ожидаемой цены, выводится 0.
Фильтры в MacroData
| Фильтр | (1), (3), (4) | (2) | (5) |
|---|---|---|---|
| Период | estate_deals.\\\\<тип даты\\\\> | estate_houses_price_stat.month_stat_date | finances.date_added |
| ЖК/Дом | estate_sells.house_id | estate_houses_price_stat.house_id | estate_sells.house_id |
| Категория | estate_sells.estate_sell_category | estate_houses_price_stat.category | estate_sells.estate_sell_category |
Для отбора по ЖК присоедините estate_houses по house_id и фильтруйте по estate_houses.complex_id.
| Тип даты | Поле |
|---|---|
| Дата проведения сделки | estate_deals.deal_date |
| Дата начала сделки | estate_deals.deal_date_start |
| Дата ДДУ | estate_deals.agreement_date |
| Дата сдачи в Росреестр | estate_deals.justice_date_send |
| Дата регистрации | estate_deals.justice_date |
| Дата подписания договора | estate_deals.signed_date |
#Данные в системе
Сделок, шт. (3)
Количество объектов с проведённой сделкой, сгруппированное по месяцу выбранной даты.
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
DATE_FORMAT(estate_deals.deal_date, '%Y-%m') AS month,
COUNT(*) AS deals_count
FROM
estate_sells
JOIN estate_deals ON estate_deals.deal_id = estate_sells.deal_id
AND estate_deals.estate_sell_id = estate_sells.estate_sell_id
WHERE
estate_sells.activity = 'sell'
AND estate_sells.estate_sell_status = 100
AND estate_deals.deal_date BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
GROUP BY
DATE_FORMAT(estate_deals.deal_date, '%Y-%m')
ORDER BY
month;
Сумма сделок, ₽ (4)
Сумма estate_deals.deal_sum по тем же сделкам. Скидки отдельно не учитываются — берётся итоговая сумма сделки.
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
DATE_FORMAT(estate_deals.deal_date, '%Y-%m') AS month,
SUM(estate_deals.deal_sum) AS deals_sum
FROM
estate_sells
JOIN estate_deals ON estate_deals.deal_id = estate_sells.deal_id
AND estate_deals.estate_sell_id = estate_sells.estate_sell_id
WHERE
estate_sells.activity = 'sell'
AND estate_sells.estate_sell_status = 100
AND estate_deals.deal_date BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
GROUP BY
DATE_FORMAT(estate_deals.deal_date, '%Y-%m')
ORDER BY
month;
Поступления периода, ₽ (5)
Сумма finances.summa по проведённым приходным операциям, сгруппированная по месяцу finances.date_added. Раз в неделю date_added выравнивается по дате проведения операции (date_to). До выравнивания месяц может определяться по дате создания операции.
Приходные операции определяются по заполненному счёту зачисления account_in_id. У возвратов вместо него заполнен счёт списания account_out_id, поэтому в выборку они не попадают.
Операции, привязанные к дому, а не к объекту, учитываются только без фильтров по ЖК/Дому и категории.
Принцип выбора данных в MacroData без учёта дополнительных фильтров:
SELECT
DATE_FORMAT(finances.date_added, '%Y-%m') AS month,
SUM(finances.summa) AS income_sum
FROM
finances
WHERE
finances.status = 1
AND finances.account_in_id > 0
AND finances.deal_id > 0
AND finances.date_added >= DATE('{{start_date}}')
AND finances.date_added < DATE('{{end_date}}') + INTERVAL 1 DAY
GROUP BY
DATE_FORMAT(finances.date_added, '%Y-%m')
ORDER BY
month;
#Расчётные данные
Ср. цена реализации, ₽/м² (1)
Средневзвешенная цена: сумма сделок месяца, делённая на сумму их площадей, с округлением до целого.
Принцип расчёта в MacroData:
SELECT
DATE_FORMAT(estate_deals.deal_date, '%Y-%m') AS month,
ROUND(SUM(estate_deals.deal_sum) / SUM(estate_deals.deal_area)) AS avg_price_m2
FROM
estate_sells
JOIN estate_deals ON estate_deals.deal_id = estate_sells.deal_id
AND estate_deals.estate_sell_id = estate_sells.estate_sell_id
WHERE
estate_sells.activity = 'sell'
AND estate_sells.estate_sell_status = 100
AND estate_deals.deal_date BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
GROUP BY
DATE_FORMAT(estate_deals.deal_date, '%Y-%m')
ORDER BY
month;
Ожидаемая цена реализации, ₽/м² (2)
Среднее арифметическое avg_price_m2 из estate_houses_price_stat за месяц month_stat_date. Каждая строка таблицы — средняя цена за м² в группе «дом × категория × класс отделки» за месяц. Таблица пересчитывается раз в неделю, и только за прошедший месяц.
В расчёт группы входят:
- прайсовые цены объектов в статусах Подбор / В продаже, Бронь, Маркетинговый резерв, Сделка в работе, Сделка проведена. Берутся все ежедневные снимки цены за месяц, поэтому объект, цена которого менялась чаще, весит больше;
- цены проданных в этом месяце объектов:
deal_sum / deal_areaпо сделкам со статусом 150 иdeal_dateв этом месяце.
Принцип расчёта в MacroData:
SELECT
DATE_FORMAT(estate_houses_price_stat.month_stat_date, '%Y-%m') AS month,
AVG(estate_houses_price_stat.avg_price_m2) AS expected_price_m2
FROM
estate_houses_price_stat
WHERE
estate_houses_price_stat.month_stat_date BETWEEN DATE('{{start_date}}') AND DATE('{{end_date}}')
GROUP BY
DATE_FORMAT(estate_houses_price_stat.month_stat_date, '%Y-%m')
ORDER BY
month;