Расчёт Нормы товарного запаса при поставках крупными партиями

Часто в различных программах при формировании Заказов поставщику используют упрощённый способ заказа через «Норму» товарного запаса, по формуле:

«Заказ» = «Норма» — «Остаток +
«Уже заказано»

Норму при этом часто задают в Днях Продаж. Например, Норма = месяц = 31 день продаж.

Тогда, например, при средних прогнозируемых продажах 10шт/день, При остатке на складе 120 штук и 100 штук уже заказано (уже размещено, находится в пути, но пока не приехало на склад),

 Заказ = 31дн*10шт/день — 120 – 100 = 90 штук.

Такая схема может неплохо работать при возможности быстро подвозить любое количество товара. Но часто подвоз товара ограничен требованием минимальной партии (от упаковки до вагона), или минимальной суммой заказа (от 5 000 до 1 000 000 рублей).

В таких случаях необходимо использовать чуть усложнённую формулу:

Норма = Цикл Заказа (как часто делается заказ, Order Cycle) + Время Исполнения Заказа (сколько времени поставщик доставляет товар с момента заказа, Lead Timе) + Страховой запас (сколько хотим минимально держать на складе, норматив остатка на складе в момент прихода очередной упаковки, партии, вагона, Safety Stock)

Предположим, имеем вводные данные:

мы заказываем не менее чем на 1 000 000 рублей, поставщик привозит заказ в течение 7 дней, Продаём мы в среднем 10 шт в день, Цена закупки 1 штуки = 10 000 руб.,  Новый Заказ Делаем  сразу же как продали предыдущий, то есть время между заказами = 1 000 000 руб / (10 шт.день*10 000 руб/шт) = 10 дней, Хотим иметь «Страховой запас» = 2 недели продаж,

Наша расчётная норма тогда  = 10 (Order Cycle) + 7 (Lead Timе)+ 14 (Safety Stock)= 31 день, или 310 штук (=31 день*10 шт/день).

Предположим, этот нормативный запас в днях = 31 день руководство когда-то утвердило и зафиксировало в качестве Норматива для времени доставки 7 дней.

Какое-то время всё идёт хорошо, но потом вдруг начинаем замечать, что на нашем складе то дефицит, то излишек.

Почему же это происходит, ведь Норму «31 день» мы пересчитываем при заказе в штуки каждый раз, умножая на новый прогноз продаж?

Ответ: это происходит потому, что Цикл Поставки (Order Cycle) в днях меняется в зависимости от продаж, даже когда Время исполнения заказа (Lead Timе) остаётся = 7 дней.

При тех же начальных данных, но при изменении продаж:

1) В какой-то момент мы начинаем продавать не 10 шт./день, а 4 шт/день, например, из-за сезонного спада продаж зимой или акций конкурентов.

2) А в другой  момент, летом или проведя свою акцию, продаём по 20 шт/день.

Расчётная Норма 1) = 1 000 000 / ((4шт.день)*10 000) (Order Cycle) + 7+14 = 46 день (то есть норма 31 день приводит к Дефициту 15 дней )

Расчётная Норма 2) = 1 000 000 / ((20шт.день)*10 000) (Order Cycle) + 7+14 = 26 день ( то есть Норма 31 день даёт Излишек в 5 дней)

Пикантность ситуации в том, что «дефицит», как мы видим, наступает именно в момент спада продаж. Это особенно трудно осознать руководству, которое и так в стрессе от падения продаж, а тут ему ещё отдел продаж докладывает, что товара на складе нет. Вывод руководству ясен: закупщики не вовремя оформили заказ, раз у нас дефицит. Но у закупщиков «зашит» константой «Норматив» в программе = 31 день, и программа «считает» именно  так, как её настроили.

Что же делать на практике, особенно в случаях жёсткого требования руководства к Норме (запрещено превышать, например, зашитый в программу заказа норматив «31 день продаж»)? Могу предложить на Ваших данных несколько вариантов с расчёт-заказом в Excel. Выбор лучшего рецепта зависит от диагноза: от понимания специфики Вашей компании, от возможностей взаимодействия с руководством, с поставщиками, с ИТ отделом, других условий и ограничений.

Обратитесь по телефону +7 911 2150530 или по почте a.skorodumov@mail.ru за консультацией. Алексей.

Зачем аналитику нужен Power Query?

Power Query – это надстройка в Excel. С 2016 года входит в стандартный пакет. Для более ранних версий Eхcel (2010-2013) её можно бесплатно скачать с www.microsoft.com.  Это действительно «мощный запрос», способный решать многие задачи аналитика быстрее и изящнее, чем это делается с помощью Pivot Table (сводной таблицы) на основе вытянутых ссылками данных или стандартных формул и функций.  Особенно полезен Power Query для тех, кто регулярно составляет отчёты на основе заранее известных источников с данными.

Power Query может:

