Аналитика «По сотрудникам»: три графика и их расчёт
На вкладке «По сотрудникам» раздела «Аналитика» три типа графика: «Контроль заполненности расписания», «Рабочий график сотрудников» и «Контроль нормы посещения». Все три строятся по одним данным — рабочему графику сотрудников за выбранный период — и раскладывают его по отделу, прямым сотрудникам и подчинённым отделам. Различаются набор статусов, раскраска и то, какие строки оказываются вверху. Эта статья разбирает каждый график по отдельности и общие правила расчёта, из-за которых цифры выглядят именно так. Как открыть вкладку, кто её видит и что задаётся в окне параметров — в обзорной статье.
Содержание
Как выбрать график
Откройте Аналитика → По сотрудникам, нажмите «Параметры графика» и в поле «Тип графика» выберите один из трёх вариантов группы «Контроль посещаемости». Тип графика — единственное обязательное поле окна; период, отдел и офис можно оставить по умолчанию. После сохранения заголовок страницы меняется на название графика.
| Тип графика | Главный вопрос | Статусов в полосе | Что выделено |
|---|---|---|---|
| «Контроль заполненности расписания» | кто не заполняет расписание | 4 | «незаполнено» — красным |
| «Рабочий график сотрудников» | как распределены дни, в том числе по статусам компании | 4 корневых, «удалённо» и «не работал» раскрыты на подстатусы | подстатусы — цветами из настроек компании |
| «Контроль нормы посещения» | кто не добирает норму дней в офисе | 5 | «недостаток дней работы в офисе» — красным |
Все три графика выводятся одинаковыми блоками: Блок 1 — отдел целиком, Блок 2 — «Сотрудники, напрямую подчиненные подразделению», Блок 3 — «Сотрудники, из подчиненных отделов». Что в каждом блоке и когда он показывается, разобрано в обзорной статье.
Общие правила расчёта
Рабочие дни
Считаются только рабочие дни периода. День, который в расписании помечен как выходной или праздничный по рабочему календарю компании, пропускается целиком — он не попадает ни в один статус и не входит в знаменатель. Число рабочих дней периода показывается в строке описания под заголовком («рабочих дней: N») и первой строкой тултипа («Всего рабочих дней: N»). Если в выборке нет ни одного сотрудника, рабочие дни считаются напрямую по производственному календарю.
Откуда берётся статус дня
Для каждого сотрудника и каждого рабочего дня периода определяется ровно один статус. Источники проверяются по порядку, первый сработавший побеждает.
| Приоритет | Источник | Какой статус получает день |
|---|---|---|
| 1 | статус, проставленный в ячейке расписания | тот, что проставлен: «в офисе», «удалённо» или «не работал», для двух последних — вместе с подстатусом компании, если он выбран |
| 2 | закреплённое за сотрудником место | «в офисе» |
| 3 | шаблон рабочего графика — только для дат начиная со следующей недели | «в офисе», если в шаблоне на этот день недели закреплено место (работает и у выключенного шаблона) или, у включённого шаблона, выбран офис; иначе статус из включённого шаблона с его подстатусом |
| 4 | ничего из перечисленного | «незаполнено» |
Из третьего пункта следует важное: для текущей недели и прошлого шаблон в расчёте не используется — учитываются только статусы, уже записанные в ячейки расписания, и закреплённые места. Будущие даты со следующей недели, наоборот, достраиваются по шаблону, поэтому часть периода в будущем — прогноз. Подробнее о шаблоне — в статье «Шаблон рабочего графика».
Проценты и «дни»
Каждая строка графика — сотрудник, отдел или «Всего» — считается по одной схеме. Сначала складываются человеко-дни по каждому статусу у всех сотрудников строки, затем они делятся на число сотрудников и на рабочие дни.
- Процент статуса = человеко-дни в этом статусе ÷ (рабочие дни × число сотрудников строки) × 100, округление до целого.
- «Дней» в тултипе = человеко-дни в этом статусе ÷ число сотрудников строки, округление до целого — то есть среднее на одного сотрудника, а не сумма. Для строки одного сотрудника это просто его дни.
- Нормализация. После округления проценты строки подгоняются так, чтобы в сумме давать ровно 100 %. Поэтому отдельный процент может отличаться на единицу от прямого деления дней.
Пример: в отделе 5 сотрудников, рабочих дней 20, всего в офисе они провели 60 человеко-дней. Процент «в офисе» = 60 ÷ (20 × 5) × 100 = 60 %, «дней» = 60 ÷ 5 = 12. В тултипе строка отдела покажет «12 дней (60%)».
Легенда и тултип
Под каждым блоком — легенда с цветными точками. Внутри полосы подписан процент сегмента, но только если сегмент шире 4 % (на узком экране — 15 %); более узкие сегменты рисуются без подписи. Полные значения всегда есть в тултипе по наведению: первой строкой «Всего рабочих дней: N», затем по каждому статусу — точка, название и «N дней (P%)». Пустая строка без единого дня в статусах рисуется серым фоном с подписью «0%».
«Контроль заполненности расписания»

