Начать бесплатно

Контроль потерь

Опасные операции кассы, пять правил-алёртов, пороги, дайджест и видеоклипы

14 мин чтения Открыть этот экран в демо
На этой странице 23

Контроль потерь и кассовые риски

Одна ручная скидка ничего не значит. Двадцать скидок одного PIN за смену при трёх у всех остальных — значат.

Контроль потерь состоит из двух слоёв. Первый — журнал опасных операций, он отвечает на вопрос «что было». Второй — восемь правил, которые отвечают на вопрос владельца «на что смотреть».


Журнал опасных операций#

Касса пишет событийную ленту рискованных действий с привязкой к текущему кассиру (учитывается быстрое переключение по PIN, а не только тот, кто залогинен на устройстве):

Событие Когда пишется
Ручная скидка / изменение цены кассир вручную снизил цену или дал скидку
Отмена заказа чек аннулирован целиком
Удаление позиции после отправки на кухню сторно уже готовящегося блюда
Возврат по чеку оформлен возврат
Открытие денежного ящика без продажи ящик открыли вне чека
Повторная печать выданного чека репринт — классический способ подменить чек гостя
Правка счёта после пречека гость уже видел итог, а счёт изменили (сюда же — слияние столов, аннулирующее напечатанный пречек)
Расхождение кассы при закрытии смены факт не сошёлся с ожиданием

Сама лента с фильтрами по кассирам и типам операций живёт на вкладке «Опасные операции» раздела «Статистика» — см. Посещаемость и сводка. Здесь она не дублируется.

Чтобы разобрать месяц с бухгалтером или управляющим, нажмите «⬇ Скачать CSV» над «Лентой событий»: в файл уйдёт вся отфильтрованная лента (кассир, тип операции, точка и период), а не только строки на экране — время, кто и в какой роли, что изменилось, сумма, номер заказа и кто одобрил. Если открыта история одного заказа, выгрузится она.

Лента событий опасных операций с кнопкой «Скачать CSV»
Рассмотреть экран

По кассам и по причинам#

Под таблицами «По кассирам» и «По типам» на вкладке «Опасные операции» есть ещё два свода за тот же период и фильтры:

  • «По причинам» — отмены, сторно и возвраты по причине, которую выбрал кассир: «Гость отказался», «Брак блюда», «Долгое ожидание», «Ошибка кассира», «Тест / обучение», причины из вашего справочника возвратов и «Прочее (своими словами)» — там же видно, что именно писали. Число и сумма по каждой причине; строки в сумме дают число операций с причиной. Чтобы касса спрашивала причину всегда, включите настройку точки «Спрашивать причину отмены отправленной позиции» (заказы зала). Отмены, записанные до появления свода, причину хранят только в тексте операции — они в свод не входят, их число показано под таблицей. Причину в свод пишут и браузерная касса, и касса-приложение для Android, Windows и Ubuntu — при снятии отправленной позиции и при возврате по чеку.
  • «По кассам» — на какой кассе (устройстве) сделана операция: число, сумма и сколько раз открывали ящик без продажи. Имя кассе дают на самом устройстве: в веб-кассе — окно «Внешний вид POS» → «Название кассы», в кассе-приложении для Android, Windows и Ubuntu — поле «Название кассы» в настройках устройства. Без имени касса-приложение видна под именем устройства (модель планшета или имя компьютера), веб-касса — коротким номером. Тот же разрез по выручке — в «Финансах».
«Статистика» → «Опасные операции»: блок «По причинам» — «Гость отказался», «Брак блюда», «Ошибка кассира», «Прочее (своими словами)» с числом и суммой, итог; рядом блок «По кассам»
Рассмотреть экран

У журнала есть вторая, серверная нога. Опасные операции не только записываются кассой, но и выводятся сервером самостоятельно — из того, как менялся сам заказ: снятие позиции, уже отправленной на кухню, ручная скидка, изменение цены, переоткрытие закрытого заказа, отмена после оплаты, возврат, правка после пречека. Эту запись касса обойти не может: она делается на стороне, которая принимает заказ, а не в браузере.

Из двух ног складывается отдельное правило — «расхождение журналов»: если операция есть в журнале кассы, но её нет в серверном (или наоборот), это повод посмотреть внимательнее — приложение работало офлайн, журнал не долетел или кассир пытался обойти запись. Такое расхождение попадает в «Кассовые риски» на вкладке «На контроле» вместе с остальными алёртами.


Восемь правил#

Правила считаются на сервере по журналу и по данным учёта. Окно наблюдения — неделя, «смена» приближается календарным днём точки.

