· AI HR Bot · 2 мин чтения
Как на самом деле начисляется баланс отпуска
Спросите бота, сколько у вас дней отпуска, и он ответит числом вроде 11.66. Число выглядит странно дотошным, и дотошность — это и есть смысл: перед вами результат небольшой арифметики, которая каждый раз считает одинаково, и каждую её часть стоит объяснить.
По месяцу за раз
Баланс отпуска растёт ежемесячно, в годовщину даты приёма. Приняты 15-го — месяц стажа завершается 15-го числа следующего месяца, и именно в этот день приходит начисление.
Приняты 31-го — месяц завершается 28 февраля: годовщина прижимается к последнему дню короткого месяца, чтобы никто молча не пропустил начисление только потому, что его даты в феврале не существует. Март снова ждёт 31-го; прижатие занимает день, но не сдвигает годовщину.
Само начисление управляется отметками, а не расписанием, сработавшим вовремя. Лишний проход не начислит ничего дважды, а пропущенный будет полностью восполнен следующим.
До четвёртого знака
Политика в 20 дней в год хранится как 1.6667 дня в месяц — четыре знака после запятой. Через двенадцать месяцев на счету 20.0004 дня. Этого числа вы никогда не услышите, потому что бот сообщает величину, округлённую до двух знаков, и округлённую вниз: услышав «11 дней» при фактических 10.99, вы забронировали бы день, которого у вас нет. Бот никогда не называет больше дней, чем есть на самом деле.
1.66 дн./месяц
- Полных месяцев
- 12
- Хранится в учёте
- 20.0004 дн.
- Что сообщает бот
- 20 дн.
Предполагается, что политика действует с даты найма и ничего не потрачено. Балансы хранятся с точностью до четырёх знаков; бот сообщает два, округляя вниз — он никогда не называет больше дней, чем есть на самом деле.
Разрыв между хранимой величиной и озвученной — не больше сотой доли дня. Важно направление: ошибка всегда в сторону осторожности, а не видимой щедрости.
Края, названные вслух
Их три — потому что названные края и делают середину правдоподобной.
Нет даты приёма — нет начисления. Если даты приёма нет в записях, бот её не угадывает: правдоподобная подстановка позже будет неотличима от настоящего стажа. Отсутствующая дата показывается вашему руководителю HR как единственное, что он действительно может починить.
Начисление можно выключить, и накопленные балансы сохранятся — рабочее пространство вернётся к балансам, выставленным вручную. Если потом включить его снова, за перерыв никому ничего не зачтётся.
И начисление привязано к более поздней из двух дат: вашей даты приёма и начала политики. Политика, стартовавшая в январе, никому не должна прошлогодних месяцев, как бы долго человек ни работал в команде.
Это весь механизм. Число маленькое, точное и слегка скучное — именно то, чего ждёшь от арифметики, которая решает, будет ли оформлена пятница-выходной.
Подключается к вашему Slack примерно за 2 минуты.