Статистика продаж и прогнозирование спроса

Базовые сведения из математической статистики

Для того чтобы были понятны принципы функционирования модуля прогнозирования спроса, мы приведем здесь некоторые сведения из теории вероятности и математической статистики. Постараемся быть предельно краткими.

Рассмотрим пример ежедневных продаж молока за месяц (рис.link).Пример временного ряда

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

Количество значений ряда
[N] Общее число значение в ряду. В нашем примере количество значений ряда равно 31
i-е значение ряда
[x_{i}] Значение ряда с номером i. Например, 5-е значение нашего ряда равно 59

Сумма значений ряда
[

i-1

^N x_{i}] Общая сумма всех значений ряда. Сумма значений ряда продаж молока за март равно 2860.

Среднее значение ряда
[

x

= /

i-1

}{N}] Среднее арифметическое всех значений ряда. То есть, сумма всех значений, поделенная на количество значений ряда. Наш пример с продажами молока дает среднее значение равное 2860/31=92.258 пакетов молока. Среднее значение обладает тем замечательным свойством, что сглаживает все неровности ряда и дает оценку, правда, очень грубую, значения ряда в единицу времени.

Стандартное отклонение
[=

/ Σ-

x

)^{2

}{N-1}}] Стандартное отклонение служит мерой рассеяния ряда. Проще говоря, величина стандартного отклонения дает оценку того, на сколько наш ряд “разбросан” относительно среднего значения. В примере с продажами молока стандартное отклонение равно 33.181.

Коэффициент вариации
[= / ] Коэффициент вариации является относительной мерой разброса значений ряда. Величина коэффициента вариации в отличие от стандартного отклонения, более понятна, поскольку является относительной величиной, независимой от среднего значения и позволяет сравнивать один ряд с другим. В нашем примере коэффициент вариации равен 0.3597. Если попытаться дать грубые ориентиры для оценки разброса ряда, то можно сказать, что значение этого коэффициента меньшее единицы является признаком “хорошего” ряда, и, соответственно, чем больше значение коэффициента вариации, тем ряд менее стабилен.

Тренд временного ряда
Долговременная тенденция в изменении значений ряда. Тренд может иметь различную форму. Вообще говоря, правильная идентификация формы тренда задача сама по себе достаточно сложная. Мы будем рассматривать только линейный тренд, аналогичный показанному на рисунке, иллюстрирующем наш пример. Здесь изображена наклонная линия линейного тренда в продажах молока. Исходя из рисунка, мы видим, что продажи молока увеличиваются, несмотря на то, что имеются кратковременные всплески и снижения в продажах.Вот, в общем, и все. Если мы что-либо забыли, то по ходу изложения будем пояснять необходимые понятия.

Принципы работы модуля анализа статистики продаж и прогнозирования

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

Задача прогнозирования спроса

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

В чем трудности?

Теперь сформулируем основные проблемы, связанные с нашей задачей:
  1. Временные ряды продаж по каждому отдельному товару крайне нестабильны. Это значит, что по большинству товаров коэффициент вариации превышает (часто на много) единицу.
  2. Временные ряды продаж содержат большое число пропусков, возникающих из-за отсутствия товара на складе или в магазине. Эта проблема накладывается на предыдущую в результате чего, мы не можем с достаточной точностью заполнить пропуски.
  3. Так как анализ статистики реализуется на уровне отдельных товарных позиций, мы вынуждены постулировать, что наши временные ряды продаж лишены какой-либо регулярности (сезонности). Это утверждение можно попытаться оспорить, но мы будем на нем настаивать, поскольку наш опыт убеждает нас именно в этом. Здесь уместно заметить, что не следует путать статистику по одному товару и статистику по выборке товаров. Так, например, временной ряд продаж пива имеет четко выраженную регулярность, в то время как ряд продаж совершенно конкретного наименования пива (скажем, Хольстен 12% в бутылках по 0,33 литра) регулярности не имеет. Еще одна оговорка по поводу этого утверждения: если ваше предприятие торгует очень узкой номенклатурой (до 100 наименований), то ряды по большинству из этих позиций все-таки будут регулярны. Аналогично, даже в большом торговом предприятии, оперирующем десятками тысяч наименований товаров, могут существовать очень стабильные с точки зрения спроса позиции, однако их число крайне мало и их сложно идентифицировать. Возможно, в следующих версиях нам удастся реализовать процесс автоматической идентификации таких товаров.
  4. При построении прогноза необходимо учитывать выходные дни. Так, если вы хотите знать прогноз продаж на следующие 14 дней, но ваше предприятие по воскресениям не работает, то система должна учесть этот факт и спрогнозировать спрос только на рабочие дни, попадающие в заданный интервал.

Как работает прогнозирование в системе Papyrus

