The Shipping Enigma

Consumers like I once was think that a shipment is a box with an address. You have a product, you put it in the box, you put the address on it, and you put it on the truck. If things were that simple at Acme, I would not be working twelve hour days to try to come up with the data to prove to other people in the factory that we have shipped everything that we are able to ship.

Important clients are upset with our on-time delivery. Important corporate initiatives to reduce money tied up in inventory are frustrated with the piles of inventory that remain on the books at critical accounting junctures. What is going on here?

Let’s start with the customer order, made up of line items. A line on an order is a single item and quantity. The same item can appear on multiple lines of an order. An order can be made up of any number of lines (I am not sure if this includes zero or not). A shipment can be made up of any number of orders, and any number of lines from those orders; perhaps half on the lines on Order 123 and three lines from Order 456, and one more line from Order 789, provided they all have the same ship-to address.

Since an entire order may not go out on a single shipment, there is also an invoice, which is the intersection of an order and a shipment. So a shipment will have many invoices if it has many orders, and an order may have many invoices if it was shipped at various times.

Then there is also the bill of lading, which tells each truck what they have in a general way, and a report that tells us what we shipped in a given day.

The contents of the shipment are described completely only by the pick/pack. The pick sheets are used by the factory workers and the packing sheets are sent on with the order. Their different uses give them slightly different formats; the picking sheets are sorted and grouped by item location, and if the same item appears in multiple places a single order line can be split into two or more pick lines that do not even appear on the same sheet of paper. The packing sheets, which serve as invoices, must keep distinct orders on distinct sheets, so sometimes what fits on one pick sheet must be printed on two pack sheets.

The pick and pack sheets are printed out on two printers that sit side by side, and they have to be collated together by a worker who understands both the location codes and the parts. Since spare parts are picked right off of the assembly lines and the assembly lines are designated by number, but without any particular segregation, you have to know which assembly line is in which area. But sometimes the location code is very generic and you have to simply recognize the part as a Type A tool part or a Type B tool part. Anyway, the pick/packs need to go into the slot for the appropriate picking action.

Parts can be located in the stockroom, possibly in several places, and on the assembly line, or several assembly lines, and although the pick sheet will suggest a location to pick from it will also list the alternative locations for your convenience. Some of the locations may be completely obsolete. The count at any given location is very likely to be off, and even the total count does not have a very satisfying accuracy rate. So the pickers have to go on their experience and their persistence to track down some spare parts, and they risk being told by the assembly line managers not to take the parts because they are needed for production.

If the order is for spare parts and finished tools, the spares pickers need to hand of the order to the tool pickers. If the order includes any tools or spares from the special sub-factory, it has to be given to them before any of the standard tools or spares are picked.

Some spare parts can go in plastic bags. Others need to go in bubble bags. Some require moisture-absorbing pellets and others don’t. Some customers require special treatment for their parts. Sometimes the work is done by temporary workers who have no prior knowledge of the parts or the locations or the special customers.

Tools come off the assembly lines in boxes, but they have to be put inside other boxes for shipment. The choice of exterior box, or sleeve, depends on the type and quantity of tool being shipped. Some of the permutations and the resultant sleeve are spelled out on a packing instruction card, but certainly not all; and they refer to box numbers, that is, the number of the tool’s box, and some of the boxes do not have the tool number printed on them.

I never used to understand why places like Amazon seemed to have only one or two box sizes, but it makes perfect sense now. You can save a lot of time by knowing which of two boxes to use without a moment’s hesitation.

The picking sheet is a white sheet, part of which is custom-cut stickers, designed for getting jammed in printers. The pack sheet is colored. Unless this is an order going to another facility in the company, in which case the two different sheets are used for opposite purposes, because nothing is done the same for orders going to other sites in the company. They exist in a parallel universe, theoretically, which causes great problems in reality, since both kinds of orders compete for the same physical products.

There is an ID number that appears on the pick sheet and on the pack sheet (unless it is an inter-company order, of course), and as you might be able to guess, this is the basic unit of information in the shipping department. It does little good to speak of orders or customers or products or even carriers without knowing what the shipment in question is.

