INTERNET-BASED INTERACTIVE MARKET FOR SALE OF PRODUCTS AND SERVICES
BACKGROUND OF THE INVENTION Field of the Invention
The present invention relates generally to Web-based auctions and particularly, to an on-line interactive market that aggregates both buyer demand within a market and implements novel matching algorithm for matching multiple buyers and sellers at lowest average unit cost.
Discussion of the Prior Art
The internet has been developing as a worldwide communication tool for businesses and consumers. At present, there are various different market models that are developing to allow businesses and consumers to buy and sell products and services. These markets include share trading systems where
Internet users log onto a web site that has information fed to it about the prices being made in separate financial trading markets such as Nasdaq and the NYSE and they can then choose to allow the web site provider to execute the transaction: in these financial cases the markets are made elsewhere and the internet host provides a communication tool to reduce processing costs of buying in that non- internet market. The market itself is conducted outside of the Internet and the prices are communicated on the Internet. Outside of the financial sector, certain markets on the Internet itself have appeared where buyers can bid for products and services.
These include the auction sites hosted for items such as antiques by companies like E-bay where bidders bid against other bidders for an item posted by a seller with often a minimum reserve price. In these cases, the markets are designed to obtain the best prices for the seller. There have also appeared Internet based sites that conduct what are called "declining price auctions". Again, the situation here is that one seller posts his various different prices dependent on the volume of the item that will be bought by the buying power that comes to buy from that site. In these cases, the price of the item will drop according to the predetermined schedule that the seller has agreed with the web site provider when more and more buyers come onto the site. Many reverse auction sites exist however, they are one-to-one markets at the completion of the market and, in addition, rely solely on supplier competition to get better pricing for buyers .
Thus, current auction sites usually require buyers to bid up the price or sellers to bid down the price. When buyers have to bid price up, they do not have the ability to state their preferred price, they are tied to the latest bid. Also, they do not have flexibility on quantity - either they must accept what supply is offered by the seller or they must only enter one quantity (less than or equal to the amount offered by the seller) . Likewise, when sellers have to bid price down, they do not have the ability to state their preferred price, they are tied to the latest offer. Also, they do not flexibility on quantity - either they must accept what demand is required by the buyer or they must only enter one quantity. They are not able to provide partial shipments.
It would thus be highly desirable to provide an Internet-based market system that enables both buyers and sellers to customize the market (for particular goods or services) to meet their individual needs by enabling both buyer and seller to interactively enter their own price (e.g., maximum for buyer (s), minimum for seller(s)), minimum and
maximum quantities and product type, and, generate a maximum number of matches for effecting the transaction.
It would additionally be highly desirable to provide an Internet-based market system that utilizes a novel matching engine that considers all four parameters (price, minimum and maximum quantity, and product type) and aggregates buyer demand within a market and then matches multiple buyers and sellers to arrive at a lowest average unit cost .
Summary of the Invention
It is an object of the present invention to provide a market system and methodology that enables multiple buyers and multiple vendors to customize the market (for particular products or services) to meet their individual needs in realtime, via the Internet.
It is another object of the present invention to provide a market system and methodology implementing a matching methodology that utilizes four parameters (price, minimum and maximum quantity and product type) for generating the maximum number of matches.
It is still another object of the present invention to provide a market system and methodology implementing a matching methodology that anonymously aggregates buyer demand within a market and then matches multiple buyers and sellers to secure a lower price for the buyer (s) rather than a higher price for the vendor.
It is a further object of the present invention to provide a market system and methodology that enables either a buyer or seller to initiate the market, or join an existing market .
It is yet another object of the present invention to provide a business-to-business dynamic pricing solution that allows buyers and sellers to set pricing based on the specific circumstances of a market - time, volume, product type, competitive situation, etc., and facilitates creation of more efficient markets.
Referred to herein as "Interactive Market", the market system and methodology of the invention is an Internet/World-Wide-Web based technology designed to bring together the demand and supply of products/services. The technology enables buyers to communicate the price they are willing to pay for a product and the quantity they require as well as allowing suppliers to identify the price they would like to sell product for and the quantity they have available. The process allows each of the players to enter or modify their offers to ensure demand equals supply as often as possible. Ultimately, the technology brings together buyers and sellers in a single area where they may interact, negotiate prices and quantities and allow free market economies to rule. In the Interactive Market technology, the creator of the market is the first demand to be satisfied, if supply is available at or below the buyers price point and the buyer min/max quantities fit within the supplier range or can be aggregated to fit within the range. The creator therefore, benefits from the best price available and the maximum demand quantity satisfied. The buyers demand is then fulfilled, in a queuing order, until either all demand is met or until supply runs out. On the supply side, matches are first attempted using the supplier with the lowest price. All buyers are matched at that price (providing it is less than or equal to the buyers price) until supply runs out. If there is still remaining demand, the system continues to match supply and demand with the next lowest price until either all demand is satisfied or until supply runs out. Thus, advantageously, the Interactive Market technology facilitates "many to many" relationships with the result that all buyers benefit from the lowest possible price available at their place in the queue . The degree of customization afforded by the Interactive Markets ensures users have maximum flexibility within each market .
Interactive Market technology further provides users with maximum choices upon entering. Buyers or sellers may
create a new market or join an existing market. Existing markets provide buyers with the ability to aggregate demand with other buyers and take advantage of seller offers that are available (either within a buyer-initiated market or within a seller-initiated market) . New markets allow buyers to set their own parameters and customize the market to suit their needs. On the seller side, existing markets provide the opportunity for sellers to bid on existing demand and source new customers. New markets allow sellers to set their own parameters and customize the market to suit their needs.
The Interactive Market technology provides buyers and sellers with the ability to alter current bids/offers however, implements mechanisms to ensure that buyers and sellers do not purposely "avoid" matches -thus, giving participants confidence of matches. Buyers may increase their price and/or their maximum demand to be matched with an "open to sell". Sellers may decrease their price and/or increase their maximum supply to be matched with an "open to buy" . Thus, advantageously, the ability to allow alteration of bids/offers afforded by Interactive Market technology ensures control while still offering flexibility.
Advantageously, the Interactive Market system streamlines the process for business-to-business commerce. The on-line mechanism significantly reduces the time and effort spent by companies on soliciting competitive pricing. Buyers and sellers may come together, on-line, in a matter of minutes, regardless of geographic location.
Brief Description of the Drawings
Further features and advantages of the invention will become more readily apparent from a consideration of the following detailed description set forth with reference to the accompanying drawings, which specify and show preferred embodiments of the invention, wherein like elements are
designated by identical references throughout the drawings; and in which:
Figure 1 is a high-level block diagram illustrating the component comprising the IM market .
Figure 2 illustrates an example web-based communication 100 depicting the state of the market after creation by a buyer.
Figures 3 (a) -3 (c) illustrate the process for updating the IM Matching engine table for tracking offers and bids for all participants in a created market in accordance with the principles of the invention;
Figure 4 illustrates the process for determining the market's Match Status in accordance with the principles of the invention;
Figures 5 (a) -5(f) illustrate the process loop for assigning and matching seller offers to individual buyers in accordance with the principles of the invention.
Figures 6(a) and 6(b) illustrate an exemplary bidding scenario 500 and matching algorithm processing in accordance with the principles of the invention.
Figure 7 illustrates a resultant Matching Engine algorithm table formed and updated in accordance with the example bidding scenario of Figures 6 (a) -6(b).
Detailed Description of the Preferred Embodiments
The "Interactive Market" system of the invention (hereinafter "IM") is an Internet/World-Wide-Web based technology designed to bring together the demand and supply of products (and/or services) by allowing maximum flexibility for both buyers and sellers. The IM system essentially permits
all participants to "play" by their own rules with buyers creating firm bids to purchase a specified quantity of product, at a specified maximum price, and sellers identifying the price they would like to sell the product for and the quantity they have available. Within certain guidelines (to protect the "firmness" of the market) , the process permits each of the players, via their web-browser, to enter or modify their offers to ensure demand equals supply as often as possible. An automated email notification engine is built into the system to ensure buyers and sellers are notified of new markets as they are created. As will be described in greater detail herein, in the IM system, buyers will never be matched at a price higher than the maximum price they entered and will never be matched with a quantity less than their minimum quantity or greater than their maximum quantity.
Sellers will never be matched at a price less than the minimum price they entered and will never be matched with demand that is less than their minimum quantity or greater than their maximum quantity. Figure 1 depicts a high-level block diagram illustrating the system components making up the IM market . As shown in Figure 1, there exists a web site 10 including one or more IM web servers and database servers 20 comprising software for creating and managing the interactive market. Participants, i.e., buyers and sellers 12a, ...,12n alike, are enabled to access the Web site remotely via wired or wireless web-browser connections to the Web or public Internet 15 via a firewall 17. As depicted in Figure 1, the system employs a variety of mechanisms 22 including e-commerce software for tracking customers, posting messages, billing systems, etc., in addition to db Search engines for accessing database information 18 relating to buyer and seller IM participants, and product/service catalogue information 19 for enabling online customer access to the products/services upon which an IM market may be based. At the heart of the system is a unique matching engine 24 functioning to automatically match buyers and sellers based on price, quantity and place in the queue,
i.e., order in which they joined the IM market. Ultimately, the IM web-site 10 brings together buyers and sellers in a single area where they may interact, post prices and quantities and allow free market economies to rule. The dynamic nature of the markets is brought to life by the automated bid/offer processing and continual automated matching as will be explained in further detail. The system additionally employs an internal administration system 26 for enabling internal access to market status, e.g., for tracking, testing or troubleshooting purposes and, to enable manual overrides .
Via the participant's browser, the IM web-site enables the participant (buyer and/or seller) to create a new market OR join an existing market. It is understood that each market includes a defined PRIMARY product, and up to three (3) SUBSTITUTE products which are similar products to the primary products. These substitute products provide the opportunity for maximum amount of matches . The PRIMARY product and SUBSTITUTE products are defined by the market's initiator. Thus, the IM technology implemented at the web-site 10 ensures product specification accuracy by forcing users to clearly identify the product, for example, by searching pre-loaded catalogs. Products (both primary and substitute) are chosen and identified by a manufacturer part number, for instance, with full product descriptions and viewable images of the product and substitute products. This ensures maximum possible aggregation (buyers are clear on the product in the market, giving them more confidence to add their volume) and accuracy on the supplier side (sellers know the exact product on which they are bidding) . It should be understood that sellers are not allowed to offer products not on the primary or substitute lists within the market. All buyers that join the market must be willing to accept any (primary or substitute) of the products within the market if matched. Preferably, each market is open for a specified period of time, defined by the market's initiator. It is further understood that the types of products for which an IM market
may be created is not limited to tangible goods, but may include intangible property, such as, for example, patent ownership rights .
Figure 2 illustrates an example web-based communication 100 depicting the state of the market after creation by a buyer. This web-page 100 may be provided to each participant desirous of entering the market immediately after its creation. In the example web-based communication 100, there is shown an illustration 110 of the primary product that is subject of the bid, and, text including the manufacturer part number 112, a description of the product 114, the product category 116, and any substitute products 118 the buyer is willing to accept. Further included is information related to that product's list price, currency used, and the units of measure. Further included is information previously entered by the user including an indication of the open and close date 120 for the IM market, an eventual shipping date 125, and, more importantly, the buyer's bid price 130 and minimum/maximum quantity designations 140. It is understood that this information has been previously entered via user entry fields or pop-up windows prompting user entry of the market information after the buyer has successfully logged into the system. Boldly displayed in the example web-based communication 100 is additional current market information 200 including the number of product units 202 that have been matched, the number of buyers 204 and the number of sellers. A visual depiction 210 is additionally provided for indicating the total matched and unmatched quantity for this customer in real-time as the market progresses, and further, an indication of the current match price 230 may be given.
In an example scenario, if a buyer starts the market, the buyer enters into the system, and if the buyer has not already done so, he/she registers with the IM web site providing company or personal information and evidence or authorization of financial standing and commitment; this will provide the system with the confidence to complete the
transaction on the buyer (s) behalf. After employment of any security and verification technique, the buyer then may initiate a market by indicating desire to purchase a volume of product units, for example, 500 units, of a particular product listed in the IM web-site's on-line catalogue. The system confirms through its information database 19 (Figure 1) the precise specifications of the product in question. Via user display entry fields (not shown) , the buyer affirms the specification and/or the brand name and sets a maximum price that he/she wishes to buy the product units at (for example,
$100 per unit) , as well as other requirements such as delivery time. This offer is posted in the IM web page, for anyone to see, as depicted in Figure 2. Thus, at a minimum, the market is created to determine whether a seller is willing to bid at the price offered for the specified volume. Preferably, the IM system is provided with a mechanism for enabling the buyer/seller to specify how long the market is to stay open, up to a maximum period of 24 hours, for example. If a seller decides to bid at the price for the quantity desired, the seller needs to, if he has not already done so, register with the system to establish evidence of his credentials. At this point, the user (vendor, or seller) is ready to go into the system and post a bid offering the best price. If the price offered matches the buyer's demands, then this transaction will be completed unless another vendor comes and offers a better price before the end of 24 hours time period. This process may be repeated by the same or different participants with each buyer or seller entering via the web-browser interface the minimum and maximum demand/supply quantities and unit price. Thus, for the example described herein, a seller may offer $100 per unit. However, before the end of 24 hours, another buyer seeing the price being offered enters the system with the desire to be added to the consortium for 150 units at $100 or less. A second vendor, seeing the increasing volume, may then come in and, for example, may offer to sell 650 units at $90. This second vendor bid then becomes the default match unless beaten before 24 hours. It should be understood
however, if no user (existing buyer or new participant buyer) has bid at $100 or less for 650 units within the specified market time, then only the first buyer's order would have been fulfilled at the end of the market time. It is understood that other buyers and sellers may post bids and offers to the market, specifying the buying or selling price for a product, and minimum and maximum order quantities, within the specified time period.
If a seller initiates the market with an offer to sell a certain number of units, other sellers can go in and offer lower prices until a sufficient number of buyers are attracted or, the market timing runs out with no match. Thus, as will be explained in greater detail herein, buyer demand is aggregated within each market. Sellers can offer to supply all or a portion of the demand, but the winning supplier (s) is chosen based on lowest price.
As mentioned, underlying the Interactive Market (IM) Matching Engine is an algorithm that drives the process for matching Buyer and Seller bids. The algorithm implements matching logic designed to ensure the maximum number of matches between multiple buyers and multiple sellers, as possible. Buyers demand is fulfilled based on price, quantity and place in the queue (order in which they joined the market; first in, first satisfied etc.). Preferably, the IM system always attempts to match buyers demand with primary product first, however if that is not possible, then substitute product will be used (as identified by the market's creator) . It should be understood that the lowest price supply is used first. In the case of two suppliers offering the same price, the first supplier to enter the market will be used first.
Buyers are matched at the lowest average unit price possible. Matches are not final until time runs out on the market. In the preferred embodiment, automatic email notifications are sent to all IM participants - to alert them to the creation of a market and to notify them of the outcome, once a market closes .
A detailed examination of the IM Matching Engine Algorithm 300 in accordance with the invention is now provided in view of Figures 3 (a) -3 (c) , 4, and 5 (a) -5(f). Initially, the matching algorithm 300 sets up a table such as provided in Table A, having fields that will be populated with entries for tracking the IM status for each market initiated. Particularly, Table A is organized as a series of rows associated with a "Price" (associated with offers (seller) or product bids (buyer) ) with each row including the following associated fields: "minimum buyer quantity", "maximum aggregate buyer quantity" , "minimum seller quantity" , "maximum aggregate seller quantity", and, "matched quantity". Initially, Table A is empty. As participants enter the market, the field values are calculated in accordance with the matching engine algorithm and the Table A is updated. In view of Figure 3(a) at step 302, an initial creator's bid (buyer or seller) triggers generation of the Table A, and a price, and product quantities are first entered into the Table A. For instance, if a seller enters a bid, the price, minimum seller and maximum aggregate seller quantity fields are populated; similarly, if a buyer enters a bid, the price, minimum buyer and maximum aggregate buyer quantity fields are populated.
Table A
Then, the system waits until there is a received bid, as indicated at step 305. Each time a new bid (offer to sell or bid to buy) is added to the IM market, or, an existing participant wishes to modify a bid or offer, the Table A is updated in accordance with the following steps:
At step 307, Figure 3(a), a determination is made as to whether there have been received any other bids at this price. If there have been no other bids at this price, then at step 310, there is performed the step of inserting the new bid price in the "Price" column of Table A and proceeding to step 312; otherwise, if there have been other bids at this price, proceeding directly to step 312 to determine whether this bid is from a buyer. If it is determined that this bid is from a buyer, then there is performed the step of updating the "minimum buyer quantity" column of Table A in accordance with steps as now described with respect to Figure 3(c).
Particularly, with respect to Figure 3 (c) , if the received bid is from a buyer, there is invoked a first step 332 of determining if this bid is the first bid from a buyer and, if so, updating the "minimum buyer quantity" column of Table A at step 335 and proceeding to step 320, Figure 3(b) . Otherwise, if the received bid is not the first bid from a buyer, the step 337 evaluates the following condition: 1. whether that bid price is higher than the lowest price where there is some buyer quantity AND, 2. whether there are any other buyer bids at or above this price. If the condition at step 337 holds true, then there is performed the step 340 of updating the "minimum buyer quantity" column of Table A with this buyer's minimum quantity. This is because a new row (price) has to be added to the table. Otherwise, if the condition at step 337 does not hold true, then the process proceeds to step 342 where the following condition is evaluated: 1. whether the price is higher than the lowest price where there is some buyer quantity; AND, 2. whether there are no other buyer bids at or above this price. If at step 342, it is determined that the condition of step 342 evaluates to true, there is performed the step 345 of updating the "minimum buyer quantity" column of Table A with the minimum buyer quantity of the earliest buyer bid at or above this price. That is, as the system attempts to satisfy a FIFO queue order of buyers demand, i.e., satisfy buyer's who enter the market first, and will preserve the integrity of the
queue. Otherwise, if the condition at step 342 does not hold true, then the process proceeds to step 347 where it is determined whether the price is the same. If the price is the same the process proceeds to step 320, Figure 3(b). Otherwise, at step 350, it is the case that the price is lower than the lowest price where there is some buyer quantity. Thus, step 350 invokes the step of updating the "minimum buyer quantity" column of Table A with the earliest buyer bid above this price. It is understood that this prevents possibility of later buyer bids with larger quantities receiving a better price, and preserves the integrity of the queue.
Returning back to step 312, Figure 3(a), if it is determined that the received bid is from a seller, there is performed the step of updating the "minimum buyer quantity" and "minimum seller quantity" columns of Table A. This particularly entails, a first step of updating the "minimum buyer quantity" column of Table A with the minimum buyer quantity of the earliest buyer bid above this price as indicated at step 315. This is because the system is a "buyer centric" that attempts to satisfy all Buyers with the lowest price possible. Next, at step 317, of updating the "minimum seller quantity" with the lowest seller quantity at or below this bid price at step 317. Continuing, at step 320, Figure 3 (b) , there is invoked the step of sorting the Table A contents, i.e., rows, in descending order of price. At step 322, there is performed the step of calculating the sum of maximum quantities among buyers whose bid price is at or above the price of this new bid and, at step 325, updating the "maximum aggregate buyer quantity" of Table A for all prices, i.e. table rows, at or below this price. Thus, the sum aggregate total (sum of maximum quantities of among buyers whose bid is at or above this price) is obtained. Next, at step 327 there is performed the step of calculating the sum of maximum quantities among seller bids whose bid price is at or below the price of this new bid and, at step 330, updating the "maximum aggregate seller quantity" of Table A for all prices, i.e. table rows, at or above this price. This value
represents all sellers that are willing to sell that product for the same price or less, so that the buyers will be able to be matched as buyers are willing to pay maximum for that product or anything lower. This step only comes into play when two sellers are willing to sell at the same price.
Continuing, as shown in Figure 4, is the determination of the IMarket ' s "Match" Status which involves logic of starting with the lowest priced supply and the first Buyer in the queue. As shown in Figure 4, the following steps are invoked:
A first step 350 of identifying the lowest bid price, PL , among buyers and sellers, e.g., located at the bottom row of sorted table. Then at step 352, there is the step of determining whether there is both a supply (a seller bid at or below this price) and demand (a buyer bid at or above this price), i.e., any values in the minimum buyer quantity and minimum seller quantity columns at that price point in the table. If both of these conditions of step 352 are not met, the process continues to step 355 where a determination is made as to whether there are any more prices. If there are more prices (rows in the table) , the next step 357 is to obtain the next lowest bid price where there is supply and demand, and return to step 352. Otherwise, if there are no more prices there can be no more matches, so processing ceases until future bids occur. Returning back to step 352, if the conditions of step 352 are met, i.e., there is both a supply (a seller bid at or below this price) and demand (a buyer bid at or above this price) at this price, then the process continues to step 360 to determine whether the "maximum aggregate buyer quantity" > "minimum seller quantity", i.e., is amount that buyer's want to buy greater than or equal to the minimum amount the seller wants to sell so that they may be matched. If at step 360 it is determined that the "maximum aggregate buyer quantity" < "minimum seller quantity", the process proceeds to step 362 to determine whether there are any other bids at a higher price (i.e., max agg. quantity is not high enough so determine if there is
anything else that can be done) . Otherwise, if the "maximum aggregate buyer quantity" > "minimum seller quantity" the process proceeds to step 400, Figure 5(a). If, at step 362 it is determined that there are no other bids (i.e., no demand that will fit) , the process terminates until the next bid comes in. Otherwise, if there are other bids at a higher price, the next lowest bid price is retrieved at step 365 and the process returns to step 350.
From an aggregation perspective, there is enough information in the table to make a match. Thus, the next series of steps involve the assignment of individual matches, i.e., filling each buyer's maximum quantity until EITHER the supply is depleted OR until there are no more buyers with bids at or above PL. Thus, as shown in Figure 5(a) step 400, there is the step of identifying the buyer with the earliest bid date at or above PL (in order to preserve the queue integrity) . Then, at step 402, there is performed the step of determining whether there are any sellers with a bid at or below PL who are selling primary product. That is, according to the invention, the Buyer is enabled to identify primary products and substitute products. The algorithm always seeks to match the buyer with the primary product, if possible and step 402 performs this check. In response to step 402, if it is determined that no sellers with a bid at or below PL who sell primary product, then the process proceeds to step 405 to identify the seller with the earliest bid date at or below PL who is selling substitute product. Otherwise, if there are sellers with a bid at or below PL who are selling primary product, there is performed the step 407 of identifying the seller selling primary product with the earliest bid date at or below PL. Thus, for example, it is clear from steps 405 and 407 that if two sellers have the same price, the earliest Seller will get to go first. Continuing, to step 410, there is performed the step 410 of temporarily matching buyer's maximum quantity with available seller's quantity without combining product types. It is understood that this is performed without mixing of EITHER primary with substitute
products OR different substitutes in a single match to preserve the integrity of homogeneous product sale. Thus, although not shown in
Table A, each row may comprise many buyer's although the table only shows a total aggregation per price point .
In an example embodiment, Buyer and Seller bids may be recorded in two arrays: 1) AllSellers - an array "S" of individual Seller bids (there can be more than one bid per Seller, and each is taken individually) where S = {SI, S2, S3,...,Sn} sorted first by price (low to high), then by the time the bid was received; and 2) AllBuyers - an array "B" of individual Buyer bids (there can be more than one bid per Buyer, and each is taken individually) where B = {Bl, B2, B3 , ...,Bn} sorted by the time the bid was received. The IM system identifies a bid as coming from a Buyer or a Seller according to the array in which it is stored. It is further understood that all matches are temporary matches because as the IM market is buyer centric, a seller may come in with a better price and the system always tries to get the buyer a better price until the market closes. Thus, the system maintains further tables to track temporary Buyer and seller matches. For example, a series of matches (one Seller bid plus one or more Buyer bids) are considered to form a Result which comprises a set of data as depicted in Table B that includes: one Seller bid and its Status (0 if unsatisfied, 1 if satisfied) ; and a list of Buyer bids matched to the Seller bid, including its Condition (the quantity sold to this Buyer bid from the Seller bid) and Status (0 if unsatisfied, 1 if satisfied) . If the Status of a bid is changed, it must be changed to 1, and it must be changed in all the Results in which it appears .
Seller Bid
Buyer Bids :
Seller Status (0 or 1)
Table B
In an example embodiment, two (2) other global tables may be generated during match engine processing for indicating the current Condition of the algorithm: 1) the Buyer Condition
Table (BCT) ; and, 2) the Seller Condition Table (SCT) . The
BCT is a table that may be used to record information about each Buyer bid including: the BidlD assigned by the system to the bid; the maximum quantity for the bid (updated as matches take place, to always reflect the quantities left to buy) ; and, the bid Status (0 for unsatisfied, 1 for satisfied) . An example BCT is shown in Table C.
Bid Maximum Quantity Bid ID for Bid Status
Dynamic - quantity 0 or 1 left to buy Table C
The SCT is a table that may be used to record information about each Seller bid including: the BidlD assigned by the system to the bid; the maximum quantity for the bid (updated as matches take place to always reflect the quantities left to buy) ; and, the bid Status (0 for unsatisfied, 1 for satisfied) . An example SCT is shown in Table D.
Bid Maximum Quantity Bid
ID for Bid Status
Dynamic - quantity 0 or 1 left to sell
Table D
It should be understood that the bid Status may change several times during processing (for example, because of reversing of temporary matches, as will be explained in further detail herein, or rolling back the data) .
Continuing to step 412, Figure 5(b), a determination is made as to whether any seller quantity remains. If no seller quantity remains, the process continues to step 450, Figure 5 (e) to determine if any unfulfilled Buyer quantity remains. Otherwise, at step 415, for each individual buyer who has been temporarily matched with product, that buyer's maximum quantity is carved out of the available seller's quantity by calculating remaining supply, Sa by subtracting the temporary (buyer's) matched quantity from the seller's maximum quantity. It is understood that this matched quantity value is subtracted from the "maximum aggregate seller quantity" column from Table A for that price and may include subtracting a partial quantity from two or more sellers at that price. A process loop is then entered as follows; A first step 417 of the loop as shown in Figure 5 (b) involves the step of identifying the buyer with the next earliest bid date with unsatisfied demand at or above PL in order to preserve the integrity of the queue, and, at step 420, determining whether remaining supply Sa > this buyer's maximum quantity. If the remaining supply Sa is greater than or equal to the identified buyer's maximum quantity, then the process proceeds to step 422, Figure 5(c), where that buyer's maximum quantity is temporarily matched with the available supply, stored in a table (not shown) and the remaining supply Sa is again calculated. Then, at step 425, Figure 5(c), a
determination is made as to whether Sa is depleted. If Sa is not depleted, then the process proceeds to step 427 to determine if there are any more buyers with a bid price at or above PL. If there are more buyer's with bid price at or above PL, then the process returns to step Figure 5 (b) for the next individual buyer temporary matching loop iteration; otherwise, the process proceeds to step 440, Figure 5(d) to determine whether the sum of all temporary matches > seller's minimum quantity. Returning to step 425, Figure 5(c), however, if Sa is depleted, then the process proceeds directly to step 430, Figure 5(d).
Returning to step 420, if it is determined that the remaining supply Sa is not greater than or equal to the identified buyer's maximum quantity, then the process proceeds to step 422, Figure 5(c), where a determination is made as to whether Sa < this buyer's maximum quantity AND whether Sa > this buyer's minimum quantity. If Sa < this buyers maximum quantity, and Sa > this buyer's minimum quantity, then the process continues to step 432 where the remaining Sa is matched with this buyer. Whether continued from steps 425, 427
(Figure 5(c)) or from step 432, the next step 435 determines whether the sum of all temporary matches > seller's minimum quantity. This is necessary as one final check to ensure that the seller's minimum quantity has been satisfied after all iterations of the loop, i.e., after all individual buyer's have been matched with suppliers and no more matches are possible due to Sa depletion or no other buyer at or above P, . Thus, if at step 435 it is determined that the sum of all temporary matches < seller's minimum quantity, then at step 437, all previous matches are restored to a state before this seller entered the market and processing ceases until future bids occur. However, if at step
435 it is determined that the sum of all temporary matches > seller's minimum quantity, then all temporary matches are rendered permanent at step 440 and processing ceases until a change results from a future bid. Furthermore, the "matched
quantity" column of Table A (column 6) is updated by summing the matched quantities at each price.
Returning back to step 430, if it is determined that the Sa > this buyers maximum quantity, and Sa < this buyer's minimum quantity then processing continues to step 442 where Sa is aggregated with the next supplier in the queue (without combining product types) , with the aggregation including updating the minimum seller quantity = Sa + seller minimum quantity of the next seller in the queue at step 445. Finally, after this seller aggregation step, the process returns to step 360, Figure 4, to ensure that if the new supplier is added, there is maximum aggregated buyer quantity at that level .
Returning now to step 412, Figure 5(b), if it is determined that seller quantity remains, then the process continues to step 450, Figure 5(e) to determine if any unfulfilled Buyer quantity remains. If buyer quantity remains, then the process proceeds to step 452 to calculate the total unsatisfied demand, Du, implementing the following formula: Du = sum of (maximum supply quantity - buyer's temporary matched quantity) for all buyers willing to buy at or above PL. Then, the process proceeds to step 455 where a determination is made as to whether there are any sellers with supply at or below PL. If it is determined that there are no sellers with supply at or below PL, then the process proceeds to determine the next lowest bid price at step 457 and the process proceeds to step 352, Figure 4, to continue the algorithm and ensure that there is both a supply (a seller bid at or below this price) and demand (a buyer bid at or above this price) at this price. Otherwise, at step 455, if it is determined that there are sellers with supply at or below PL, then the process continues to step 460 to identify the seller with the next earliest bid date at or below PL in order to preserve integrity of the queue. Once that seller with the next earliest bid date at or below PL identified, the process continues to step 462, Figure 5(f) to determine whether Du > minimum seller quantity at this price. If at step 462 it is
> OJ to to
Wl o n o Ol o en
ω tr
CD o. a
0 rt tr
Φ
Φ a
P> tr
H
Φ ft
0
.
*1 c
Hi rt tr to φ t- ri to tr
0
≤
[3
H- a rt tr φ rt
0 tf y-> φ
Ul o o
0
Figures 6(a) and 6(b) is a column 560 indicating unmet demand, i.e., demand that has not been matched. For instance, in a trivial case, after Buyer A enters the market (Event 1, Figure 6(a)), there are no sellers, so Buyer A's maximum Buyer quantity of 150 units is not satisfied. At any time there is unmet demand, the value is present in column 560. For instance, with regard to Buyer B's entry into the market, the 150 units of Seller A satisfies Buyer A, and the remaining 350 units of Seller A (Sa = 500-150 units) is enabled to satisfy part of Buyer B's order, however, Buyer B's indication of 500 maximum quantity leaves 150 units of unmet demand as indicated in Buyer 3 unmet demand column 560 for event 3. Further shown in the table 500 of Figures 6(a) and 6(b) is a column 570 indicating available supply, i.e., relating to Seller's available supply. Thus, as shown in column 570, immediately after Seller l's entry (event 2), all 500 units are available as indicated in event 2 relating to Buyer A and Seller 1. However, after Buyer B's entry (event 3), the algorithm will allocate all of Seller l's 500 units so that available supply will indicate "0" for all buyers and sellers effected by event 3 (Buyer A, B and Seller 1) . Further shown in the table 500 of Figures 6 (a) and 6 (b) is a column 575 indicating matched quantity, for example, Buyer A's demand of 150 is matched with 150 units as a result of Buyer B's entry (event 3) . Further to this, is column 580 indicating the price of the matched quantity for the particular event, e.g., $90 dollars in the event 3 relating to matching of Buyer A's maximum buyer quantity, and column 590 indicating the matched partner, e.g., Seller 1 in the case of event 3 matching of Buyer A's maximum buyer quantity of 150. After processing of all 14 events for the example IM market bidding scenario depicted in Figures 6 (a) and 6 (b) , there is formed the resultant matching algorithm table 600 of Figure 7, which indicates that a total Buyer quantity aggregated in the amount of 3950 units with 3750 being matched at a lower price of $80. It is understood that each of the buyers (including the original buyer) participating in this example scenario will receive their
product at that per unit price by the vendor (s) committing to that best (lowest) unit price.
While the invention has been particularly shown and described with respect to illustrative and preformed embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and details may be made therein without departing from the spirit and scope of the invention which should be limited only by the scope of the appended claims .