Для прогнозирования спроса и анализа статистики продаж в первую очередь необходимо построить таблицу продаж. Таблица продаж - это таблица, в которой собраны данные о продажах каждого товара за каждый день и по каждому складу. Информация о продажах в этой таблице учитывается в количественных единицах и суммарных ценах продажи. Для использования модуля прогнозирования таблица продаж должна быть предварительно заполнена. Сама по себе, таблица продаж является исключительно полезным инструментом, используемым для анализа статистики продаж. Она позволяет идентифицировать наиболее стабильные с точки зрения спроса товарные позиции, а также обнаружить товары, которые есть на остатке, но продаются по каким-либо причинам, очень слабо.

Достоверность таблицы продаж

При построении таблицы продаж система отслеживает остатки товаров по каждому складу и на каждый день. Если на какую-либо дату остаток товара нулевой, то этот день пропускается, то есть мы не можем ничего сказать о продажах в такой день. Источником проблем являются дни, в которые товар присутствовал не весь рабочий день. К сожалению, мы не видим способа обойти эту сложность, поэтому считаем, что если товар был на складе хотя бы часть дня, то был весь день.

Охват истории продаж для прогнозирования

Для построения прогноза продаж система использует данные истории продаж не по календарному периоду, а по количеству достоверных точек продаж. То есть, программа извлекает заданное в конфигурации количество точек, соответствующих дням, на которые приходились не нулевые остатки товара.

Критерий надежности прогноза
Для “отбраковки” товаров, прогноз продаж по которым невозможно построить с достаточным уровнем надежности, применяется критерий надежности прогноза, основанный на отношении извлеченного из таблицы продаж количества точек продаж к периоду (в днях), на который эти точки приходятся. Чем меньше это отношение, тем менее надежен прогноз.Иллюстрация критерия надежности прогноза

Для иллюстрации критерия приведем следующий пример (см. рис.link): некоторый товар А имеет таблицу продаж за период до 30 июня 2007 года такую, как показана на рисунке. Если система строит прогноз на период от дня, следующего за этой датой и в конфигурации определено 14 точек прогнозирования, то система отсчитает эти точки от 30 июня до 15 июня включительно. При этом дни, когда товара на остатке не было исключаются из рассмотрения (на рисунке выделены цветом 18 и 19 июня).Таким образом, надежность прогноза составляет 14 точек / 16 дней = 0.875 = 87.5%.

Если критерий надежности прогноза составляет 90%, то прогноз по нашему примеру будет признан ненадежным, если же критерий надежности, скажем, 75%, то прогноз по такому примеру признается адекватным.

Учет выходных дней

Проблема учета выходных дней состоит из двух частей:

  1. Выходные дни, встречающиеся в периоде построения таблицы продаж. Такие выходные система распознает автоматически по отсутствию в эти дни документов, относящихся к видам операций продаж. В выходные дни значения в таблицу продаж не заносятся. Здесь потенциальным источником ошибок в построении таблицы продаж может оказаться наличие случайного единственного документа продаж. В этом случае система не сможет распознать такой день как выходной и неоправданно зафиксирует нулевые продажи по тем товарам, которые присутствовали в этот день на складе.
  2. Выходные дни, попадающие в период, на который строится прогноз продаж. Так как продаж в дни, на которые строится прогноз, нет и быть не может (иначе, зачем нам прогноз), то такие выходные должны быть указаны явно в конфигурации.

Методы прогнозирования

Для собственно прогнозирования в системе используется один из двух алгоритмов: простое среднее или линейная аппроксимация. Разберем каждый из этих алгоритмов.

Прогнозирование по простому среднему

Это - наиболее простой способ спрогнозировать спрос на товар в будущем. Для построения прогноза используется среднее значение ряда и система считает, что в каждый из дней, на который необходим прогноз будет продано количество товара, равное среднему значению продаж за предыдущий период. Такой метод не учитывает тренд, однако может быть настроен так, чтобы среднее значение продаж рассчитывалось не по всей статистике, а по любому числу последних точек. В этом случае прогноз будет учитывать последние тенденции в спросе на каждый из товаров.

Прогнозирование по линейной аппроксимации

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

Конфигурация прогнозирования

В случае если вы начали эксплуатировать систему Papyrus с версии более ранней, чем 4.4.11, вам необходимо в каталог базы данных скопировать пустые файлы данных psales.btr и gstat.btr и удалить из этого каталога файл garmapar.btr.

Для того чтобы правильно настроить заполнение таблицы продаж и прогнозирование, прежде всего, необходимо определиться со следующими вопросами:

  1. Какие виды операций должны учитываться как продажи? Если вы хотите, чтобы продажи учитывались по нескольким операциям, то заведите обобщенную операцию и ассоциируйте ее с этими видами операций.
  2. С какой даты следует начинать учет продаж в таблице продаж? Этот вопрос существенен из-за того, что таблицу продаж следует строить не с самого первого дня функционирования учета на предприятии, с некоторым временным смещением. Основная причина этого в том, что начальный период внедрения учета характеризуется высоким уровнем ошибок в учете. С другой стороны, потеря информации о, скажем, одном месяце работы не столь существенна, как возможные искажения, вносимые такими ошибками.
  3. Какие дни недели и даты учитывать как выходные дни? Этот вопрос не существенен для построения таблицы продаж, но очень критичен для расчета прогноза спроса на будущий период.