When an order is all packed up and ready to go it is run through our Shipper software, which records the shipment ID number along with other data like shipment weight and carrier tracking number. The Shipper software feeds this information back to our primary Manufacturing software, and that’s how our primary software knows that the shipment is complete.

Now, pay attention here: the shipment ID is generated by the Manufacturing software. Got that? And the manufacturing software will not allow more than one shipment ID to be active for an order at any given time. If there is only one little part on one line of an order available for shipment at 8:00 am, that is the only thing that will drop for pick on that order at that time. If the rest of the order, for hundreds of tools let’s say, becomes available at 8:02 am, it cannot drop for pick until the previous shipment ID has run through the Shipper software.

Since that exclusivity is enforced by order number, a different order for the same customer may have been consolidated to the same shipment ID by the Manufacturing software, perhaps an order that takes a long time to pick. So the one little line on that big order will hold up the entire order until it gets all the way through the picking and packing process.

Once that shipment ID is fed back to the Manufacturing software, it is a simple matter to look up that shipment in the future. But if the shipment has printed out and has not yet been successfully run through the Shipper software, it takes the Manufacturing software that generated the number a good solid ten minutes to come up with a list of possible shipment ID numbers for a given order number. If you already have the shipment ID number, the Manufacturing system can bring up the details of the shipment in a blink of an eye; but if you only know that some part of a given order is somewhere in the process of getting shipped, the system will have to check and see all the different shipment ID’s that have been associated with that order, at any point in time; which could be a long time, if a part has been out of stock for a while or a customer placed an order with different due dates on different lines for the range of a month.

The Manufacturing software has a report you can run that will show you all of the orders that are currently printed for pick and what the dollar value of that pick is and when it printed. It does not show you the shipment ID number. Using this report, one can easily see that there are very valuable orders that have been printed for days that have not shipped. If one is in charge of reducing cost of inventory, one can easily use this report to become upset.

But remember, since these are orders that have not shipped, it will take ten minutes per order number to get a shipment ID number. And once you have that shipment ID number, you will have to look at all the different places in the chain of shipment to see if the order is there. Remember, too, that if you do this during the day, the shipment papers are moving around–people are out on the factor floor are picking spares, or they just dropped off the spares to have the tools picked, or they have boxed it all up and it is waiting in queue to be shipped.

If you check all of that paperwork and do not find the shipment ID, and if you are confident you did not overlook the number by means of paperwork catching on one another’s staples or your eyes crossing or you forgetting which number you were looking for, then you can reasonably assume that the system has had some kind of error. I just recently heard the suggestion that perhaps the workers are typing information into the Shipper system, somehow causing it to report success but fail to update the Manufacturing system. Of course the solution there is to tell our workers to slow down.

Now let’s say that you have let the system spend ten minutes finding the shipment ID number for you, and then spent twenty or forty minutes looking through the paperwork, and you have decided that the system made an error. If you took that shipment ID number to the Shipper software and double-checked and did not get any record of shipment, you have no proof of shipment so you have to rescind the pick status and let the order drop again.

So first you must bring up one screen and delete the shipment ID that you just spent ten minutes of system time looking up, to say nothing of time spent searching afterwards. Then you have to use a different screen and, one order at a time, adjust the quantity on each line that is picked to zero. If only part of the line was available originally, but more stock came in and allocated to that order, the system will ask you to take the time to specify how the allocation should be divvied up. Remember, a shipment can have multiple orders, so you must go order by order, line by line.

And then you can start to investigate the other orders that show up on the list as past-due for shipment.

Do not let this interfere with your other duties, by the way. One of which is investigate customer complaints to see if they are valid. The service center sends these complaints with an order number and an invoice number, but not a shipment ID. That’s relatively okay because these orders have shipped and you can get the shipment ID number fairly quickly by looking up the order number. This will bring up the whole order history, so if you want to know about just that shipment you will have to search for the invoice number, and then if you want to print out the list of what was meant to be on just that shipment you will have to copy the shipment ID and paste it into another screen.

