|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Здравствуйте, Подскажите стандартный алгоритм построения отчета о неликвидах. Исходные данные: период, время жизни поставки, уровень текущего остатка. Буду также признателен за ссылки на инфо об маркетинговом анализе. -- С уважением, Евгений. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 13:57 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
столько профессионалов и никто не знает?? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2006, 17:52 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Как вариант. Исходные данные: Дата поставки, срок реализации, процент выбытия. Неликвиды определяются как товар у которого за заданный период реализации (период реализации - срок от даты поставки) процент выбытия менее заданного значения. Товар №1 Дата поставки 01.01.06 Количество 100 шт Продается 68 дней Продано 40 шт Процент выбытия 40% Коэффициент ликвидности (относительный) 0.59 (1 это 100% за 100 дней, сами определяете). Порог ликвидности - тоже сами. Желательно по группам товара, чтобы не сравнивать чашки с диванами. Учитывайте, что есть товар, который может законно присутствовать, несмотря на плохую ликвидность, сопутствующий ассортимент. В общем цифры нужно анализировать. Стандартный рецепт - только от головной боли. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2006, 18:25 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Если в базе данных такая структура: 1) Материал (код, название) 2) Остаток (кол-во) 3) Дата поступления на склад (или еще лучше дата поступления на предприятие, т.е. возможно материал перекидывали со склада на склад внутри предприятия) Берет запрос по этим данным с фильтром Дата поступления < Пороговой даты. Например, Сегодня 01.04.2006 Фильтр: "Дата поступления < 01.04.2003" Мы получим список МТР, лежащих на складе без движения 3 года. Этот срок (пороговую дату) спросить у тех, кто заказал данный анализ. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2006, 12:57 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Могу предложить свое решение проблемы: Ликвидность товара напрямую зависит от показателя "средняя продаваемость в день". Этот параметр берется по каждому товару как отношение всего проданного товара за интересующий период к количеству дней, КОГДА ТОВАР БЫЛ В МАГАЗИНЕ ( и следовательно мог быть продан). Значит, самое главное для Вас - это вычислить по каждому товару данный показатель на основе статистических данных (информации о продажах) за интересующий период. Для того, чтобы уточнить динамику продаж (увеличивается/уменьшается), нивелировать (или выяснить) сезонные скачки и т.д., "среднюю продаваемость" необходимо вычислять за несколько показательных периодов: например, за весь календарный год, за последние 3 месяца, за такие же 3 месяца прошлого года и т.д. Для анализа с учетом последней динамики можно вычислить среднее значение между, например, продаваемостью за все годы, последний год, последний квартал и последний месяц. ВАЖНО: т.к. нам необходимо спрогнозировать т.н. "текущие" (или "незапланированные") продажи, то необходимо исключить из анализа "разовые" продажи (например продажи по ранее сделанным заказам, а зачастую и предоплаченные). После вычисления "средней продаваемости в день" можно перейти к анализу ликвидности остатков на складе: например, с помощью коэффициента "средняя продаваемость/текущий остаток". Вычислите этот коэффициент по каждому товару, и Вы увидите, через сколько дней предположительно будет распродан данный товар. Можете установить для себя некоторую "сигнальную" величину этого коэффициента (типа, до 2-х недель нормально - остальное надо внимательно просмотреть). "Сигнальный" коэффициент можно установить и в зависимости от группы товара. Такой анализ также позволяет вычилить допустимый "критический остаток" товаров на складе - минимально допустимое количество товара данного вида, с уменьшением которого, данный товар необходимо заказать/закупить у поставщиков для обеспечения текущей торговли, учитывая сроки поставки. Основная проблема здесь - это вычислить "среднюю продаваемость в день" для каждого товара, а именно, то самое количество дней наличия товара в магазине за интересующий период! Кроме переборапо каждому рабочему дню за запрашиваемый период мне ничего придумать пока не удалось :(. Но и это хоть и медленно, но работает! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2006, 14:15 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Roman V.а именно, то самое количество дней наличия товара в магазине за интересующий период! Кроме переборапо каждому рабочему дню за запрашиваемый период мне ничего придумать пока не удалось :(. Но и это хоть и медленно, но работает! Не понял проблемы. Имхо вполне тривиальный SQL для любого сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2006, 15:39 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
хм .... если sql запросом, то да ..... а если встроенным в КИС функционалом? хотя об этом я и не подумал - попробую запросик написать, явно будет быстрее, только нет возможности учесть все особенности настроек у клиентов :( ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2006, 16:00 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Roman V.хм .... если sql запросом, то да ..... а если встроенным в КИС функционалом? Если встроенный в КИС функционал не позволяет нормально решить тривиальную задачу, я бы изо всех сил постарался выкинуть такую КИС. Roman V.только нет возможности учесть все особенности настроек у клиентов :( А какие особенности настройки клиентов влияют на данные в этом отчете? Типа "у Васи выходной суббота, у Леши вторник, поэтому отчет по неликвидам для одного и того же склада даст у них разные результаты"? Я таки подозреваю, данные в целом должны быть одинаковы (от пользователя могут идти параметры отчета - глубина анализа, фильтры итп). Ну а оформление этих данных - это уже действительно может быть "особенности настроек". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2006, 10:25 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Ну, я думаю, технические подробности не совсем относятся к теме "Алгоритм постоения отчета" - его можно реализовать на разных платформах (хоть в Excel'е). softwarer Если встроенный в КИС функционал не позволяет нормально решить тривиальную задачу, я бы изо всех сил постарался выкинуть такую КИС. Тривиальность задачи расчета остатков по ВСЕМ ТМЦ за КАЖДЫЙ рабочий день зависит от способа хранения и расчета остатков в БД. Я встречал разные реализации, но в большинстве случаев ОПЕРАТИВНЫЕ остатки приходится всегда рассчитывать тем или иным способом. И скорее всего, "тривиальный" SQL запрос не будет особенно отличаться от цикла по рабочим дням, используя встроеннный функционал. Это не недостаток КИС. Другое дело, если имеются не ОПЕРАТИВНЫЕ остатки, а уже выгруженные, расчитанные и неизменные данные за большой прошлый период в какую-то базу, оптимизированную для таких статистических расчетов, например OLAP. Здесь конечно все может быть более оптимально. softwarer А какие особенности настройки клиентов влияют на данные в этом отчете? Типа "у Васи выходной суббота, у Леши вторник, поэтому отчет по неликвидам для одного и того же склада даст у них разные результаты"? Я таки подозреваю, данные в целом должны быть одинаковы (от пользователя могут идти параметры отчета - глубина анализа, фильтры итп). Ну а оформление этих данных - это уже действительно может быть "особенности настроек". Когда у пользователя в руках "конструктор", то сложно бывает даже предположить, какие данные в БД вообще являются "складскими" :). Зато "изнутри" КИС все ясно и понятно. Но повторюсь, это всего лишь технические подробности реализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2006, 11:18 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Стандартные методы - это АВС и XYZ анализ. Теория АВС такая: 20% товаров обеспечивают 80 % от общего оборота. и наоборот, остальные 80% товаров обеспечивают 20% от оборота XYZ - объем продаж по месяцам. Определеяет среднеквадратичное отклонение и по этому параметру устанавливает товары по регулярности продаж. X - самые стабильные продажи Y - средней стабильности Z - нестабильные продажи. Затем товары сводятся по этим отчетам AX - самые рентабельные и стабильные продажи ... CZ - самые нерентабельные и нестабильные продажи. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2006, 11:28 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Roman V. Тривиальность задачи расчета остатков по ВСЕМ ТМЦ за КАЖДЫЙ рабочий день зависит от способа хранения и расчета остатков в БД. Безусловно. Но, полагаю, Вы согласитесь с тем, что это стандартнейшая задача для любой складской системы, и она должна так или иначе решаться ядром системы, решаться во-первых удобно для "кастомизатора" (или кто там дописывает этот отчет), а во-вторых эффективно. То есть должна быть например заранее созданная вьюха, из которой автор отчета может эти остатки просто взять (и знать, что они придут достаточно быстро). Roman V.И скорее всего, "тривиальный" SQL запрос не будет особенно отличаться от цикла по рабочим дням, используя встроеннный функционал. С какой точки зрения? Если делать совсем с нуля, то примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
Теперь, если хочется посмотреть динамику остатков, простой запрос (надеюсь, простите отрицательные остатки - лень было вмешиваться в генерацию данных): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
Если хочется посмотреть, сколько дней в апреле присутствовал на складе тот или иной товар, легко используем предыдущий запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Roman V.Это не недостаток КИС. Недостаток КИС - гипотетическое отсутствие нормального механизма решения типичной задачи. Roman V.Другое дело, если имеются не ОПЕРАТИВНЫЕ остатки, а уже выгруженные, расчитанные и неизменные данные за большой прошлый период в какую-то базу, оптимизированную для таких статистических расчетов, например OLAP. Здесь конечно все может быть более оптимально. Хм. Это напоминает стрельбу из пушки по воробьям. Остатки, безусловно, нужны в OLAP-е, но незачем перекладывать на него каждую встречную задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2006, 12:20 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
sergey888Стандартные методы - это АВС и XYZ анализ. ..... Затем товары сводятся по этим отчетам AX - самые рентабельные и стабильные продажи... Да, но для связи с параметром "ликвидность" придется такой анализ провести не только по продаваемости, но и по объему "замороженных" в складских запасах средств, по занимаемом у складскому месту и т.д. Вообще, тема анализа данных неисчерпаема :) ... вплоть до специальзированных "Data mining". Я просто предложил довольно простой отчет, который ОБЯЗАТЕЛЬНО требует человеческого контроля - для небольших складов и магазинов очень даже не плохо. Только забыл сказать, что из анализа "на каждый день" разумно убрать товары, общий расход которых за период меньше начального остатка - так будет быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2006, 12:23 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
softwarer Но, полагаю, Вы согласитесь с тем, что это стандартнейшая задача для любой складской системы, и она должна так или иначе решаться ядром системы, решаться во-первых удобно для "кастомизатора", а во-вторых эффективно. Соглашусь! Над этим и работаем :) softwarer Если делать совсем с нуля, то примерно так:... Где-то так я наверно и сделаю хранимую процедуру, которую легко вызвать "изнутри". Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2006, 12:39 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
softwarerТеперь, если хочется посмотреть динамику остатков, простой запрос Единственно стоит чуть доработать, чтобы интервалы не пересекались и соответственно count возвращал нужный результат и не учитывал дважды дни пересечений. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2006, 16:04 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Могуч оракул в умелых руках!!! Пока проверял арифметику - Вы исправились. softwarerЕдинственно стоит чуть доработать.... Сегодня уже не успею, а в понедельник проверю на рабочей базе (за какой нибудь короткий месяц - ориентировочно 50тыс. товаров попадающих в movements при размере выборки в 700тыс. записей). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2006, 23:59 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Nenavision На глаз - индекс по (item_id, movement_date, value), и оно нормально отработает и на бОльших объемах. Но в целом в случае Oracle организация работы с остатками - большой и интересный вопрос, по которому у меня нет сформированного мнения (в том числе просто потому, что не доводилось решать такой задачи). Для истории остатков напрашивается применение materialized view, при больших объемах - партиционированных, но самый интересный вопрос имхо - расход "последних" экземпляров товара. То есть: на складе есть, допустим, 5 мешков сахара; выписывается (и пока еще не commit-ится) расход на три мешка. В этой ситуации расход на четыре мешка должен получить отлуп "не хватает товара", не ожидая commit-а первой транзакции, в то время как rollback первой должен вернуть товар в доступные, и все это - без ожиданий. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2006, 11:46 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
softwarer Nenavisionно самый интересный вопрос имхо - расход "последних" экземпляров товара. То есть: на складе есть, допустим, 5 мешков сахара; выписывается (и пока еще не commit-ится) расход на три мешка. В этой ситуации расход на четыре мешка должен получить отлуп "не хватает товара", не ожидая commit-а первой транзакции, в то время как rollback первой должен вернуть товар в доступные, и все это - без ожиданий.Дык, кто первый закомитил, того и сахар. Если резервировать, опять таки, кто первый закомитил резервирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2006, 10:52 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
Дык, кто первый закомитил, того и сахар. Это не всегда хорошо. Представьте себе, что набирается документ на пятьдесят-сто позиций. В этой ситуации резерв для первых позиций стоило бы наложить сразу же, но при этом, в том маловероятном случае, если документ не будет довведен, этот резерв должен откатиться. И при этом - не мешать другим. Интересная задачка. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2006, 12:03 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
softwarerПредставьте себе, что набирается документ на пятьдесят-сто позиций. В этой ситуации резерв для первых позиций стоило бы наложить сразу же, но при этом, в том маловероятном случае, если документ не будет довведен, этот резерв должен откатиться. И при этом - не мешать другим. Интересная задачка.А чем документ в 100 позиций клиента 1 лучше документа в 49 позиций клиента2? Допускаю, могут быть формальные критерии, которые можно проверять на клиенте, и как только - автоматом резервировать. Но суть одна кто первый выполнил критерии , кто первый нажал кнопку. Сколько времени держать резерв и как снимать (именно снимать, специальной транзакцийей, а не откатывать транзакцию резервирования) - тоже можно установить критерии автосянтия . Но в любом случае транзакциии БД не должны длиться пока клиент что-то вводит. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2006, 12:42 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
ModelRА чем документ в 100 позиций клиента 1 лучше документа в 49 позиций клиента2? В том-то и дело, что ничем. Куда лучше постановка вопроса "чем конкретная позиция одного документа лучше конкретной позиции другого документа". Правильный ответ - раньше введена и успела наложить резерв. Введена именно позиция, а не документ в целом. В то время как commit я предпочту выполнять для документа в целом. ModelRи как снимать (именно снимать, специальной транзакцийей, а не откатывать транзакцию резервирования) Это один из возможных подходов. Но я бы всерьез обдумал другие варианты - нехорошо, когда документ не может быть выписан из-за того, что задерживается снятие резерва. ModelRНо в любом случае транзакциии БД не должны длиться пока клиент что-то вводит. Не надо выдавать за абсолютную и универсальную правду то, что таковой совершенно не является. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2006, 13:26 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
softwarerНо я бы всерьез обдумал другие варианты - нехорошо, когда документ не может быть выписан из-за того, что задерживается снятие резерва. Очень хорошо - значит не зря резервировали. Точнее наверно, не выписан а исполнен. Выписать можно, но получить по нему - облом, резерв не разрешает. softwarer ModelRНо в любом случае транзакциии БД не должны длиться пока клиент что-то вводит. Не надо выдавать за абсолютную и универсальную правду то, что таковой совершенно не является.Делал по-разному. Сейчас склоняюсь к тому, чтобы считать универсальной правдой. По теме, про неликвиды. Возможно, в неликвидах полезно выделять те, которые хотя бы пытались продать, т.е. имеются записи про резервирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2006, 14:08 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
ModelR Возможно, в неликвидах полезно выделять те, которые хотя бы пытались продать, т.е. имеются записи про резервирование. А как попытка продажи влияет на ликвидность? Да и вообще не стоит полностью доверять статистическим данным - это всего лишь подсказка. Грамотный менеджер/товаровед гораздо ценнее, так как иногда может сразу сказать, что закупленный 5 минут назад товар - 100% будущий неликвид, и надо уже сейчас думать, куда его девать :). И только он скажет, что "эти два огромных и безумно дорогих перфоратора не *неликвиды*, а *ассортиментный товар*, который позволяет нам удачно продавать сотни мелких перфораторов и дрелей" :). (это конечно относится к магазинам, а не складам ) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2006, 15:08 |
|
Алгоритм постоения отчета о неликвидах
|
|||
---|---|---|---|
#18+
ModelRОчень хорошо - значит не зря резервировали. Хм. Не уверен, что клиент, которому не удается взять товар, который вот он - лежит на складе и на него никто не претендует - согласится с тем, что это хорошо. ModelRТочнее наверно, не выписан а исполнен. Это уже вопрос подхода. Если мы разносим эти стадии, значит автоматом отходим от попозиционного резервирования, о котором я в данном случае говорю, и тогда действительно все проще - резервируем по кнопке "OK", commit и все дела. ModelRДелал по-разному. Сейчас склоняюсь к тому, чтобы считать универсальной правдой. Хм. Не так давно и здесь же я обосновывал как раз то, что можно обойтись и без длинных, и без искусственно разбитых на части транзакций, и по-моему не все собеседники мне поверили :) ModelRПо теме, про неликвиды. Возможно, в неликвидах полезно выделять те, которые хотя бы пытались продать, т.е. имеются записи про резервирование. Я бы отметил еще один момент. Если имеется партионный учет, можно просто искать партии, не израсходованные в ожидаемый срок (возможно, зависящий от величины партии). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2006, 15:38 |
|
|
start [/forum/moderation_log.php?user_name=reiler]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
others: | 631ms |
total: | 944ms |
0 / 0 |