Диалог конфигурации прогнозирования

Конфигурация прогноза продажДля вызова диалога конфигурации прогнозирования обратитесь к пункту меню Админ→ Прочие конфигурации→ Конфигурация прогноза продаж. После этого на экране появится диалог, изображенный на рис. link.

▼Операция продажи товаров

Комбо-бокс, в котором следует выбрать вид операции продаж.

▼Операция закупки товаров

Вид операции, относящийся к типу драфт-приход, который будет применяться для создания документа закупки при расчете заказа поставщику (стр. link).

Дата начала продаж
Дата, с которой следует начать построение таблицы продаж. Указанный здесь день включается в период построения таблицы продаж.
Дата конца расчета

Метод прогнозирования

В отличие от первых двух параметров, этот переключатель не влияет на построение таблицы продаж, поэтому может быть изменен в любой момент. Переключатель позволяет выбрать, какой метод следует использовать для расчета прогноза.
Критерий надежности прогноза (%)
Здесь можно указать критерий надежности прогноза. Пустой (нулевое) значение будет сигнализировать системе, что вы не желаете применять ограничение этого прогноза.

Количество точек для построения прогноза
Количество последних достоверных значений в таблице продаж, которые следует использовать для вычисления ожидаемых продаж. Чем больше это значение, тем дольше система будет рассчитывать прогноз. Вместе с тем, увеличение этого параметра вовсе не означает улучшения качества прогноза. В каждом конкретном случае лучшим советчиком будет опыт. Первоначально можно рекомендовать использовать 14 последних значений и, если прогноз не будет удовлетворительным, то менять эту величину в большую или меньшую сторону. Обратите внимание на то, что речь идет не о количестве последних дней, а именно о количестве достоверных значений в таблице продаж. Например, в некоторых случаях 14 значений могут растянуться на месяц и больше из-за наличия пропусков в таблице продаж.

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

Минимальное число точек
Параметр Q модели
Этот параметр в настоящее время не используется. Значение должно быть нулевым.

Страховочный запас по умолчанию (дней)

Использование емкости упаковки

Переключатель, регулирующий вопрос применения емкостей упаковок при расчете рекомендуемого заказа:

○Не использовать

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

○Предпочтение отдавать емкости упаковки поставки

Если установлен этот вариант, то при расчете рекомендуемого заказа для некоторого товара, система в первую очередь будет рассматривать емкость упаковки поставки, заданную для товара (см. стр. link).

Если емкость упаковки поставки для товара не задана, то система будет пытаться использовать емкость упаковки из последнего лота этого товара.

○Предпочтение отдавать емкости упаковки из последнего лота

Это положение переключателя - противоположность предыдущему. То есть, сначала программа будет пытаться использовать емкость упаковки из последнего лота товара, а затем, если это значение нулевое, емкость упаковки поставки.

Округление рекомендуемого заказа

Переключатель, регулирующий метод округления рекомендуемого заказа. Этот переключатель имеет смысл только для тех случаев, когда системе предписано учитывать емкости упаковок (см. описание переключателя выше).

○До емкости упаковки вниз

Величина рекомендуемого заказа будет округляться до меньшего значения, кратного емкости упаковки. Обратите внимание на флаг ✓Если после округления рекомендуемый заказ нулевой, то 1 упаковка, описанный ниже. Он также влияет на изменение величины рекомендуемого заказа в зависимости от емкости упаковки.

○До емкости упаковки вверх

Величина рекомендуемого заказа будет округляться до большего значения, кратного емкости упаковки.

○До ближайшей емкости упаковки

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

▼Вид котировки поправочого коэффициента

✓Если после округления рекомендуемый заказ нулевой, то 1 упаковка

Если этот флаг установлен и рассчитанный рекомендуемый заказа (после учета емкости упаковки) оказался равен нулю, то система предложит заказать одну упаковку товара.

Другими словами, если рекомендуемый заказ меньше одной упаковки, то заказываем одну упаковку. Это - корректирующий флаг, обычно применяемый для правиле округления ○До емкости упаковки вниз.

✓Учитывать страховочный запас товаров

Этот флаг сам по себе не влияет на расчет, но используется для автоматической установки одноименного флага в диалоге расчета заказа поставщику.

✓Минимальный остаток трактовать как минимальный запас

Специальная опция, изменяющая алгоритм поправки рекомендуемого заказа При установке этого флага рекомендуемый заказ рассчитывается по следующей формуле: O = (P > M) ? (P - R) : (M - R)

где:

O

рекомендуемый заказа поставщику

P

прогноз продаж

M

минимальный запас товара

R

текущий остаток товара
Напомним, что если описываемый флаг не установлен, то формула расчета следующая:

O = P + M - R При использовании страховочного запаса в днях этот флаг не учитывается.

✓Округлять заказ, введенный вручную

Установленный флаг предписывает системе автоматически округлять значение заказа, введенное пользователем в таблице, по правилам, аналогичным тем, что используются при автоматическом расчете заказа.