Incidentally, this is useful if you need to validate an order by weight. Without mentioning any kind of inventory errors we might have, it is unreliable to check for shipment errors by counting inventory because product could be in the process of getting shipped out during the day, and on the system the inventory will show in location until the order in question is run through the shipper software. But the product weight on the system is inaccurate, so one has to look through a passed-around collection of handwritten, unordered, photocopied, annotated, and recopied list of tool weights, or go out and weigh a sample of the item in question, assuming there is some in stock, in the location specified.

And then add that up, and try to compensate for the weight of the stretch wrap and the cardboard and the pallet, and decide if the product in question might have been missing from the shipment.

You can see how this might be competing for your use of the system and your time in general. I should add that you are only allowed two sessions on the system–well, two on the local system where you can look up inventory and other local matters, and two on the order management system that has exclusive visibility of the shipment ID number and comprehensive order information.

So if you are trying to multi-task by taking care of customer complaints while you are waiting for one of your sessions to finish looking up a shipment ID so you can see if it even physically exists, and somebody brings you a shipment that needs to be adjusted (because this happens many times in a day), then you are out of screens to use. Or you will hastily grab the screen that you had started looking up that shipment ID a long time ago, and in one lightning-efficient stroke, faster than thought, you will blow away the report you have been waiting for so long.

But up to now we have been talking about investigating why an order did not ship after the fact. Suppose it is the end of the month and we are trying to ship out everything that is not nailed down. The system is supposed to drop the orders by itself at regular intervals, according to the available inventory. But it does not drop everything that it could. Some more orders will show up if you manually run a drop, and some will still remain that will only drop if you try to drop them specifically.

Also orders that are on hold will not drop, although inventory will be allocated to those orders to be available whenever the order comes off hold. There is also a special order on perpetual hold to reserve stock for a special client. Inventory will not automatically move from that order to the current, shippable orders for that client, so everything has to be moved manually, and then any further stock that comes in will still allocate to that order and any other order on hold, on an age basis.

If you want to take some inventory from an order on hold, you can easily see a list of all the orders for that product. You can see if the order is already picked, or allocated to pick, but you cannot see if any of the orders shown are on hold, so you can reallocate inventory from one order on hold to another. In any event this is a task best done with two screens, one to see the list of orders and another to do the allocation, and that leaves no available sessions to look up the details of an order or to do anything else someone might come and request.

Owing to my cleverness and my overtime, I was able toward the end of the month to use Microsoft Access to generate a list of orders that were not filled and not on hold, and even showed available inventory–and on top of all that, were not already being picked (which, as you recall, prevents the order from dropping again until the pick has cleared). Shippable orders, in other words. A few of them were 100% fill orders, meaning that the entire quantity of a line item had to be available (and I think in some cases for all lines on the order) before it can ship, so it made sense that these did not drop. But the majority of them–I think I tested 100 out of 600–simply gave a fatal error and would not drop.

Evidently our system has developed a psychosis where on the one hand it thinks it has inventory and on the other hand it thinks it does not. In other words, one can reasonably ask why I did not ship the inventory and I cannot reasonably answer. Remember, simply saying that the order did not drop in the automatic process does not mean that the order cannot drop, as manual intervention will sometimes get the job done.

There are also the orders for the special client which, being large orders, get dropped ahead of time so that they can be sure to ship on time. Generally we try not to have these in the way at the tail end of the month, but I wound up dropping them accidentally anyway as I tried to maximize our shipments.

Alas, to no avail. I still got a report which was meant to be a list of orders that were not on hold and had inventory available and did not ship out at the end of the month. Investigation gradually revealed that the top-dollar items were either on hold (yes, despite the fact that the report supposedly excluded on hold order), or had probably been on picks already and could not drop, or did not have any inventory available on the actual last day. An erroneous report with which to incriminate me, how nice.

Now, dear patient reader, how would you like to explain that to a room full of busy people who make twice as much money as you who want to know why you had tools on the shelf at the end of the month?