График для вопроса «кто в отделе не ведёт расписание». В полосе четыре статуса; «незаполнено» специально выделено красным, чтобы проблемные строки бросались в глаза.
| Статус в легенде | Цвет | Что означает |
|---|---|---|
| «в офисе» | зелёный | день со статусом «в офисе», закреплённым местом или офисом из шаблона |
| «удалённо» | голубой | день со статусом «удалённо» любого подстатуса |
| «не работал» | светло-серый | день со статусом «не работал» любого подстатуса |
| «незаполнено» | красный | рабочий день, для которого не нашлось ни статуса, ни закреплённого места, ни шаблона |
Подстатусы компании в этом графике не раскрываются: все «удалённые» дни складываются в один сегмент, все «не работал» — в другой. Если нужны подстатусы, выбирайте «Рабочий график сотрудников».
Порядок строк. В Блоках 2 и 3 строки отсортированы по убыванию доли «незаполнено», затем «в офисе», «удалённо», «не работал», и при полном совпадении — по имени в обратном алфавитном порядке. Таким образом сотрудники и отделы с самым пустым расписанием всегда оказываются наверху раскрытого списка.
«Рабочий график сотрудников»

Тот же расчёт, но с детализацией: статусы «удалённо» и «не работал» раскрываются на подстатусы, которые заведены в настройках компании (например, «Командировка» или «Отпуск»). Каждый подстатус рисуется своим цветом из настроек и подписывается в легенде своим коротким именем. Дни, отмеченные корневым статусом без подстатуса, остаются отдельным сегментом с названием корневого статуса — «удалённо» или «не работал». Сегмент «незаполнено» здесь не красный, а светло-серый: график отвечает на вопрос «как распределены дни», а не «кто не заполнил».
| Сегмент | Цвет | Откуда |
|---|---|---|
| «в офисе» | зелёный | как в «Контроле заполненности» |
| подстатусы «удалённо» | цвет каждого подстатуса из настроек компании | дни со статусом «удалённо» и выбранным подстатусом |
| «удалённо» | голубой | остаток: дни «удалённо» без подстатуса |
| подстатусы «не работал» | цвет каждого подстатуса из настроек компании | дни со статусом «не работал» и выбранным подстатусом |
| «не работал» | светло-серый | остаток: дни «не работал» без подстатуса |
| «незаполнено» | светло-серый | как в «Контроле заполненности» |
Состав легенды зависит от данных: в ней перечислены только те подстатусы, которые встретились в строках блока. Если в компании подстатусы не настроены, график совпадёт с «Контролем заполненности» с точностью до цвета «незаполнено». Как заводить подстатусы — в статье «Управление рабочими статусами в расписании».
Порядок строк. Сотрудники и отделы отсортированы по убыванию доли «в офисе», затем «удалённо», «не работал», «незаполнено», при совпадении — по имени в обратном алфавитном порядке: наверху те, кто чаще всего бывает в офисе. Подстатусы внутри сегмента упорядочены по убыванию их доли.
«Контроль нормы посещения»

