
Разбор · Опубликовали 08.10.2026
Оборачиваемость запасов требует истории остатков: агенты собирают данные для расчёта по товарам
Текущий остаток не показывает средний запас за месяц. Разбираем на учебном товаре, какие данные сохранять, как согласовать метод и что принять у инженера с машиной агентов.
Текст подготовлен машиной агентов vibecoding.ru · источники и расчёт проверены 8 октября 2026
Система показывает, сколько товара лежит на складе сегодня. Для оборачиваемости нужен средний запас за выбранный период и продажи за тот же период. Текущий остаток не отвечает на вопрос, сколько товара занимало склад весь месяц. Даже остатки на начало и конец могут пропустить большую поставку между этими датами.
Инженер ведёт машину агентов, которая может написать накопление остатков, расчёт по товарам и проверки по согласованной методике. Клиентского кейса складской аналитики у нас нет: ниже учебный товар. Если прошлый ряд не восстановить, начинают сохранять историю сейчас. Готовый код не ускоряет наступление полного месяца наблюдений.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
1. Остаток на две даты может скрыть поставку внутри месяца.
Представьте один товар с большой поставкой в середине месяца. На начало сентября лежало 100 штук, на конец тоже 100. Среднее этих двух чисел равно 100. По такому отчёту кажется, что запас почти не менялся. Это учебный пример, составленный редакцией, а не история нашего клиента.
Внутри месяца запас был другим. На конец каждого дня с 1 по 10 сентября оставалось 100 штук. 11 сентября пришли ещё 300; с 11 по 20 сентября остаток на конец дня был 400. 21 сентября продали 300 штук; с 21 по 30 сентября остаток снова был 100. Других движений в примере нет.
Ряд показывает то, чего не видно в двух точках. В расчёте берём среднее арифметическое по всем ежедневным остаткам на конец дня. Каждый день имеет одинаковый вес. Этот способ нужно заранее записать: он описывает средний запас по ежедневным наблюдениям и не учитывает колебания между ними.
Поставка видна в ежедневных остатках.
Источник: учебные данные редакции, 08.10.2026; полный ряд из 30 ежедневных наблюдений, поставка и продажа описаны выше.
Среднее по ряду равно 200 штукам. Считаем: (100 × 10 + 400 × 10 + 100 × 10) / 30 = 200. Среднее по краям месяца равно 100. МГУТУ в разборе формулы, проверенном 08.10.2026, тоже предупреждает: две точки могут искажать картину при резких изменениях и сезонности. Тогда нужны более частые сопоставимые наблюдения.
Разница переходит в оборачиваемость. Для этого примера зададим постоянную себестоимость единицы 100 ₽. Себестоимость 300 проданных штук составит 30 000 ₽. Средний запас по ежедневным остаткам стоит 20 000 ₽; коэффициент оборачиваемости равен 1,5 оборота за месяц, а оборачиваемость в днях равна 20 дням.
Две даты дадут другой управленческий вывод. По ним средний запас стоит 10 000 ₽, коэффициент равен 3, а дни оборота равны 10. Такое приближение допустимо как выбранный метод, но оно не описывает поставку внутри нашего примера. Сравнивать результаты разных методов как улучшение работы закупок нельзя.
Одна поставка меняет ответ с 10 на 20 дней.
Источник: расчёт редакции на учебных данных, 08.10.2026. Продажи: 300 шт.; себестоимость продаж: 30 000 ₽; период: 30 календарных дней. Обратная сверка: 20 × 1,5 = 30 и 10 × 3 = 30.
2. Формула работает, когда период и оценка запасов совпадают.
Сначала выберите, какой показатель нужен собственнику. Для финансового расчёта берём себестоимость продаж за период и среднюю стоимость запасов по сопоставимой себестоимости. Выручка с наценкой и остаток по закупочной стоимости дадут другой показатель. МГУТУ отдельно описывает вариант с выручкой и предостерегает от незаметной смены числителя.
Для одного товара можно считать в штуках. Количество проданных единиц делят на среднее количество этого же товара. Нужны одинаковые единицы учёта: коробки переводят в штуки по записанному правилу. По всему ассортименту складывать штуки разных товаров для финансовой оборачиваемости нельзя. Стул и пачка бумаги не становятся сопоставимыми от того, что оба лежат на складе.
Дни оборота относятся к прошедшему периоду. Их получают из среднего запаса и продаж этого периода. Если разделить сегодняшний остаток на ожидаемые продажи в день, получится оценка, на сколько дней хватит текущего запаса. Это полезный вопрос для закупок, но он требует отдельного названия в отчёте.
Коэффициент и дни используют одну исходную базу.
Источник: МГУТУ, «Как рассчитать оборачиваемость запасов в коэффициенте и днях», 14.08.2026, проверено 08.10.2026; натуральный расчёт для одного товара выведен редакцией из той же модели. При нулевом знаменателе деление не выполняется.
В задаче разработки нужны правила, а не просьба «покажите оборачиваемость». Запишите период, выбранные склады, состав остатка и способ усреднения. Отдельно укажите продажи, возвраты и оценку стоимости. Такая постановка задачи агенту позволяет проверить результат на одном товаре до расчёта всего каталога.
Остаток должен означать одно и то же каждый день. Физический остаток и свободный остаток после резервов различаются. Компания выбирает, что измеряет. Перемещение между собственными складами меняет остатки по складам, но само по себе не является продажей компании. Возвраты и списания также должны иметь свои правила, иначе смысл показателя меняется вместе с составом выгрузки.
Изменение закупочной цены усложняет стоимостной ряд. В учебном примере цена постоянна. В компании стоимость старых остатков нужно брать из согласованного учёта на соответствующую дату. Умножать все прошлые количества на сегодняшнюю цену и называть это исторической стоимостью нельзя без явной смены метода. Правило оценки принимает финансовый специалист компании.
Паспорт показателя удерживает смысл расчёта.
Источник: требования редакции к разработке на основе формул МГУТУ и настроек отчёта о запасах Microsoft Dynamics 365; проверено 08.10.2026. Это образец задания, а не универсальная учётная политика.
3. Прошлый ряд восстанавливают из движений или начинают собирать сейчас.
Сначала спросите учётную систему об истории. Интерфейс с сегодняшним остатком ещё не доказывает, что прошлых данных нет. В документации Microsoft Dynamics 365 есть отчёт о запасах с выбором периода, товаров, физических и финансовых величин; результаты можно сохранять и экспортировать. Прежде чем заказывать разработку, проверьте штатный исторический отчёт вашей системы.
Движения могут заменить готовые снимки. Если известен остаток на опорную дату и сохранены все поступления, продажи, возвраты, перемещения и корректировки, инженер может написать восстановление ряда. Нужны время операций и согласованные правила стоимости. Итог сверяют с контрольными остатками. Ряд, восстановленный из движений, помечают отдельно от ряда ежедневных наблюдений.
Без полной исходной истории прошлый средний запас неизвестен. Текущий остаток и сумма продаж не раскрывают, когда пришла поставка. Две разные истории могут закончиться одним числом. В таком случае договориться о сборе с сегодняшнего дня полезнее, чем заказать отчёт за прошлый месяц, который заполнит пропуски предположениями.
Источник данных определяет первую задачу разработки.
Источник: документация Microsoft Dynamics 365 и инженерный вывод редакции, проверено 08.10.2026. Возможность восстановления зависит от данных конкретной системы.
Снимок сохраняют в согласованный момент. Для примера с дневным шагом это остаток на конец каждого дня. В записи нужны товар, склад, единица, количество, оценка стоимости и время, к которому относится остаток. Время получения выгрузки хранят отдельно: поздно пришедший ответ не становится вчерашним наблюдением только из-за даты задания.
Сборщик должен видеть полный ответ системы. Если каталог выдаётся частями, нужно получить все части и знать, что выгрузка завершена. Повтор запуска не должен удваивать наблюдение. Если источник не умеет отдавать состояние на одну дату, инженер выясняет, можно ли получить согласованный снимок; последовательное чтение меняющихся остатков может смешать разные моменты.
Отсутствие товара в ответе ещё не означает нулевой запас. Это может быть правило выгрузки, удалённая карточка или сбой чтения. Записанные правила для агентов должны задавать, где ноль подтверждён источником, а где данных нет. Иначе ошибка связи превращается в якобы хороший результат закупок.
Снимок принимают только с паспортом загрузки.
Источник: редакционное задание на сборщик, 08.10.2026. Поля и способ хранения инженер согласует с возможностями источника.
4. Ошибка загрузки должна остановить вывод, а не улучшить показатель.
У нас нет клиентского кейса складской аналитики. Наш опыт относится к машине агентов на vibecoding.ru: сбору сигналов, сохранению рядов, расчётам и правилам рядом с кодом. На странице открытых счётчиков машины указаны источники и окна замера. Перенести в торговую компанию можно способ проверки; обещать по этому опыту сокращение её запасов нельзя.
В наших рядах уже случалось превращение пропуска в число. Оборванный ответ источника выглядел как ноль, и показатель показал падение. В другом расчёте разные окна расходов давали разные итоги. Это тот же класс ошибки, который в истории запасов может скрыть поставку или заменить неснятый остаток нулём.
Поломка должна оставлять проверяемое правило. Инженер добавляет проверку на найденный сбой, сохраняет причину исправления и проверяет следующий запуск. Ниже три эпизода нашей машины. Они подтверждают опыт построения контроля данных; расчётов складской оборачиваемости в этих эпизодах нет.
Наши поломки превращались в правила данных.
31.07
Поле сцены обложки терялось в части путей создания новости. Правило: одна общая сборка полей и проверка, что каждый путь её использует.
02.09
Обрыв ответа источника превратился в ноль и ложное падение индекса. Правило: повтор чтения, затем ошибка источника; провал строки блокирует выпуск.
27.09
Расходы на двух публичных экранах считались по разным подходам. Правило: единый расчёт, распределение по дням и одинаковое окно.
Собственные журналы новостей, индекса и расходов; записи за указанные даты прочитаны 08.10.2026. Это опыт контроля данных на vibecoding.ru.
Для запасов первым проверяют покрытие периода. Если часть ежедневных снимков отсутствует, отчёт показывает пропуск. Нельзя молча делить сумму оставшихся наблюдений на число всех дней: среднее уменьшится. Нельзя и представить среднее по оставшимся дням как полное. Восстановление допустимо, когда оно опирается на полные движения и помечено в данных.
При нулевых продажах не появляется конечное число дней оборота. В выбранной формуле деление на продажи невозможно. Отчёт должен показать «продаж нет» и отдельно средний запас. Отрицательный остаток, возвраты сверх продаж или смена единицы учёта также требуют объяснения. Агенты пишут обработку этих случаев; компания определяет смысл результата.
Приёмка начинается с контрольного товара. В примере этой статьи известны движения, ежедневные остатки и ожидаемые 20 дней. Компания может дать свой обезличенный контрольный набор. Разработчик должен показать исходные записи и повторяемый расчёт. Цена ошибки ИИ-агента зависит в том числе от того, найдут ли её до применения отчёта в закупках.
Проверки ловят сбой до решения о закупке.
Источник: сценарии приёмки редакции, 08.10.2026; первая строка проверяется на учебном примере статьи. Это требования к будущей разработке, а не результаты клиентского внедрения.
5. Покупайте сохранение истории и проверяемый расчёт по товарам.
Граница заказа проходит по одному показателю. Не обязательно менять складскую программу: разработка может читать данные из существующей системы, сохранять историю и выдавать отчёт. Если штатный отчёт уже даёт нужный ряд и метод, сначала проверьте его. Собственная разработка нужна там, где проверенная функция отсутствует или не подходит вашему учёту.
Первую поставку можно принять до окончания полного периода. Это работающий сбор данных, записанная методика, расчёт на контрольном наборе и сообщение о пропущенной загрузке. Рабочий месячный показатель появится, когда будет покрыт весь выбранный месяц, либо когда прошлый ряд удастся восстановить. Срок написания кода и срок накопления истории нужно разделить в договорённости.
Следующий шаг: принести выгрузку и вопрос к ней. Попросите руководителя учёта назвать источник остатков, наличие движений и того, кто согласует формулу. С этим набором можно разобрать задачу разработки и согласовать, какие данные и проверки войдут в первую поставку.
Первую поставку принимают по данным и результату.
Источник: состав первой задачи, предложенный редакцией 08.10.2026. Срок и стоимость конкретной интеграции не оценивались.
Если задачи будут продолжаться, есть разработка по подписке. На странице разработки по подписке тариф «Один проект» стоит 250 000 ₽ в месяц: один продукт, один поток работы. В потоке одна задача выполняется, следующая ждёт. Условия и цена проверены 08.10.2026 на живой странице.
В таком заказе инженер ведёт машину агентов. Агенты могут писать накопление снимков и расчёт по согласованной методике; готовые изменения идут в ветку репозитория клиента. На странице услуг предусмотрена пауза в любой месяц, оплаченные дни переносятся. Это формат разработки. Получение полной истории, правильность исходного учёта и эффект для закупок отдельно требуют приёмки компании.
Отчёт должен возвращать ошибку к её владельцу. Загрузка сообщает о пропуске ответственному за источник. Исправление попадает в ряд с причиной, расчёт повторяется, закупщик видит актуальную версию. Так показатель получает обратную связь. Таблица с красивыми днями оборота, из которой нельзя дойти до исходных остатков, эту работу не закрывает.
Что и как мы проверяли
| Факт | Что известно | Проверено |
|---|---|---|
| Формулы | МГУТУ, публикация 14.08.2026, прочитана 08.10.2026. Себестоимость и сопоставимый запас; коэффициент и дни | 08.10.2026 |
| Учебный пример | Данные редакции: сентябрь 2026, 30 ежедневных остатков, постоянная себестоимость. 200 шт., 1,5 оборота, 20 дней. Не клиентский кейс | 08.10.2026 |
| Возможности учётного отчёта | Microsoft Dynamics 365: период, физические и финансовые величины, сохранение и экспорт; прочитано 08.10.2026. Возможности вашей системы не проверялись | 08.10.2026 |
| Наш опыт | Публичная методология счётчиков и собственные журналы новостей, индекса и расходов. Прочитаны 08.10.2026. Складского внедрения среди доказательств нет | 08.10.2026 |
| Подписка | Живой /services, 08.10.2026: «Один проект», 250 000 ₽/мес, один поток, код в репозитории клиента, пауза. Не смета интеграции | 08.10.2026 |
6. Частые вопросы.
Какую оборачиваемость запасов считать нормальной?+
Универсальную норму для всех товаров здесь не задаём. Сравнивайте сопоставимые периоды и товарные группы по одному методу. Быстрый оборот может сопровождаться отсутствием нужного товара; показатель рассматривают вместе с наличием и условиями поставки.
Можно ли восстановить прошлый месяц из текущего остатка и продаж?+
Этих данных недостаточно: неизвестны даты поступлений, возвраты и корректировки. Нужны полные движения и опорный остаток либо готовый исторический ряд. Если их нет, в отчёте отмечают дату начала наблюдений.
Обязательно ли снимать остатки раз в день?+
Нет. Частота зависит от управленческого вопроса и возможностей системы. В примере выбрано ежедневное наблюдение на конец дня. Оно пропускает изменения внутри дня. При другом шаге нужно согласовать веса наблюдений и заново проверить метод.
Брать календарные или рабочие дни?+
В примере используются 30 календарных дней сентября 2026. Для своего отчёта закрепите правило длительности периода и применяйте его во всех сравнениях. Смешение разных правил меняет показатель без изменения работы склада.
Как считать новый товар, который появился в середине месяца?+
Укажите окно наблюдения. Полный месяц с подтверждёнными нулевыми остатками до поступления и период с даты первой поставки отвечают на разные вопросы. Пустые записи до появления товара нельзя автоматически считать нулями.
Будет ли ИИ считать показатель при каждом запуске?+
Агенты помогают инженеру написать и проверить код. Для согласованной формулы можно использовать обычный повторяемый расчёт без обращения к языковой модели. Пропущенные данные не поручают модели угадывать.
Источники
- МГУТУ: оборачиваемость запасов в коэффициенте и днях (14.08.2026) — учебный центр
- Microsoft Dynamics 365: Inventory value reports — документация вендора
- vibecoding.ru: открытая машина и методология счётчиков — собственный замер
- vibecoding.ru: агентная разработка по подписке — собственный оффер
Запомнить
- Проверьте, хранит ли система прошлые остатки или полные движения. Сегодняшнего остатка для среднего за месяц недостаточно.
- Запишите период, единицы, состав остатка и метод стоимости. Покажите их в отчёте рядом с результатом.
- Примите расчёт на контрольном товаре с поставкой внутри периода. Сверьте исходный ряд и формулу вручную.
- Попросите отдельные статусы для нуля, пропуска и отсутствия продаж. Ошибка загрузки должна доходить до ответственного.
- Разделите готовность кода и полноту истории. Если прошлых данных нет, начните накопление и назовите дату первого полного периода.