Logo

Переходящая бронь в CRM: Как считать цену на стыке сезонов

В этом видео я покажу, как настроить точный и справедливый расчет стоимости, если период аренды или проживания выпадает на стык разных сезонов (например, дешевого майского и дорогого летнего). Мы разберем:

  • Как превратить общий период сделки в список отдельных дней (функция DATE_SEQUENCE);
  • Использование функции MAP для проверки и назначения тарифа на каждый конкретный день;
  • Вычисление среднего сезонного коэффициента для всего заказа (функция AVG);
  • Как добиться идеальной точности в итоговой стоимости, чтобы не потерять прибыль и не обсчитать клиента.

Стык сезонов в аренде: один тариф за весь период — либо теряем деньги, либо клиент переплачивает

Привет, я Илья, основатель daocrm.

В прошлом видео мы научились применять сезонный коэффициент в зависимости от даты. Лето — высокий коэффициент, зима — базовый. Но что делать, если аренда попадает на стык сезонов?

Представьте: клиент берет машину 20 мая (когда тариф еще дешевый), а возвращает 8 июня (когда уже действует дорогой). Считать весь период по дешевому тарифу? Мы теряем деньги. По дорогому? Клиент переплатит за майские дни и будет недоволен.

Правильный подход — посчитать каждый день по своему тарифу и взять среднее значение. Вручную это делать слишком долго. Давайте автоматизируем.

Нам нужно, чтобы daocrm сделала три действия:

  • Превратила период аренды в список конкретных дней.
  • Определила коэффициент сезонности для каждого дня.
  • И вычислила средний коэффициент для всего периода.

Формула по шагам: DATE_SEQUENCE разбивает период на дни, MAP назначает тариф, AVG усредняет

Заходим в настройки поля "Сезонный коэффициент" и напишем формулу по шагам.

Шаг 1. Получаем даты начала и окончания.

let start = START_DATE( {{data_vydachi_vozvrata}} ); let end = END_DATE( {{data_vydachi_vozvrata}} );

Так как "Дата выдачи/возврата" — это одно поле, мы сначала "достаем" из него начальную и конечную даты с помощью функций START_DATE и END_DATE.

Шаг 2. Считаем количество дней.

let days_count = DAYS_BETWEEN( start, end );

Функция DAYS_BETWEEN вычисляет, сколько всего дней длится наша аренда. Кстати, если у вас есть льготный период при возврате, вы можете сразу указать его здесь третьим параметром в минутах. Например, написать 120 — что будет означать 2 часа бесплатно.

Шаг 3. Создаем список всех дней.

let days_list = DATE_SEQUENCE( start, days_count );

Функция DATE_SEQUENCE берет дату начала, прибавляет к ней количество дней и составляет полный список дат. Теперь в переменной days_list у нас лежит каждый день аренды по отдельности: 20 мая, 21 мая и так далее.

Шаг 4. Определяем коэффициент для каждого дня.

let rates_list = MAP( days_list, MATCH( it, MD(6,1)..MD(9,1), 1.5, // Лето 1 // Обычный день ) );

Здесь происходит самое интересное. Нам нужно "пробежаться" по этому списку дат и проверить каждую из них. Мы используем функцию MAP, чтобы пройтись по списку. Слово it — это конкретная дата, которую daocrm проверяет прямо сейчас. Функция MATCH смотрит: если этот день (it) попадает в лето — ставит коэффициент 1.5. Если нет — оставляет единицу. В итоге мы получаем список готовых коэффициентов для каждого дня.

Шаг 5. Считаем среднее.

let average_rate = AVG( rates_list );

Мы передаем наш список коэффициентов в функцию AVG. Она вычисляет среднее арифметическое. Но результат может содержать большое количество знаков после запятой. Поэтому сначала сохраним его в переменную average_rate.

Шаг 6. Округляем итог.

ROUND( average_rate, 2 )

Функция ROUND берет наше среднее значение и оставляет только 2 знака после запятой.

В результате мы получим средний коэффициент сезонности, который учитывает и дешевые, и дорогие дни. Сохраняем.

Проверяем формулу на трёх периодах: весь май, весь июль и стык сезонов

Давайте проверим. Вернемся в сделку.

У нас в поле "Цена за сутки" установлено 5000 рублей. А общая стоимость считается автоматически: "Количество суток" умножить на "Цена за сутки" и на наш "Сезонный коэффициент".

  • Ставим даты с 10 по 20 мая. Это обычные дни. Коэффициент равен 1.
  • Меняем на 10 - 20 июля. Весь период попадает на лето. Коэффициент стал 1.5.
  • А теперь стык сезонов: ставим с 20 мая по 8 июня. Большая часть дней в мае, но мы захватили пару дорогих летних дней. Смотрите: коэффициент стал 1.18. daocrm проверила каждый день и вывела средний тариф.

Точный тариф за каждый день: клиент не переплачивает, прибыль не теряется на стыке сезонов

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

В следующем видео мы разберем, как встроить кредитный калькулятор прямо в сделку, чтобы можно было сразу сообщать клиенту размер ежемесячного платежа.

4:13
Автоматизация расчетов в CRM: Написание формул
4:30
Ручная правка формул в CRM: Как совместить авторасчеты и ручной ввод
3:37
Перерасчет формул в CRM: Применение формул к существующим записям
2:47
Почему формула в CRM пустая: Как настроить значения по умолчанию
3:58
Автоматическая смена статуса в CRM при заполнении полей
1:53
Дата закрытия сделки в CRM: Как сохранять её автоматически