Фиксация артикулов по поставщику

○Не применять

○Дополнить товарами, имеющими коды по поставщику

○Ограничить товарами, имеющими коды по поставщику

Редактирование списка выходных дней

Для редактирования выходных дней выберите пункт меню Админ→ Прочие конфигурации→ Выходные дни (для прогнозирования). Диалог редактирования списка выходных дней представлен комбо-боксом выбора склада, списком выходных дней и кнопками добавления и удаления элементов списка. Выходные дни могут задаваться раздельно по каждому складу либо для всех складов одновременно.

Выходной деньСистема использует следующий алгоритм определения является ли заданный день выходным:

  1. Если для заданного склада заданная дата явно указана как выходной день то так оно и есть, иначе
  2. Если для заданного склада календарный день, соответствующий заданной дате определен как выходной, то дата признается выходным днем, иначе
  3. Если по заданному складу день недели, соответствующий заданной дате определен как выходной, то дата - выходной, иначе
  4. Повторяем тот же алгоритм, только для списка определенного для всех складов.

Вы можете задавать выходные дни одним из трех способов: днем недели, днем года (действительным для всех лет) или полной датой. Диалог редактирования выходного дня выглядит так, как показано на рис. link.

Индикатор наименования склада
Показывает, для какого склада вносится выходной день. Если для всех, то здесь появится текст “Все склады”.

Вид выходного дня

Выберите один из трех вариантов. В пояснении нуждается только средний вариант: календарный день. Это - регулярный ежегодный выходной день. Например, 1 января.
Дата
В этом поле вводится либо дата, либо календарный день. Дата вводится по обычным правилам, используемых в системе Papyrus . Для календарного дня необходимо указать через разделитель день и месяц.

▼День недели

Если вы выбрали вид выходного дня - день недели, то в этом комбо-боксе необходимо указать какой именно день недели является выходным.

Заполнение таблицы продаж

Параметры заполнения таблицы продаж

Параметры заполнения таблицы продаж

Перед началом эксплуатации модуля прогнозирования необходимо осуществить заполнение таблицы продаж, для того, чтобы она содержала данные обо всех предшествующих продажах вашего предприятия, начиная со дня, указанного в конфигурации как дата начала продаж. В дальнейшем, следует дополнять таблицу новыми данными, для поддержки ее актуальности. Для выполнения заполнения таблицы продаж выберите пункт меню Админ→ Заполнение таблицы продаж. Вы увидите диалог, аналогичный показанному на рис. link.Верхний левый блок в этом диалоге - информационный. В нем показаны некоторые параметры из конфигурации прогнозирования, помогающие вам сориентироваться в выборе параметров заполнения таблицы.

В следующей таблице перечислены параметры заполнения таблицы продаж

Дата, до которой выполнять расчет
День, до которого (включительно) следует заполнить таблицу продаж. Мы рекомендуем указывать здесь дату, отстоящую на несколько дней назад от текущей. Это позволит избежать ошибок в статистике, связанных с возможной корректировкой документов за последние дни.

Последняя заполненная дата
Справочное поле, показывающее дату, до которой таблица продаж уже построена на текущий момент.

▼Вид операции учета продаж

Справочное поле, отображающее наименование вида операций, учитываемой как операция продаж.

Дата, до которой выполняется расчет
Здесь следует указать дату, до которой должна быть заполнена таблица продаж (включительно). Система допускает ввод в этом поле шаблонизированной даты, использующей специальный символ @.

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

Если это поле не заполнено, то заполнение таблицы пойдет от последней заполненной даны (значение его указано в поле “Последняя заполненная дата”). При установке в этом поле значения, превышающего дату начала пересчета, система выдаст сообщение об ошибке.

▼Товарная группа

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

▼Товар

Если в этом комбо-боксе выбран товар, то заполнение таблицы будет осуществлено только для этого товара. В таком случае блокируется опция полного пересчета таблицы.

Выбор отдельного товара может быть полезен для проверки правильности заполнения или полного пересчета таблицы для одного единственного товара с целью отладки различных параметров расчета.

○Заполнить отсутствующие дни

Это положение переключателя предписывает системе заполнить таблицу продаж только для тех дней, которые позже даты последнего заполнения. То есть, здесь речь идет о дополнении таблицы продаж. Обычно именно это положение переключателя и следует использовать.

Если вы указали дату начала пересчета, которая меньше последней заполненной даты, то за периода пересечения между этими двумя датами таблица будет пересчитана. Если указанная вами дата начала пересчета больше последней заполненной даты, то это - то же самое, что оставить поле даты начала пересчета пустой (система все равно будет считать от последней заполненной даты).

○Полностью пересчитать данные

При выборе этого положения переключателя таблицы статистики продаж будут полностью очищены, и заполнение пойдет “с чистого листа”. Естественно, это - весьма длительная процедура (может достигать нескольких часов).

✓Использовать массовый расчет остатков

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

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

