SYSTEM AND METHOD FOR MULTI-ENTERPRISE SUPPLY CHAIN OPTIMIZATION

Abstract: A method of optimizing multi-enterprise supply chain agreements using an electronic option contract includes determining at a buyer computer a range of forecasted demand for a product and communicating from the buyer computer to a seller computer an offer to enter into an option contract for the supply of a product, the option contract including an option corresponding to the range of forecasted demand. The method further includes executing the option contract, updating at the buyer computer the forecasted demand, and exercising the option in the option contract within the range of forecasted demand based on the updated forecasted demand.

Description: SYSTEM AND METHOD FOR MULTI-ENTERPRISE SUPPLY CHAIN OPTIMIZATION TECHNICAL FIELD OF THE INVENTION The present invention relates to the field of data communication and processing, and more particularly to a system and method for optimizing multi-enterprise supply chain agreements. BACKGROUND OF THE INVENTION Various algorithms have been developed to help optimize supply chains within an enterprise to avoid overstock or undersupply conditions caused by mismatches in supply and demand forecasts . While several algorithms have been developed to address supply chain optimization within a single enterprise, none have addressed supply chain optimization between enterprises. Conventional approaches to supply chain optimization typically assume that the enterprise can impose supply chain optimization rules on itself without regard to the interests of other enterprises. In the context of multi-enterprise trading where supply chain optimization rules must be negotiated, the typical approaches break down. In the context of multi-enterprise trading, therefore, supply/demand mismatches are common. SUMMARY OF THE INVENTION In accordance with the present invention, a system and method for optimizing multi-enterprise supply chains are provided that substantially reduce or eliminate disadvantages or problems associated with previously, developed supply chain optimization techniques. In one embodiment, a method of optimizing multi-enterprise supply chain agreements using an electronic option contract comprises determining at a buyer computer a range of forecasted demand for a product and communicating from the buyer computer to a seller computer an offer to enter into an option contract for the supply of a product, the option contract including an option corresponding to the range of forecasted demand. The method further comprises executing the option contract, updating at the buyer computer the forecasted demand, and exercising the option in the option contract within the range of forecasted demand based on the updated forecasted demand. In another embodiment, a method of optimizing multi-enterprise supply chain agreements using an electronic option contract comprises receiving at a seller computer terms of an option contract from a buyer computer, the terms comprising an option corresponding to a buyer's range of forecasted demand for a product, communicating to the buyer computer an acceptance of the terms of the option contract, storing the terms of the accepted option contract in a memory accessible to the seller computer and enforcing the terms of the option contract at the seller computer without user input. Technical advantages of the present invention include a system and method for optimizing multi-enterprise supply chains. Through a variety of mechanisms, the invention increases the profitability of both parties to the contract. By implementing one or more option terms in the contract, the invention reduces uncertainty in each party's forecasts. Providing one or more dimensions of flexibility to the buyer entity (e.g., options as to quantity, product, geography, etc.) provides value to the buyer entity in- allowing it to defer the determination of the exact scope of its obligations until a later time, when the buyer entity can more accurately determine its actual supply needs. — reducing supply/demand mismatches. The invention provides a mechanism to ensure a win-win situation for both buying and selling parties by setting an option price to account for the value to the buyer entity and the corresponding cost to the seller entity. In addition, the invention provides an incentive for each party to provide the most accurate forecasts possible by providing for well-defined penalties for violation of the terms of the resulting contract. The use of an option contract provides a significant advantage in on-line negotiations between a buyer computer and a seller computer. By using option contracts to specify a range or aggregation of potential parameter values (such as a range of quantities or products desired, or a range of delivery locations) , the invention avoids scores of iterations and transmissions across the communication link coupling the buyer and seller computers, making on-line negotiations technically feasible and very efficient. Other technical advantages are readily apparent to one of skill in the art from the attached figures, description, and claims. BRIEF DESCRIPTION OF THE DRAWINGS For a more complete understanding of the present invention, and for further features and advantages thereof, reference is now made to the following description taken in conjunction with the accompanying drawings, in which: FIGURE 1 is a block diagram of an exemplary system for optimizing multi-enterprise supply chains constructed according to the present invention; __ FIGURES 2a and 2b are block diagrams of an exemplary buyer computer and an exemplary seller computer, respectively, constructed according to the teachings of the present invention; FIGURES 3a and 3b are block diagrams of an exemplary portion of a memory accessible to a buyer computer and an exemplary portion of a memory accessible to a seller computer, respectively, constructed according to the present invention; FIGURE 4 shows exemplary terms of an option contract executed between a buyer computer and a seller computer according to the present invention; FIGURE 5 is a flow chart showing an exemplary method of optimizing multi-enterprise supply chain agreements using an electronic option contract; and FIGURE 6 is a flow chart showing another exemplary method of optimizing a multi-enterprise supply chain agreement using an electronic option contract. DETAILED DESCRIPTION OF THE INVENTION FIGURE 1 is a block diagram of an exemplary multi-enterprise supply chain optimization system 10 that includes a plurality of buyer computers 20a-20n and a plurality of seller computers 40a-40n. In one aspect of operation, one or more buyer computers 20 communicate with one or seller computers 40 to collaborate in negotiating the supply by a seller and procurement by a buyer of products offered by sellers associated with seller computers 40. Buyer computers 20 and seller computers 40 cooperate to strive toward an optimum supply chain between buyers associated with buyer computers 20 and sellers associated with seller computers 40. Ideally, through an interactive negotiation process and contractual monitoring system, system 10 eliminates mismatches between the buyer's , demand and the seller's supply, increasing the profitability of each enterprise. Each of buyer computers 20 may execute with any of the well-known MS-DOS, PC-DOS, OS-2, MAC-OS, WINDOWS™, UNIX, or other appropriate operating systems. Each buyer computer 10 may comprise, for example, a desktop computer, a laptop computer, a personal digital assistant, or any other computing or communicating device. Each buyer computer 20 includes an input device 21, an output device 22, random access memory (RAM) 24, read-only memory (ROM) 26, CD-ROM, hard drive, or other magnetic or optical storage media 28 or other appropriate volatile or nonvolatile storage and retrieval devices, and a processor 30 having a system clock or other suitable timing device or software. Input device 21 may comprise, for example, a keyboard, mouse, graphics tablet, touch screen, pressure-sensitive pad, joystick, light pen, microphone, or other suitable input device. Output device 22 may comprise, for example, a video display, a printer, a disk drive, a plotter, a speaker, or other suitable output device. Items within the dashed lines in FIGURE 1 represent exemplary functional operation and data organization of the associated components of system 10. For example, each buyer computer 20 includes or otherwise has access to a memory 32. Memory 32 may comprise any of a variety of data structures, arrangements or compilations operable to store and facilitate retrieval of various information stored locally at buyer computer 20. Although memory 32 is depicted as residing within buyer computer 20, all or any portion of memory 32 could alternatively reside at a remote location accessible to buyer computer 20. Buyer computer 20 executes one or more software applications 34. As used in this document, the term "software application" refers to a set of instructions^ procedures, functions, objects, classes, and/or instances, and related data adapted for implementation in a suitable computer language such as C, C++, Java, or any other appropriate development language. In the illustrated embodiment, software application 34 comprises a procurement manager operable to assist buyer computer 20 in negotiating and executing supply chain contracts with various seller computers 40. In this embodiment, each of seller computers 40 is similar in structure and function to buyer computers 20. For example, each of seller computers 40 may execute with any of the well-known MS-DOS, PC-DOS, OS-2, MAC-OS, WINDOWS™, UNIX, or other appropriate operating systems and may comprise a computing or communicating device, such as a desktop computer, a laptop computer, or a personal digital assistant. Each seller computer 40 includes an input device 41, an output device 42, random access memory (RAM) 44, read-only memory (ROM) 46, CD-ROM, hard drive, or other magnetic or optical storage media 48 or other appropriate volatile or nonvolatile storage and retrieval devices, and a processor 50 having a system clock or other suitable timing device or software. In addition, each seller computer 40 includes or otherwise has access to a memory 52. Like buyer computer 20, seller computer 40 executes one or more software applications 5 . In the illustrated embodiment, software application 54 comprises a supply manager operable to allow seller computer 40 to negotiate and/or execute supply chain contracts with various buyer computers 40. Buyer computers 20 and seller computers 40 communicate with one another using communication links 60. In the illustrated embodiment, communication links 60 comprise communication media suitable to provide a connection between buyer computers 20 and/or seller computers 40 and. a network 12. In this embodiment, network 12 comprises a global computer network, such as the Internet. Network 12 may, however, include any suitable wireline, wireless, or combination wireline/wireless system that supports communication between network elements using ground-based and/or space-based components. For example, network 12 may be public switched telephone networks (PSTN) , integrated services digital networks (ISDN), local area networks (LAN) , wide area networks (WAN) , or other communication systems or combination of communication systems at one or more locations. Communication links 60 and network 12 shown as connecting buyer computers 20 and seller computers 40 may comprise a single network, or separate networks. Buyer computers 20 and seller computers 40 include interfaces 38 and 58, respectively, to facilitate connection to communication links 60. These interfaces include the appropriate hardware (e.g., modem, network interface card, etc.) and software (e.g., multi-layer protocol support, protocol conversion, data processing, data modulation, etc.) to communicate using a direct connection to a PSTN or ISDN, a connection through a LAN, WAN, or global computer network such as the Internet, or any other suitable communication connection that allows network elements to communicate using communication links 40. Buyer computers 20 and seller computers 40 also include browsers 36 and 56, respectively. Browsers 36 and 56 may comprise any suitable software, hardware, or combination thereof, operable to facilitate access to — and user interaction with — other network elements. In the illustrated embodiment, browsers 36 and 56 comprises Internet browsers, such as Netscape™ Communicator available from Netscape Communications Corporation, or Microsoft Explorer™, available from Microsoft Corporation. Browsers. 36 and 56 may comprise stand-alone functional elements, as shown in the illustrated embodiment. Alternatively, all or a portion of the functionality of browsers 36 and 56 could be integrated into other components of system 10, such as interfaces 38 and 58, respectively. Throughout this description, components in system 10 store, communicate, and access information using any format, structure, or arrangement including without limitation machine-readable or user-readable text and graphics. In a particular embodiment, information exchanged in system 10 includes documents or files written in hypertext mark-up language (HTML) , HTML Plus, standard generalized mark-up language (SGML), virtual reality mark-up language (VRML) , extended markup language (XML) , Java objects, or any other appropriate content development language. Information in system 10 may also include program code, such as applets written in JAVA developed by SUN MICROSYSTEMS, or other appropriate self-executing code. In operation, system 10 facilitates collaborative negotiations between one or more buyer computers 20 and one or more seller computers 40 to result in an electronic option contract for the supply of particular products to buyers utilizing system 10. Either buyer computer 20 or seller computer 40 may initiate a negotiation by transmitting proposed contract terms to the other machine. In a particular embodiment, buyer computer 20 and seller computer 40 may negotiate an option contract for the supply and purchase of a particular product offered by a seller associated with seller computer 40. The resulting option contract contains one or more options, which specify obligations of the buyer entity with respect to the purchase of a product, and an obligation of the seller entity with respect to the supply of that product. In a particular embodiment, the option may specify a minimum, obligation of the buyer in purchasing the product and a maximum obligation of the seller in supplying the product. The option, however, could relate to any level of obligation between the parties. The option contract may further include an option price representing a payment of the buyer entity to the seller entity for the value of the option to the buyer entity and the cost of the option to the seller entity. In addition, the option contract may include penalty provisions for deviation from the terms of the contract. The use of an option contract provides a significant advantage in on-line negotiations between buyer computer 20 and seller computer 40. Without the use of an options contract, each computer 20 and 40 of system 10 would have to run an optimization algorithm on particular parameter values, obtain a result, and pass the intermediate result to the other machine over network 12, where that result would be evaluated, modified, and retransmitted back to the other machine. This process would continue until an apparently optimum value was reached. By using option contracts to specify a range or aggregation of potential parameter values (such as a range of quantities or products desired, or a range of delivery locations), system 10 avoids scores of iterations and transmissions across network 12, and instead allows each computer 20, 40 to process an entire range of suggested values without transmitting intermittent suggested values back and forth across network 12. Once the terms of the contract have been negotiated, the option contract is executed. In a particular embodiment, the terms of the executed option contract are stored at the buyer computer 20 and the seller computer 40. Storing the contract terms facilitate monitoring each- party's progress in fulfilling of its contractual obligations. In addition, system 10 can enforce the terms of the contract by, for example, prohibiting buyer computer 20 from exercising the buyer entity's options in a manner inconsistent with the contract's terms, or by assessing penalties for violation of contract's terms. Through the use of electronic option contracts, system 10 increases supply chain efficiency by providing a comfortable level of certainty in the obligations of each party, while maintaining adequate flexibility to avoid supply/demand mismatches. FIGURES 2a and 2b are block diagrams of an exemplary buyer computer 20 and an exemplary seller computer 40, respectively. As discussed above, buyer computer 20 includes a memory 32, a procurement manager 34, a browser 36, and an interface 38. Similarly, seller computer 40 includes a memory 52, a supply manager 54, a browser 56, and an interface 58. Elements of buyer computer 20 communicate with one another over a communication link 110. Communication link 110 may comprise any suitable arrangement of hardware and/or software operable to facilitate communication between elements within or peripherally coupled to buyer computer 20. For example, communication link 110 may comprise a universal serial bus. Elements of seller computer 40 communicate with one another over a communication link 210. Communication link 210 of seller computer 40 is similar in structure and function to communication link 110 of buyer computer 20. In the illustrated embodiment, procurement manager 34 and supply manager 54 each include a variety of modules responsible for providing particular functionality and processing capabilities. The particular number and arrangement of modules shown in FIGURES 2a and 2b are for_ illustrative purposes only. Other and/or additional arrangements, configurations, relationships, and processing divisions could be incorporated without departing from the scope of the invention. In this embodiment, procurement manager 34 includes a forecast module 112. Forecast module 112 operates to provide estimates of the buyer entity' s future demand based, for example, on historical demand and projected market changes. Similarly, supply manager 54 of seller computer 40 includes a forecast module 212. Forecast module 212 may provide estimates of the seller's supply capacity, and may also estimate various customers' projected demand based, for example, on a past course of dealing with that customer. Buyer computer 20 and seller computer 40 can be configured to share information, such as the assumptions each is using in calculating its estimate. By sharing information and allowing each entity to critique the other's forecasts and underlying assumptions, system 10 provides an additional advantage of facilitating collaborative forecasting, which provides more accurate forecasts resulting in increased efficiency due to fewer mismatches in supply and demand. Procurement manager 34 and supply manager 114 also include negotiation modules 114 and 214, respectively. Negotiation modules 114 and 214 operate to conduct negotiations between buyer computer 20 and seller computer 40 with respect to terms of the contract being negotiated. In a particular embodiment, negotiations modules 114 and 214 can be configured to conduct all or a part of the negotiations between buyer computer 20 and seller computer 40 without requiring user input. To further facilitate negotiations between buyer computer 20 and seller computer 40, procurement manager 34 and supply manager 54 include aggregation modules 116 and. 216, respectively. Aggregation modules 116 and 216 cooperate to align and perform any desirable transformation of parameters being negotiated. For example, certain contract parameters may be expressed as an option, or range of possible values. Aggregation module 116 ensures consistency between the underlying parameters on which each machine bases its computations, so that both parties have a consistent understanding of the terms of the resulting contract . Procurement manager 34 and supply manager 54 may also include option price modules 118 and 218, respectively. Option price module 118 of buyer computer 20 estimates the value to the buyer of having flexibility to specify the buyer's obligation as a range instead of a fixed obligation. Option price module 218 of seller computer 40 estimates the cost to the seller of having a higher potential supply obligation under the contract than the buyer's potential obligation to purchase. The option price ultimately contained in the option contract reflects a balance between the flexibility gained by the buyer entity and the cost to the seller entity of facilitating that flexibility, and may also reflect the relative bargaining strength of the parties involved. For example, a dominant buyer may be in a position to demand an option without paying any option price, or by paying a lower option price. Procurement manger 34 and supply manager 54 further include execution modules 119 and 219, respectively. Execution modules 119 and 219 operate to execute the option contracts and to store the terms of the option contracts in memories 32 and 52, respectively. Procurement manager 34 and supply manager 54 may also include tracking modules 120 and 220, respectively. Tracking modules 120 and 220 allow buyer computer 20 and_ seller computer 40 to monitor and enforce the terms of any currently pending contract. Memory 32 of buyer computer 20 includes a variety of files. In the illustrated embodiment, memory 32 includes a buyer information file 130, which can store various information relating to the buyer entity's business, as well as its historical and projected supply needs. Forecast module 112 and/or aggregation module 116 may access buyer information file 130 to obtain information helpful in forecasting supply needs and performing any necessary aggregate transformation during negotiations with seller computer 40. Memory 32 further includes a contract information file 132, which stores information relating to currently pending contracts. Tracking module 120 can access contract information file 132, to observe and/or modify information associated with currently pending contracts as the contracts progress. Memory 32 may further include negotiation information file 134, which includes various information useful in negotiating the terms of a contract. For example, negotiation information file 134 may include historical price lists, previous discounts offered by the seller entity or competitors of the seller entity, acceptable delivery schedules, and other information relating to previously negotiated contracts. Negotiation module 114 may access negotiation information file 134 in determining whether to accept suggested contractual terms, counter-offer, or flag a particular issue as a problem requiring user attention. Memory 52 of seller computer 40 contains similar information files. For example, memory 52 includes a seller information file 230 containing various information relating to the seller entity's business, as well as its historical and projected ability to meet demand needs,. Forecast module 212 and/or aggregation module 216 may access seller information file 230 to obtain information helpful in forecasting the seller entity's inventory and ability to meet projected demand needs, as well as to perform any necessary aggregate transformation during negotiations with seller computer 40. Memory 52 further includes a contract information file 232, which stores information relating to currently pending contracts. Tracking module 220 can access contract information file 232, to observe and/or modify information associated with currently pending contracts as the contracts progress. Memory 32 may further include negotiation information file 234, which includes various information useful in negotiating the terms of a contract. For example, negotiation information file 234 may include price lists previously given to particular buyers, discounts available to particular buyers, acceptable delivery schedules, and other information relating to previously negotiated contracts. Negotiation module 214 may access negotiation information file 234 in determining whether to accept suggested contractual terms, counter-offer, or flag a particular issue as a problem requiring user attention. In operation, forecast module 112 of buyer computer 20 may initially approximate its supply needs by applying current and/or historical supply data to various supply forecasting and optimization models to yield approximate supply needs. These supply needs may be expressed in terms of, for example, a product type, a quantity of product, and/or a geographical region. Known information may suggest that it is appropriate to rely on the accuracy of one or more of the approximations. For example, it may be known that an enterprise in particular geographical region may currently be out of stock of a particular product; it may further be known that the enterprise has a need for that product by a particular date. In that case, the particular product, geographic region of the enterprise, and delivery date can be specified with confidence. In other cases, for various reasons, such as uncertainty in market conditions, the approximations yielded by the forecasting and optimization models may be suspect or uncertain. Continuing with the previous example, while it may be known that a particular enterprise in a particular geographical location will require some level of a particular product by a specified date, the exact quantity required may not be ascertainable with any certainty. Forecast module 112 may account for this uncertainty by specifying the quantity parameter as a range of potential values, or as an option to purchase a quantity between a minimum specified quantity and a maximum specified quantity. Buyer computer 20 may, through negotiation module 114, derive suggested contractual terms, such as the price of the product, the execution date of the contract, an exercise date or range of exercise dates for any option ranges identified by forecast module 112, and/or any other term desired to be included in a supply contract. Negotiations module 114 may consult, for example, buyer information file 130 and/or negotiation information file 134 in deriving the suggested contractual terms. Buyer computer 20 communicates the suggested contractual terms — including forecasted supply requirements expressed as a range or an option — to seller computer 40 associated with the seller supplying the desired product or products. Negotiation modules 114 and. 214 of buyer computer 20 and seller computer 40, respectively, begin with the suggested contract terms and negotiate the terms of an option contract for the supply of the desired product (s). Prior to or during the negotiation process, aggregation modules 116 and 216 may perform any necessary or desired aggregation alignment and/or transformation. Aggregation modules 116 and 216 may access buyer information file 112 and seller information file 212 to determine a common aggregation of parameters to be implemented in the contract. FIGURES 3a and 3b are block diagrams of an exemplary portion of memory 32 associated with buyer computer 32 and of memory 52 associated with seller computer 40, respectively. In the illustrated embodiment, buyer information file 130 includes product information 310, which comprises a compilation of various information related to the products that the buyer entity using buyer computer 20 uses. In this example, product information 310 is arranged by product type 312; each product type 312 is further arranged by vendor 314, and then by product model 316-322. Seller information file 230 of memory 52 also includes product information 410, which is similar to product information 310 stored in memory 32. However, product information 410 stored in memory 52 comprises a slightly different aggregation than product information 310 stored in memory 32. To ensure that buyer computer 20 and seller computer 40 are able to negotiate consistent contractual terms, it may be desirable to use aggregation modules 116 and 216 to determine a common aggregation of parameters. In this case, buyer computer 20 arranges its product information 310 by product type, vendor, and model number; seller computer 40 arranges its product information 410 by product type, product sub-type 412, product application. 414, and model 416-428. To provide a consistent aggregation, aggregation module 116 of buyer computer 20 may temporarily reaggregate buyer product information 310 to be consistent with seller product information 410. For example, aggregation module 116 may disaggregate the buyer product information 310 down to its most granular level (in this case, model numbers 316-322) and then build an aggregation to match that of seller product information 410. As a particular example, buyer computer 20 may suggest a contract option comprising an offer to purchase a quantity of "desktop computers." The aggregation of "desktop computers" would commit the buyer entity to purchase some number of the seller entity's desktop computers, but give the buyer entity flexibility in selecting which particular model or models to purchase until a later date. Aggregation modules 116 and 216, therefore, facilitate specification of ranges of obligations that each party is willing to undertake. The parameters expressed as a range of possible values may ultimately be incorporated into the option contract in the form of an option. The options ultimately incorporated into the option contract specify a range of values which represents an obligation on the buyer entity to purchase the product and an obligation on the seller entity to supply the product. Although the previous example suggested an option as to the particular product models selected, similar options could be created that specify, for example, a range of quantity of a particular product desired, a range of geographical regions to be served, and/or various other attributes associated with the buyer entity's supply needs. Resulting contracts could have one or several dimensions of options. For example, a resulting option contract could specify the _ delivery location (region) , but may create an option as to the exact product to be delivered and the exact quantity demanded. Any combination of option as to region, product, quantity, or other appropriate parameter could be implemented without departing from the scope of the invention. Facilitating negotiation of an option contract provides an advantage to the buyer enterprise in allowing the buyer enterprise to defer the determination of the exact scope of its obligations until a later time, when the buyer entity can more accurately determine its actual supply needs. This flexibility, however, comes at a cost to the seller entity, who must be prepared to meet the maximum contractual obligation even if the buyer entity ultimately chooses a narrower contractual scope. The seller entity may, therefore, desire compensation for this added cost in the form of an option price. As part of the negotiation process, buyer computer 20 and seller computer 40 may determine an option price based, for example, on the value of the option to the buyer entity and the cost of the option to the seller entity. Generally, the greater the flexibility offered to the buyer entity, the higher the cost to the seller entity, and the higher the option price. In determining the option price, option price module 118 of buyer computer 20 may determine the value of a particular option range to the buyer entity. Likewise, option price module 218 of seller computer 40 may determine the seller entity's cost of providing that option. Through an iterative process, buyer computer 20 and seller computer 40 can determine an option range associated with an option price acceptable to both the buyer and the seller. Continuing with the negotiation process, negotiation modules 114 and 214 may access negotiation information- files 134 and 234 to ascertain acceptable compromises in parameter values, such as, price, quantity, delivery locations, and/or delivery timing. Negotiation information files 134 and 234 comprise information, such as, price lists 342; previous discounts offered 344, 442; and other previous contractual terms 346, 444. Negotiation modules 114 and 214 may be programmed to accept proposed contract terms provided that they fall in a given range or bear a particular relation to previously negotiated terms. In addition, negotiation modules 114 and 214 may be programmed to flag certain contractual terms as problem issues, which require user intervention and negotiation. Once the terms of the option contract are negotiated, execution modules 119 and 219 of buyer computer 20 and seller computer 40 and/or the users of those machines execute the option contract. In the illustrated embodiment, both buyer computer 20 and seller computer 40 store the terms of the option contract in memories 32 and 52, respectively. Referring again to FIGURES 3a and 3b, the negotiated contractual terms are stored in contract information files 132 and 232 of buyer computer 20 and seller computer 40, respectively. In the illustrated embodiment, contract information files 132 and 232 store information relating to each contract 332 and 432, respectively. Among the information stored is the terms of the contract 334 and 434, and tracking information 336 and 436. Tracking modules 120 and 220 of buyer computer 20 and seller computer 220, respectively, may access contract information files 132 and 232, respectively, to monitor and enforce the performance of the negotiated contracts. FIGURE 4 shows an example of terms of an option contract 500 executed by buyer computer 20 and seller computer 40. Among the terms of the option contract is an- identification of: the buying enterprise 510, the selling enterprise 512, the execution date 514, the delivery date 516, the product to be delivered 518, the delivery location 520, the sales price 522, and a penalty provision 524 to be exercised in the event of a violation of the terms of option contract 500. Also among the terms of contract 500 is an indication of the contract type 502. In this particular example, buyer computer 20 and seller computer 40 have negotiated an incrementally exercised quantity options contract. The optional term in this contract is the precise quantity that the buyer entity will be obligated to purchase and that the seller entity will be obligated to supply. Contract terms 526 and 526 specify the upper and lower limits, respectively, of the quantity option 530. According to this contract, the buyer entity will ultimately be responsible for purchasing at least 8,000 units; the seller will be responsible for supplying up to 10,000 units. For this option, the parties have negotiated an option price 532 of $5,000. Option contract 500 also specifies a range of exercise dates 534 specifying the earliest possible date 536 that the buyer entity can exercise its option under contract 500, and the latest possible date 538 by which the buyer entity must exercise its option under contract 500. This particular contract is an incrementally exercised contract. Under this type of contract, beginning at the exercise start period 536, the buyer entity may incrementally place several individual orders for the desired product over the course of the exercise period 53 . The seller entity has agreed to supply the cumulative total of all orders placed during the exercise period. This type of contract is particularly advantageous to the buyer entity, as it allows the buyer entity to estimate a flexible range of quantity _ over a range of time. The buyer entity can then place purchase orders according to its actual demand during the exercise period, greatly reducing or eliminating the chances of supply demand mismatches. In processing this type of contract, seller computer 40 accepts buyer computer 20 's orders after the beginning exercise date 536. Seller computer 40 receives purchase orders as long as the cumulative amount of product ordered does not exceed the upper quantity limit 528 specified in contract 500 and until the exercise end date 538. Seller computer could, of course, be programmed to accept purchase orders specifying a quantity greater than upper quantity limit 528 or orders received before the beginning exercise date 536 or after the exercise end date 538. Under the terms of contract 500, however, seller computer 40 is not required to accept such orders. Seller computer 40 stores a record of each purchase order received and, after expiration of the exercise period 534, facilitates delivery of a cumulative total order not exceeding upper quantity limit 528. If buyer computer 20 fails to reach the lower quantity limit 526 by the end of the exercise period 538, seller computer 40 may impose penalty 524 in an amount commensurate with the buying entity's shortfall in purchase orders. By the same token, if the seller entity fails to deliver a valid quantity of product, or delivers the product too late or to the wrong destination, buyer computer 20 may impose penalty 524 for the seller entity's violation. System 10 provides significant advantages in optimizing supply chains in a multi-enterprise trading environment. Through a variety of mechanisms, system 10 increases the profitability of both parties to the contract. By using one or more option terms in the_ contract, system 10 reduces uncertainty in each party's forecasts. Providing one or more dimensions of flexibility to the buyer entity (e.g., options as to quantity, product, geography, etc.) provides value to the buyer entity in allowing it to later select optimum exercise values for the option parameters — reducing supply/demand mismatches. System 10 provides a mechanism to ensure a win-win situation for both parties by setting an option price to account for the value to the buyer entity and the corresponding cost to the seller entity. In addition, providing for well-defined penalties for violation of the terms of the resulting contract provides an incentive for each party to provide the most accurate forecasts possible. FIGURE 5 is a flow chart showing an exemplary method 600 of optimizing multi-enterprise supply chain agreements using an electronic option contract. In this particular example, the method 600 describes a process for implementing an electronic incrementally exercised option contract 500 (FIGURE 4) . The method begins at step 605 where buyer computer 20 determines a range of forecasted demand. For example, forecast module 112 of buyer computer 20 initially approximates the buyer's demand by applying current and/or historical data to various demand forecasting and optimization models to yield an approximate forecasted demand. Based on, for example, statistical models identifying historical or estimated errors in the forecasted demand, forecasting module 112 identifies a range of forecasted demand which accounts for these potential errors . Computer 20 also determines an option price associated with the range of forecasted demand at step 610. For example, option price module 118 may determine the value of the flexibility gained by the range of forecasted demand (as opposed to a fixed forecasted demand) and assign an_ option price corresponding to that value. At some point, preferably prior to negotiating with seller computer 40, buyer computer 20 may contact seller computer 40 and perform aggregation alignment and translation at step 615. For example, aggregation module 116 of buyer computer 20 may communicate with aggregation module 216 of seller computer 40 to establish a common aggregation of contract terms. Buyer computer 20 communicates an offer to enter into an option contract to seller computer 40 at step 620. The offer to enter into an option contract includes an option corresponding to the range of forecasted demand identified by buyer computer 20, and may also include a proposed option price. Typically, buyer computer 20 will receive alternate proposed contract terms from seller computer 40 at step 625. Negotiation module 114 may analyze the alternate proposed contract terms by accessing memory 32 to determine a range of acceptable contract terms at step 630, and determining at step 635 whether the alternate proposed contract terms are within the range of acceptable contract terms retrieved from memory 32. If negotiation module 114 determines at step 640 that the alternate proposed terms are within the acceptable range retrieved from memory 32, negotiation module 114 may accept the alternate proposed terms without user input at step 650. In the event that negotiation module 114 determines at step 640 that the alternate proposed terms are not within the acceptable range retrieved from memory 32, negotiation module 114 may identify the alternate proposed contract term or terms as requiring user input prior to acceptance at step 645. A user of buyer computer 20 may intervene to negotiate the nonaccepted proposed term, and execution module 119 may execute the contract at step 655. In addition, execution module 119 may store the terms of the executed contract in_ contract information file 132 of memory 32. In this particular example, the executed contract 500 (see FIGURE 4) is an incrementally exercised option contract. Tracking module 120 determines at step 660 whether the exercise period 534 has begun. Anytime after exercise period 534 has begun, tracking module 120 may initiate, or act in response to a user input requesting an update of the buyer's forecasted demand. Forecasting module 112 updates the buyer's forecasted demand to determine the buyer's current demand needs. Exercise module 121 communicates a request to seller computer 40 to exercise the option in the contract according to the updated forecasted demand at step 670. Tracking module 120 stores the value of the updated forecasted demand in contract information file 132 of memory 32. Tracking module 120 next determines at step 675 whether the exercise of the option satisfies the buyer's minimum obligation, in this case specified by lower quantity limit 526 of contract 500. If the buyer's minimum obligation has not been met, tracking module 120 determines at step 680 whether the exercise period has ended. If the exercise period has ended, and the buyer's minimum obligation has not been met, tracking module 120 determines a penalty at step 685 for the buyer's short fall in its minimum obligation. If, however, tracking module 120 determines at step 680 that time remains in the exercise period, tracking module 120 awaits another update to the buyer's forecasted demand at step 665. Even where the buyer's minimum obligation has been met at step 675, the terms of contract 500 allow buyer computer 20 to place further purchase orders prior to the expiration of the exercise period. For example, procurement manager 34 may determine at step 690 that despite the buyer' s_ minimum obligation being met, the exercise period has not ended. If buyer computer 20 received an indication, either through user input or through information stored in memory 32, that the buyer entity desires more product at step 695, procurement manager may communicate another updated forecast demand at step 665 requesting additional product. In a particular embodiment, procurement manager 34 may be programed to refuse to communicate another updated forecast demand if it determines at 698 that the seller's maximum obligation has been met. For example, contract 500 specifies an upper quantity limit 528 of ten thousand units. If buyer computer 20 has already requested ten thousand units, procurement manager 34 can be programed to disallow further requests to seller computer 40. FIGURE 6 is a flow chart showing an exemplary method of optimizing a multi-enterprise supply chain agreement. Method 700 begins at step 705 where supply manager 54 of seller computer 40 receives proposed terms of an option contract 500 from buyer computer 20. Aggregation module 216 may align and translate the aggregation of parameters in option contract 500 at step 710. Typically, forecast module 212 will determine a range of forecasted supply capacity at step 715 and an option price associated with that range of forecasted supply capacity at step 720. Based on these calculations, negotiation module 214 of supply manager 54 may determine at step 725 whether the contract terms proposed by buyer computer 20 are acceptable. In addition, or in the alternative, negotiation module 214 may consult negotiation information file 234 to determine whether the proposed contract terms are acceptable. If the proposed contract terms are found to be acceptable at step 725, execution module 219 executes the option contract at step 740. If, however, negotiation module 214 determines at step 725 that_ the proposed contract terms are not acceptable, negotiation module 214 may communicate alternate proposed contract terms to buyer computer 20 at step 730 and negotiate the ultimate terms of the contract at step 735. The negotiating step 735 may include comparing proposed contract terms to a range of acceptable terms stored in negotiation file 234, and identifying particular terms as requiring user input prior to acceptance. Execution module 219 stores the terms of the executed contract in memory 52 at step 745. This example, like the one described with respect to FIGURE 5, addresses the execution of an incrementally exercised option contract 500 (see FIGURE 4). Upon receiving a request from buyer computer 20 to exercise an option in the contract at step 750, supply manager 54 accesses memory 52 to determine the terms of the option contract at step 755. Supply manager 54 determines at step 760 whether exercise period 534 has begun. If supply manager 54 determines at step 760 that exercise period 534 has not begun, supply manager 54 notifies buyer computer 20 at step 765 that its request is improper, in this case because it is premature. Of course, supply manager 54 can be programmed to accept premature purchase orders. If supply manager 54 determines at step 760 that exercise period 534 has begun, it determines at step 770 whether the request exceeds the maximum seller obligation. In this case, the option 530 in contract 500 is a quantity option specifying a lower quantity limit 526 and an upper quantity limit 528. Lower quantity limit 526 specifies the minimum obligation of the buyer in purchasing the specified product, and upper quantity limit 528 specifies the maximum obligation of the seller in supplying that product. If supply manager 54 determines at 770 that the exercise request from buyer computer 20 exceeds the maximum seller_ obligation, in this case upper quantity limit 528, supply manager 54 notifies buyer computer 20 that its request is improper at step 765. Of course, supply manager 54 could be programmed to accept exercise requests that exceed the maximum seller obligation, for example, those exceeding the maximum seller obligation by a predetermined amount. If supply manager 54 determines at step 770 that the exercise request received from buyer computer 20 does not exceed the maximum seller obligation, it stores the exercise request at step 775 in contract information file 232 of memory 52. Supply manager 54 determines at step 780 whether the exercise period 534 has ended. For example, supply manager 54 may compare a current date (obtained, for example, from the system clock of seller computer 40) with exercise period end date 538. If supply manager 54 determines at step 780 that the exercise period 534 has not ended, it may receive another exercise request at step 785 from buyer computer 20 and process that request as described above. If supply manager 54 determines at step 780 that exercise period 534 has ended, it determines at step 790 whether the minimum obligation 526 of the buyer has been met. In this case, the minimum buyer obligation 526 is a requirement that the buyer purchased a minimum quantity of product. If supply manager 54 determines at step 790 that the buyer's minimum obligation has not been met, it determines a penalty at step 795 for the buyer's short fall. In this example, contract 500 contains a penalty provision 524 specifying a penalty of one dollar per unit of quantity violation. Tracking module 220 accesses contract information file 232 to identify this contract provision, compare it to the quantity exercised by buyer computer 20, and calculate a resulting penalty. Supply manager 54 facilitates satisfaction of the. seller's obligation at step 800. For example, supply manager 54 can be programmed to automatically schedule delivery of the exercised quantity of product if that exercised quantity is at least equal to the lower quantity limit 526 and not more than the upper quantity limit 528. Of course, supply manager 54 can also be programmed to accommodate deliver of non-conforming quantity requests. Although the present invention has been described in several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes, variations, alterations, transformations, and modifications as fall within the spirit and scope of the appended claims.