1) Собирать данные из файлов различных типов (xlsl, txt, csv, hml, html,…) как адресно (через обращение к конкретному имени файла), так и выбирать все файлы из папки, не зная заранее их имени. Например, если у Вас в папку сегодня загружены 3 файла (данные по 3 клиентам, или за даты 01, 02 и 03 число) – они попадут в отчёт сегодня. Все названия файлов можно вынести в один отдельный столбец, что очень удобно для последующих группировок. И если завтра у Вас в папке добавятся ещё несколько клиентов или дат  — отчёт будет сформирован по всем файлам, включая новые, без дополнительных коррекций запроса. Из книг Excel можно загружать данные сразу со всех листов.

2) Обращаться за данными к разным источникам, включая базы данных (SQL, Oracle и тп), ERP-системы (1с, SAP и тп), сайты, интернет-сервисы (Google Analitics, Facebook и тп).

3) Очищать данные, приводить их в порядок (убирать/добавлять столбцы, разделять и совмещать столбцы, отбрасывать нулевые строки, совершать различные вычисления)

4) Совмещать данные из множества файлов по заданному ключу (ключ можно задать в самом запросе через новый столбец, не обязательно его сразу иметь в источнике). Иными словами, Power Query  заменяет функцию ВПР и её аналоги. Без него обойтись, конечно, можно – но он сэкономит время при больших массивах, отработает раз в пять быстрее ВПР, избавит от фиксации промежуточных результатов.

К относительным трудностям в использовании Power Query я бы отнёс:

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

2) Далеко не все сотрудники компаний знакомы с данной надстройкой, не во всех компаниях она в принципе доступна (многие пользуются старыми версиями Excel).

3) При часто сменяющихся источниках, при вечной «карусели» названий и порядка столбцов, требуется квалифицированная коррекция запроса или предварительная проверка данных, что может вызвать сложность.

Вышеперечисленное не умаляет достоинств Power Query. Он относительно прост в использовании и действительно способен в несколько раз сэкономить время аналитика при создании регулярных отчётов и расчётов.

АВС анализ в Excel без сортировки массива

Как провести АВС анализ в Excel без сортировки массива?
Рекомендую следующую формулу.

для Диапазона в соседнем левом столбце с 7 по 30 строку: (R7C[-1]:R30C[-1]) и назначенных границах АВС 80 — 95 :

=ЕСЛИ((СУММЕСЛИ(R7C[-1]:R30C[-1];»<=»&RC[-1])/СУММ(R7C[-1]:R30C[-1]))<=0,05;»С»;ЕСЛИ((СУММЕСЛИ(R7C[-1]:R30C[-1];»<=»&RC[-1])/СУММ(R7C[-1]:R30C[-1]))<=0,2;»В»;»А»))

Подчеркну её плюсы перед прочими формулами, встреченными мною:

1. Не требует сортировки. Значения в диапазоне могут быть и пустыми. Можно менять строку позиции, при этом её группа А В или С не изменится.

2. Принадлежность к группе А В С не будет зависеть от наименования или номенклатуры (места позиции при сортировке). Например, если два вида товара, товар Y1 и товар Y2, имеют одинаковое значение продаж = Х, то относится они оба будут к одной группе А, В, или С даже если граница А и В или B и C пройдёт по величине Х. Например, классический метод с сортировкой, описанный в статье, допускает случай, что товар Y1 попадёт в более высокую группу, если сортировка по названию или поставит его на позицию выше, чем товар Y2 ( и наоборот). Что является неточностью, так как от названия товара или его принадлежность к группе зависеть не должна в принципе.

3.Формула с «<=» имеет преимущество перед аналогичной формулой с «>=» , так как в случае присутствия в ряде значений только 0 или Х, все позиции со значением Х попадут именно в группу А, а не С. Что является логически верным решением.
Пример работы формулы в файле Excel бесплатно можно скачать тут: АВС анализ без сортировки

Как составить ассортиментную матрицу с помощью Яндекс.Вордстат.

Если нужно составить ассортиментную матрицу интернет магазина, и при этом нет полного доверия к информации о собственных продажах (в прошлом периоде многие товарные позиции не были доступны к продажам, товарная линейка не сбалансирована под спрос, цены на товар были не конкурентные, сильное влияние на продажи оказывало отсутствие/наличие товара у конкурентов), то пытаются собрать информацию о спросе из самых различных источников. В главе Ассортиментная матрица. Основная и заказная программа разобран вариант сбора такой информации для магазина строительных товаров.
Часто в качестве информации о спросе используют уже существующие интернет-сайты или запрашивают прайсы и складские остатки у конкурентов. При этом исходят из того, что конкуренты адекватны, уже прошли начальный путь анализа собственной статистики продаж и стремятся предлагать то, что хорошо продаётся.
Но часто рынок продукта может быть настолько не развит, что сайты конкурентов ещё не содержат сбалансированных матриц. В этом случае, важным источником информации о потенциальном спросе, может послужить сервис Яндекс.Вордстат (или аналогичный ему Google AdWords).
Эти сервисы бесплатно позволяют просмотреть статистику поисковых запросов пользователей. Их часто используют SEO-специалисты для определения семантического ядра и продвижения интернет сайта. Идея в том, что если на Вашем сайте часто и в нужном контексте встречается слово, которое ищет ваша целевая аудитория, то и Ваш сайт будет лучше индексироваться поисковой системой. То есть Яндекс или Google будут чаще и выше по рейтингу предлагать ваш сайт в ответ на запросное слово пользователя, а это увеличит трафик и продажи.
Та же логика (чем чаще встречается слово в запросе – тем чаще его хочет покупатель) лежит и при построении товарной матрицы на основе запросов Вордстат. Кроме того, анализ динамики этих запросов пользователей можно использовать для оценки сезонности спроса на товар и построения Профиля сезонности.

