Submitted by NAV Insights on 30 July 2014

# Using Low Level Codes in Microsoft Dynamics NAV

In the early days of MRP (Material Requirements Planning), the designers realized that in order for the program to accurately plan inventory replenishments, they had to define demand in two ways:

Independent Demand – The demand for items that comes from outside of the company.

Dependent Demand – The demand that can be derived from upper level requirements. For instance, if you are planning to build cars, the demand for tires is dependent on how many cars you are going to build.

Once the dependent/independent demand definition was settled, the MRP designers realized that, for MRP to accurately plan for inventory replenishments, the program needed to know the levels in the Bill of Material, starting from the top to the bottom. The invention that came out of this is called the Low Level Code.

The American Production and Inventory Control Society (APICS) Dictionary defines a Low Level Code as “A number that identifies the lowest level in any bill of material at which a particular component appears. Net requirements for a given component are not calculated until all the gross requirements have been calculated down to that level. Low-level codes are normally calculated and maintained automatically by the computer software.”

Below are examples of Low Level Codes in BOM structures:

Figure 1 - Example BOM Structure 1

Figure 2 – Example BOM Structure 2

If we look at Example 1, we can see that there are four levels in the Bill of Material. We assign level numbers starting with level 0 as the top level and level 3 as the lowest level. Looking at Example 2, we can see that there are only 2 levels, 0 and 1.

The question is: What is the lowest level that a component resides in any Bill of Material structure? Looking at Item F in Example 1, we see that it is at level 3. Looking at Item F in Example 2, we see that it is at Level 1. So Item F’s Low Level code will be set to 3.

Now, when MRP runs, it will start with the Level 0 items (independent demand) and work its way down through the levels. As it plans replenishment orders at each level, it will propagate requirements for the lower level components (dependent demand). Until MRP reaches an item’s Low Level Code it will not begin to plan replenishment orders for that item.

In Microsoft Dynamics NAV, the system calculates Low Level Codes for you. This can be done in two ways.

If we look at the Manufacturing Setup Window from a Dynamics NAV Classic Client screen, there is a check box for Dynamic Low Level Code. This means that when a NAV Production BOM is certified, it will automatically recalculate the Low level Code for this BOM’s components.

Figure 3 – Select the Low-Level Code checkbox from the Manufacturing Setup screen

If we do not check the Dynamic Low Level Code checkbox, then we must run the batch job by selecting the Manufacturing->Calculate Low-Level Code function. I recommend that this batch job is run before each MRP run.

Figure 4 – Select Calculate Low-Level Code from the Manufacturing window

There is another function in Dynamics NAV that uses the Low Level Code. The program Adjust Cost –Item Entries uses Low Level Code in the reverse order. Adjust cost works its way through the BOM Structures from the bottom up (more on this in a later Blog).