Claims: WHAT IS CLAIMED IS: 1. A method of optimizing multi-enterprise supply chain agreements using an electronic option contract, the method comprising: determining at a buyer computer a range of forecasted_ demand for a product; communicating from the buyer computer to a seller computer an offer to enter into an option contract for the supply of a product, the option contract including an option corresponding to the range of forecasted demand; executing the option contract; updating at the buyer computer the forecasted demand; and exercising the option in the option contract within the range of forecasted demand based on the updated forecasted demand. 2. The method of Claim 1, wherein the option comprises a range of parameters selected from a group consisting of: a minimum quantity of a product that the buyer is obligated to purchase, and a maximum quantity of the product that the seller is obligated to supply; a minimum number of product types that the buyer is obligated to purchase, and a maximum number of product types that the seller is obligated to supply; and a minimum number and a maximum number of locations where a product must be delivered. 3. The method of Claim 1, wherein the option comprises a plurality of ranges of parameters each selected from a group consisting of: a minimum quantity of a product that the buyer is obligated to purchase, and a maximum quantity of the product that the seller is obligated to supply; a minimum number of product types that the buyer is obligated to purchase, and a maximum number of product- types that the seller is obligated to supply; and a minimum number and a maximum number of locations where a product must be delivered. 4. The method of Claim 1, wherein the option contract includes an exercise period comprising a period of time after the execution of the option contract during which the buyer must exercise its option. 5. The method of Claim 4, wherein exercising the option comprises: specifying a first quantity of product desired at a first time during the exercise period; specifying a second quantity of product desired at a second time during the exercise period; and wherein the updated forecasted demand comprises the sum of the first and second quantities of product desired. 6. The method of Claim 1, further comprising: receiving from the seller computer a modified range of forecasted demand comprising the range of forecasted demand modified by an optimization model at the seller computer; and accepting the modified range of forecasted demand as a term to the option contract. 7. The method of Claim 1, further comprising: receiving a proposed contract term from the seller computer; accessing a memory comprising a range of acceptable contract terms; and _ comparing the proposed contract term to the range of acceptable contract terms . 8. The method of Claim 7, further comprising: determining that the proposed contract term is within the range of acceptable contract terms; and accepting the proposed contract term without user input . 9. The method of Claim 7, further comprising: determining that the proposed contract term is not within the range of acceptable contract terms; and identifying the proposed contract term as a term requiring user input prior to acceptance. 10. The method of Claim 1, further comprising: determining at the buyer computer a proposed option price comprising a value of the option to a buyer associated with the buyer computer; communicating from the buyer computer to the seller computer the proposed option price; and negotiating with the seller computer an agreed option price based on the value of the option to the buyer and a cost of the option to a seller associated with the seller's computer. 11. The method of Claim 10, wherein negotiating an agreed option price comprises: receiving from the seller computer a modified proposed range of forecasted demand comprising the proposed range of forecasted demand modified by an optimization model at the__ seller computer; determining a modified proposed option price based on the modified proposed range of forecasted demand; and communicating the modified proposed option price to the seller computer. 12. A method of optimizing multi-enterprise supply chain agreements using an electronic option contract, the method comprising: receiving at a seller computer terms of an option contract from a buyer computer, the terms comprising an_ option corresponding to a buyer's range of forecasted demand for a product; communicating to the buyer computer an acceptance of the terms of the option contract; storing the terms of the accepted option contract in a memory accessible to the seller computer; and enforcing the terms of the option contract at the seller computer without user input. 13. The method of Claim 12, wherein the option comprises a range of parameters selected from a group consisting of: a minimum quantity of a product that the buyer is obligated to purchase, and a maximum quantity of the product that the seller is obligated to supply; a minimum number of product types that the buyer is obligated to purchase, and a maximum number of product types that the seller is obligated to supply; and a minimum number and a maximum number of locations where a product must be delivered. 14. The method of Claim 12, wherein the option comprises a plurality of ranges of parameters each selected from a group consisting of: a minimum quantity of a product that the buyer is obligated to purchase, and a maximum quantity of the_ product that the seller is obligated to supply; a minimum number of product types that the buyer is obligated to purchase, and a maximum number of product types that the seller is obligated to supply; and a minimum number and a maximum number of locations where a product must be delivered. 15. The method of Claim 12, wherein the option contract includes an exercise period comprising a period of time after the execution of the option contract during which the buyer must exercise its option, and wherein enforcing the terms of the option contract comprises: receiving a request from the buyer computer to exercise the buyer's option comprising an identification of the buyer's exercised level of demand under the contract; accessing the memory to retrieve the stored contract terms, including an exercise period begin date and an exercise period end date; and comparing a current date to the exercise period begin date and the exercise period end date. 16. The method of Claim 15, further comprising: determining that the exercise period has begun and has not expired; and accepting the buyer computer' s request to exercise the buyer's option. 17. The method of Claim 16, wherein the buyer computer's request comprises an identification of a first quantity of product desired, and further comprising: storing the request for a first quantity of product desired in the memory; _ receiving a subsequent request from the buyer computer to exercise the buyer' s option comprising an identification of a second quantity of product desired; determining that the exercise period has not yet expired; and storing the request for a second quantity of product desired in the memory. 18. The method of claim 16, further comprising: comparing the buyer' s exercised demand level to a minimum obligation of the buyer under the contract; and determining a penalty if the buyer' s minimum obligation level exceeds the buyer's exercised demand level after the expiration of the exercise period. 19. A procurement manager operable to be executed on the processor of a buyer computer, the procurement manager comprising: a forecast module operable to determine the buyer's range of forecasted demand for a product; _ a negotiation module operable to communicate to a seller computer an offer to enter into an option contract for the supply of a product, the option contract including a proposed option corresponding to the range of forecasted demand, the negotiation module further operable to receive from the seller computer a modified range of forecasted demand, to communicate the modified range of forecasted demand to the forecast module, and to receive from the forecast module a compromised range of forecasted demand; an execution module operable to execute an option contract including an option corresponding to the compromised range of forecasted demand; and an exercise module operable to receive from the forecast module an updated forecasted demand within the comprised range of forecasted demand and to communicate to the seller computer a request to exercise the option with the updated forecasted demand. 20. The procurement manager of Claim 19, wherein the option comprises a range of parameters selected from a group consisting of: a minimum quantity of a product that the buyer is obligated to purchase, and a maximum quantity of the product that the seller is obligated to supply; a minimum number of product types that the buyer is obligated to purchase, and a maximum number of product types that the seller is obligated to supply; and a minimum number and a maximum number of locations where a product must be delivered. 21. The procurement manager of Claim 19, wherein the option comprises a plurality of ranges of parameters each selected from a group consisting of: a minimum quantity of a product that the buyer is obligated to purchase, and a maximum quantity of the_ product that the seller is obligated to supply; a minimum number of product types that the buyer is obligated to purchase, and a maximum number of product types that the seller is obligated to supply; and a minimum number and a maximum number of locations where a product must be delivered. 22. The procurement manager of Claim 19, wherein the option contract includes an exercise period comprising a period of time after the execution of the option contract during which the buyer must exercise its option, and wherein the exercise module is further operable to specify a first quantity of product desired at a first time during the exercise period and to specify a second quantity of product desired at a second time during the exercise period, the buyer' s obligation under the option contract comprising the sum of the first and second quantities of product desired. 23. The procurement manager of Claim 19, wherein the negotiating module is further operable to receive a proposed contract term from the seller computer, access a memory comprising a range of acceptable contract terms, determine that the proposed contract term is within the range of acceptable contract terms, and to accept the proposed contract term without user input. 24. The procurement manager of Claim 19, wherein the negotiating module is further operable to receive a proposed contract term from the seller computer, access a memory comprising a range of acceptable contract terms, determine that the proposed contract term is not within the range of acceptable contract terms, and to identify the proposed contract term as a term requiring user input prior to acceptance. 25. The procurement manager of Claim 19, further comprising an aggregation module operable to compare a buyer's aggregation of parameters with a seller's aggregation of parameters, and to transform at least one of the aggregations of parameters to conform with a common aggregation of parameters. 26. The procurement manager of Claim 19, further comprising an option price module operable to determine a proposed option price comprising a value of the option to a buyer associated with the procurement manger and to communicate the proposed option price to a seller computer, and wherein the negotiation module is operable to negotiate with the seller computer an agreed option price based on the value of the option to the buyer and a cost of the option to a seller associated with the seller's computer. 27. The procurement manger of Claim 19, further comprising a tracking module operable to store terms of the executed option contract and to track the buyer's fulfillment of its obligations under the option contract. 28. A supply manager operable to be executed on the processor of a seller computer, the supply manager comprising : a forecast module operable to determine the seller's range of forecasted supply capacity for a product; _ a negotiation module operable to receive from a buyer computer an offer to enter into an option contract for the supply of a product, the option contract including a proposed option corresponding to a range of forecasted demand; an execution module operable to execute the option contract and to store the terms of the option contract in a memory accessible to the seller computer; and a tracking module operable to receive a request from the buyer computer to exercise the option, to access the memory to determine the terms of the option contract, and to determine whether to grant the request to exercise the option . 29. The supply manager of Claim 28, wherein the option comprises a range of parameters selected from a group consisting of: a minimum quantity of a product that the buyer is obligated to purchase, and a maximum quantity of the product that the seller is obligated to supply; a minimum number of product types that the buyer is obligated to purchase, and a maximum number of product types that the seller is obligated to supply; and a minimum number and a maximum number of locations where a product must be delivered. 30. The supply manager of Claim 28, wherein the option comprises a plurality of ranges of parameters each selected from a group consisting of: a minimum quantity of a product that the buyer is obligated to purchase, and a maximum quantity of the_ product that the seller is obligated to supply; a minimum number of product types that the buyer is obligated to purchase, and a maximum number of product types that the seller is obligated to supply; and a minimum number and a maximum number of locations where a product must be delivered. 31. The supply manager of Claim 28, wherein the option contract includes an exercise period during which the buyer must exercise its option, and wherein the option contract comprises a maximum supply quantity that the seller has agreed to supply, and wherein the request to exercise the option comprises a first request for a first quantity of product desired, and wherein the tracking module is operable to store the request in the memory if a current date is within the exercise period and the first quantity is less than or equal to the maximum supply quantity. 32. The supply manager of Claim 31, wherein the request to exercise the option comprises a second request for a second quantity of product desired, and wherein the tracking module is operable to store the request in the memory if a current date is within the exercise period and the sum of the first and second quantities is less than or equal to the maximum supply quantity. 33. The supply manager of Claim 28, wherein the option contract comprises a penalty term specifying a penalty for a violation of the contract terms, and wherein the tracking module is operable to identify a violation of the contract terms and to assess a penalty for the_ violation based on the penalty term. 34. The supply manager of Claim 28, wherein the offer to enter into the option contract comprises a proposed term, and wherein the negotiation module is operable to access a memory comprising a range of acceptable contract terms, determine that the proposed contract term is within the range of acceptable contract terms, and to accept the proposed contract term without user input. 35. The supply manager of Claim 28, wherein the offer to enter into the option contract comprises a proposed term, and wherein the negotiation module is operable to access a memory comprising a range of acceptable contract terms, determine that the proposed contract term is not within the range of acceptable contract terms, and to identify the proposed contract term as a term requiring user input prior to acceptance. 36. The supply manager of Claim 28, further comprising an aggregation module operable to compare a buyer's aggregation of parameters with a seller's aggregation of parameters, and to transform at least one of the aggregations of parameters to conform with a common aggregation of parameters. 37. The supply manager of Claim 28, further comprising an option price module operable to determine a proposed option price comprising a cost of the proposed option to a seller associated with the supply manger and to communicate the proposed option price to the buyer__ computer, and wherein the negotiation module is operable to negotiate with the seller computer an agreed option price based on the value of the option to the buyer and a cost of the option to a seller associated with the seller's computer.

Inventors: NOTANI RANJIT N, NOTANI, RANJIT, N.
Applicants: I2 TECHNOLOGIES INC, I2 TECHNOLOGIES, INC.
Application year: 1999
Main classification: G06F17
IPC codes: G06Q10, G06Q30, G06Q50