Showing posts with label inventory. Show all posts
Showing posts with label inventory. Show all posts

Friday, October 1, 2010

Dead Stock Walking

So you went through all the trouble of identifying your dead stock, appointed someone to get rid of it, finally got it out of your warehouse and next week a replenishment order for the same dead stock shows up. Its hard to blame the purchasing people since they saw demand and wanted to make sure you were stocking the things that sell. What could you have done better?

In Dynamics GP, there are two safeguards you can use to avoid replenishing dead stock. First, as soon as the item is identified as dead, change the inventory type to discontinued. This will prevent the item from being added to a purchase order and allow you to delete it at year end if desired.
Second, all dead stock sales should be on a separate document type in Sales Order Processing and the line items should have the exceptional demand box checked. This will allow you to easily identify these sales and remove them from any replenishment calculations.

Thursday, September 30, 2010

Effective Inventory Item Ranking

Jon Schreibfeder is an inventory guru who has written several white papers for Microsoft and provides many of his articles for free on his website. If you are responsible for inventory in your organization, these articles can make you look like a genius.


His article on item ranking proposes a 3 way ranking system for items based on total cost of goods sold, number of hits, and profitability. Dynamics GP only stores one rank and provides 4 methods of calculating this rank using the Item ABC Analysis Routine:


















The Usage Value option would rank item based on total cost of goods sold for a time period but to apply the other rankings requires some SQL work.

Hits: The number of times an item has been sold is calculated from the SOP30300 table using only non-voided invoices.

select items.itemnmbr, items.itemdesc, isnull(soplinesum.hits,0)
from iv00101 as items
left join (select COUNT(itemnmbr) as hits, itemnmbr from sop30300 as a
join sop30200 as b on a.soptype = b.soptype and a.sopnumbe = b.sopnumbe
where b.soptype = 3 and b.voidstts = 0
group by a.itemnmbr) as soplinesum
on items.itemnmbr = soplinesum.itemnmbr

Profitability: The query to calculate item profitability is similar but uses extended price and cost to return a sum of gross profit by item.

select items.itemnmbr, items.itemdesc, isnull(soplinesum.profit,0)
from iv00101 as items
left join (select sum(a.xtndprce-a.extdcost) as profit, itemnmbr from sop30300 as a
join sop30200 as b on a.soptype = b.soptype and a.sopnumbe = b.sopnumbe
where b.soptype = 3 and b.voidstts = 0
group by a.itemnmbr) as soplinesum
on items.itemnmbr = soplinesum.itemnmbr


Now the real fun begins. The results from these queries can be exported to Excel for analysis. Create a formula that returns the percentage of total hits or profit for each item and then sort by that percentage. This will give you a basis to begin assigning ABC ranks by hits and profitability.

If you want to store all 3 ranks in Dynamics GP consider using inventory categories or extender fields.