The present invention relates to processing manufacturing codes for bills of materials (BOMs) for determination of eligibility for preferential customs duties, and in particular, to systems and methods for automatically harmonizing low-level codes of mixed origin BOMs for customs compliance of preference determinations.
Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
In product planning and manufacturing, the list of components or materials to a particular end product is referred to as the bill of materials (BOM). The BOM can identify the components, i.e., materials and subparts, of a product and describe the sequential relationship of the components with one another for any particular product and assembly process. For accounting, manufacturing, and legal compliance purposes, the components or materials listed in a BOM for a particular product can be coded in different ways to indicate various characteristics of the product and/or the components. Once the components for the particular product are coded, the codes can be easily and quickly referenced to determine various product characteristics for manufacturing planning, e.g., sourcing and delivery, or legal requirements, e.g., determination of eligibility for preferential customs duty.
For example,
For example, for purposes of determining customs duties, a product structure can be coded in a way that helps users and systems to determine whether or not the end product qualifies for preferential customs duty. The determination as to whether a product qualifies for preferential customs duty is sometimes referred to as a preference determination. Typically, the preference determination depends heavily on the coding associated with the manufacturing levels of a particular product structure. Many preference determinations for a particular product can be made based on manufacturing level at which a component or material in a bill of materials (BOM) for the product appears in the manufacturing process. The lowest level manufacturing code associated with a particular component is typically referred to as the “low-level code” for that component. For example,
Accordingly, preference determination for single source products can easily be determined from the low-level codes of the associated BOM. However, complications arise when products are produced by multiple manufacturers, or include components that are manufactured by multiple manufacturers. Because the manufacturing processes of each of manufacturers are different, their manufacturing level codes for each product or component are most likely also different. Accordingly, a determination of the low-level-codes from the disparate manufacturing codes in the BOMs received from the various manufacturers often produces conflicting or incompatible low-level codes.
For example, one manufacturer may produce products D and C in manufacturing level 5, while another manufacturer may produce product D in manufacturing level 5, but produce product C in manufacturing level 4. The low-level codes for products D and C will be different based on the manufacturing codes listed in the respective BOMs, e.g., the low-level codes for products D and C will be 5 from one manufacturer, while the low-level codes for products D and C will be 5 and 4, respectively, from the other manufacturer. The disparity in the low-level codes from the various manufacturers in mixed origin products can complicate the preference determination or produce erroneous results that are not compliant with the requirements for preferential customs duty.
Embodiments of the present disclosure improve low-level code harmonization for BOMs received from multiple manufacturing sources. In one embodiment of the present invention includes a method that includes receiving a plurality of bills of materials (BOMs), wherein the plurality of BOMs are associated with a plurality of corresponding products and a plurality of corresponding low-level codes and wherein the low-level codes classify the plurality of products according to a plurality of manufacturing levels. The method also include sorting the BOMs according to the plurality of corresponding low-level codes into an order, scanning through the plurality of corresponding low-level codes incrementally in the order to determine a first portion of the plurality of BOMs associated with a first product in the plurality of products, determining a first portion of the plurality of corresponding low-level codes associated with the first portion of the plurality of BOMs, determining a lowest low-level code in the first portion of the plurality of corresponding low-level codes, and associating the lowest low-level code in the first portion of the plurality of corresponding low-level codes with each of the first portion of the plurality of BOMs.
One embodiment of the present disclosure includes scanning through the plurality of corresponding low-level codes incrementally in the order to determine a second portion of the plurality of BOMs associated with second product in the plurality of products, determining a second portion of the plurality of corresponding low-level codes associated with the second portion of the plurality of BOMs, determining a lowest low-level code in the second portion of the plurality of corresponding low-level codes, and associating the lowest low-level code in the second portion of the plurality of corresponding low-level codes with each of the second portion of the plurality of BOMs.
One embodiment of the present disclosure includes scanning through the plurality of corresponding low-level codes incrementally in the order to determine a second portion of the plurality of BOMs having the first product in the plurality of products as a component, determining a second portion of the plurality of corresponding low-level codes associated with the second portion of the plurality of BOMs, determining, in the computer system, a lowest low-level code in the second portion of the plurality of corresponding low-level codes, and associating the lowest low-level code in the second portion of the plurality of corresponding low-level codes with each of the first portion of the plurality of BOMs.
In one embodiment of the present disclosure the order ascends from a low manufacturing level value to a high manufacturing level value.
In one embodiment of the present disclosure the lowest low-level code in the first portion of the plurality of corresponding low-level codes is used for determination of preferential customs duty for the first product or another product in the plurality of products.
In one embodiment of the present disclosure the plurality of BOMs are received from a plurality of different sources, and wherein the plurality of manufacturing levels differ from one another according to the different sources.
In one embodiment of the present disclosure at least one of the plurality of BOMS associated with a first corresponding product in the plurality of corresponding products comprises a second corresponding product in the plurality of corresponding products as a component
Another embodiment of the present invention includes a non-transitory computer-readable storage medium containing instructions that, when executed, control a computer processor to be configured for: receiving a plurality of bills of materials (BOMs), wherein the plurality of BOMs are associated with a plurality of corresponding products and a plurality of corresponding low-level codes, wherein the low-level codes classify the plurality of products according to a plurality of manufacturing levels, sorting the BOMs according to the plurality of corresponding low-level codes into an order, scanning through the plurality of corresponding low-level codes incrementally in the order to determine a first portion of the plurality of BOMs associated with a first product in the plurality of products, determining a first portion of the plurality of corresponding low-level codes associated with the first portion of the plurality of BOMs, determining a lowest low-level code in the first portion of the plurality of corresponding low-level codes, and associating the lowest low-level code in the first portion of the plurality of corresponding low-level codes with each of the first portion of the plurality of BOMs.
Another embodiment of the present invention includes a system comprising: one or more computer processors; and a non-transitory computer-readable storage medium containing instructions, that when executed, control the one or more computer processors to be configured for: receiving a plurality of bills of materials (BOMs), wherein the plurality of BOMs are associated with a plurality of corresponding products and a plurality of corresponding low-level codes; wherein the low-level codes classify the plurality of products according to a plurality of manufacturing levels, sorting the BOMs according to the plurality of corresponding low-level codes into an order, scanning through the plurality of corresponding low-level codes incrementally in the order to determine a first portion of the plurality of BOMs associated with a first product in the plurality of products, determining a first portion of the plurality of corresponding low-level codes associated with the first portion of the plurality of BOMs, determining a lowest low-level code in the first portion of the plurality of corresponding low-level codes, and associating the lowest low-level code in the first portion of the plurality of corresponding low-level codes with each of the first portion of the plurality of BOMs.
The following detailed description and accompanying drawings provide a better understanding of the nature and advantages of the present invention.
Described herein are techniques for systems and methods for low-level code harmonization among BOMs from multiple manufacturers. In the following description, for purposes of explanation, numerous examples and specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention as defined by the claims may include some or all of the features in these examples alone or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein.
Embodiments of the present disclosure include a systematic top-down technique for analyzing and harmonizing the low-level codes in BOMs that include mixed origin products and components. The techniques include systems and methods that can receive multiple BOMs from multiple manufacturing plants. Because of the differences in the manufacturing processing, the low-level codes associated with each BOM and each component of a BOM can vary. In some embodiments, the BOMs are first sorted according to the low-level code associated with the end products and ranked by low-level code. The ranked BOMs are then scanned in ascending order, e.g., from highest low-level code to lowest low-level code. The low-level code of any BOMs for an identical or similarly identified product can be associated with the lowest low-level code associated with a BOM for that product. This process is repeated for all products with BOMs in the multiple BOMs. Once all of the end-product BOMs for the particular end products are harmonized, the method can continue to scan through the low-level codes. For each BOM for a product at a given level, embodiments of the present invention also check for BOMs in which the product is included as a component for the associated low-level codes. If another BOM includes the product as a component and the low-level code of the product as a component is lower, then the BOMs for the product are associated with the lower low-level codes. This process is repeated for products as the low-level codes are scanned in ascending order, and results in consistently compliant low-level codes for preference determinations.
The specific analysis and methods used by the BOM harmonizer 421, and the BOM analyzer 423, will now be discussed in more detail. Various embodiments of the present disclosure include ranking the BOMs from individual manufacturing plants according to the low-level codes included in the BOMs and then adjusting the low-level code for each product or component in the BOMs according to the ranked order.
In the first step, pointer 510 moves from position 50-1 to 50-3, scanning all intermediate low-level codes until is observes a BOM with a particular low-level code. In this particular example, when pointer 510 moves from position 50-1 to 50-3, the BOM harmonizer can determine that product P1 from manufacturing plant 2 has the highest low-level code among the low-level codes for all of the BOMs for product P1. Thus the BOM harmonizer can change the low-level code from the original low-level code between 50-1 and 50-3 to 50-6, in change 600. Similarly, the BOM harmonizer can also determine that the low-level code of product P1 in the BOM from manufacturing plant 1 is also higher than the low-level code of product P1 in the BOM from manufacturing plant 3 and change the low-level code from 50-5 to 50-6 in change 601. Accordingly, all the BOMs for product P1 are all now set to the low-level code at 50-6.
In
In action 1720, the BOM harmonizer can determine the low-level codes for each BOM. In some embodiments, determining the low-level codes for each of the BOMs can include examining the manufacturing codes associated with each of the BOMs and the constituent components. The low-level code for each type of BOM, e.g., the BOM for a particular product or component, can include the lowest level manufacturing code in which the associated product occurs in the manufacturing process associated with a particular manufacturing plant. In some embodiments, the higher the value of the manufacturing code, the lower the low-level code, i.e., higher manufacturing code values indicate lower low-level codes. Determining the low-level codes for each BOM can include assigning or determining a low-level code for each product and component in the BOM.
In action 1730, the BOM harmonizer can sort the BOMs according to the low-level codes. In some embodiments, the BOMs are sorted in ascending order from highest low-level code to the lowest low-level code. In other embodiments, the BOMs are sorted in descending order from lowest low-level code to the highest low-level code. As discussed herein, low numerical values for low-level codes indicate a higher low-level code, while higher numerical values for low-level codes indicate a lower low-level code. Accordingly, for BOMs, products, and components discussed herein, low-level codes values closer to 0 are higher low-level codes than low-level codes closer to 999.
In action 1740, the BOM harmonizer can start at the highest low-level code, i.e. low-level code 0. In other embodiments, the BOM harmonizer can start at the highest low-level code associated with the set the received BOMs. In some instances, at least one of the received BOMs has a low-level code 0. Accordingly, the BOM harmonizer will begin at low-level code 0. The highest low-level code of the BOMs received from the multiple manufacturers might be greater than 0, accordingly, action 1740 can begin at that low-level code. In all of such instances, the BOM harmonizer can determine if any of the received BOMs are associated with the highest low-level code. If there are no BOMs at the highest low-level code, then the BOM harmonizer can increment the low-level code value in action 1755. The BOM harmonizer can then repeat the check at each incremental low-level code until it determines that one or more of the BOMs in the received BOMs is associated or includes the incremented low-level code. In this way, the BOM harmonizer can perform a top-down scan, e.g., 000 to 999, through all possible low-level codes.
When the BOM harmonizer, at determination 1750, determines a BOM of a particular type, e.g., a BOM for a particular product at the incremented low-level code, the BOM harmonizer can check whether another BOM of the same particular type exists within the set of received BOMs that has a lower low-level code at action 1760. If there are no BOMs of the same particular type with a lower low-level code, then the BOM harmonizer can increment the low-level code value again at action 1755. However, if the BOM harmonizer determines that there is another BOM of the same particular type with a lower low-level code, then the BOM harmonizer can set the low-level code for all of the BOMs of that particular type to the lowest low-level code determined.
Once the BOM harmonizer has adjusted the low-level codes of the BOMs for the particular type, it can determine whether or not there are more low-level codes to check, in determination 1780. If there are more low-level codes to check, then the BOM harmonizer can increment the low-level code in action 1755 and repeat determinations 1750, 1760, and action 1770, for the remainder of the low-level codes. However, if the BOM manager determines that there are no more low-level codes to scan, e.g., the BOM harmonizer has reached the lowest low-level code possible, the method 1700 can begin the next phase of the method.
If there are more low-level codes to check, and then BOM harmonizer can increment the low-level code value, in action 1825, and repeat determinations 1820 and 1830, and action 1840 until all of the low-level codes have been checked. Once all the low-level codes have been checked, then the BOM harmonizer can end the process and save all of the harmonized low-level codes for each of the BOMs. The harmonized low-level codes for each of the BOMs can then be used for various other processes, such as preferential determination.
Computer system 1910 may be coupled via the same or different information bus, such as bus 1905, to a display 1912, such as a cathode ray tube (CRT) or liquid crystal display (LCD), for displaying information. An input device 1911 such as a keyboard and/or mouse is coupled to a bus for communicating information and command selections from the user to processor 1901. The combination of these components allows the user to communicate with the system.
Computer system 1910 also includes a network interface 1904 coupled with bus 1905. Network interface 1904 may provide two-way data communication between computer system 1910 and the local network 1920. The network interface 1904 may be a digital subscriber line (DSL) or a modem to provide data communication connection over a telephone line, for example. Another example of the network interface is a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links is also another example. In any such implementation, network interface 1904 sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.
Computer system 1910 can send and receive information, including messages or other interface actions, through the network interface 1904 to an Intranet or the Internet 1930. In the Internet example, software components or services may reside on multiple different computer systems 1910 or servers 1931 across the network. Software components described above may be implemented on one or more servers. A server 1931 may transmit messages from one component, through Internet 1930, local network 1920, and network interface 1904 to a component or container on computer system 1910, for example. Software components of a composite application may be implemented on the same system as other components, or on a different machine than other software components. This process of sending and receiving information between software components or one or more containers may be applied to communication between computer system 1910 and any of the servers 1931 to 1935 in either direction. It may also be applied to communication between any two servers 1931 to 1935.
The above description illustrates various embodiments of the present invention along with examples of how aspects of the present invention may be implemented. The above examples and embodiments should not be deemed to be the only embodiments, and are presented to illustrate the flexibility and advantages of the present invention as defined by the following claims. Based on the above disclosure and the following claims, other arrangements, embodiments, implementations and equivalents will be evident to those skilled in the art and may be employed without departing from the spirit and scope of the invention as defined by the claims.