131 lines
16 KiB
Markdown
131 lines
16 KiB
Markdown
# Справочник схем расчёта переменной части зарплаты
|
||
|
||
Собран по практике российского малого и среднего бизнеса (вендорские материалы 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 с месячной прогрессией, простая почасовая.
|
||
|
||
Не реализовано и вынесено в следующий шаг:
|
||
|
||
1. **Блок вычета.** Удержание должно быть отдельной сущностью с основанием, лимитом и следом в аудите, а не отрицательным слагаемым формулы — см. [правовые ограничения](PAYROLL-LEGAL-LIMITS.md).
|
||
2. **Фонд сверх тарифа** как готовый блок (сейчас выражается комбинацией).
|
||
3. **Линтер правил**: предупреждение о начислении ниже МРОТ пропорционально отработанному, об отсутствии оплаты ночных и сверхурочных, об отрицательных узлах с дисциплинарным основанием.
|
||
|
||
## 4. Чего рынок не подтверждает
|
||
|
||
Эти конструкции встречаются в обсуждениях, но подтверждения как отраслевой нормы нет — в пресетах они допустимы как значения по умолчанию с пометкой «настройте под себя»:
|
||
|
||
- многоступенчатая шкала процента мастера салона (практика — плоский процент по категории либо порог на превышение);
|
||
- сдельщина «за строку» у сборщиков заказов (доминирует почасовая с бонусом за выработку);
|
||
- конкретная прогрессия процента персонального тренера по порогам числа тренировок (структура уровней подтверждается, ставки — нет).
|