Прерывание заполнения таблицы продаж

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

Система предоставляет сервис для прерывания процесса и возобновления его в следующий раз.Существуют следующие средства прерывания этого процесса:

Отключение программного сеанса
Самый простой, но и самый грубый метод. В случае использования JobServer этот способ может быть применен остановкой службы Papyrus Server с последующим запуском.
Создание сигнального файла
Если в подкаталоге BIN основного каталога системы создать файл psalesstop (без расширения), то, увидев его, работающий процесс формирования таблицы продаж остановится занеся соответствующее сообщение в файл журнала.

Сигнальный файл при этом удаляется процессом автоматически. Заметим, что если в перед запуском процесса в каталоге будет существовать файл с таким именем, то процесс остановиться не начавшись (выполнит только небольшую предварительную работу).

Данный способ остановки удобен при использовании JobServer. Поскольку при этом нет необходимости каким либо образом открывать рабочий сеанс на серверном компьютере, на котором JobServer запускается.

Установка предельного времени работы процесса
Если вы точно знаете лимит времени, который может быть отведен процессу формирования таблицы продаж, то его можно определить в конфигурационном файле BIN/PP.INI в зоне [config] параметром PSales_MaxTime=время в секундах.

[config]
PSales_MaxTime=14400

В приведенном примере процесс должен работать не более 4 часов (4 * 60 * 60 секунд).

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

Возобновление процесса после прерывания

Система формирует таблицу так называемыми квантами. Каждый квант состоит из обработки фиксированного (или меньшего) количества наименований товаров.После обработки очередного кванта, система фиксирует информацию об этом в конфигурации прогноза продаж. Таким образом, при любом прерывании процесса система будет помнить о том, какой квант был обработан последним. Вся работа, положенная на квант, в течении которого произошло прерывание, будет потеряна.

В диалоге запуска построения таблицы продаж (рис. link), если процесс до этого был прерван, в нижней части отображается информация об этом. Если вы запустите процесс в режиме заполнения отсутствующих дней, то в действительности будет возобновлен прерванный процесс.Для того, чтобы проигнорировать информацию о прерванном процессе, следует включить флаг ✓Признак незавершенного процесса.

Режим полного пересчета данных игнорирует информацию о прерванном процессе.

Журнал заполнения таблицы продаж

Процесс формирования таблицы продаж заносит информацию о собственной работе в файл журнала с именем psales.log в каталоге журналов (по умолчанию, PPY/LOG).

Блокировка процесса заполнения таблицы продаж

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

Анализ статистики продаж

Фильтр по статистике продаж

Анализ статистики продаж позволяет увидеть таблицу выборки товаров, где для каждого показаны важные статистические характеристики: количество значений в таблице продаж, средние продажи, стандартное отклонение, коэффициент вариации и оборачиваемость. Эти характеристики приведены как в количественном, так и в суммовом выражениях. Для анализа статистики продаж выберите пункт меню Отчетность→ Анализ продаж→ Статистика по товарам. Вслед за этим, вы увидите диалог фильтра. В таблице перечислены управляющие элементы этого диалога и их смысл.

▼Группа товаров

Комбо-бокс, позволяющий ограничить выборку только одной товарной группой.

[Фильтр]

Нажатие этой кнопки открывает фильтр по товарам, в котором вы можете установить любые критерии фильтрации для получения списка товаров, по которым следует рассчитывать статистику продаж. Установка не пустого фильтра отменяет установку группы товаров в комбо-боксе, рассмотренным выше.

▼Подстановка товаров

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

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

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

▼Цикл

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

При выборе нового значения в этом комбо-боксе система автоматически рассчитывает количество циклов, умещающихся в заданный период и устанавливает это значение в поле “Количество циклов” (см. ниже). Если период до этого не был задан, то он устанавливается автоматически отсчетом одного цикла указанной длительности назад от текущей даты (включая ее).

Количество циклов
Это поле используется совместно с комбо-боксом ▼Цикл для уточнения количества циклов, по которым должен быть построен отчет.

▼Склад

Здесь необходимо указать склад, статистика по которому вас интересует. Если склад не указан, то результат будет получен по всему множеству складов, по которым строилась таблица продаж. По умолчанию, система устанавливает в этом поле текущий склад. Справа от этого комбо-бокса присутствует кнопка [], позволяющая выбрать произвольный список складов, суммарная статистика по которым вас интересует.

✓Не показывать нулевые строки

При включенном флаге вы не увидите товаров, по которым все значения нулевые. Если вы хотите увидеть товары, которых никогда не было на выбранном складе, то снимите этот флаг.
Количество точек
Фильтрующее ограничение по количеству точек.

Средние продажи (количество)
Фильтрующее ограничение по средним количественным продажам.
Средние продажи (сумма)
Фильтрующее ограничение по средним суммовым продажам.

Коэффициент вариации
Фильтрующее ограничение по коэффициенту вариации.

Сортировка

С помощью этого переключателя можно выбрать порядок сортировки таблицы анализа статистики.