Правило Когда срабатывает
Серия отмен у одного кассира за смену набралось столько отмен/сторно, что это уже не «бывает» (по умолчанию — 8, примерно одна в час полной смены)
Серия скидок сумма ручных скидок кассира за смену втрое (×3) превышает медиану по всем кассирам аккаунта за окно
Расхождение кассы недостача/излишек при закрытии смены выше порога владельца либо втрое (×3) выше медианы расхождений
Расход выше нормы по циклу инвентаризации фактический расход превысил теоретический (по тех-картам) больше чем на N % (по умолчанию — 5 %) — «куда делась разница»
Скачок закупочной цены товар приняли дороже медианы его цены (по умолчанию — на 15 %+)
Расхождение журналов операция есть в журнале кассы, но её нет в серверном (или наоборот) — см. раздел выше
Выше своей нормы смена сотрудника сильно выше его собственного обычного уровня: скидки, отмены, возвраты или расхождение кассы за день больше, чем «среднее + k × разброс» его рабочих дней за 12 недель (по умолчанию k = 2). Пока у сотрудника меньше 6 смен, норма не считается — новичков не дёргаем
Много наличных в ящике касса сообщила, что наличных в ящике больше порога точки («Пора инкассировать», см. Кассовая смена); один сигнал на точку в день

Своя норма против общей медианы. «Серия скидок» сравнивает кассира со всеми остальными и пропускает сотрудника, у которого скидки всегда втрое выше, чем у коллег. «Выше своей нормы» сравнивает человека с ним самим: всплеск видно, даже если по меркам заведения сумма обычная. Дни смен без скидок входят в норму нулями. Чтобы одна мелочь не считалась всплеском, нужно не меньше двух денежных операций (или трёх отмен) за день и значение хотя бы в полтора раза выше нормы.

Почему денежные пороги самокалибруются. Константа тут не работает: у аккаунтов разные валюты и разный масштаб чека. Поэтому денежные правила сравнивают кассира с медианой по всем кассирам того же аккаунта и срабатывают только при превышении её втрое.

Медиана закупочной цены считается по окнам 30 и 90 дней, одна накладная — одна точка выборки (поставщик, разбивший поставку на пять строк, не сдвигает медиану впятеро сильнее честного). Меньше трёх поставок — не выборка, правило молчит. Та же медиана даёт бейдж «+N % к медиане» прямо на строке приёмки — см. Склад.

Каждый алёрт имеет уровень (высокий/средний), сумму под риском, число событий и период. Повторный пересчёт не плодит дубликаты: один и тот же перекос за один и тот же день — это один и тот же алёрт.


Где смотреть и как настроить#

Блок «Кассовые риски» — в «Рабочем чате» → «Требует решения» → вкладка «На контроле», вместе с остальными делами. Отдельного раздела «Требует внимания» в панели больше нет; старый адрес приводит сюда же. Кнопка «Разобрать» ведёт в ленту событий.

Пороги открываются шестерёнкой ⚙️ в шапке раздела «Статистика», пункт «Пороги алёртов»: она сама переключит на вкладку «Опасные операции» и раскроет свёрнутый блок порогов (пункт видят владелец и управляющий). Туда же можно дойти вручную — вкладка «Опасные операции» → блок порогов. Что задаётся:

  • сумма ручных скидок за смену — поднимает планку: нужны оба условия, и порог, и превышение медианы (норма скидок относительна и зависит от промо);
  • серия отмен за смену — счётный порог;
  • расхождение кассы — замещает медиану: здесь владелец знает свою терпимость в абсолютных деньгах;
  • потери сверх теоретического расхода, %;
  • превышение медианы закупочной цены, %;
  • «Сравнивать сотрудника с его собственной нормой» — галочка правила «Выше своей нормы» (включена по умолчанию), чувствительность k и сколько смен нужно для нормы.

Пустой порог = «порога нет»: правило работает от медианы (денежные) либо от консервативного значения по умолчанию.

Письмо владельцу — по подписке. По умолчанию алёрты считаются и видны в админке, но писем никто не получает. Тумблер почты стоит в тех же настройках, и задумано так: одно письмо на прогон со сводкой новых алёртов, а не по письму на каждый — серия отмен обычно приходит пачкой.

Пуш на телефон руководителя — тоже по подписке. Галочка «Пуш на телефон руководителя» в тех же настройках: о новой недостаче, «много наличных в ящике», скидках или отменах выше нормы руководитель узнаёт в приложении Cenaly Business (оно же — монитор заказов на телефоне владельца), даже если он не в зале. Чтобы пуш не превратился в шум:

  • одна сводка, не чаще раза в 4 часа (по умолчанию; поле «Не чаще раза в, часов»): новые сигналы копятся и уходят одним уведомлением, например «Анна: скидки 18 000 при норме 7 000»;
  • тихие часы (по умолчанию 23:00–08:00 по времени точки): ночью пуш ждёт, утром приходит сводка;
  • пушатся только кассовые правила (расхождение кассы, много наличных, выше нормы, серии скидок и отмен) и только за сегодня и вчера — включив пуш, вы не получите сводку за прошлую неделю.

