Позиции в дефектуре
в среднем на утро, из 146 закупаемых
Кейс · Сеть кофеен · ИИ-агент
Сеть из шести кофеен во Владивостоке хотела, чтобы закупщик перестал считать заказы на калькуляторе. Первая версия агента две недели только мешала, и мы ее переделали. Вторая сократила дефектуру с 42 до 8 позиций, но в отпуск закупщика пропустила одно письмо поставщика.
Позиции в дефектуре
в среднем на утро, из 146 закупаемых
Закупщик на расчет и заказы
в день, вместе с письмами
Срочные покупки в супермаркете
чеков за 30 дней
Списание молока по сроку
за 30 дней
«Кофе на Сопке» держит шесть кофеен во Владивостоке, от центра до кампуса на острове Русский, где летом пусто, а в сентябре очередь до двери. Через кассы в день проходит около 1 300 напитков, две трети уходят с собой. Центральный склад - комната с холодильником на Второй Речке.
Закупками три года занимался один человек, Ильдар. Каждое утро он выгружал остатки из МоегоСклада, считал на калькуляторе и писал поставщикам. Молоко приходит каждый день до 7:00, зерно от обжарщика по вторникам и пятницам, стаканы и крышки по средам. Растительное молоко и сиропы едут раз в две недели со склада дистрибьютора на Снеговой.
Дефектуру в сети считают строго: позиция пуста к открытию хотя бы на одной из шести точек. В июне таких набиралось 42 на утро. Когда кончалось молоко, бариста бежали в ближайший супермаркет и платили розничную цену: 23 таких чека за месяц.
«Я в отпуск не ходил с 2023 года. Не потому что не отпускают. Просто никто, кроме меня, не знает, сколько стаканов нужно Русскому в сентябре.»
Ильдар, закупщик
Первую версию агента мы задумали как быстрого Ильдара. Агент берет обороты за 14 дней, умножает средний расход на неделю запаса, вычитает остаток и в 7:30 присылает в рабочий чат список «что заказать». Письма пишет сам Ильдар. Нам казалось, что главное - снять с него счет, а решения оставить человеку.
Первую версию включили 7 июля, во вторник. Подключение к МоемуСкладу заняло день. Формулу проверили на трех позициях, молоке, зерне и стакане 350, и решили, что этого хватит. Об этом решении мы потом жалели больше всего.
Ильдар пересчитывал не из упрямства. В первый же день агент предложил отвезти 60 литров молока в кампус, где в июле нет студентов. На второй посчитал овсяное на неделю вперед, хотя следующая машина от дистрибьютора приходит через 14 дней.
После таких промахов он проверял каждую строку. Агент добавлял ему работу: сначала прочитать список, потом все равно посчитать самому.
Через две недели мы сели за цифры, и они были неприятными. Дефектура не упала и на второй неделе даже подросла. Время Ильдара выросло с 95 до 108 минут в день.
| Что смотрели | Июнь, до агента | Неделя 1 | Неделя 2 |
|---|---|---|---|
| Пустых позиций на утро, в среднем | 42 | 41 | 44 |
| Минут Ильдара в день | 95 | 104 | 108 |
| Строк в списке агента, которые он исправил | - | 131 | 156 |
| Срочных покупок в супермаркете | 23 за месяц | 6 | 5 |
Первая версия не взлетела, и спорить тут было не с чем. Она считала то же, что Ильдар, только хуже: без сроков поставки, без календаря точек и без того, что лежит на центральном складе. Мы предложили Роману, владельцу, остановить агента на две недели и переделать, не продлевая замер.
«Хорошо, что не стали делать вид, что работает. Я бы заметил по Ильдару: он к обеду был злой.»
Роман, владелец
Дни 1-321-23 июля
Разбор начали 21 июля. Взяли все строки первой версии за две недели и рядом поставили то, что Ильдар заказал на самом деле. Каждую правку он объяснил одной фразой, а мы разложили объяснения по причинам.
Семь причин дают 271 из 287 правок, 94%. Самая частая - срок поставки. Для агента все поставщики были одинаковыми, а у растительного молока от заказа до привоза 4 дня, и следующая машина только через две недели.
На втором месте кампус. Летом там пусто, а с началом учебного года очередь до двери, и среднее за 14 дней этого не знает. Третья причина - молоко: оно живет 5 суток, и неделя запаса превращается в списание.
Дни 4-1024-30 июля
Во второй версии агент считает не «неделю запаса», а запас до следующей машины плюс страховку. Для молока это сутки, для зерна три дня, для растительного молока 18 дней: 14 до следующей машины и 4 на саму доставку.
Правила собрали в одном Google Документе. Ильдар дописывал то, что держал в голове: кампус живет по учебному календарю, у Морвокзала выходные вдвое сильнее будней, лавандовый сироп берут только летом. Роман оставил комментарий про стаканы, и он стал отдельным правилом.
Главное изменение не в формуле. Агент теперь сам готовит черновики заказов в МоемСкладе и письма поставщикам, а Ильдар их подтверждает. Пересчитывать ему нечего: в каждой строке видно, откуда взялось число.
Дни 11-1431 июля - 3 августа
Перед запуском вторую версию прогнали на июньских данных. Выбрали 46 ситуаций, где Ильдар заказывал что-то нестандартное, и сравнили его решение с расчетом агента.
На первом проходе агент сошелся с Ильдаром в 31 ситуации из 46. Он не знал, что зерно для офисных кофе-брейков берут отдельно, и путал перемещение со склада с новым заказом. Когда мы это поправили, расчет разошелся с Ильдаром только в трех ситуациях, 43 из 46.
Три оставшиеся строки - новые сиропы без истории продаж. Ильдар сказал, что и сам берет их наугад, по две бутылки на точку. Так и записали в правила: новинку агент не считает, а пишет «нет истории, решите сами».
День 154 августа, вт
Вторую версию включили 4 августа, ровно через четыре недели после первой. В 7:30 агент прислал сводку: заказ в Упак-ДВ на 61 520 ₽, молоко, два перемещения со склада. Ильдар ответил через восемь минут.
Письмо поставщику агент пишет так же, как писал Ильдар: что, сколько, куда и к какому часу. Подпись честная - письмо подготовил агент, подтвердил человек. Поставщики на это внимания не обратили.
К концу недели по заказам агента пришли пять приемок: стаканы, молоко, зерно и растительное молоко. Ильдар сверял их с накладными сам, эту часть мы не трогали.
Дни 28-3617-25 августа
17 августа Ильдар ушел в отпуск, первый за три года. Подтверждать заказы стала Настя, управляющая. В тот же день в 7:44 агент отправил заказ в Альт-Дистрибуцию: 120 пачек овсяного, кокосовое и миндальное, привоз в пятницу.
В 12:10 менеджер Альта ответила: овсяного нет до конца месяца, контейнер задерживается, можем заменить другой маркой. Ответ упал в ветку письма. Агент умел отправлять письма, но не читал ответы. Ответы всегда читал Ильдар.
В пятницу кокосовое и миндальное приехали, овсяное нет. Агент видел счет Альта как непринятый, но считал заказ в пути: в сводке на 22 августа так и стояло, «в пути 120». В понедельник овсяное кончилось на Русском, к вечеру на Алеутской.
Во вторник утром «Портовый экспедитор», офис по соседству с Алеутской, ждал кофе-брейк на 52 напитка, 30 из них на овсяном. Они брали его у нас каждый понедельник или вторник. Настя в 8:10 предложила кокосовое, офис отказался и заказал в кофейне через дорогу.
Заказ стоил 15 080 ₽, маржа после молока, зерна и стаканов 10 244 ₽. Компенсировать было нечего: офис просто ушел к соседям, и в сентябре кофе-брейки «Портового» у нас не появились. В реестре отгрузок 25 августа их заказа нет.
Исправление: агент читает ответы в ветке своего письмаАгент теперь читает ответы поставщиков в ветке своего письма. «Нет», «замена», «перенос», «частично» он выносит красной строкой в сводку и снимает с заказа отметку «в пути». Заказ без подтверждения поставщика за сутки до привоза тоже красный. Для овсяного завели второго поставщика, Прибрежную базу: дороже на 40 ₽ за пачку, но на складе в городе. Через неделю правило сработало по-настоящему: Альт написал про частичную отгрузку, и Настя заказала остаток у Прибрежной до того, как молоко кончилось. «Портового» это уже не вернуло.
30 дней4 августа - 2 сентября
Замер второй версии - 30 дней с 4 августа по 2 сентября. Сравниваем с 30 днями до первой версии, с 7 июня по 6 июля. Недели первой версии в сравнение не берем: это была другая система.
| Закупки сети | 7 июня - 6 июля | 4 августа - 2 сентября |
|---|---|---|
| Пустых позиций на утро, в среднем | 42 | 8 |
| Минут закупщика в день | 95 | 15 |
| Часов на закупки и перемещения в месяц | 52 | 10 |
| Срочных покупок в супермаркете | 23 | 4 |
| Списание молока по сроку | 14 800 ₽ | 6 100 ₽ |
Август и июнь во Владивостоке - разные месяцы. В августе тепло, на набережной туристы, и чеков у сети было на 18% больше: 39 000 против 33 000. Дефектура при этом упала, хотя товара уходило больше. Сезон здесь работал против агента: в июне ему было бы легче.
По графику видно отпуск. С 17 по 30 августа заказы подтверждала Настя, ей нужно было на пару минут больше: она читала каждую строку.
Ильдар отдыхал с 17 по 30 августа, и кофе с собой не закончился ни разу. Стаканы, крышки и держатели агент считает по средам вместе с Упак-ДВ, и запас всегда был на неделю вперед. В прошлом августе стакан 450 кончался дважды, когда Ильдар просто болел три дня.
На 28 августа стаканов 350 мл 60 упаковок при неснижаемом остатке 45. Красным в остатках стоит только овсяное: 16 пачек при минимуме 60, то самое письмо Альта.
Обороты за август показывают, сколько на самом деле уходит за месяц: 652 кг зерна и 4 370 литров молока. Раньше эти цифры знал только Ильдар, теперь они лежат в правилах агента.
Выручка в отпуск тоже не просела. К воскресенью 30 августа неделя вышла на 2% выше прошлой, даже без кофе-брейка «Портового».
В окупаемость идут часы, которые можно пересчитать по журналу: Ильдар и Настя тратили на закупки и перемещения 52 часа в месяц, стали 10.
| Статья | Значение |
|---|---|
| Часов на закупки до и после | 52 и 10 в месяц |
| Освободилось | 42 ч в месяц |
| Стоимость часа закупщика с взносами | 480 ₽ |
| Экономия | 20 160 ₽ в месяц |
| Модель, сервер, почта | 2 700 ₽ в месяц |
| Внедрение, пакет «Бизнес» | 49 900 ₽ |
| Окупаемость второй версии | около 12 недель |
Это срок от запуска второй версии. Если считать от 7 июля, когда включили первую, добавляются четыре недели без пользы: две недели агент мешал, две мы переделывали. Тогда выходит 114 дней, почти четыре месяца. Переделку мы сделали в рамках пакета, доплаты не было.
Есть деньги, которые видны, но в часы не переводятся. Списание молока упало на 8 700 ₽ в месяц. Срочных покупок в супермаркете стало 4 вместо 23. С другой стороны, «Портовый экспедитор» ушел с маржой 10 244 ₽ за один кофе-брейк, а он заказывал их раз в неделю.
В сентябре Ильдар впервые взял выходной в понедельник, когда приходят все машины. Сводку в 7:30 подтвердила Настя, приемки сверил Глеб на Второй Речке, и Роман узнал о выходном закупщика только из чата.
Закупщик. Агент готовит черновик заказа в МоемСкладе и письмо, а отправляет после «ок» закупщика в рабочем чате. Так решил владелец. Технически можно и без подтверждения, но тогда первая же ошибка уйдет поставщику без проверки.
Не сам. Мы записали календарь каждой точки в правила: учебный год в кампусе, выходные у Морвокзала, туристический август. Среднее за 14 дней без календаря как раз и сломало первую версию.
Для молока агент считает запас до утренней машины плюс полдня. Неделя запаса для молока - это списание. После перехода на такой расчет списание упало с 14 800 до 6 100 ₽ в месяц.
Мы проверили формулу на трех позициях и решили, что достаточно. На 146 позициях и девяти поставщиках вылезло все, чего мы не знали про сеть. Теперь прогон на истории идет до запуска, а не после.
Основатель AviGrowth, GreenMP, Digital Core и SFB. Частный инвестор.
С 2015 года строю бизнесы, которые живут на трафике. AviGrowth ведет кабинеты на Авито, GreenMP - магазины на маркетплейсах, Digital Core внедряет ИИ. Четыре компании, 60+ человек в команде, 170 млн рублей оборота в год.
Посмотрим ваши остатки и обороты в МоемСкладе и посчитаем, сколько позиций у вас пустеет к открытию и почему.
Заявка отправлена
Свяжемся в рабочее время, уточним задачу и договоримся о бесплатном демо на ваших данных.
Бесплатное демо
Покажем ИИ на ваших данных
Ответим в рабочее время. Без обязательств - решение о старте после демо.
Заявка отправлена
Свяжемся в рабочее время, уточним задачу и договоримся о бесплатном демо на ваших данных.