График для вопроса «кто не добирает норму дней в офисе». К четырём статусам добавляется пятый — «недостаток дней работы в офисе», красный. Он показывает, сколько дней сотруднику не хватило до его нормы посещения, заданной в карточке. Легенда у этого графика фиксированная: пять статусов в одном порядке для всех блоков.
| Статус в легенде | Цвет | Что означает |
|---|---|---|
| «недостаток дней работы в офисе» | красный | дни, которых не хватило до нормы; вычитаются из «незаполнено» и «удалённо» |
| «в офисе» | зелёный | дни в офисе |
| «удалённо» | голубой | удалённые дни за вычетом того, что ушло в недостаток |
| «не работал» | светло-серый | нерабочие дни сотрудника; уменьшают норму |
| «незаполнено» | очень светлый серый | незаполненные дни за вычетом того, что ушло в недостаток |
Как считается недостаток
Недостаток считается для каждого сотрудника отдельно, по его нормативу посещения — проценту рабочих дней, которые он должен проводить в офисе. Норматив задаётся в карточке сотрудника, см. «Режим посещения офиса и норма посещения».
- Норма в днях = округление вверх((рабочие дни периода − дни «не работал») × норматив ÷ 100). Дни, когда сотрудник не работал, из базы нормы вычитаются: отпуск норму не ломает.
- Недостаток = норма − дни «в офисе», но не меньше нуля. Если сотрудник был в офисе не меньше нормы, недостатка нет.
- Откуда вычитается. Дни недостатка переносятся в красный сегмент сначала из «незаполнено», а если незаполненных дней не хватило — из «удалённо». Общая длина полосы не меняется.
- Когда недостаток не считается. Если норматив у сотрудника не задан или равен нулю, недостаток для него не рассчитывается вовсе, и его полоса состоит из тех же четырёх статусов, что в «Контроле заполненности».
Пример: рабочих дней в периоде 20, сотрудник 2 дня «не работал», норматив 60 %. Норма = округление вверх((20 − 2) × 60 ÷ 100) = округление вверх(10,8) = 11 дней. В офисе он был 8 дней, значит недостаток = 11 − 8 = 3 дня. У него 2 незаполненных дня и 8 удалённых: в красный сегмент уйдут оба незаполненных дня и один удалённый, полоса покажет «в офисе» 8, «удалённо» 7, «недостаток» 3, «не работал» 2.
Режим работы сотрудника в формуле не участвует. Недостаток считается по одному правилу для всех — офисному, гибридному, удалённому и свободному режиму; на что режим влияет, так это на группировку строк в Блоке 1. Если у сотрудника на полной удалёнке задан ненулевой норматив, недостаток у него посчитается так же, как у офисного.
Блок 1: по режимам работы
В отличие от двух других графиков, Блок 1 здесь раскрывается стрелкой и содержит четыре строки — по режиму работы сотрудников; по умолчанию он свёрнут: видны «Всего» и легенда. Порядок строк фиксированный и не зависит от данных.
- «Свободный график» — сюда же попадают сотрудники, у которых режим не задан.
- «На полной удаленке»
- «Гибридный график»
- «Офисный график»
У каждой строки режима — подпись «Сотрудники: N» и своя полоса, посчитанная как среднее по сотрудникам этого режима. Режим без единого сотрудника рисуется пустой серой полосой. Итоговая строка «Всего» в подвале блока считает отдел целиком. Блок 1 в этом графике показывается при любых данных — достаточно, чтобы у отдела были либо прямые сотрудники, либо подчинённые отделы.
Порядок строк в Блоках 2 и 3 — по убыванию доли недостатка, затем «в офисе», «удалённо», «незаполнено», «не работал», при совпадении — по имени. Те, кому не хватает больше всего дней, оказываются наверху.
Ограничения и ловушки
- Сегмент уже 4 % без подписи. Процент внутри полосы скрывается, если сегмент занимает меньше 4 % (на узком экране — меньше 15 %). Значение не потеряно — наведите на полосу и смотрите тултип.
- «Дней» — среднее, а не сумма. В строке отдела на 10 человек «5 дней» означает 50 человеко-дней. Сравнивать отделы разного размера можно только по процентам и средним.
- Число норматива на этом графике не выводится — смотрите карточку сотрудника.
- Режим работы не влияет на недостаток. Формула одна для всех режимов; если для удалённых сотрудников недостаток считать не нужно, у них должен быть нулевой или пустой норматив.
- «Удалённо» в графике нормы меньше, чем в графике заполненности. Так и задумано: часть удалённых дней ушла в недостаток. Сравнивайте одноимённые сегменты только внутри одного типа графика.
- Прошлые и текущие дни без статуса в ячейке считаются незаполненными: шаблон достраивает только даты начиная со следующей недели. Исключение — закреплённое место, оно даёт «в офисе» на любую дату.
- Проценты подогнаны к 100 %. Из-за округления и нормализации сумма «дней» по статусам может не совпасть с числом рабочих дней на единицу, а процент — отличаться на единицу от прямого деления.
- Строка «Всего» — не сумма строк списка. «Всего» в Блоке 3 считается по всем сотрудникам подчинённых отделов как по одной группе, а не усреднением строк отделов, поэтому её проценты не обязаны совпадать со средним по строкам.
Диагностика
| Симптом | Причина |
|---|---|
| У сотрудника вся полоса «незаполнено» | за период нет ни одного статуса в ячейках расписания и не закреплено место; шаблон на прошедшие даты не применяется |
| У сотрудника на полной удалёнке есть «недостаток дней работы в офисе» | в его карточке задан ненулевой норматив посещения — режим работы на формулу не влияет |
| В легенде «Рабочего графика сотрудников» нет подстатусов | в компании подстатусы не заведены или ни один из них не встретился в строках этого блока |
| Нет Блока 1, есть только один блок | в графиках расписания Блок 1 выводится, только когда у отдела есть и прямые сотрудники, и подчинённые отделы |
| Строка режима работы в Блоке 1 пустая, серая | в выборке нет сотрудников с этим режимом |
| В графике нормы «незаполнено» исчезло, хотя в графике заполненности оно есть | незаполненные дни первыми уходят в «недостаток дней работы в офисе» |
| Сумма «дней» по статусам не равна числу рабочих дней | «дней» — округлённое среднее на сотрудника; расхождение на единицу нормально |
| Процент внутри полосы не подписан | сегмент уже 4 % (на узком экране — 15 %); значение есть в тултипе |
| «Сотрудников: N» меньше численности отдела | у вас нет права управлять всеми пользователями — в расчёт попали только доступные вам сотрудники; устройства не считаются |