Wednesday, October 20, 2010

Cross-Docking with GP

Cross-docking is the act of transferring goods directly from an incoming receipt to an outgoing order without putting the stock away. Obviously, cross-docking can improve your inventory turns, reduce material handling costs, and improve customer satisfaction through the quicker delivery of orders.

So how can you cross-dock with Dynamics GP. The first step is to begin using the Backordered Items Received report. This report prints out when a purchasing receipt is posted and lists all the items on the receipt that are backordered on a sales order. This is a step in the right direction but the report has a couple issues:

1. It only prints after the receipt is posted. Many companies do not post receipts until the goods are put away to keep the bin quantities accurate.
2. It is a paper report. Are your receiving people realistically going to print and review a paper report after they post the receipt?

A more proactive approach can be implemented using the purchase order dates discussed in an earlier post. If you know the expected receipt date of an item, you can create a report or smartlist showing items expected in the next few days that are also backordered sales order items. This report or smartlist can be posted daily in the receiving department to alert personnel to cross-docking opportunities.

As I final note, I would suggest that if you do not have some cross-docking opportunities, you are carrying too much inventory. You cannot afford to have everything your customers want in stock at all times. But that is another post…

Tuesday, October 5, 2010

Easy Expediting and Vendor Performance Management

Expediting purchase orders and monitoring vendor performance are key to increasing inventory turns and improving your return on assets. Dynamics GP provides some easy to use, but often overlooked tools for monitoring expected and actual delivery dates.

Each line of a purchase order has a required date and two vendor promised dates. These dates default to the purchase order date but should be entered and maintained by the purchasing department. A standard smartlist is provided to show overdue purchase order lines.

The system also records the first and last receipt date for each purchase order line. This allows you to report on a vendors historical performance by comparing the required and/or vendor promised dates to the receipt dates and calculating the number of times a vendor is late on delivery and the average lead time for each item.

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

Perplexing GP Questions

There are quirks and annoyances in Dynamics GP like all systems but some design decisions are more puzzling than others. One thing in purchasing that has always bugged me is that there are no user defined fields available on a purchase order. I know that I can now use Extender to add fields but most other transactions and cards have at least 2 user defined fields.

Then to make it more bizarre, receiving transactions are blessed with 35 user defined fields including 20 dates. Who needed 20 user defined dates on a receiving transaction? And how long does it take them to receive items?

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.

Thursday, September 23, 2010

GP and Management Reporter service packs

Dynamics GP 2010 service pack 1 was released today and Management Reporter 2.0 service pack 1 was released last week. Let the upgrading commence.

No company makes money on special orders

No company makes money on special orders. If a customer calls you and asks for a product that you don't stock, the best P&L decision you could make is to hang up the phone as quickly as possible.

Estimated costs of processing a purchase order vary between $50 and $300+ dollars. Lets use the low side of the range and assume a PO will cost your company $100. Even at 50% margin that means you should refuse all special orders under $200. But what if I combine it on another PO? Ok, what if the customer returns or refuses the item? Will you be able to return it to the vendor? Will it wander around your warehouse with no bin home until someone finally throws it away?

So I have come to the conclusion that the special order department should be a cost to the sales department. They are the only ones that have anything to gain from special orders through customer loyalty. If special orders are really important to your company, I am sure your salespeople will not mind the reduction in commission to fund the special order department.

While you are making changes in special orders, do some analysis on which customers use your special order service the most. Are they your best customers in sales and margin dollars or are they cherry picking you for your product research specialists?

In summary, I would like to stress the importance of tracking special order sales and costs separate from normal sales. Each sales order and PO related to a special order should be identifiable. In Dynamics GP, the sales orders should have a separate document ID and PO's should be committed to these orders. Use allocation accounts to apply shared expenses to the special order department to get a real picture of how much this service costs you.

Wednesday, September 22, 2010

Purchase Order Statuses

Dynamics GP has 6 statuses for purchase orders and purchase order line items:

New - The purchase order has been entered but not released to the vendor. Interestingly, new purchase orders do not update the on order quantity of an item but can be received against.

Released - The purchase order has been entered and released to the vendor. In a throwback to the 1970's, Dynamics GP considers a PO released to the vendor when printed. The printing process updates the on order quantity for the PO line items.

Received - Purchase order line items have been received but not fully invoiced.

Change Order - The purchase order was entered, released, and then changed but has not been re-released. Change order purchase orders can be received against but changes to quantities will not be reflected in the on order amounts until the PO is re-released (printed).

Cancelled - The purchase order has not been fully received or invoiced but no further activity is anticipated. For example, the purchase order was for 100 widgets and 99 have been received and invoiced. The PO would be cancelled if the receipt of the remaining 1 widget was not anticipated.

Closed - All line items on the PO have been received and invoiced or cancelled. These PO's can be removed from the system using the Remove Completed Purchase Orders window.

PO Commitments and Historical Sales Documents

A couple of my clients have experienced an interesting issue lately. Purchase order are tied to sales documents that are already moved to history. This puts the PO in a limbo state where it cannot be closed or cancelled. I don't know for sure the exact sequence of events that causes this but here is how it can be resolved:

1. Delete the records in the SOP60100 table related to the offending PO number. (Standard disclaimer about modifying SQL data applies here. If you are unfamiliar with SQL queries and/or Dynamics GP table structure, please call your partner for assistance.)

2. Reconcile the offending PO number.

3. Edit the PO and change the status to Cancelled.