Статистику запросов применяют и при анализе глобальной динамики развития продукта, что перекликается с Бостонской Матрицей.
Итак, предположим, Вы решили в своём регионе начать торговать неким товаром с помощью интернет сайта. И в качестве инструмента формирования ассортиментной матрицы (количества представленных на сайте позиций в той или иной категории) решили использовать запросы Вордстат. Предлагаю делать это в следующей очерёдности:
1. Определить товарные группы и подгруппы. Сделать это можно, например, с помощью сайтов конкурентов (где пусть и в неверных пропорциях, но присутствуют все нужные Вам подгруппы). Проверить верность своего выбора можно в том же Вордстат, по словам «ищут вместе». Например, вводите название группы, и смотрите, какие подгруппы при этом ищут пользователи.
2. Определить, какой процент той или иной группы должен соответствовать спросу покупателей. Для этого принять количество всех запросов по подгруппам за 100 % и вычислить % для каждой из подгрупп.
3. Составить (например в EXCEL) табличку, которая позволяла бы Вам оперативно отслеживать текущее состояние Вашего сайта (сколько позиций в какой группе сейчас присутствует на Вашем сайте) и какой это % от всех позиций. Например, Вы обнаружите, что в Подгруппе Х сейчас Y позиций, что составляет 5% от всей группы. При этом, согласно запросам пользователей в вордстат, там должно быть 10 %. Вывод: Вам стоит увеличить присутствие товара в подгруппе Х.
У этого метода есть подводные камни, приведу наиболее значимые из них.
1. Например, Вы составляете матрицу детской мебели и вводите «детский стул». Однако, пользователи, которые вбивают «детский стул» ищут обычно не мебель, а лекарства от расстройства желудка или рекомендации докторов. Когда же Вы вобьёте «детский стол» то обнаружится, что это словосочетание вбивают не столько ищущие предмет мебели, сколько родители, устраивающих праздник (заказывающие детский стол в кафе). Подобные искажения могут привести к совершенно кривой матрице, поэтому крайне внимательно нужно анализировать «что ищут вместе с запрашиваемым словом», отсекая запросы не целевой аудитории. Оставляя для ассортиментной матрицы только очищенные запросы.
2. Когда пользователи интернета вбивают словосочетание в поисковике – это не всегда значит, что они хотят купить этот продукт. Стоит подбирать запросы таким образом, чтобы выявлять интерес именно потенциальных клиентов (использовать слова купить, отзывы, фото и тп).
3. Этот метод не даст Вам корректной разбивки по ценовым сегментам. Для сегментации по ценам придётся пользоваться сайтами конкурентов и данными о собственных продажах.
4. Чем меньше количество запросов, тем менее надёжен сам метод. Даже один энергичный пользователь может исказить баланс матрицы, созданной на основе небольшого числа запросов.
Резюме:
Регулярно перестраивать плановую товарную матрицу на основе изменившегося спроса весьма полезно. Собственная статистика продаж даже при постоянном наличии товара не всегда пропорциональна спросу. Рынок меняется, и можно пропустить новые тенденции, оперируя исключительно собственной статистикой. Нельзя раз создав, постоянно пользоваться одной и той же ассортиментной матрицей. Нужно регулярно «обновлять» её новыми позициями и «выводить» старые, а также корректировать количество позиций по ценовым сегментам с помощью анализа собственных продаж, остатков, представленности позиций на собственном сайте и сайтах конкурентов. Увеличивая количество позиций в быстро продаваемых сегментах и сокращая в медленно продаваемых. Для оценки скорости продаж и коррекции плана наличия позиций по сегментам, рекомендуется помимо стандартной «оборачиваемости» использовать измерение в «штуках/доступную к продажам позицию» за период. Этот метод более глубокий и точный, чем просто сравнение оборачиваемости по сегментам, он позволяет выявлять замедление продаж, не связанное с отсутствием товара и проводить оперативные коррекции ассортимента и цен.

Почему высокий целевой уровень сервиса в 98 % не спас от дефицита товара

