380 ошибок в справочнике габаритов, которые никто не замечал годами

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

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

Откуда взялось подозрение

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

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

Что нашли

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

380 ошибок в справочнике габаритов, которые никто не замечал годами

Набралось 380 подозрительных позиций. Часть при ручной проверке отсеялась — товар легитимно учитывается по-другому, это тема отдельной статьи. Основная масса подтвердилась, и причина у неё одна: вместо объёма одной штуки в справочник годами вносили объём упаковки или объём паллеты.

Расхождение — где в разы, где на два порядка. Утеплитель, который на деле занимает место рулона, в справочнике «весил» как целая паллета этого рулона. Каждая продажа такой позиции добавляла в расчёт объём, которого физически не было на складе.

Что сделали с находками

Из 380 строк 307 исправили точечно: каждую сверили с реальной упаковкой и вписали верный объём. Оставшиеся закрыли семью групповыми правилами — если у категории товара один и тот же тип ошибки повторяется десятками строк, чинить их по одной бессмысленно, нужно правило на всю категорию.

Разбор доверил модели, решение — нет. ИИ нашёл подозрительные строки и предложил вердикт по каждой. Что считать ошибкой, а что легитимным исключением, решал я сам, глядя на реальную упаковку и на историю позиции. Модель сузила объём ручной работы в разы. Каждое отдельное решение осталось за человеком.

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

Честно про минусы

Проверка заняла не один вечер, а несколько дней с перерывами. 380 строк не проверишь за час, даже когда их уже отобрали за тебя.

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

Справочник габаритов оказался не единственным источником ошибок такого рода. Это выяснилось уже во время этой проверки.

Что дальше

В следующий раз — как отличить настоящую находку от правдоподобной выдумки: три вопроса, которые я задаю любой цифре от ИИ, прежде чем нести её руководителю. С разбором конкретных ложных срабатываний из этой самой проверки.

Вопрос к тем, кто ведёт склад: а у вас справочник габаритов кто-нибудь периодически перепроверяет, или он живёт своей жизнью с момента заведения?

Разбор методики проверки справочника выкладываю в канале «ИИ на складах»: t.me/ii_na_skladah