16 KiB
Справочник схем расчёта переменной части зарплаты
Собран по практике российского малого и среднего бизнеса (вендорские материалы iiko, r_keeper, СБИС, 1С, YCLIENTS, отраслевые публикации, вакансии). Назначение — состав блоков конструктора и отраслевые пресеты. Конкретные проценты приведены как ориентир рынка, а не как норматив: в пресетах они лишь значения по умолчанию.
1. Обозначения
R — выручка подразделения, R_personal — личные продажи, H — часы (в том числе H_night, H_over, H_holiday), N — количество единиц, P — план, F — фонд, n — число участников, w — вес участника, G — гарантия, pct(x) — процент как функция показателя.
2. Отрасли
Общепит
| Роль | Формула | Ориентир рынка |
|---|---|---|
| Официант | ставка_смены + R_personal × pct + N_позиций_категории × ставка + премия за средний чек |
процент 1,3–5% от личного оборота; допродажа десерта 40 ₽/шт |
| Официант, порог | if(R_personal ≥ порог, R_personal × pct, 0) |
порог включения процента, например 50 000 ₽ |
| Повар (командно) | F × доля_по_времени + ставка_часа × H + надбавка, F = R × pct |
фонд 10–11% от выручки |
| Повар (личный процент) | ставка_часа × H + R × pct |
1–2%, в том числе от конкретной станции |
| Бармен | ставка_смены + R_бара × pct + доля чаевых |
2–5%; доля в общем котле 20% |
| Курьер ресторана | ставка_часа × H_простоя + Σ(за заказ) × k_спроса |
50–110 ₽ за доставку либо 3% от заказа |
| Администратор | max(G, R × pct + ставка_часа × H) |
pct 2,5–8%, G около 3000 ₽ за смену |
Чаевые как отдельный фонд: официанты 75% поровну, бармен 20%, посудомойка 5%; банкет — кухня 40%, зал 50%, техперсонал 10%. Юридически чаевые от гостя — дарение, не оплата труда.
Ориентир по ФОТ: 18–27% от товарооборота, около 32% — операционный ноль.
Розница и продажи
| Схема | Формула |
|---|---|
| Ставка по достигнутому уровню | оклад + R_personal × tier(R_personal / P, [<80% → 1,75%; <100% → 2,0%; ≥100% → 2,25%]) |
| Прогрессивная (послойная) | оклад + progressive(R_personal, [до 80% плана → 3%; 80–100% → 5%; 100–120% → 7%; выше → 10%]) |
| Кассир | оклад + R_точки × pct (процент от общих продаж смены) |
| Старший смены | оклад × коэффициент + R_смены × pct + премия KPI |
Разница между двумя первыми схемами на плане 105% — десятки процентов премии; владельцы их регулярно путают. В конструкторе это два разных блока: «шкала» и «прогрессивная шкала».
Услуги с мастерами
| Схема | Формула | Ориентир |
|---|---|---|
| Чистый процент | R_personal × pct(категория) |
30–35% начинающий, 35–45% средний, 45–55% топ |
| Оклад плюс процент на превышение | оклад + max(0, R_personal − порог) × pct |
оклад 25 000 ₽, порог 60 000 ₽, 40% сверх |
| Разный процент по источнику клиента | сумма(свои) × 50% + сумма(салона) × 35% |
повышение за повторные визиты |
| Автосервис, нормо-часы | Σ нормо-часов × ставка_разряда |
140 / 180 / 220 ₽ за нормо-час |
| Автосервис, превышение плана | оклад + max(0, н-ч − норма) × ставка |
норма 80 н-ч, 350 ₽ сверх |
| Мастер-приёмщик | max(G, R_приёмки × tier(план) + бонусы) × k_CSI |
шкала 1–2,5%, множитель качества 1,05 / 1,0 / 0,9 |
| Клининг, бригада | сумма_заказа × pct × (часы × КТУ) / Σ(часы × КТУ) |
фонд 30–40% от заказа |
Доставка и логистика
| Роль | Формула |
|---|---|
| Пеший курьер | Σ_заказ(база + max(0, км − порог) × ставка_км + доплата_вес) × k_спроса + чаевые |
| Авто-курьер | за забор + за выдачу × N + ставка_км × км + ставка_кг × кг |
| Водитель | ставка_км × км × k_рефрижератор + суточные × дни + надбавка_стажа + премия за безаварийность + доля экономии топлива |
| Сборщик | ставка_часа × H + max(0, N_строк − норма × H) × ставка_единицы |
Особый случай, который чаще всего ломает ручные таблицы: крупный заказ оплачивается фиксированной суммой по дальности и исключается из базы процента. Без исключения возникает двойная оплата.
Склад и производство
расценка = тарифная_ставка / норма_выработки
прямая: расценка × N
прогрессивная: расценка × min(N, норма) + расценка × k × max(0, N − норма), k = 1,5–2
косвенная: тариф_вспомогательного × средний_процент_выполнения_норм бригады
аккордная: фиксированная сумма за объём, затем делится по КТУ и часам
Бригадное распределение, самый практичный вариант (гарантирует тариф каждому):
доля_i = тариф_i × часы_i + (F − Σ тариф × часы) × (КТУ_i × часы_i) / Σ(КТУ × часы)
КТУ: база 1,0, диапазон в источниках 0–2; утверждается протоколом бригады; фонд не увеличивает, только перераспределяет.
B2B-продажи
ЗП = твёрдый_оклад + мягкий_оклад × if(Σ(KPI_i × вес_i) ≥ 0,8, Σ(KPI_i × вес_i), 0)
+ progressive(оплаченная_маржа_за_месяц, [<80% плана → 2%; ≤100% → 4%; ≤120% → 6%; выше → 8%])
Соотношение фикс к переменной: 30–50% на 50–70%. База процента — оплаченная маржа, а не выручка: процент от выручки поощряет скидки. Порог отсечки KPI около 80% — отраслевой стандарт. Рекомендуется 3–5 метрик, на которые сотрудник реально влияет.
Медицина, фитнес, образование
| Роль | Формула |
|---|---|
| Врач | max(МРОТ_пропорционально, оклад + Σ(услуга × pct(тип))); ФОТ врачей 25–35% оборота клиники |
| Стоматолог | врачу 40–50% выручки по его услугам |
| Администратор клиники | оклад + N_дошедших × ставка + if(конверсия_явки ≥ 70%, командная премия, 0) |
| Персональный тренер | Σ(тренировка × pct(количество тренировок)), 30–70%, типично 35–50% |
| Групповой тренер | ставка_занятия × N либо Σ(ставка + ставка_участника × N_участников) |
| Преподаватель | Σ(ставка_академчаса × k_группы × k_квалификации) плюс надбавка за удержание ученика |
Правило, которое ломает наивный расчёт: по абонементу на N занятий выручка признаётся при каждом посещении (стоимость ÷ N), по безлимиту — равными долями за период. Мотивацию считать от факта оказания услуги, иначе при возврате абонемента возникает переплата, которую уже не вернуть.
Охрана, диспетчеры, линейный персонал
ЗП = ставка_смены × S
+ ставка_часа × H_night × 20%
+ ставка_часа × (min(H_over, 2) × 0,5 + max(0, H_over − 2) × 1,0)
+ ставка_часа × H_holiday
+ премия за отсутствие нарушений
При графике «сутки через трое» обязателен суммированный учёт: переработка определяется по итогам учётного периода, а не по дням. Надбавки не поглощают друг друга: ночная работа в праздник оплачивается и как ночная, и как праздничная.
3. Что из этого поддерживает движок
Реализовано в src/domain/payroll/rule.ts: процент от показателя, ставка за час и за смену, ставка за единицу, агрегаты по позициям с фильтрами (количество, сумма, среднее, число уникальных значений), поштучная оценка строки по её атрибутам, шкала и прогрессивная шкала, фонд с делением по времени присутствия и весами, условия с И/ИЛИ, гарантия и потолок, округление, типизированные часы (ночные, сверхурочные, праздничные), окно агрегации шире дня (неделя, декада, месяц, период).
Пресеты в src/domain/payroll/presets.ts: общепит (фонд, личный процент, официант с допродажами, администратор с гарантией, почасовая, премия за порог выручки), розница и продажи (две шкалы), доставка (два варианта), услуги с мастерами, сменная работа с ночными и сверхурочными, B2B с месячной прогрессией, простая почасовая.
Не реализовано и вынесено в следующий шаг:
- Блок вычета. Удержание должно быть отдельной сущностью с основанием, лимитом и следом в аудите, а не отрицательным слагаемым формулы — см. правовые ограничения.
- Фонд сверх тарифа как готовый блок (сейчас выражается комбинацией).
- Линтер правил: предупреждение о начислении ниже МРОТ пропорционально отработанному, об отсутствии оплаты ночных и сверхурочных, об отрицательных узлах с дисциплинарным основанием.
4. Чего рынок не подтверждает
Эти конструкции встречаются в обсуждениях, но подтверждения как отраслевой нормы нет — в пресетах они допустимы как значения по умолчанию с пометкой «настройте под себя»:
- многоступенчатая шкала процента мастера салона (практика — плоский процент по категории либо порог на превышение);
- сдельщина «за строку» у сборщиков заказов (доминирует почасовая с бонусом за выработку);
- конкретная прогрессия процента персонального тренера по порогам числа тренировок (структура уровней подтверждается, ставки — нет).