В этой статье рассмотрим типичную ситуацию: Закупщик работает с автоматизированной программой заказа, устанавливает в ней «Уровень сервиса = 98%», своевременно формирует заказ, но товара постоянно не хватает.
Прежде всего надо проверить настройки программы: верно ли установлен цикл заказа (время между заказами) и время, которое проходит с момента формирования товара до фактического его получения на складе? Если реальное время больше установленного в программе, неизбежен дефицит. Предположим, ошибок здесь нет. Тогда проанализируйте, почему установленные в программе «98 % Уровня сервиса» по факту не обеспечили ваш склад или магазин товаром.
1. Ошибка расчёта страхового запаса. Нет учёта потерянных продаж.
Типичная ошибка – это использование распространённого «Уровня сервиса 1-го уровня», который не учитывает «потерянных продаж». Предположим, в Вашей предыдущей истории продаж часто был дефицит товара. Если Вы не учтёте «Дни отсутствия» в расчётном периоде и не добавите их в прогнозируемый спрос, то Вы ПОСТОЯННО будете заказывать товара меньше, чем нужно. Чем дольше едет товар от поставщика и чем реже Вы делаете дозаказ – тем медленнее Ваша статистика продаж будет «подтягиваться» до уровня реального спроса, который Вы пытаетесь удовлетворить.
Почему эта ошибка часто встречается? Выскажу своё мнение. Продавцам и интеграторам программ легче продать клиенту вариант настройки с «98 % уровня сервиса» (без учёта потерянных продаж), сокращающий при этом складской запас вдвое, чем вариант с тем же уровнем склада но при «80 % Уровня сервиса» (учитывающий потерянные продажи). Согласитесь, что при прочих равных «98» выглядит привлекательнее «80», а термин «Уровень сервиса» при этом как бы обозначает то же самое (по факту это не так, но покупатель это не всегда знает). Кроме того, первый вариант требует меньше исходных и проще считается. Если клиент не особо акцентирует внимание на данном вопросе, то в 99 % случаев он получит настройку без учёта потерянных продаж.
Как с этим бороться: сокращайте время в пути и делайте заказы чаще, а лучше всего начните учитывать потерянные продажи. Что толку радоваться показателю в 98 %, если реально получаете непредсказуемо меньше, и по сути, не управляете товаром? Пусть в настройках будут стоять «честные» 80 %, учитывающие потерянные продажи, чем «теоретические» 98%, их не учитывающие. К сожалению, даже заявленный в проданной Вам программе «учёт потерянных продаж» часто оказывается фикцией. Проверяйте. Возьмите несколько позиций и пересчитайте, действительно ли Ваша программа учитывает отсутствие товара так, как Вы этого хотите. После этого посмотрите, сколько «дней запаса» даёт вам настройка уровня сервиса в 80 % и в 98 %. Сравните их между собой и отбросив хитрые формулы, посмотрите на результат с точки зрения здравого смысла. Если увидите, что, например, при ритмичности заказов = неделя и времени в пути = две недели, разница между уровнем сервиса в «80%» и в «98%» составит меньше пары дней страхового запаса — это повод усомниться в корректности применяемого программой алгоритма расчёта.
2. Ошибка прогнозирования спроса из-за отсутствия учёта сезонности.
Многий товар имеет сезонную зависимость. Если её не учитывать, и делать прогноз на основе статистики продаж прошлых трёх месяцев, вы будете постоянно недозаказывать товар в начале сезона (создавать дефицит) и делать лишний объём заказа этого же товара в конце сезона (создавать неликвид).
Как учесть сезонность: Создайте профили сезонности и прикрепите их к группам товара или конкретным позициям. Как это делать описано в разделе Профиль сезонности .
3. Ошибка прогнозирования спроса из-за отсутствия учёта зависимости спроса от цены.
Очень часто покупатели совершают больше покупок, если Ваша цена на товар становится ниже чем в среднем по рынку. Торгуя с ценой ниже чем у конкурентов, Вы можете получить повышенный спрос и дефицит товара, если заранее не подготовите свой склад к подобной акции. В дальнейшем, когда Вы сравняете цены с конкурентами, повышенный спрос исчезнет. При этом оставит Вам статистику продаж, пользоваться которой для будущего прогноза нельзя (это повлечёт за собой перезаказ товара). Такую статистику нужно будет очистить от продаж по акциям.
Как учесть повышенный спрос: привозите под акции и спецзаказы отдельные поставки. Требуйте от инициаторов распродаж (отдел маркетинга, отдел продаж) информацию о готовящихся акциях заранее, чтобы учесть повышенный спрос в своих заказах поставщикам. При изменении цен на свой товар на долговременный период, и при уверенности, что конкуренты не смогут ответить Вам тем же и вернуть свою долю рынка, учитывайте Эластичность спроса к цене .

Почему прогноз продаж оказался неточным?

