The concept of catch weight in ERP is widely used, but often misunderstood. It has become a buzz word for companies specializing in the food industry. They claim they have provided a solution to the problem and they in essential “support” catch weight.

But what is catch weight and why is it so important to have this feature? In my analysis, working with different food companies, catch weight simply means that we have to account for the container of a product and the weight of the product at the same time. So for example if you buy two fish and they weight 3.2 lbs together then you have a container for two weighing 3.2 lbs. If you then decide to sell one fish, you will have to split the container into two and “catch” the weight of each. This usually means you have to weigh the fish on outbound and assume the left over fish is the remainder.

So in essence the ERP system needs to be able to handle a “container” of weight, or more generally a container of quantity. The base unit of measure in this setup is usually weight, at least when dealing with food and perishables.

The interesting thing, is that NAV already a feature out of the box that supports the container of quantity concept, called Lot Tracking. With a few precise modifications you can set the lot tracking functionality to behave as catch weight. The lot is the container and NAV provides isolation both from the cost and the depletion process.

There are variations to the concept. Sometimes companies do not want to track the container/weight accurately until at the outbound level. This is usually done to save effort in not having to weigh everywhere, which is time consuming. The weight is assumed at the inbound transaction and when the product is finally ready to be shipped, then the weight is “caught”. In this case there is no need for a container until the final transaction. Since the weight was assumed all the way until the end, there is a good chance that it is different. The system then needs to be able to adjust the discrepancy. There is a way to handle that without introducing the concept of a container with, again, some precise modifications. The system basically knows the unit of measure that the transaction is in, in inventory and it knows the base unit of measure, so when the shipment occurs and the weight is caught, we know how many containers and how much weight. We also know the entry being closed in the ledger and the assumed weight. The modification needed is the ability to post discrepancy and the ledger is in balance.

So in the end the largely hyped catch weight term can be accomplished with a relatively minor adjustment to dynamics NAV. This is good news for people like me who like to keep NAV pure and dislike adding large amount of code where it is not needed.