Здесь следует обратить внимание на последний вариант (Количество элементов - Средние продажи). Это - специальная опция сортировки, в результате которой в верхней части таблицы будут отображены те элементы, которые долго присутствуют на остатке, но не продаются (так называемые “зависшие товары”).

Таблица анализа статистики продаж

Внешний вид таблицы показан на рис. link. Статистические характеристики товаров здесь сгруппированы в два раздела: по реализованному количеству и по сумме реализации. Пояснения требуются только для понятия оборачиваемость. Под оборачиваемостью подразумевается величина, обратная к средним продажам. Смысл этой характеристики - оборачиваемость по количеству показывает, за какое количество дней продается одна единица товара. Оборачиваемость по сумме показывает, за какое количество дней реализуется один рубль стоимости товара. Обратим внимание на то, что речь идет именно о стоимости, а не о себестоимости, поскольку статистика продаж рассчитывается в ценах реализации

Действия в таблице анализа статистики продаж

Таблица продаж товара
<Enter> Выбрав это действие, вы можете увидеть таблицу продаж выбранного товара. Это позволяет увидеть, из чего складывается статистика продаж. Подробное описание таблицы продаж товара будет приведено ниже.
Товар
<F2> Просмотр и редактирование информации о товаре.

Лоты
<F3> Показывает таблицу лотов по выбранному товару.
Положить в корзину
<Ctrl-F4>

Фильтр
<Ctrl-O> Изменение параметров фильтрации отчета. Это действие удобно использовать для изменения порядка сортировки таблицы.
Печать статистики
<F7> Вывод таблицы на печать или экспорт в другой формат (Excel, HTML и др.)

Таблица продаж товара

Таблица продаж товара (рис. link) детализирует статистику продаж по товару. Информация для этой таблицы берется непосредственно из предварительно построенной таблицы продаж. Здесь существенны только три колонки: дата, отгрузка по количеству и отгрузка по сумме. Остальные колонки необходимы для тестовой проверки механизма прогнозирования.

Действия в таблице продаж товара

Группировка операций
<F3> Показывает группировку операций по товару за день в текущей строке. Эта функция может быть использована в качестве теста для проверки правильности заполнения строки. Группировка показывается с входящими и исходящими остатками.
Печать
<F7> Печать таблицы продаж товара

Пересчет модели по товару
<F8> Это действие позволяет пересчитать таблицу продаж по выбранному товару. Функция реализована для тестирования работы таблицы продаж.
Агрегированные значения
<F9> Показывает итоговую статистику по товару за выбранный период времени. Величины, показываемые в диалоге итогов аналогичны колонкам в таблице анализа статистики продаж.

Тест прогноза
<Ctrl-T> Тестовая функция, предназначена для проверки функционирования механизма прогнозирования.
Фильтр
<Ctrl-O> См. ниже

Фильтр по продажам товаров позволяет изменить условия просмотра таблицы продаж по товару.Фильтр по продажам товаров

Период
Период, за который следует включать данные в таблицу. Если вы оставите это поле пустым, то используется период от дня начала расчета таблицы продаж по выбранному товару до дня окончания расчета.

▼Склад

Склад, данные по которому должны быть показаны в таблице.

▼Группа

Товарная группа и товар, по которому вы хотите видеть таблицу продаж. Комбо-бокс ▼Товар не должен быть пустым.

▼Товар

Цикл (дней)
Здесь можно указать количество дней, по которым следует сгруппировать значения. Если в этом поле указано значение большее единицы (ноль здесь воспринимается системой как единица), то все значения будут рассчитаны по группам, каждая из которых имеет протяженность в указанное количество дней. При этом в таблице вы увидите для каждой группы дату, соответствующую началу периода. Группировка по периодам позволяет получить статистику с меньшим разбросом значений (это хорошо видно по коэффициенту вариации).

Дата отсчета
Специальное поле, предназначенное для тестирования прогнозирования. Указав здесь дату, вы заставите систему рассчитывать статистику по циклам назад и вперед от этого дня. Если дата не указана, то циклы отсчитываются от начала периода расчета.

✓Показывать дни, в которые не было остатка

Если этот флаг включен, то в таблицу отчета будут включены дни, в течении которых товара не было на остатке. Соответствующие строки будут выделены цветом.

Прогнозирование спроса

Для прогнозирования спроса используется отчет, доступный из пункта меню Отчетность→ Анализ продаж→ Прогноз продаж. Этот отчет предоставляет возможность видеть одновременно остатки товаров на складе и прогноз спроса по каждому товару на заданный период. Благодаря этому, менеджер, отвечающий за заказ товаров поставщику, может максимально точно определить количество заказываемого товара.Остатки товаров с расчетом прогноза

Фильтр прогноза продаж

Фильтр прогноза продаж определяет форму вывода данных о предполагаемых продажах. Управляющие элементы этого фильтра следующие:
Дата заполнения таблицы
Информационное поле, показывающее дату, до которой заполнена таблица продаж. Всегда следует обращать внимание на эту дату, поскольку она определяет степень актуальности таблицы продаж. Если указанный в этом поле день далеко отстоит от текущего, то следует обновить таблицу продаж.

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