Типичная ситуация: компания много лет торгует на рынке, имеет большую статистику продаж. Но вдруг оказывается, что прогноз продаж, который был составлен на основе прошлой статистики, оказался завышен и на складе образовался лишний товар. Как же так? Почему формулы прогноза, которые отлично работали два месяца назад, месяц назад вдруг дали сбой?
Наиболее вероятная причина – это действие конкурентов. Спрос на самом деле не изменился, просто Ваши потенциальные клиенты по какой-то причине (прежде всего это предложение более выгодных цен) ушли к конкурентам. Вторая по вероятности причина – это изменение спроса (в условиях изменения покупательской способности или по причине устаревания товара).
Можно ли предугадать подобное развитие событий и своевременно среагировать на него? Безусловно. Для предотвращения падения продаж из-за демпинга конкурентов должна быть налажена Конкурентная разведка на наиболее значимые товары группы А, которую можно определить используя АВС анализ . Для своевременного определения этапа жизненного цикла, на котором находится товар, используют механизмы типа Бостонская матрица.

Как сделать заказ товара в бесплатной версии Qlik Sense Desktop

Статья о том, как можно сделать заказ товара с помощью бесплатной версии Qlik Sense Desktop.

Шаг 1.
Скачайте и установите бесплатную версию, имеющую неограниченный срок действия лицензии с сайта создателя продукта Скачать бесплатную версию Qlik Sense Desktop.
Шаг 2.
Определитесь, по какой логике и по какой формуле Вы хотите получить результат, Ваш расчётный заказ товара.
Например, Вы хотите, на основе статистики продаж за последние три месяца, рассчитать среднедневные продажи (SaleDay). И сделать заказ таким образом, чтобы в момент прихода заказа на склад Остаток стал бы равен Недельной потребности плюс Три дня на случай транспортных перебоев. Итак, Вы Хотите получить в момент прихода заказа складской остаток в N = 10 дней средних продаж*.
*Норматив N=«10 дней» можно как задавать, так и рассчитывать на основе Вашей логики (с учётом срока хранения, складских площадей, времени в пути, предполагаемого уровня сервиса, желаемой рентабельности и тп.)
Тогда формула заказа будет выглядеть так: Сложить остаток на складе и уже заказанный товар в момент заказа (получить StockToday), Вычесть из него Время в пути (DeliveryTime) умноженное на SaleDay. Если StockToday-(DeliveryTime*SaleDay) — N*SaleDay > 0, то Заказ = 0. В противном случае, Заказ = МИН (N*SaleDay, N*SaleDay+ DeliveryTime*SaleDay – StockToday)
Эта формула «дополнит» ваш складской остаток до максимум SaleDay*N (10 дней продаж), с учётом тех остатков, которые ожидаются на складе в момент прихода товара.
Шаг 3.
Теперь определитесь, откуда будете брать исходные и в какой детализации Вам нужен результат.
Предположим, Вы хотите отправлять заказ Поставщику. Чтобы поставщик легко узнавал и быстро подтверждал нам товар из него, в заказе должны быть столбцы «Поставщик», «Вид товара», «код товара», «Наименование у поставщика», «Группа товара у поставщика».
Предположим, что по какой-то причине часть информации в Вашей учётной системе отсутствует. Например, нет информации по «Наименованию у поставщика» и «Группа товара у поставщика», которые не совпадают с принятыми в Вашей компании и занесёнными в Вашу номенклатуру «Наименованием» и «Группой товара». А IT отдел отказывается вносить новое поле в базу данных. Не беда. Сделайте в Excel – файле страничку, с той расширенной классификацией, которая Вам удобна. Например, добавьте сами столбцы «Наименование у поставщика» и «Группа товара у поставщика». Qlik Sense Desktop их увидит и внесёт в Ваш итоговый файл заказа.
Возможно, что нужная Вам информация по продажам и остаткам находится в реестре 1с в виде строк с датой и кодом товара. Возможно, в 1с не полная информация, и Вы будете брать её из Excel-файлов, различных баз данных или веб-файлов.
Шаг 4.
Загружаем исходные данные в Qlick Sense Desktop. Вы можете как подключиться к базе данных (например, нужным массивам в 1с или другой базе данных через стандартное подключение, предусмотренное в программе, ODBC, OLE DB, или к веб-файлу), так и просто выбрать, например, в Вашей папке на Вашем компьютере Ваш файл Excel с требуемой информацией. Если Вы будете в процессе работы обновлять в нём информацию, но место положение источника данных менять не будете, то никаких новых усилий (завтра, когда данные обновятся) делать не нужно. Один раз укажите источник, и скрипт загрузки его сохранит пока вы его снова не поменяете. Здесь я указал как путь к данным дорогу к моему файлу Excel, в котором на разных листах хранятся параметры номенклатуры, целевые показатели, ограничения и прочее, нужное закупщику для управления параметрами заказа.

Данные могут загружаться в программу из разных папок, разных источников и быть разнотипными. Можно «разбить» загрузку на куски, и ежедневно подгружать лишь обновляемую информацию. Например, о новых продажах и остатках.

