Эксель закупщика против порогов поставщика
Закупщик собирает дефицит руками, а потом в уме считает, сколько не хватает до ступени акции. Стенд ниже делает обе работы за миллисекунды и показывает то, что обычно прячут: где добор выгоден, а где он превращается в замороженные на складе деньги. Проект закрыт NDA, поэтому наполнение вымышлено — расчет и порядок работы те же.
→ Проект закрыт NDA: ни заказчика, ни его номенклатуру, ни условия поставщиков показать нельзя. Поэтому каталог, бренды и цены на стенде вымышлены, совпадения с реальными компаниями исключены.
Заменены данные, а не механика. Как собирается потребность, почему процентные акции не складываются, как добор упирается в оборачиваемость и деньги, что делать с минималкой и днем отгрузки — все как в рабочей системе, включая порядок этапов внедрения. Цифры в тексте считает тот же движок, что крутит стенд.
Понедельник, шесть заказов, три поставщика
Переключите режим с «ровно дефицит» на «собрать с добором» и посмотрите, как меняются четыре цифры внизу. Потом подвиньте ограничители: лимит денег, порог оборачиваемости, стоимость капитала. Ползунок оборачиваемости — самый честный в этом демо: опустите его до восьми дней, и добор исчезнет совсем.
- Сплит-система 12, инверторAT-S12нужно 4склад 3 · в резерве 3дефицит 4срок 4 днЗК-1054 (4 шт)
- Сплит-система 18, инверторAT-S18нужно 2склад 0дефицит 2срок 4 днЗК-1054 (2 шт)
- Сплит-система 09, инверторAT-S09нужно 8склад 6 · в резерве 5дефицит 7срок 6 днЗК-1043 (8 шт)
Так заказ выглядит, если просто сложить дефицит: без порогов акций и без проверки минималки.
| позиция | дефицит | добор | итого | сумма |
|---|---|---|---|---|
| Сплит-система 09, инверторAT-S09 · оборот 18 дн | 7 | — | 7 | 191 800 ₽ |
| Сплит-система 12, инверторAT-S12 · оборот 22 дн | 4 | — | 4 | 127 600 ₽ |
| Сплит-система 18, инверторAT-S18 · оборот 41 дн | 2 | — | 2 | 93 600 ₽ |
- ни одна: до порогов не дотянулись
- все достижимое взято
- платим поставщику
- 413 000 ₽
- скидка по акциям
- 0 ₽
- в доборе на склад
- 0 ₽
- чистый эффект
- 0 ₽
Чистый эффект считается против варианта «ровно дефицит» (413 000 ₽): товар из добора остается на складе и уйдет за срок своей оборачиваемости, поэтому его стоимость возвращается в расчет, а цена замороженных в нем денег (0 ₽ при ставке 22,0 %) — вычитается.
- ЗК-1054 — обещано через 4 дн, приход через 7: опоздание 3 дн, под риском 112 600 ₽ маржи. Решение закупщика: отдельная досылка сегодня или сдвиг отгрузки.
- ЗК-1043 — обещано через 6 дн, приход через 7: опоздание 1 дн, под риском 116 000 ₽ маржи. Решение закупщика: отдельная досылка сегодня или сдвиг отгрузки.
потолок, выше которого закупщик добирать не готов
медленные позиции в добор не попадают вообще
во что обходится капитал, замороженный в складе
Четыре места, где ручная закупка протекает
Ни одно из них не лечится усердием закупщика. Первые два — про то, что человек физически не удержит в голове; третье — про то, что энтузиазм в закупке опаснее лени; четвертое — про конкуренцию за общий остаток, которую невозможно решить договоренностями между людьми.
Дефицит собирается глазами
01Закупщик утром обходит вчерашние заказы и переписывает нехватку в таблицу. Пропущенная строка всплывает через неделю звонком клиента. Лечится не дисциплиной: потребность должна попадать в реестр по событию — прошла оплата, снялось обеспечение, — а не по обходу списка.
на стенде: 3 позиции дефицита из 6 заказов
Пороги акций считаются в уме
02У поставщика ступени по сумме, пороги по количеству и комплектные бонусы. Держать в голове, сколько не хватает до следующей ступени по каждому из пяти поставщиков, невозможно — и заказ уезжает в ноль целых ноль десятых процента скидки.
на стенде: 64 939 ₽ скидки против 0 ₽ без расчета
Добор превращается в неликвид
03Обратная беда: когда добор считает энтузиазм, склад забивается тем, что дает скидку сегодня и лежит полгода. Поэтому добор обязан упираться в два ограничителя — оборачиваемость позиции и потолок денег, — а стоимость замороженного капитала должна вычитаться из выгоды.
на стенде: при пороге оборачиваемости 8 дней добор падает до 0 ₽
Товар уходит не тому клиенту
04Пришла поставка, закупщик сажает ее в резервы руками по своей таблице. Пока он это делает, остаток числится свободным, и менеджер продает его другому. Тот, кто заказал раньше, остается без товара. Это гонка за общим ресурсом, и лечится она только расстановкой резервов в момент проведения прихода.
на стенде: резерв виден в потребности отдельной колонкой
Пять правил, из которых складывается заказ
Правила важнее алгоритма: солвер найдет оптимум под любой критерий, вопрос в том, какой критерий ему задан. Эти пять — то, что отличает рабочую систему от красивой демонстрации экономии.
Потребность — только по оплаченным
Заказ без оплаты в закупку не попадает: под него не встает резерв, и вкладывать деньги в товар под необязательство означает делать неликвид с другой стороны. На стенде такой заказ показан отдельной строкой — видно, что он не потерян, а сознательно отложен.
Скидки не складываются
Поставщик дает лучшую из подходящих процентных акций, а не их сумму. Самодельные расчеты в таблице ошибаются именно здесь: заказ уезжает с ожиданием двенадцати процентов, в счете приходит семь, и закупщик идет разбираться. Комплектный бонус — отдельная строка, он суммируется.
Цель выбирается перебором
Целей у добора несколько: порог по количеству, каждая ступень по сумме, выравнивание пары по комплектной акции. Для каждой считается свой добор и свой чистый эффект, побеждает лучший. Жадный проход по акциям подряд дает случайный результат: первая же акция забирает весь лимит.
Минималка — условие, а не оптимизация
Если заказ не дотягивает до минимальной суммы, поставщик его просто не соберет. Поэтому до минималки система добирает даже тогда, когда это невыгодно, и говорит об этом прямо. Альтернатива — ждать следующей отгрузки, и такое решение принимает закупщик, а не машина.
Срок считается вместе с деньгами
У импортера один день отгрузки в неделю. Разница между «успели в четверг» и «не успели» — это семь дней ожидания клиентом, и на стенде видно, каким заказам поставка уже не успевает и сколько маржи под риском.
про размерностьНа стенде четырнадцать позиций и три акции на поставщика, поэтому оптимум берется перебором целей прямо в браузере. На реальном объеме — сотни строк, десятки акций, несколько складов и ограничения по бюджету — задача решается целочисленным солвером на сервере за секунды. Критерий при этом тот же самый, меняется только способ добраться до оптимума.
Деньги здесь считает солвер, а не языковая модель
Расчет закупки обязан быть воспроизводимым: одни и те же данные — один и тот же ответ, который закупщик может пересчитать на калькуляторе и оспорить. Языковая модель этого свойства не дает, поэтому в денежный контур она не заходит.
Два места, где она полезна, лежат по краям: превратить письмо поставщика с условиями акции в черновик формального правила и разобрать входящий счет для построчной сверки с ожидаемой ценой. Оба раза человек подтверждает результат до того, как он попадет в расчет.
Оптимизатор ставится последним
Порядок проверен на работе и переставлять его не стоит. Соблазн начать с самой интересной части понятен, но считать будет нечего: пока потребность живет в таблице закупщика, у оптимизатора нет входных данных, а у вас нет истории, на которой можно проверить, сколько он сэкономил бы в прошлом квартале.
Витрина обеспечения
Менеджер видит в заказе покупателя: зарезервировано, заказано у поставщика, ожидается такого-то числа. Перестает дергать закупщика по каждой позиции.
Реестр потребностей вместо таблицы
Строка дефицита попадает в базу по событию, а не по утреннему обходу. Эксель остается выгрузкой, но перестает быть источником истины.
Резервы при проведении прихода
Поставка расходится по заказам в момент проведения накладной, до того как остаток станет виден как свободный. Плюс перенос резерва между заказами в один клик с журналом.
Движок акций и оптимизатор
Формализация акций в правила, расчет добора, генерация заказа поставщику. Ставится последним: без реестра потребностей считать нечего, а без истории нечем доказать эффект.
условие приемкиРезультатом работы должен быть документ «Заказ поставщику» в вашей базе, готовый к подтверждению одной кнопкой. Отчет со списком, из которого закупщик переносит строки руками, — это двойная работа, и такая система не приживается. Это первое, что фиксируется в постановке, и последнее, что проверяется на приемке.