Пуш получает владелец аккаунта на телефонах, где выполнен вход в приложение. Нажатие открывает «Опасные операции».

«Статистика» → «Опасные операции»: в ленте алёртов строка «Выше своей нормы · Юлия Захарова · скидки 18 000 · норма 7 000», ниже раскрыт блок «Пороги и уведомления» — включён «Пуш на телефон руководителя», «Не чаще раза в, часов» 4, тихие часы с 23:00 до 08:00, «Сравнивать сотрудника с его собственной нормой», k = 2, смен для нормы 6
Рассмотреть экран

Видеоклипы опасных операций#

Если к кассовому устройству через Cenaly Hardware Bridge подключена камера, к событию можно прикладывать короткий видеоклип: несколько секунд до и после операции.

Настраивается по точке (у каждой кассы свой зал и свой ракурс) в разделе оборудования:

  • включение (по умолчанию выключено — видео кассовой зоны это персональные данные, включать молча за клиента нельзя);
  • камера кассовой зоны из списка устройств моста;
  • сколько секунд до и после события попадает в клип — по умолчанию 30 и 30, допустимо от 5 до 120 секунд;
  • суточный лимит клипов на точку — по умолчанию 40, допустимо от 1 до 200;
  • срок хранения клипа — по умолчанию 30 дней, допустимо от 1 до 365.

Журнал полностью работоспособен и без камеры — видео это добавка, а не условие.


PIN-одобрение#

Опасные операции можно закрыть подтверждением старшего: кассир запрашивает действие, менеджер вводит свой PIN, и в журнал попадает и операция, и тот, кто её одобрил.

Лимиты скидок, возвратов и сторно по ролям задаёт владелец в разделе Сотрудники и смены; касса по ним решает, требует ли операция PIN-одобрения.

Гейт стоит не только в интерфейсе. Когда чек уходит на сервер, лимиты кассира резолвятся заново — по его реальной должности, а не по тому, что прислало приложение; чек со скидкой сверх лимита без подтверждения старшего просто не примут. И одобривший обязан действительно иметь право одобрять: имя и роль «из запроса» сервер во внимание не берёт.

Репринт выданного чека тоже проходит под PIN и записывается в журнал.


Проверка возраста (18+) и отмены «в отходы»#

Эти настройки действуют для выбранной точки в веб-кассе и по умолчанию выключены. Откройте шестерёнку кассы → «Контроль операций кассира». Они работают отдельно от аналитических правил потерь, описанных выше.

Проверить возраст перед продажей#

  1. В блоке «Проверка возраста (18+)» включите «Спрашивать проверку возраста», задайте «Минимальный возраст» и «Категории 18+», затем нажмите «Сохранить». Подкатегории наследуют отметку категории.
  2. Теги позиции «18+» или «21+» задают свой порог. При включённом распознавании тегов учитываются также алкоголь, табак, вино, пиво, кальян и энергетики. Возрастная позиция внутри комбо тоже требует проверки; применяется самый высокий порог в чеке.
  3. При добавлении такой позиции касса открывает проверку. Проверьте документ и нажмите, например, «Документ проверен — 18+» либо заполните «Дата рождения из документа» и подтвердите рассчитанный возраст. Если выбрали «Позже», касса спросит снова перед оплатой; без подтверждения продажа не проводится.
  4. «Отказать в продаже» убирает неотправленные возрастные позиции. Уже отправленные позиции отмените обычным способом в чеке. Отказ записывается в журнал операций.

В заказе сохраняются сотрудник, время, способ подтверждения и возрастной порог. Дата рождения и данные документа не сохраняются. Подтверждение относится к текущему чеку.

Отменить приготовленную позицию и учесть продукты#

  1. В «Контроле операций кассира» включите «Спрашивать, что с продуктами».
  2. При отмене отправленной на кухню позиции или уменьшении её количества выберите «В отходы», если блюдо уже приготовили, либо «Не списывать», если продукты не израсходованы или блюдо передали другому гостю.
  3. После «В отходы» проверьте «Склад» → «Документы»: состав отменённого количества списывается отдельным документом с причиной «отходы». Для этого у позиции должен быть настроен складской состав/техкарта. «Не списывать» не создаёт такого списания отходов.
Отмена отправленной позиции: выбор «В отходы» или «Не списывать»

Ограничения#

Эти сценарии описаны для веб-кассы. Проверка 18+ требует включения и корректных тегов или категорий; она не распознаёт возраст по внешности. Списание «в отходы» относится к снятому количеству отправленной позиции, а не к отмене заказа целиком. Без складского состава списывать нечего.

Устранение неполадок#