Шаг 5.
После загрузки исходных данных, рекомендую сразу их обработать, оставить только нужные поля и перевести в формат .qvd (оптимизированный для программы). Он позволяет работать с данными ещё быстрее и без обращения к внешним базам. Сохраняет всю информацию «в себе». После этого можно удалить ненужные первоначальные данные из приложения, уменьшив таким образом его размер.
Рекомендую регулярно сохранять (особенно если у Вас не устойчивая связь с источниками, например базой 1с) .qvd-файлы у себя «в надёжном месте». Чтобы в случае, если, например, по какой-то причине не сможете достучаться до корпоративного источника, Вы могли бы подгрузить данные из своего «backup», .qvd-файла. Сделать это можно включив в скрипт загрузки строку:
store NazvanieTable into [lib://Название Папки с резервными данными/NazvanieTable.qvd];

Шаг 6.
Свяжите разрозненные исходные данные по ключу. Для визуального представления связи между загруженными данными в Qlick Sense Desktop есть удобный инструмент «Модель данных», с возможностью Предварительного просмотра отдельных таблиц.

В этом примере несколько массивов данных (параметры заказа, продажи, заказ) связаны между собой по ключу «Код Товара», а через ключ «Поставщик» в таблице Номенклатура получают дополнительно связь с Информацией о поставщике. Чтобы ключ работал, нужно чтобы название поля было идентично. В исходных это не всегда так. Чтобы переименовать поле при загрузке, пользуются стандартным оператором «as». Например, если в одном из источников название поля «OrderDataCodSQU», а в других источниках он назвается «Штрих-код», при загрузке данных надо указать: load OrderDataCodSQU as «Штрих-код».

Шаг 7.
Сделайте таблицу с Результатом Заказа на отдельном Листе приложения, например, такую.

Формулы могут как считаться в таблице, так и быть уже предварительно рассчитанными в момент загрузки данных. Так поступать иногда удобнее: мы получаем результаты уже на стадии загрузки, а не в таблице. Поэтому сможем их использовать как готовые, а не прописывать в разных таблицах одни и те же формулы. Функции, выражения и операторы, применяемые для формул в таблицах и в скрипте при загрузке данных, мало чем отличаются от аналогичных в Excel и SQL запросах, интуитивно понятны и просты (sum, sin, log, round, call, do, for, if, +,-,/,*, load, group by, left join и тп). В справке Qlik Sense есть их подробный перечень с примерами.

На отдельном листе рекомендую контролировать параметры заказа по каждому коду товара, чтобы можно было быстро посмотреть и проверить, верно ли закачены Ваши исходные данные. Особенно если Вы «подгоняете» Ваш заказ под лимит бюджета, используете МИН МАХ, кратность, Out of Stock Point, коэффициенты сезонности, Среднедневные продажи, Упущенные продажи и прочие параметры, которые не обязательно знать поставщику в его файле заказа, но полезно контролировать Вам, так как они могут участвовать в расчёте заказа (если Ваша логика расчёта это предусматривает).

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

Шаг 8.
Сохраните таблицу с заказом в Excel. В бесплатной версии это можно сделать через клик на правую кнопку мыши, «Экспортировать данные», «Сохранить как». В платных версиях делать это более удобно, достаточно нажать на иконку или можно даже запланировать e-mail рассылку результата по адресам (например, Вашему и Вашим поставщикам с заданной Вами периодичностью).

Если Вам через некоторое время снова потребуется расчёт заказа, не забудьте обновить данные (нажать «Загрузить данные»). В платной версии можно настроить автоматическое обновление по расписанию, без Вашего участия.

Как видим, даже бесплатная версия Qlik Sense Desktop может быстро и качественно, под управляемую Вами логику принятия решения, рассчитать Заказ товара. В платной версии есть приятные дополнительные возможности, которые упростят жизнь закупщика, аналитика или маркетолога.

Оборачиваемость или Уровень Сервиса. Что из них выбрать нормативом при заказе?

В качестве целевого норматива при закупках товара используют в основном либо «Норматив Оборачиваемости» (или производный от неё «Норматив Складской Эффективности»), либо «Норматив Уровня Сервиса».
Оборачиваемость не стоит путать со Скоростью продаж. Скорость продаж – показывает, сколько товара (в штуках или деньгах) продаётся за единицу времени. Это спрос на товар. Норматив Оборачиваемости – связывает Скорость продаж и Склад и показывает, за сколько дней Ваш склад будет продан с той скоростью продаж, которую Вы прогнозируете. Эффективность склада (обычно используют годовую) рассчитывается как 365 (дней в году) делить на Оборачиваемость (в днях) умножить на Наценку. Эффективность склада показывает, какой процент возвращает бизнес от вложений в складской запас за год.
Так как складом может управлять закупщик (заказать товара можно и больше, и меньше), а спрос на товар и наценка при прочих равных условиях (маркетинговые усилия и конкуренция) остаются неизменными от него параметрами, то при одной и той же потенциальной Скорости продаж (спросе) Ваша Оборачиваемость и Эффективность могут быть разной.
На практике, при выставлении KPI закупщику, обычно стремятся повысить Складскую Эффективность (которая тем Выше, чем меньше дней занимает Оборачиваемость). Стремление понятное и логичное. Однако, часто спрос на товар столь не предсказуем, что попытка сэкономить на складе приводит к перебоям с наличием товара, потерянным продажам и потерянной прибыли. Получается, что заложив слишком низкий Норматив складского запаса (Оборачиваемости), Вы вместо ожидаемой Скорости продаж получите меньшую величину, так как Ваш клиент в нужный момент не найдёт товар на Вашем складе и купит его у конкурента.
Часто от продавцов программного продукта по управлению запасом можно услышать, что его программное решение само по себе, не прибегая к понятию Нормативной оборачиваемости, а обеспечивает Вам требуемый высокий Уровень сервиса (вероятность наличия товара на складе или процент не потерянных продаж). К таким утверждениям советую относиться настороженно. И смотреть, как именно считает его программа (что учитывается в алгоритме расчёта). Может оказаться, что Норматив Оборачиваемости всё же присутствует, но завуалирован через понятие Safety Stock (либо Оптимальный страховой запас) в момент прихода заказа, величина которого рассчитывается исходя из отклонения фактических продаж от среднего значения, например (с помощью различных хитрых формул). Таким образом, заявленный программным продуктом Уровень сервиса корректирует Вашу оборачиваемость, но не напрямую выставляя норматив оборачиваемости. А через некую формулу расчёта нормативного остатка, в которой участвует статистика продаж и Ваш норматив Уровня сервиса (таких формул множество, и каждый продавец программного продукта хвалит именно свою).
Что лучше, назначать при заказе Норматив оборачиваемости (например, оборачиваемость 30 дней), или доверять формулам, его высчитывающим в программе для каждого отдельного товара? Для корректного ответа на этот вопрос, желательно провести ретроспективный анализ по Вашей статистике. При этом советую обратить внимание на следующий Важный момент:
Не достаточно просто подобрать формулу, которая опишет факт ваших продаж и скажет Вам: если бы Вы заказ строили по такой-то формуле, то Ваша экономия составила бы столько-то. Важно, чтобы эта же формула работала и на следующий период.
Как можно это проверить? Разбейте, например, прошлый период на три участка. И не давайте аналитику партнёра (чью программу вы тестируете) информацию о третьем участке сразу. Пусть программа на основе первого периода рассчитает спрос для второго. А потом посмотрите, как эта же формула или методика угадает спрос для третьего периода на основе второго и первого. Может оказаться, что метод или формула прекрасно опишут уже состоявшийся факт (как физическое явление), но плохо спрогнозируют следующий. Причин этого множество, в качестве основных я бы назвал две:
1. Часто для готовых формул, высчитывающих норматив остатка на основе статистики и норматива Уровня Сервиса, крайне важно в какую именно точку состоялся факт продажи (во вторник или в следующий день, среду, например). Например, для ряда 4; 8 она выдаст один результат расчёта, а для 6;6 или 8;4 совершенно другой. На практике же, именно для Вашего бизнеса, это может быть не важно (пришёл ли клиент во вторник вечером или не успел, и поэтому купил в среду утром). Почему же программа так считает? Математический аппарат обработки статистики может относиться к состоявшемуся факту продаж с излишней строгостью и слишком мелкой детализацией, пытаясь уловить тенденцию, например (ниспадающую или рост) там, где улавливать её не следует…
2. При всей сложности математического аппарата с одной стороны, часто никакого внимания не уделяется Важнейшим параметрам с другой (например, верному расчёту потерянных продаж и их учёту в будущих расчётах, понятию отложенного спроса и тп). Получается, что расчёт пытается дать точность «до грамма», но при этом допускается погрешность «в килограммы». Естественно, что в будущем использование такой программы может привести к большим перекосам в заказах (даже большим, чем если б Вы просто продолжали бы использовать старый добрый норматив оборачиваемости).
Исходя из своего опыта, могу сказать, что чем больше собрано статистики за прошлый период, чем эта статистика лучше обработана и очищена, тем точнее результат Вы получите. Не зависимо от того, пытаетесь ли Вы сделать заказ (рассчитать оптимальный запас в момент прихода заказа) на основе Нормативного Уровня Сервиса, или на основе Норматива оборачиваемости. Чем меньше статистики продаж, тем больше поводов делать заказ на основе Норматива оборачиваемости (который, в отличие от Уровня Сервиса, может быть никак не связан с фактом продаж). Уровень Сервиса также может применяться как норматив, гибкость его расчёта может быть существенным плюсом для Вашего бизнеса. Но, применяя его вместо Норматива оборачиваемости, Вы должны быть твёрдо уверены в корректной очистке статистики, её достаточности и правильности формулы, используемой программой (на основе которой высчитывается Оптимальный запас и прогноз сбыта).
Если у Вас есть возможность выбора между целевым нормативом Уровня Сервиса и Нормативом оборачиваемости (или производным от него Нормативом Эффективности), я бы посоветовал ориентироваться при формировании заказа на тот из них, который при тех же ресурсах вложения в склад, даёт меньше потерянной прибыли за тот же временной отрезок. Рассчитать потерянную прибыль можно ретроспективным анализом. При этом опасайтесь «притягивания» формулы прогноза под будущий факт! Разбивайте прошлый период на участки и проверяйте, одинаково ли хорошо формула прогноза работает для второго участка на основе статистики первого и для третьего участка на основе статистики второго и первого.

Настройка значений Минимального и Максимального остатка товара в магазинах.

При закупках товара, часто встаёт задача настройки параметров Минимального и Максимального складского остатка. Считают, что товарный остаток не должен в момент прихода заказа превышать значение МАКС (не достаточно места на полке или складе). Также стремятся, чтобы остаток в момент непосредственно перед приходом заказа не был ниже значения МИН. При стремлении к высокому уровню сервиса, в качестве МИН часто задают величину Максимальных продаж за период заказа. * Иногда эти параметры путают с близкими им им по смыслу расчётными показателями модели «МIN-МАX», в которой «МIN» показывает «точку заказа» (момент, когда остаток становится меньше «МИН», необходимо формировать заказ») а «MAX» показывает уровень, до которого необходимо делать заказ (с учётом наличия на складе, в пути и прогноза продаж до момента прихода).
Расчётные «MIN» такой модели выше чем «Минимальный остаток, который должен быть в момент прихода заказа на склад», а расчётный «MAX» может быть ниже, чем «Максимальное место на полке или складе».
Итак, менеджеру по закупкам поставлена задача контролировать параметр «Минимального» и «Максимального» остатка товара А на полке магазина. Менеджер заносит вручную МИН = 12 шт (размер минимальной выкладки), а МАКС = 60 шт (максимальное место под размещение товара А на полке).
Начинает расчёт заказа: Прогноз продажи = 8 шт. день, Периодичность заказа не чаше чем раз в 7 дней. Сначала менеджер решил оттолкнуться от МИН. Получилось, что Заказ = 7*8 = 56 шт, а остаток товара А на складе в день прихода заказа должен составит МИН + 7*8 = 68 шт. Но это больше, чем МАКС.
Тогда менеджер начинает толкаться от MAX: Размер остатка не может быть больше МАX, то есть 60 штук. Следовательно, заказ должен прийти на склад в момент, когда остаток будет равен: 60 – 7*8 = 4 шт. Но это меньше, чем МИН.
Таким образом, с неизбежностью возникает ситуация, когда заказ на неделю продаж либо «толкает МАКС вверх», либо «продавливает МИН вниз». Менеджер по закупкам должен выбрать, что для него приоритетнее, МИН или МАКС, и заложить эту логику в алгоритм расчёта заказа. Чаще более приоритетным выбирают МИН, так как временно найти дополнительное место на складе обычно легче, чем потерять продажи из-за отсутствия товара. Однако, иногда требование МАКС действительно непреодолимо (вообще нет места кроме как на полках), и заказ уменьшают до уровня «МАКС– Прогнозный остаток в момент прихода заказа». В таких случаях важно договориться с поставщиком о возможности более частых (чаще чем раз в неделю) поставках в размере меньшем, чем недельная потребность. В этом случае удастся соблюсти параметры и МИН, и МАКС одновременно.

В защиту Дефицита

Дефици́т (от лат. deficit — недостаёт) — термин, означающий недостачу, недостаточность в чем-либо.
При управлении товарным запасом, Дефицит измеряется либо через % как «1 — % Уровня сервиса», либо через величину «Потерянных продаж» (сумма прогноза продаж в дни, когда товар был недоступен к продажам).
Часто Дефицит воспринимается как нечто исключительно негативное, с чем нужно непременно бороться и обязательно победить. И действительно, если причина возникновения дефицита в ошибочных настройках заказа или использовании некачественно обработанной статистики, в фиктивных резервах сотрудников, в перебоях поставок от поставщиков – с этими явлениями необходимо бороться.
Однако, не менее часто дефицит – вполне нормальное явление. Многие товары имеют такую статистику продаж, что пытаться поднять Уровень сервиса с 85 % до 95 % (снизить дефицит на 10 %) означает увеличить склад на месячный прогноз продаж. Таким образом, «выигрывая» 10 % продаж, мы «замораживаем» в складе дополнительный месячный оборот. При стоимости месячного кредита в 2 % на этот шаг можно идти лишь в случае, когда наценка на продаваемый товар выше чем 2%/0.10 = 20 % или данный товар берётся в кредит, длиннее чем оборачиваемость. В противном случае, «снизив дефицит» мы выиграем меньше денег, чем потеряем. Не говоря уже о работе со скоропортящимся товаром, когда попытка «снизить потерянные продажи» повлечёт дополнительно затраты на увеличение % списания просроченного товара.
Как же определить ту грань, за которой высокий уровень сервиса (низкий дефицит) перестаёт приносить компании прибыль, а начинает увеличивать затраты? Для этого служит анализ эффективности, который изначально предусмотрен в качественных программах по управлению запасами. При желании, такой анализ можно сделать и в Excel. Не рассчитав точку «оптимального» дефицита, начинать с ним борьбу крайне не рекомендуется.