This application relates generally to performing available-to-promise (ATP) checks in a supply chain.
A supply chain is a network of facilities and distribution nodes for use in procuring materials, transforming the materials into semi-finished and finished products, and distributing the finished products to customers.
A product typically includes one or more components that are assembled during a manufacturing process. In this context, a component can be any type of item, ranging from basic material (e.g., plastic) used to manufacture the product to an actual component in the product (e.g., a monitor of a desktop computer). Obtaining a sufficient amount of product in a time-efficient manner can require significant planning.
SUMMARY
In general, in one aspect, the invention is directed to a method of filling a customer sales order for a product. The method includes determining the availability of the product, determining, the components of a product if the product is unavailable, and determining availability of the components from one or more suppliers. This aspect may also include one or more of the features set forth below.
The components may be determined based on a hierarchical break-down of a bill of materials that corresponds to the sales order. The availability of one or more substitute components may be determined if one of the components is unavailable. In this regard, if the components are unavailable, the method may also include determining which components are unavailable and determining substitute components for the unavailable components. If the components are unavailable at a primary location, the method may include determining if the components are available at a secondary location. If the components are available at the secondary location, the method may include issuing a stock transfer order to ship available components at the secondary location to the primary location. The method may be performed using one or more (e.g., a set of) rules restricting determination of availability of the product. The rules may be defined based on a master data sheet of a customer.
Other features and advantages of the invention will become apparent from the following description, including the claims and drawings.
In recent years, some industries have moved to a “madeto-order” or “assemble-to-order” production model. This production model allows customers to select components for inclusion in a final product. The “made-to-order” production model is particularly prevalent in the computer industry. For example, a customer may typically configure his or her own computer, choosing, e.g., a 17-inch monitor, a 40-gigabyte hard drive, and 900-megahertz processor.
To fulfill such orders, a manufacturer needs to identify suppliers for selected components, to assemble the components into the finished product, and to ship the finished product to the customer. In some cases or industries, the entire process may need to be performed in days to weeks.
For large-volume purchases, the logistics of the supply and manufacturing process can be complex. Therefore, obtaining the foregoing information beforehand can make production and distribution flow more smoothly. The system described herein uses multi-level global available-to-promise (ATP) checks to enable a manufacturer (i.e., the component customer) to identify suppliers, to identify an amount of available components at the supplier, to locate the components, and to determine a time at which the components will be available for shipment to the manufacturer.
Multi-Level Global ATP
Generally speaking, an ATP check is a check made, e.g., by a manufacturer, to determine if a product or component is available for shipment. The ATP checks described herein are multi-level in the sense that checks are made at different levels of a bill of materials (BOM) that defines components making up final products, sub-components that make up the components, and so on. The ATP checks are global in the sense that they are performed for various location and products (the final product or a component may be referred to generically as the product being checked).
Multi-level global ATP checks are computer-implemented, meaning that the requisite inputs are provided to computer software and the resulting checks are performed automatically using one or more rules, as described in more detail below. Multi-level global ATP checks may be performed over a network, such as the Internet or a local area network (LAN), e.g., by communicating with a computer system, databases, etc. of a third party, such as a supplier or distributor. Alternatively, multi-level global ATP checks may reference a local database containing all necessary information.
Multi-level global ATP checks have applicability in a number of contexts. In this embodiment, multi-level global ATP checks may be performed in a transportation planning application. The transportation planning application is computer software that contains various features relating to supply chain management. As noted above, supply chain management refers, generally, to managing commerce (e.g., product shipments) between a manufacturer, various intermediaries, such as manufacturing facilities, distribution centers, wholesalers and the like, and customers.
Referring to
In
A multi-level global ATP check is equivalent to moving along vertical axis 14 and identifying the amount of a single product available at different locations defined on the vertical axis; and to moving along horizontal axis 12 and identifying the amounts of different products available at a single location defined on the vertical axis.
More complicated scenarios result when moves along vertical axis 14 and horizontal axis 12 are combined. Rules can be stored regarding such moves. These rules may be created based on manufacturer requirements (or customer requirements, but a manufacturer will be used as the example here). Such rules can be fashioned from a master data sheet for the manufacturer or supplied from another source.
In this regard, the master data sheet for a manufacturer may contain information specific to the manufacturer that restricts the supply of a product. For example, a manufacturer may only want product from suppliers within a certain geographical area due to shipping costs and time. Rules may be created from the manufacturer's master data sheet limiting shipments to suppliers within that geographic area. When the rules are executed with regard to the spreadsheet, a zigzag pattern 20 is created on the spreadsheet 10.
In one specific example, a manufacturer may specify the set of following rules:
Referring to
Rules can also create restrictions based on timing, resulting in a zigzag pattern similar to that shown
Bill of Material (BOM)
Generally speaking, a BOM is a list of parts (or components) that are to be included in a final, or finished, product.
Referring to
Below the top of the pyramid is a primary level 44, which contains primary components 46 that are used to make final product 42. Below primary components 46 is a secondary level 48, which contains secondary components 50. Secondary components 50 are used to make primary components 46. The BOM 40 can extend to several levels depending on the break-down of components required to make final product 42.
By way of example, a desktop computer may be the final product. The primary components that make up a desktop computer may include a motherboard, a memory, a hard drive, a keyboard, and a monitor. These components may be located on primary level 44. Structures that make up the primary components, such as storage media in the hard drive, may be located on secondary level 48, and so on.
Using Multi-Level Global ATP with a BOM
A manufacturer can use multi-level global ATP to identify suppliers of available products based on an identity of the product, a location of product, and time of availability of the product. Using the hierarchical structure of the BOM allows the manufacturer to look beyond the availability of the final product. That is, the manufacturer can also identify the availability of components to produce the final product. This allows the manufacturer to identify components that present problems or delay the assembly of the final product. Identifying potential problem components gives the manufacturer the opportunity to find substitute components in order to meet any assembly and delivery schedules.
By way of example, assume that the final product is a desktop computer. The manufacturer may use a multi-level global ATP check to identify that no supplier or manufacturer can produce the required amount of computers, on time, for a particular sales order. The manufacturer may identify that the problem in filling the sales order is, e.g., lack of supply of a 40-gigabyte hard drive. The manufacturer can then substitute the 40-gigabyte hard drive for a different component, such as a 30-gigabyte hard drive or a 60-gigabyte hard drive. Thus, the manufacturer can fill the order on time using the substitute components. Rules may also be provided for determining which components can be substituted, etc.
Stock transfer is another factor that can hinder filling a sales order. Performing a multi-level ATP check allows the manufacturer to identify alternative suppliers for a component that a primary supplier lacks. The manufacturer can then issue a stock transfer request. The stock transfer request instructs the alternative supplier to ship the components to the primary supplier. The primary supplier can then assemble the components and complete the sales order.
Process 400 “explodes” the BOM on a level-by-level basis, depending upon whether orders for products at each level can be filled. Thus, as described in more detail below, process 400 first explodes the BOM to the primary level, determines if the primary-level products can be obtained and, if not, then explodes the BOM to the secondary level, and so on.
Process 400 performs (406) a multi-level global ATP check to determine availability of the quantity of product specified in the customer's order and BOM. That is, process 400 checks product, location, and time availability, as described above with respect to the spreadsheet of
If the multi-level global ATP check determines that the quantity of the product is available (408), process 400 fills (410) customer's order. What is meant by “fill” in this context is that the requisite product(s) are allocated for shipment. If the multi-level global ATP check determines that the quantity of the product is not available (408), process 400 proceeds to block 412. In block 412, process 400 performs a multi-level global ATP check for components of the product (see process 500 described in
Referring to
If the components are not available (504), process 500 identifies (506) substitute components that may be used. The identification of substitute components may be made by referencing rules stored about shipments to the customer that made the initial order. Assuming that substitutions may be made, process 500 determines if substitute components are available. If substitute components are not available (508), process 500 advances to block 518. If substitute components are available (508), process 500 determines (510) the location(s) and availability of the substitute components.
Process 500 determines (514) if the substitute components are from a substitute (i.e., non-primary or “secondary”) location. If the substitute components are not from a secondary location (514), process 500 advances to block 518. If the components are from a secondary location (514), process 500 creates (516) a stock transfer order and advances to block 518. The stock transfer order may direct the holder (supplier) of a component at the secondary location to ship the component to the primary location.
Process 500 confirms (518) that the substitute components are sufficient and/or permissible for the customer identified in the BOM. If the customer confirms that the substitution is adequate, process 500 fills (522) the customer order for the product. If the substitution is not adequate, process (500) produces or explodes another level of the BOM and returns to block 502 to check availability of next level components.
Other Embodiments
The multi-level global ATP process is described herein in the context of transportation planning software, which is comprised of executable instructions stored on one or more machine-readable media. These instructions may be executed by one or more processor(s) to perform the functions described above relating to performing multi-level global ATP checks. These functions include performing processes 400 and 500.
It is noted, however, that the multi-level global ATP process described herein (including processes 400 and 500) may find applicability in any computing or processing environment. The multi-level global ATP process may be implemented using hardware, software, or a combination of hardware and software. For example, circuit elements, which may or may not include a microprocessor, logic gates, transistors, and the like, may be used to implement the multi-level global ATP process.
The multi-level global ATP process may be implemented using one or more computer programs executing on one or more programmable computers or other machines that each includes a processor and a storage medium that is readable by the processor (including, but not limited to, volatile and nonvolatile memory and/or storage components).
Each such program may be implemented in a high-level procedural or object-oriented programming language to communicate with a computer, system. However, the programs can be implemented in assembly or machine language. The language may be a compiled or an interpreted language.
Each computer program may be stored on a storage medium or other article of manufacture (e.g., CD-ROM, hard disk, or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to run the multi-level global ATP process described herein. The multi-level global ATP process may also be implemented as one or more machine-readable storage media, configured with one or more computer program(s), where, upon execution, instructions in the computer program(s) cause one or more machines to operate in accordance with the multi-level global ATP process described herein.
The multi-level global ATP process not limited to the embodiments described above. For example, the multi-level global ATP process is not limited to use with the specific products described above or to use in connection with supply chain management. Rather, the multi-level global ATP process has universal applicability.
Some blocks shown in the flowchart may be rearranged, substituted, or omitted. As such, operations performed in connection with the multi-level global ATP process are not limited to the flow patterns shown in the flowcharts.
Other embodiments not described herein are also within the scope of the following claims.
This application claims priority to U.S. Provisional Application No. 60/395,245, filed on Jul. 10, 2002, the contents of which are hereby incorporated by reference into this application as if set forth herein in full.
Number | Name | Date | Kind |
---|---|---|---|
6119102 | Rush et al. | Sep 2000 | A |
6216109 | Zweben et al. | Apr 2001 | B1 |
6594535 | Costanza | Jul 2003 | B1 |
6947903 | Perry | Sep 2005 | B1 |
7165041 | Guheen et al. | Jan 2007 | B1 |
7188075 | Smirnov | Mar 2007 | B1 |
20020099583 | Matusek et al. | Jul 2002 | A1 |
20020107763 | Palmer et al. | Aug 2002 | A1 |
20020174023 | Grey et al. | Nov 2002 | A1 |
20030018547 | Steele | Jan 2003 | A1 |
20060026048 | Kolawa et al. | Feb 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20040010454 A1 | Jan 2004 | US |
Number | Date | Country | |
---|---|---|---|
60395245 | Jul 2002 | US |