Симптом Причина Что делать
Проверка возраста не появилась Опция выключена, позиция не отмечена или страна точки — Россия Проверьте настройки точки и теги; для России используйте алкогольный контур
Оплата снова спрашивает возраст Подтверждение отложено или добавлена позиция с более высоким порогом Повторите проверку документа для нужного порога
После отказа позиция осталась Её уже отправили Отмените позицию в чеке
Нет документа отходов Выбрано «Не списывать», отменён весь заказ либо нет состава; возможна ошибка записи Проверьте выбор и техкарту, затем документы склада; при отсутствии ожидаемого документа обратитесь к администратору

Сторно нескольких позиций и лимит количества на чек#

Оба инструмента есть в веб-кассе; в кассе-приложении для Android, Windows и Ubuntu их пока нет.

Снять несколько позиций разом#

  1. Над строками чека нажмите «☑ Выбрать» и отметьте позиции.
  2. Нажмите «✕ Сторно».
  3. Если среди них есть позиции, уже отправленные на кухню, касса один раз спросит причину (и, если включено «Спрашивать, что с продуктами», — «В отходы» или «Не списывать»). PIN старшего — тоже один раз, по настройке «PIN старшего для отмены отправленной позиции».
  4. Все отмеченные строки снимаются сразу.

После сохранения заказа в журнал опасных операций уходит одна запись «Сторно позиции (отправлена на кухню)» со списком позиций, общей суммой и причиной. Сервер по-прежнему видит снятие каждой строки, и правило «Расхождение журналов» сопоставляет групповую запись со всеми ними — ложной тревоги не будет. Для правила «Серия отмен» групповое сторно — одна отмена. Позиции, ещё не отправленные на кухню, снимаются без вопросов, как обычный ✕.

Касса в режиме выбора: отмечены три отправленные на кухню позиции, открыто окно отмены с одной причиной для всех трёх

Лимит количества позиции на чек#

Владелец задаёт в карточке товара (вкладка «Цена») блок «Количество в заказе» → «Максимум» — то же поле, которое ограничивает корзину сайта. Поле есть в карточке товара каталога (магазин, розница); в карточке блюда ресторана его пока нет. На кассе это не жёсткий запрет, а контроль:

  • пока в чеке не больше максимума этой позиции (считаются все её строки), касса пробивает без вопросов;
  • следующая штука сверх него — плитка, скан, повтор или «+» у строки — открывает «Нужно одобрение менеджера» с пояснением «Превышен лимит позиции на чек (… станет 3 при лимите 2)»;
  • после PIN позиция добавляется; разрешение действует на этот чек и до одобренного количества — следующая штука сверх него снова спросит PIN; отказ — позиция не добавлена;
  • возврат — не больше проданного (как и раньше) и не больше максимума позиции без PIN старшего.

Весовые и повременные позиции лимиту не подчиняются. Минимум и кратность из той же карточки касса не навязывает: они про корзину сайта.

Окно «Нужно одобрение менеджера»: «Превышен лимит позиции на чек (Пиво разливное 0,5 л: станет 3 при лимите 2) — нужен PIN старшего»

Связанные разделы#


Частые вопросы#

Это слежка за сотрудниками?#

Это инструмент разговора, а не наказания. Правила не обвиняют — они показывают, что у одного человека число операций резко выбивается из общей картины. Дальше решает управляющий.

Почему правило не сработало, хотя скидка была огромная?#

Денежные правила смотрят на сумму за смену против медианы по всем кассирам, а не на одну операцию. Если крупные скидки — норма для всего заведения, медиана будет высокой. Задайте явный порог, если хотите ловить абсолютные суммы.

Алёрты приходят по одному и тому же случаю несколько раз?#

Нет. Идентификатор алёрта строится из правила, точки, кассира и периода — повторный пересчёт даёт тот же алёрт, а письмо по нему уходит один раз.

Пуш о недостаче пришёл не сразу — это сбой?#

Нет. Правила пересчитываются раз в 30 минут, пуш уходит одной сводкой не чаще раза в 4 часа (по умолчанию), а в тихие часы ждёт утра. Срочность — в самой ленте «Опасные операции»: там сигнал появляется с ближайшим пересчётом.

Почему новичку не приходит «выше своей нормы»?#

Пока у сотрудника меньше смен, чем указано в настройке (по умолчанию 6), личной нормы нет — сравнивать не с чем. Общие правила (серии скидок и отмен, расхождение кассы) работают с первого дня.

Можно ли включить письма, но не включать видео?#

Да, это независимые настройки: почта — в порогах правил, видео — в настройках точки в разделе оборудования.

Что делать, если сработало «Расход выше нормы»?#

Сравнить теоретический расход по тех-картам с фактом инвентаризации: чаще всего причина — неточная тех-карта, непроведённые списания порчи или порции «на глаз». Разбор — на вкладке «Потери» раздела Склад.