Для вашего удобства здесь предусмотрена функция, позволяющая ускорить ввод периода прогноза. Если вы хотите иметь прогноз на заданное количество дней, начиная со дня, следующего за днем расчета остатков, то введите в этом поле, выбранное количество дней и нажмите <F2> . Программа автоматически рассчитает период прогноза и установит в этом поле. Если дата расчета остатков не указана, то период будет вычислен от текущей операционной даты.

▼Склад

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

▼Группа товаров

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

[Фильтр]

▼Поставщик

Вы можете выбрать в этом комбо-боксе конкретного поставщика, тогда система покажет остатки товаров, поступивших только от этого поставщика. Здесь возможно рассогласование: если один и тот же товар приходил от нескольких поставщиков, то остаток этого товара будет показан только по одному (выбранному) поставщику, а прогноз рассчитан просто по товару. То есть, существует вероятность, к счастью небольшая, что вы закажете товар, исходя из ошибочного значения остатка.

✓Нулевые остатки

Если включить этот флаг, то наряду с товарами, которые есть на складе (в организации), будут выданы те товары, которых не осталось (или даже вообще не было на заданном складе). При установленном флажке “Нулевые остатки” не будут показаны товары, имеющие признак “Пассивный”, если их остаток нулевой. При расчете прогноза продаж с целью определения заказа поставщику целесообразно включать этот флаг.

✓Только ненулевые заказы

Показывает в отчете только те товарные позиции, по которым есть незакрытые клиентские заказы.

✓Рассчитывать заказы

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

✓Ниже минимального остатка

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

✓Ограничивать торговой матрицей

Период истощения запасов

Таблица прогноза продаж

Таблица прогноза продаж во многом аналогична таблице остатков товаров. Отличие состоит в двух колонках: остаток в днях и прогноз продаж.

Если с прогнозом продаж все более-менее ясно, то остаток в днях требует пояснения. Эта величина вычисляется как отношение остатка в торговых единицах к среднедневным продажам за весь период построения таблицы продаж. Из-за того, что этот алгоритм отличается от алгоритма расчета прогноза продаж, эти два значения могут оказаться несогласованными.

Действия в таблице прогноза продаж

Лоты
<Enter> Показывает таблицу лотов по текущему товару

Заказы на товар
<F3> Показывает таблицу заказов по текущему товару
Товар
<F2> Позволяет просмотреть и изменить информацию по текущему товару

Положить в корзину
<Ctrl-F4> Добавляет текущий товар в корзину
Добавить в корзину все товары из отчета
<Ctrl-F8>

Группировка операций по товару
<F5> Показывает отчет группировки товарных операций по выбранному товару. Предварительно запрашивается период, за который следует рассчитать группировку товарных операций.
Прогноз
<Ctrl-F9> В настоящее время не используется

Таблица продаж товара
<Ctrl-S> Выбрав это действие, вы можете увидеть таблицу продаж выбранного товара. Это позволяет увидеть, из чего складывается прогноз продаж. Подробно таблица продаж рассмотрена выше. Здесь уместно заметить, что при вызове таблицы продаж из отчета по прогнозу, условия фильтрации таблицы изначально определяются так: цикл равен количеству дней периода прогноза, дата отсчета равна дню, предшествующему периоду прогноза.
Печать
<F7> Печать отчета по прогнозу продаж

Итог
<F9> Показывает итоговые значения таблицы остатков товаров

Расчет заказа поставщику

