Purchasing and Inventory Control

There are two sides of the inventory coin – purchasing and material allocation.

Inventory Cycle

Both of these things have an affect on the inventory cycle. The table below shows how the fields used for tracking inventory are adjusted in the program. Just looking at the On Hand value for inventory, it goes up when you receive against a purchase order, and it goes down when the material is allocated to a job.

Product Inventory Field

Verify of Order

Product Update (Clock)

Ship or Complete Job

Verify of Purchase Order

Receipt of Purchase Order

On Hand


* Optional Decrease





* Optional Decrease

On Job



On Order



* – a setting in the System Setup will allow you to prompt the user to allocate material when shipping a job and not all materials have been allocated

When you create a job, all the material needed for the job, including outside services, are put into MRP, which is a purchasing function. This material is marked as Committed because you are committed to getting that material and using it to build and deliver parts to your customer. This is why the committed value increases every time you verify an order to create jobs. Creating a job, however, has no affect on what you have On Hand or what you have On Order.

Putting material on a Purchase Order will increase the On Order value, as you would expect, and receiving the material in from a PO will reduce the amount you have On Order and increase the amount you have On Hand.

Clocking into the job at the operation where the material is attached will decrease the amount of material you have On Hand, and will also decrease the amount of material you are Committed to use, since you have now satisfied that commitment. This will also increase the amount of material you have On Job, although this data is not necessarily part of the inventory cycle.

The three fields we have discussed are used in various places in the program to assist you in making purchasing decisions. The equation that is used is

On Hand + On Order – Committed

This formula is important because if it results in a positive value then you have sufficient material accounted for to handle your commitments and do not need to order additional material. However, if the result is negative, you are committed to using more material than you currently have access to, and you must order more to satisfy your commitments. In the MRP Tables and Product/Service Table, this value is shown as the Status, and will be Green if there is a surplus and Red if there is a deficit. This formula is also used if you set up a Stocklevel and Reorder Point for an item. In this situation, we are not looking for the result to be greater or less than 0, but to be greater or less than the Reorder Point. If the result falls below the Reorder Point, the item will show up on the Red Flag Order to Stock Report, alerting you to the fact that you need to order that item.

MRP and Pulling from On Hand

When material goes into MRP, there are two normal ways to address it. You can use the MRP function to order material – this will tie the record on the job to the line item on the PO. The other way is to mark the MRP record as pull from on hand. What this option means is that you don’t need to order the material specifically for the job, you are going to order the material some other way and make sure it is on the shelf.

Examples of when you would use these two methods:

Pull From On Hand:

A job may call out for nuts, bolts, washers, etc. These items come packed in boxes of 50, 100, 1000, etc. If a job requires 150 washers, and washers come in boxes of 1000, it is most likely that you order them in bulk and use them as needed. Whenever you start to run low on them, you order more boxes to get your stock back up. These types of items should be marked as pull from on hand since you won’t be ordering them for specific jobs. This might also apply to common sheet material that you use on many different jobs and that normally keep in inventory because they are so commonly used. You may order 100 sheets at a time, and then on jobs that require that material, you mark pull from on hand.

For items that you normally keep in stock and order when you run low, you can set a Stocklevel and Reorder Point. Whenever your commitment for that material drives the On Hand + On Order into a range below the Reorder Point, a Red Flag report will alert you to the need to reorder the material. This is the Order to Stock – Products report.

Using the MRP function:

This is used for material that is being ordered for specific jobs. You would use this for items you would not normally hold in inventory. Maybe a special size sheet that gets used once or twice a year, or a special material that is expensive and only ordered as needed. Using MRP for this ties the record in the job to the line item in the PO so that you can track it from the job to see the status of the PO.

If you do not use one of these methods of taking care of  MRP requirements, at the time the job gets shipped any items remaining in MRP are deleted. This helps prevent the system from thinking that you need more material than you really do. An assumption is being made here in that if you are shipping the job, you obviously do not need to still purchase the material for the job.

Material Allocation

Material allocation is the act of pulling material out of inventory and allocating it to the job. At the time material is allocated, the average inventory cost for that material is used to determine actual cost on the job. Inventory is also reduced by the amount allocated to the job, as shown in the table above.

Allocation is normally done when the job is clocked into the operation where the material is attached. In most cases, this is the operation at which the material is first pulled off the shelf and put onto the job. When everything is working correctly, this is the appropriate time to allocate the material and decrease the On Hand value for inventory because this is truly the time that the material comes out of inventory and goes onto the job. Sometimes, shops will attach all materials on a part definition to a single operation at the beginning of the routing and use that as a simplified way of ensuring that all material does get allocated to the job. This may work for some situations, but it can cause problems depending on the timing of things. For example, clocking into an operation to allocate materials some number of days before the actual work of using the materials takes place. You have a gap in time in which you think you are out of material when in fact it is still sitting on the shelf for everyone to see (and to use for some other job that just came in and is being expedited). This is another example of setting things up to tell ProfitFab exactly what you intend to do so that it can more accurately tell you what you did.

With material allocation, it is possible to get into a horse/cart scenario and for the On Hand value to be negative. This can happen if you clock into a job and allocate the material before the receipt of the material has been entered into the system. For example, you might need 100 widgets on a job. You started off with 0 widgets, so you made a PO to purchase the 100 widgets. The widgets were received and physically put onto the shelf, but the receiving was not updated in ProfitFab. The job gets started and the widgets get allocated to the job, leaving you with -100 widgets on hand. Once you finally get around to receive the material on the PO, the balance is brought back to 0 where it should be. However, some shops see the negative on hand values and immediately assume there is a problem (How can you have negative inventory?) and go to manually adjust the value to 0. If that happens, then the receiving of the widgets will increase the on hand value, not back to 0 but to 100. Now, your system thinks that you have 100 widgets sitting on the shelf, when in reality, you have 0. This is a good reason to enter PO receipts into the system as quickly as possible, and that is the reason that we added that function to the Shop Clock Module.

Leave a Reply