Три ключевых значения дневной разбивки: Плановый заработок (со скидкой) — плановая (ожидаемая) сумма к получению за день;
Фактическая прибыль — фактически «закрытая» оплатой сумма за этот день; Ожидаемый заработок (без скидок) — базовое
распределение цены до применения скидок. «Прибыль» в интерфейсе — это сумма фактической прибыли, а «прогноз/ожидание» — сумма
планового заработка.
Модель данных
«Прибыль (по дням)» — дневная разбивка выручки
Эта разбивка ведётся отдельно для каждой компании.Одна позиция аренды (например, инвентарь на 5 дней) порождает несколько строк разбивки — по одной на каждую дату.
Выходные дни исключаются из знаменателя «Всего дней» и получают нулевой плановый заработок и нулевую фактическую прибыль.
«Окупаемость» — накопленная окупаемость инвентаря
Одна строка на каждую единицу инвентаря.Дата и срок окупаемости заполняются тем же пересчётом окупаемости, что и плановый/фактический заработок, и по тем же зачётным
дневным строкам: строки инвентаря суммируются по датам начиная с заработка до подключения в систему, и день, в который
нарастающий итог впервые достигает закупочной цены, фиксируется как дата окупаемости; срок окупаемости — это разница между этой
датой и датой покупки. Пока единица не окупилась (или не заданы закупочная цена / дата покупки), соответствующие поля остаются
пустыми.
Как это работает
Общий поток
Когда пересчитывается прибыль
1
Аренда
После пересчёта аренды запускается пересчёт прибыли, но только если состояние изменилось: аренда в статусе «Должник» или
«Завершена», либо есть расхождение планового/фактического заработка с фактической ценой или оплатой. Отдельно — при
изменении оплаты, там уже без пересчёта штрафов.
2
Продажа
При изменении составляющих продажи запускается пересчёт прибыли по продаже.
3
Задача мастерской
При сохранении завершённой задачи мастерской запускается пересчёт прибыли по задаче мастерской.
4
Фоновые проверки по расписанию
Два фоновых процесса не пересчитывают прибыль напрямую, но затрагивают аренды, а значит попутно запускают тот же
пересчёт, что и обычное изменение аренды: ежеминутное начисление штрафов по просроченным арендам, и ежесуточная (в 5 утра)
проверка активных аренд с включённым посуточным списанием оплаты (для компаний с подключённым балансом Kaspi).
5
Массовая сверка (по требованию)
Массовая сверка проходит по всем компаниям и пересчитывает те аренды, продажи и задачи, где сумма планового заработка в
разбивке расходится с эталонной ценой более чем на 1. Это не периодическая задача — она не входит в расписание фоновых
процессов и запускается вручную.
Все пересчёты — обёртки. Пересчёт по аренде дополнительно может пересчитать штрафы (если это явно запрошено), а вся
логика распределения лежит в общей модели прибыли.
Пересчёт, вызванный изменением самой оплаты (создание, изменение, удаление), выполняется всегда, без дополнительных
проверок. А пересчёт, вызванный изменением состава или статуса аренды, сначала сверяет текущую разбивку прибыли с
фактической ценой и оплатой аренды — и если расхождения нет, пересчёт пропускается, чтобы не выполнять лишнюю работу.
Распределение прибыли по аренде
Распределение прибыли по аренде — центральная и самая сложная часть модуля. 1. Коэффициент оплаты. Определяет, какую долю плановой суммы считать «закрытой», если клиент оплатил больше плановой стоимости (переплата сверх скидочной цены; трактуется как частичное погашение штрафов):Коэффициент оплаты никогда не превышает 1 — он ограничен единицей сверху. Поэтому дневная фактическая прибыль не может
оказаться больше плановой суммы позиции, и переплата клиента не «раздувает» прибыль по дням. При этом коэффициент не
превратился в константу: если стоимость доставки велика, он по-прежнему законно оказывается меньше единицы, и часть плановой
суммы остаётся незакрытой.
Числовой пример: аренда инвентаря
Числовой пример: аренда инвентаря
Инвентарь сдан на 4 рабочих дня, Сумма за инвентарь = 4000, скидок нет, коэффициент оплаты = 1, клиент оплатил
полностью (остаток заведомо больше суммы позиции).Итого 4 дневные строки с фактической прибылью 1000 каждая → сумма фактической прибыли = 4000.Если клиент оплатил только 2500, то остаток иссякнет на 3-м дне:
1000 + 1000 + 500 + 0 = 2500. Первые два дня закрыты полностью, третий частично, четвёртый — 0.Числовой пример: окупаемость
Числовой пример: окупаемость
Закупочная цена = 100000, заработок до подключения в систему = 20000, накопленная сумма фактической прибыли по
инвентарю = 55000.Инвентарь окупится, когда процент окупаемости достигнет 100 % (накопленный заработок сравняется с закупочной ценой).
Прибыль по продаже
Распределение прибыли по продаже проще: продажа не разбивается по дням, вся строка привязана к дате создания продажи, «Номер дня» и «Всего дней» равны 1. Для каждой позиции ожидаемый заработок равен цене позиции, плановый заработок равен цене позиции со скидкой, а фактическая прибыль = «min(плановый заработок; остаток)», где остаток начинается с оплаченной суммы по продаже.Прибыль по задаче мастерской
Распределение прибыли по задаче мастерской считается только для завершённых задач. Для ресурсов и услуг мастерской ожидаемый заработок, плановый заработок и фактическая прибыль равны цене — то есть здесь оплата не ограничивает прибыль, берётся полная цена ресурса или услуги.Окупаемость: обновление накопленных значений
Обновление окупаемости агрегирует по инвентарю суммы планового заработка и фактической прибыли только по зачётным дневным строкам, добавляет заработок до подключения в систему и записывает или обновляет строку окупаемости:«Заработок» и дата окупаемости в карточке инвентаря считаются по тому же набору зачётных строк, что и «прибыль за период» в
отчётах: аренды в статусах «В аренде», «Просрочена», «Завершена», «Должник» либо отменённые, по которым была оплата; проданные
продажи; задачи мастерской «Завершена»/«В работе». Отменённые без оплаты и архивированные аренды в накопленный заработок не
попадают — карточка инвентаря и отчёты дают один и тот же ответ.
Существующие записи окупаемости пересчитываются не сами по себе, а только когда что-то затрагивает связанную аренду или
продажу. Поэтому после обновления системы администратор один раз запускает разовый пересчёт окупаемости по всем компаниям —
после него все карточки инвентаря сразу сходятся с отчётами; повторный запуск ничего не меняет.
Что происходит при удалении
- Полное (безвозвратное) удаление аренды суперпользователем компании удаляет вместе с ней и все её строки в разбивке «Прибыль (по дням)» — они физически стираются из журнала.
- Обычное («мягкое») удаление аренды (архивация, см. «Архивация записей») строки прибыли не трогает: они остаются в журнале как есть, но больше никогда не пересчитываются и исключаются как из отчётов для чтения, так и из накопленной окупаемости — везде действует один и тот же фильтр зачётных строк.
- Если из аренды убрали все позиции одного типа (например, весь инвентарь или все услуги), лишние строки прибыли по этому типу удаляются автоматически при следующем пересчёте — в журнале не остаётся строк без реальных позиций аренды.
- Удаление или возврат оплаты не удаляет и не обнуляет строки прибыли напрямую — вместо этого запускается обычный пересчёт, который заново распределяет уменьшившуюся сумму «Оплачено» по дням. Поскольку остаток «тратится» по порядку (сначала самые ранние дни аренды), уменьшение оплаты в первую очередь снимает фактическую прибыль с самых поздних дней и позиций — более ранние дни сохраняют то, что им уже было засчитано.
Метрики чтения: амортизация, эффективность и доходность
Поверх построчной «Прибыли» и накопленной «Окупаемости», описанных выше, построены отдельные отчёты для чтения — они ничего не пересчитывают, а только читают и агрегируют то, что уже посчитано этим механизмом. Подробно они разобраны на своих страницах в разделе «Метрики и аналитика»:- Амортизация и окупаемость инвентаря — линейная амортизация по месяцам (независимый от прибыли бухгалтерский расчёт) и доходность групп/единиц инвентаря за произвольный период поверх накопленной окупаемости.
- Эффективность инвентаря — простой и загрузка инвентаря за период, на уровне единиц, групп и комплектов.
Общий фильтр «зачётных» строк дохода (аренды в статусах «В аренде», «Просрочена», «Завершена», «Должник» либо отменённые с
оплатой; проданные продажи; задачи мастерской «Завершена»/«В работе») применяется одинаково и в этих отчётах для чтения, и при
обновлении накопленной окупаемости. Единый фильтр — причина того, что «заработок» в карточке инвентаря и «прибыль за период» в
отчётах больше не расходятся.
Связанные страницы
Метрики и аналитика
Хаб раздела аналитики со ссылками на все отчёты, которые читают эти данные.
Обзор и общая сводка
Как дневная сводка и детализация читают и группируют журнал «Прибыли», описанный на этой странице.
Амортизация и окупаемость инвентаря
Отчёты по амортизации и доходности, построенные поверх «Окупаемости» и «Прибыли» с этой страницы.
Эффективность инвентаря
Простой и загрузка инвентаря — отчёт для чтения поверх того же журнала «Прибыли».
Пересчёт сумм и цен
Откуда берутся сумма за инвентарь и итоговая сумма к оплате, которые распределяет прибыль по дням.
Скидки
Применённые скидки и их разнос по дням внутри распределения прибыли.
Депозиты, штрафы и транзакции
Штрафы в дневной прибыли и расходы через статьи расхода.
Инвентарь
Закупочная цена, заработок до подключения в систему, срок службы — влияют на окупаемость и амортизацию.
Фоновые процессы
Задачи пересчёта прибыли и их триггеры.