Для расчета рекомендуемого заказа поставщику используется специальная форма, доступная через пункт меню меню Отчетность→ Анализ продаж→ Расчет заказа поставщику. Эта форма позволяет использовать две различные методики для расчета:

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

    Форма расчета заказа поставщику является комбинированным отчетом, объединяющем в себе товарные остатки, статистику продаж и, собственно, расчет рекомендуемого к заказу количества товаров.

    Принципы работы расчета заказа

    Первый и самый главный вопрос при работе с автоматическим заказом звучит примерно так: “как система определяет сколько товара мы продадим за будущий период?”.Выше в этом разделе мы достаточно подробно рассмотрели таблицу продаж и методы расчета прогноза. Здесь мы остановимся на вопросе определения прогнозируемого спроса при расчете заказа.

    И так, когда пользователь формулирует запрос на заказ поставщику для заданной выборки товаров (по поставщику, группе и др.) для каждого из товаров система пытается выбрать фиксированное количество точек достоверных продаж. Мы обсуждали уже это понятие - речь идет о днях, в течении которых товар присутствовал на заданном складе или группе складов.

    Фильтр расчета заказа поставщику

    Расчет заказа поставщику

    ▼Поставщик

    Если выбран поставщик, то форма заказа будет рассчитываться только по тем товарам, которые когда-либо приходили от этого поставщика.

    Это правило может быть подкорректировано следующим переключателем.

    Использование артикулов по поставщику

    Определяет правило ограничения выборки товаров в зависимости от наличия товарного кода, привязанного к поставщику.

    ○Не применять

    Товарные коды по статьям никак не влияют на выборку товаров для отчета.

    ○Дополнить товарами, имеющими коды по поставщику

    В дополнение тем товарам, которые когда-либо приходили от выбранного поставщика в отчет включаются те позиции, которые имеют коды, связанные с этим поставщиком.

    ○Ограничить товарами, имеющими коды по поставщику

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

    ▼Группа товаров

    Выбрав в этом комбо-боксе группу, вы ограничите отчет товарами, принадлежащими только этой группе.

    [Фильтр]

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

    ▼Склад

    Здесь следует выбрать склад, остатки и продажи по которому необходимо анализировать. Если вы склад не укажете, то остатки будут рассчитаны по всем складам предприятия, а статистика продаж рассчитана не будет, поскольку существующая технология анализа продаж предусматривает обязательный выбор конкретного склада.
    Следующие три поля
    используются в том случае, если вы хотите использовать методику расчета заказа, основанную на средних продажах за один или несколько предыдущих периодов. В случае если вам необходим расчет, основанный на методике статистического прогнозирования, то эти поля заполнять не следует.

    Дата отсчета
    Здесь следует указать дату, от которой будут отсчитываться периоды продаж (назад). Если, скажем, вы указали здесь 30/09/2004, то предыдущие продажи будут рассчитываться до этой даты включительно.
    Цикл
    В этом поле можно выбрать продолжительность цикла расчета предыдущих продаж. Форма вывода результирующей таблицы в случае указания цикла расчета отличается от той, которая будет показаны, если циклы не выбраны.

    Количество циклов
    Если вы выбрали величину цикла продаж, то в этом поле введите количество циклов расчета. Например, если вы хотите увидеть продажи за четыре недели до 30/09/2004 включительно, то дату отсчета выберите 30/09/2004, цикл - неделя, количество циклов - 4.

    Сортировать по

    Позволяет отсортировать отчет по одному из следующих критериев:

    ○Товару

    ○Количеству элементов

    ○Средним продажам

    ○Средней цене

    Дата расчета остатков
    По умолчанию, рассчитываются текущие остатки товаров. Если это вас не устраивает, то в этом поле можно указать, на какую дату следует рассчитать остатки. Подробнее о нюансах расчета товарных остатков можно прочитать в разделе, посвященном этому вопросу.

    Поля “Период заказа” и “Период доставки”

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

    Таблицы расчета заказа поставщику

    Вид таблицы расчета заказов поставщикам по первому методу (статистическое прогнозирование) показан на рисунке справа. Здесь колонка “Прогноз продаж” рассчитывается исходя из всей статистики продаж на основе метода, определенного в конфигурации прогнозирования. В случае, если в фильтре расчета заказа указаны циклы, то таблица будет иметь несколько иной вид (рис. link).

    Здесь колонка рекомендуемого заказа рассчитывается исходя из продаж за указанные периоды. Колонки, показывающие продажи по циклам содержат следующую информацию: дата начала цикла, количество достоверных значений продаж, продажи в торговых единицах (обратите внимание, что в отличии от предыдущей таблицы, здесь показаны именно продажи за цикл, а не среднедневные продажи).

    Действия в таблице расчета заказа поставщику

    Таблица продаж товара
    <Enter> Выбрав это действие, вы можете увидеть таблицу продаж выбранного товара. Это позволяет увидеть, из чего складывается прогноз продаж.
    Товар
    <F2> Позволяет просмотреть и изменить информацию по текущему товару

    Лоты
    <F3> Показывает лоты по товару, которому соответствует текущая строка таблицы.
    Редактировать количество
    <F8> Эта функция дает возможность изменить рекомендованное к заказу количество товара в текущей строке.

    Положить в корзину
    <Ctrl-F4> Добавляет текущий товар в корзину. Подробно о работе с товарными корзинами см. стр. link.
    Добавить в корзину товары, подлежащие заказу
    <Ctrl-F8> Переносит в выбранную корзину все товары, которые, согласно отчету, следует заказать поставщику. Вместе с товаром переносится и количество, которое рекомендуется заказать.

    Фильтр
    <Ctrl-O> Это действие позволяет изменить условия фильтрации отчета.
    Создание закупки
    <Ctrl-P> В результате вызова этой функции будет создан драфт-документ закупки, который вы можете отправить поставщику.

    Документ будет создан при выполнении следующих условий:

  • В конфигурации прогнозирования спроса должен быть определен вид операции закупки товаров (стр. link).
  • В фильтре расчета заказа должен быть задан только один терминальный склад (то есть, если вы зададите один группирующий склад, который фактически разбивается на несколько, то данная функция не сработает).
  • Если ваша текущая конфигурация предполагает использование товарной матрицы, то в формируемый документ закупки не попадут номенклатурные позиции, не принадлежащие матрице для выбранного в фильтре склада.

    Печать статистики
    <F7> Вывод отчета на печать или экспорт.