A system and method for allocating stock and cash amounts to individual trades in a netted trade. The system and method include bundling individual securities trades into a netted trade, transmitting the netted trade to a clearing house, receiving a settlement message from the clearing house, and allocating stock and cash amounts to individual trades in the netted trade in a manner consistent with the settlement message.

Patent
   8423447
Priority
Mar 31 2004
Filed
Nov 23 2004
Issued
Apr 16 2013
Expiry
Nov 23 2030
Extension
2191 days
Assg.orig
Entity
Large
2
263
all paid
9. A computer-implemented method for executing individual trades combined into a netted trade, the method comprising:
transmitting, via a computer, information regarding the netted trade, receiving a single settlement message that applies to settlement of the netted trade;
selecting, via the computer, the individual trades which are eligible for processing in accordance with the settlement message, wherein eligible trades are identified by matching a message-trade identifier in the settlement message with an internal-trade identifier in the computer;
allocating, via the computer, stock and cash amounts to the eligible trades in a manner consistent with
the settlement message, and
posting, via the computer, the allocated stock and cash amounts to the eligible trades in accordance with said allocation.
26. A processing system for allocating stock and cash amounts to individual trades combined in a netted trade, the system comprising:
a storage component that stores instructions;
a communication device; and
a processing component communicatively connected to the storage device and communication device, the processing device programmed by the instructions to perform actions comprising:
transmitting information regarding the netted trade via the communication device;
receiving a single settlement message from the communication device that applies to settlement of the netted trade;
selecting eligible trades within the individual trades which are eligible for processing in accordance with the settlement message, wherein eligible trades are identified by matching a message-trade identifier in the settlement message with an internal-trade identifier in the processing system;
allocating stock and cash amounts to the eligible trades in a manner consistent with the settlement message, and
posting the allocated stock and cash amounts to the trades within the individual trades in accordance with said allocation.
1. A computer-implemented method for allocating stock and cash amounts to individual trades combined into a netted trade, the method comprising:
receiving, via a computer, a single settlement message that applies to settlement of the netted trade, the settlement message identifying stock and cash amounts to be delivered based upon the combined individual trades in the netted trade;
identifying, via the computer, the individual trades in the netted trade that are eligible for allocation of the stock and cash amounts identified in the settlement message, by matching a message-trade identifier in the settlement message with an internal-trade identifier in the computer;
identifying, via the computer, the individual trades in the netted trade that are purchase trades;
identifying, via the computer, the individual trades in the netted trade that are sales trades;
sorting, via the computer, the purchase trades so that smaller purchase trades are before larger purchase trades;
allocating, via the computer, stock and cash amounts to the purchase trades as a group in sorted order;
sorting, via the computer, the sales trades so that smaller sales trades are before larger sales trades; and
allocating, via the computer, stock and cash amounts to the sales trades as a group in sorted order.
2. The method according to claim 1 further comprising verifying that the stock and cash amounts allocated to the purchase and sales trades are consistent with the stock and cash amounts identified in the settlement message.
3. The method according to claim 1 wherein allocating stock and cash amounts to the purchase trades comprises:
selecting a current purchase trade from the sorted purchase trades;
performing a first calculation to determine an available stock amount for allocation;
allocating a stock amount to the current purchase trade based at least upon the first calculation;
updating the available stock to account for the stock amount allocated to the current purchase trade;
performing a second calculation to determine an available cash amount for allocation;
allocating a cash amount to the current purchase trade based at least upon the second calculation; and
updating the available cash amount to account for the cash amount allocated to the current purchase trade.
4. The method according to claim 3 wherein the available stock amount is calculated as total stock delivered, minus total outstanding stock for all sales trades, minus total stock currently allocated, wherein the total stock delivered is the stock amount identified in the settlement message.
5. The method according to claim 3 wherein the available cash amount is calculated as total cash delivered, minus total outstanding cash for all sales trades, minus total cash currently allocated, wherein the total cash delivered is the cash amount identified in the settlement message.
6. The method according to claim 1 wherein allocating stock and cash amounts to the sales trades comprises:
selecting a current sales trade from the sorted sales trades;
performing a first calculation to determine an available stock amount;
allocating a stock amount to the current sales trade based at least upon the first calculation;
updating the available stock to account for the stock amount allocated to the current sales trade;
performing a second calculation to determine an available cash amount for allocation;
allocating a cash amount to the current sales trade based at least upon the second calculation; and
updating the available cash amount to account for the cash amount allocated to the current sales trade.
7. The method according to claim 6 wherein the available stock amount is calculated as total stock delivered minus total stock currently allocated, wherein the total stock delivered is the stock amount identified in the settlement message.
8. The method according to claim 6 wherein the available cash amount is calculated as total cash delivered minus total cash currently allocated, wherein the total cash delivered is the cash amount identified in the settlement message.
10. The method according to claim 9 further comprising verifying the settlement message to be a netted settlement message.
11. The method according to claim 9 wherein said selecting occurs by matching identifiers unique to each trade within the individual trades to data within the settlement message.
12. The method according to claim 9 wherein said allocation further comprises:
identifying trades within the individual trades that are purchase trades and trades that are sales trades;
allocating stock and cash amounts to the purchase trades as a group;
allocating stock and cash amounts to the sales trades as a group; and
verifying that the stock and cash amounts allocated to the purchase and sales trades is consistent with the settlement message.
13. The method according to claim 12 wherein the allocating stock and cash amounts to the purchase trades comprises:
sorting the purchase trades so that smaller purchase trades are before larger purchase trades; and
for each of the sorted purchase trades, the method further comprises:
selecting a current purchase trade from the sorted purchase trades;
performing a first calculation to determine an available stock amount for allocation;
allocating a stock amount to the current purchase trade based at least upon the first calculation;
updating the available stock to account for the stock amount allocated to the current purchase trade;
performing a second calculation to determine an available cash amount for allocation;
allocating a cash amount to the current purchase trade based at least upon the second calculation; and
updating the available cash amount to account for the cash amount allocated to the current purchase trade.
14. The method according to claim 13 wherein the available stock amount is calculated as total stock delivered, minus total outstanding stock for all sales trades, minus total stock currently allocated, wherein the total stock delivered is identified in the settlement message.
15. The method according to claim 13 wherein the available cash amount is calculated as total cash delivered, minus total outstanding cash for all sales trades, minus total cash currently allocated, wherein the total cash delivered is identified in the settlement message.
16. The method according to claim 13 wherein the allocating stock and cash amounts to the sales trades comprises:
sorting the sales trades so that smaller sales trades are before larger sales trades; and for each of the sorted sales trades, the method further comprises:
selecting a current sales trade from the sorted sales trades;
performing a third calculation to determine the available stock amount after allocating the purchase trades;
allocating a stock amount to the current sales trade based at least upon the third calculation;
updating the available stock to account for the stock amount allocated to the current sales trade;
performing a fourth calculation to determine the available cash amount for allocation after allocating the purchase trades;
allocating a cash amount to the current sales trade based at least upon the fourth calculation; and
updating the available cash amount to account for the cash amount allocated to the current sales trade.
17. The method according to claim 16 further comprising sorting the sales trades so that older sales trades are given priority over newer sales trades of a same size.
18. The method according to claim 16 wherein the available stock amount is calculated as total stock delivered minus total stock currently allocated, wherein the total stock delivered is identified in the settlement message.
19. The method according to claim 16 wherein the available cash amount is calculated as total cash delivered minus total cash currently allocated, wherein the total cash delivered is identified in the settlement message.
20. The method according to claim 13 further comprising sorting the purchase trades so that older purchase trades are given priority over newer purchase trades of a same size.
21. The method according to claim 12 further comprising:
determining an available cash amount to be allocated;
determining an available stock amount to be allocated; and
allocating no stock or cash to a purchase trade, a sales trade, or both if there exists no available cash or stock to be allocated.
22. The method according to claim 9 further comprising summing the trades within the plurality of trades to determine a net amount of stock and a net amount of cash.
23. The method according to claim 22 further comprising determining whether an over delivery of stock, cash, or stock and cash has occurred by comparing the summed net amount of stock and cash amounts to data delivered in the settlement message.
24. The method according to claim 23 further comprising rejecting the settlement message due to an over delivery of stock.
25. The method according to claim 23 further comprising rejecting the settlement message due to an over delivery of cash wherein the over delivery of cash is greater than a predetermined tolerance amount.
27. The processing system according to claim 26 wherein the allocation further comprises:
identifying trades in the individual trades that are purchase trades and trades that are sales trades;
allocating stock and cash amounts to the purchase trades as a group;
allocating stock and cash amounts to the sales trades as a group; and
verifying that the stock and cash amounts allocated to the purchase and sales trades is consistent with the settlement message.
28. The processing system according to claim 27 wherein said allocating stock and cash amounts to the purchase trades comprises:
sorting the purchase trades so that smaller purchase trades are before larger purchase trades; and
for each of the sorted purchase trades, the processing component is programmed to perform actions further comprising:
selecting a current purchase trade from the sorted purchase trades;
performing a first calculation to determine an available stock amount for allocation;
allocating a stock amount to the current purchase trade based at least upon the first calculation;
updating the available stock to account for the stock amount allocated to the current purchase trade;
performing a second calculation to determine an available cash amount for allocation;
allocating a cash amount to the current purchase trade based at least upon the second calculation; and
updating the available cash amount to account for the cash amount allocated to the current purchase trade.
29. The processing system according to claim 28 wherein said allocating stock and cash amounts to the purchase trades further comprises sorting the purchase trades so that older purchase trades are given priority over newer purchase trades of a same size.
30. The processing system according to claim 28 wherein the available stock amount is calculated as total stock delivered, minus total outstanding stock for all sales trades, minus total stock currently allocated, wherein the total stock delivered is identified in the settlement message.
31. The processing system according to claim 28 wherein the available cash amount is calculated as total cash delivered, minus total outstanding cash for all sales trades, minus total cash currently allocated, wherein the total cash delivered is identified in the settlement message.
32. The processing system according to claim 28 wherein said allocating stock and cash amounts to the sales trades comprises:
sorting the sales trades so that smaller sales trades are before larger sales trades; and for each of the sorted sales trades, the processing component is programmed to perform actions further comprising:
selecting a current sales trade from the sorted sales trades;
performing a third calculation to determine the available stock amount after allocating the purchase trades;
allocating a stock amount to the current sales trade based at least upon the third calculation;
updating the available stock to account for the stock amount allocated to the current sales trade;
performing a fourth calculation to determine the available cash amount for allocation after allocating the purchase trades;
allocating a cash amount to the current sales trade based at least upon the fourth calculation; and
updating the available cash amount to account for the cash amount allocated to the current sales trade.
33. The processing system according to claim 32 wherein said allocating stock and cash amounts to the sales trades further comprises sorting the sales trades so that older sales trades are given priority over newer sales trades of a same size.
34. The processing system according to claim 32 wherein the available stock amount is calculated as total stock delivered minus total stock currently allocated, wherein the total stock delivered is identified in the settlement message.
35. The processing system according to claim 32 wherein the available cash amount is calculated as total cash delivered minus total cash currently allocated, wherein the total cash delivered is identified in the settlement message.
36. The processing system according to claim 27 wherein the processing component is programmed to perform actions further comprising:
determining an available cash amount to be allocated;
determining an available stock amount to be allocated; and
allocating no stock or cash to a purchase trade, a sales trade, or both if there exists no available cash or stock to be allocated.
37. The processing system according to claim 26 wherein the processing component is programmed to perform actions further comprising summing the trades within the plurality of trades to determine a net amount of stock and a net amount of cash.
38. The processing system according to claim 37 wherein the processing component is programmed to perform actions further comprising determining whether an over delivery of stock, cash, or stock and cash has occurred by comparing the summed net amount of stock and cash amounts to data delivered in the settlement message.
39. The processing system according to claim 38 wherein the processing component is programmed to perform actions further comprising rejecting the settlement message due to an over delivery of stock.
40. The processing system according to claim 38 wherein the processing component is programmed to perform actions further comprising rejecting the settlement message due to an over delivery of cash, wherein the over delivery of cash is greater than a predetermined tolerance amount.

This application claims the benefit of U.S. Provisional Application No. 60/558,044, filed Mar. 31, 2004, the entire disclosure of which is hereby incorporated herein by reference.

This invention relates to allocating stock and cash amounts to a plurality of trades that have been bundled together for settlement purposes. Conventionally, traders of securities have had to pay settlement fees to stock exchanges, or clearing houses, on each trade executed. This situation has led to unacceptably high fees for organizations that have many traders each executing large quantities of trades.

These problems are addressed and a technical solution achieved in the art by a system and method for allocating stock and cash amounts to individual trades in a netted trade. The system and method include combining individual securities trades into a “netted trade,” transmitting the netted trade to a clearing house, receiving a settlement message from the clearing house applicable to the netted trade, and allocating stock and cash amounts to individual trades in the netted trade in a manner consistent with the settlement message.

“Netting” is the process of combining a group of trades into a single bundled trade (“netted trade”). The netted trade allows for a single settlement charge based upon the netted trade, instead of individual settlement charges for each trade.

When a trade is bundled and settled in bulk, the clearing house transmits a settlement message to the organization that sent the netted trade. The settlement message indicates the net amount of stock and cash delivered based upon all of the combined individual trades. The efficiency of a netting procedure is therefore dependent upon the manner in which the netted trade is broken down into its individual trades in a manner consistent with the settlement message.

The system and method of the present invention efficiently breaks down the netted trade by performing actions including identifying individual trades eligible for stock and cash allocation, sorting the individual trades so that the smallest trade is processed first, and allocating available stock and cash to the sorted purchase and sales trades based upon an available amount of stock and cash to be allocated. The system and method also verifies the net amount of stock and cash allocated to the net amount of stock and cash delivered with the settlement message.

A more complete understanding of this invention may be obtained from a consideration of this specification taken in conjunction with the drawings, in which:

FIG. 1 illustrates data flow among the bundling, settlement, and allocation processes according to the exemplary embodiment of the present invention;

FIG. 2 is an overview of processing a settlement message according to this exemplary embodiment;

FIGS. 3A and 3B are flowcharts illustrating a first portion of the allocation processing according to the exemplary embodiment; and

FIGS. 4A and 4B are flowcharts illustrating a second portion of the allocation processing according to the exemplary embodiment.

In order to reduce settlement fees charged by a clearing house on a trade-by-trade basis, multiple trades may be combined so that a single “bundled,” or “netted,” trade is transmitted to the clearing house and a single settlement fee is charged. The process of combining multiple trades is referred to herein as “bundling” or “netting.”

Netting is described with reference to FIG. 1, in which an internal computer system 100 communicates via a communication device known in the art with an external stock exchange, or clearing house system 104. “Internal” means belonging to the organization that desires to transmit a netted trade to a clearing house. While this invention is described in terms of an internal system communicating with an external clearing house system, one having ordinary skill in the art will appreciate that this invention is not limited to the types of systems communicating.

In the internal system 100, multiple trades 101 are preferably input into an optional bundling program 102. The bundling program 102, as well as all other programs 106, 108, and 110 shown in FIG. 1 may be stored in a storage device, such as a computer-readable memory communicatively connected to a processing component within the system 100 for execution. The bundling program 102 combines all of the data of all of the individual trades 101 into a single netted trade 103. The bundling program 102 may combine this data by adding each trade as a row in a table, where the table represents the netted trade 103. The netted trade 103 is then transmitted to the clearing house 104 for processing. The clearing house 104 then transmits a settlement message 105 back to the internal system 100. The settlement message 105 includes the total net amount of stock and cash resulting from the netted trade. The settlement message 105 also includes underlying trade information, such as trade identifiers, dates, and trade types, (e.g., buy or sell) for each of the trades in the netted trade.

However, it should be noted that the bundling program 102 may be performed by the clearing house 104, and reference numeral 103 may alternatively represent the multiple trades 101 being transmitted to the clearing house 104 and the trade selection program 106, discussed later. In this scenario, when the multiple trades 101/103 are transmitted to the clearing house 104, the clearing house 104 still generates a single settlement message 105 that is transmitted back to the internal system 100 for processing as described in this specification.

The data in the netted trade 103 (or the data from the multiple trades 101/103 as the case may be) is also input into a trade selection program 106, which identifies individual trades in the netted trade 103 (or individual trades of the multiple trades 101/103 as the case may be) that are eligible for stock and cash allocation in response to receipt of the settlement message 105. The trade selection program 106 is described in more detail later with respect to 205 in FIG. 2.

The trades eligible for allocation 107, which may be in table format, are input into an allocation program 108, along with the settlement message 105. The allocation program 108 allocates available stock and cash to the trades 107 and verifies that such allocation is consistent with the settlement message 105. The allocation program 108 outputs a modified table 109 that includes the trades identified at 107 and the amount of stock and cash allocated to each of these trades. The allocation program 108 is described in more detail later with respect to 208 in FIG. 2.

The output 109 of the allocation program 108 is input into the settlement posting process 110, which is described later with respect to 211 in FIG. 2.

The method of processing a settlement message 105 according to the exemplary embodiment of the present invention will be described with reference to FIGS. 2-4B. Referring to FIG. 2, the process begins at start 201 and proceeds to 202 where the settlement message is obtained, typically from a computer-readable storage device. Because allocation processing according to the exemplary embodiment applies to settlement messages pertaining to netted trades (“netted settlement messages”), the type of the settlement message is checked at 203. The type of the settlement message may be determined by checking the header or a tag in the message, or by comparing a trade identifier in the message with internal data that may identify the type of the trade. If it is not a netted settlement message, e.g., it is a settlement message pertaining to a single trade instead of a netted trade, the message is processed according to other techniques at 204.

If it is a netted settlement message at 203, the trades that are eligible for settlement are identified at 205 based on the netted settlement message received. Selection of trades eligible for settlement is achieved by matching a trade identifier in the settlement message with internal trade identifiers. If a match is made and the identified trade is “open,” it is selected. Eligible trades may also be selected by searching internal records for open trades having the same trade date, instrument ISIN code, holding depot, and settlement currency as trades identified in the settlement message. In addition, some settlement messages, such as a “Swift” settlement message, as known in the art, can only either be a delivery or receipt message. In this situation, where the total traded position as identified by internal records is neither a net buy nor a net sell, then only those trades which are in the direction of the settlement are selected. For example, it the total traded position is a net buy, only buy trades are selected.

For each selected trade, the trade identifier, the buy/sell indicator and the total stock and total cash to be settled are placed into a table which is passed to the allocation processing system (108 in FIG. 1). By convention, in this table and throughout this specification, sales trades have stock (also known as “nominal”) amounts that are negative and cash amounts that are positive. On the other hand, purchase trades have stock amounts that are positive and cash amounts that are negative.

Once the trades eligible for settlement have been identified at 205, the settlement message is processed to determine if over delivery of stock and/or cash has occurred at 206. For example, if the net stock amount delivered, as indicated in the settlement message, is positive and is greater than the total amount of stock purchased by all purchase trades in the netted trade, then the settlement message is rejected at 207. Also, if the net stock amount delivered, as indicated in the settlement message, is negative and is less than the total amount of stock sold by all sales trades in the netted trade, then the settlement message is also rejected at 207. The cash delivered amount is validated in a corresponding manner, however a specified tolerance amount, such as $50.00 US, is built in. In other words, if an over delivery of an amount less than the tolerance amount occurs, then no error message occurs, and allocation processing begins at 208.

Allocation processing 208 allocates the stock and cash amounts from the received settlement message to the optimum number of trades selected at 205. Such processing is described in greater detail with reference to FIGS. 3 and 4, and is divided into two parts. First, allocation occurs for all eligible purchase trades in the netted trade, if any (FIGS. 3A and 3B), and then allocation occurs for all eligible sales trades in the netted trade, if any (FIGS. 4A and 4B). Allocation processing will be described with reference to these figures in conjunction with a running example.

Assume that the settlement message from 105 in FIG. 1 contains at least the data shown in Table 1 below, bearing in mind that a positive stock amount and a negative cash amount means a net buy, and a negative stock amount and a positive cash amount means a net sell. Accordingly, the data in Table 1 indicates a net sale. Further, for the running example, assume that all indicated shares are shares of Company “X,” which have had a stable market value of $1/share.

TABLE 1
Data in Settlement Message
Total Net Amount of Total Net Amount of
Stock Delivered with Cash Delivered with
Settlement Message Settlement Message
−5 Shares $5

Further, assume that the data from the trade selection process 205 in FIG. 2 (and 106 in FIG. 1 compiled at least the data shown in Table 2, below. The data in Table 2 indicates the trades that are eligible for allocation. Note that the ordering of “Trade 1” and “Trade 2” is intentional.

TABLE 2
Trades Eligible for Allocation
Cash
Trade Type Stock Amount Amount
Trade 2 Purchase 10 Shares −$10
Trade 1 Purchase  5 Shares  −$5
Trade 3 Sale −20 Shares     $20

With the data in Tables 1 and 2, allocation processing begins at 301 in FIG. 3A. At 302, the total stock amounts and cash amounts of all trades eligible for allocation is calculated. In the running example, the data in Table 2 is summed, resulting in the data of Table 3, below.

TABLE 3
Totals from Trades Eligible for Allocation
Total Net Amount of Total Net Amount of
Stock from Eligible Cash from Eligible
Trades Trades
−5 Shares $5

After summing the purchase and sales trades at 302, a check is made at 303 to determine whether an “over allocation” condition exists, i.e., that there are trades eligible for allocation. If allocation is not required, then the settlement message is rejected at 304. Otherwise, processing proceeds to 305.

At 305, all purchase trades, if any, are ordered by stock ascending and cash descending, so that the purchase trades will be processed starting with the smallest trade first. Sorting the trades in this particular order allows for an optimum number of purchase trades to be processed in the event that there is not enough stock, cash, or both available to be allocated to all purchase trades eligible for allocation. Additionally, purchase trades may be ordered so that older purchase trades are given priority over newer purchase trades. In the running example, the ordering of step 305 modifies the data in Table 2 so that “Trade 1” and “Trade 2” are flipped in position, as shown in Table 4, below. (Note that in the tables used throughout this specification, bold type indicates a location where data has changed.)

TABLE 4
Trades Eligible for Allocation with Sorted Purchase Trades
Trade Type Stock Amount Cash Amount
Trade 1 Purchase  5 Shares  −$5
Trade 2 Purchase 10 Shares −$10
Trade 3 Sale −20 Shares     $20

At 306, the next purchase trade, which may be the first purchase trade, is selected for processing. In this example, “Trade 1” is selected. If no purchase trades exists, or no more purchase trades remain, it is determined at 307 to move on to processing sales trades at 308. Sales trades are described later with reference to FIGS. 4A and 4B.

If it is determined that purchase trades exist at 307, which in the running example is true, the “available stock” for allocation is calculated at 309. The “available stock” is calculated as the total net amount of stock delivered, as indicated by the settlement message (Table 1, for example), less the total outstanding stock for all sales trades less the amount allocated so far. This calculation can be summarized below:

Available Stock = [ Total Stock Delivered ] - [ Total Outstanding Stock for All Sales Trades ] - [ Total Stock Allocated ] ( 1 )

The total outstanding stock for all sales trades is the sum of all shares sold by the sales trades eligible for allocation. In the running example, referring to Table 4, “Trade 3” is the only sales trade, and therefore, the total outstanding stock for all sales trades is negative 20 shares. Further in regard to this example, because nothing has yet been allocated, “Total Stock Allocated” in equation 1 is zero. Accordingly, “available stock”=[−5 shares]−[−20 shares]−[0]=positive 15 shares.

After calculating the “available stock” at 309, the “available stock” is compared to the outstanding number of shares for the current purchase trade at 310, which in the running example is 5 shares (See “Trade 1” of Table 4). If the “available stock” is greater than the outstanding stock amount for this trade, then processing moves to 311, which connects to 313 in FIG. 3B. At 313, the outstanding stock amount for the current trade is allocated to the current trade. Otherwise, processing proceeds to 312, which is connected to 314 in FIG. 3B. At 314, it is determined whether “available stock” is greater than zero. If the “available stock” of equation 1 is greater than zero, then the “available stock” amount is allocated to the current trade at 315. Otherwise, no allocation is made at 316.

In the running example, “available stock” is 15 shares, and the outstanding amount for “Trade 1” is 5 shares. Accordingly, “available stock” is greater than the outstanding amount at 310, and accordingly, “Trade 1” is allocated the outstanding amount for Trade 1 at 313, which is 5 shares.

After determining the amount to allocate to the current trade at 313, 315, or 316, the amount of stock allocated is added to the total amount of stock allocated so far at 317. In the running example, after adding the 5 shares allocated to “Trade 1,” the total amount of stock allocated so far is 5 shares. In summary, this information is shown in Table 5, below.

TABLE 5
Allocation Status
Stock Cash Stock Cash
Trade Type Amount Amount Allocated Allocated
Trade 1 Purchase    5 Shares  −$5 5 Shares
Trade 2 Purchase   10 Shares −$10
Trade 3 Sale −20 Shares   $20
Total N/A N/A N/A 5 Shares

After updating the stock allocated thus far at 317, the “Available Cash” is calculated at 318 as the total net amount of cash delivered, as indicated by the settlement message (Table 1, for example), less the total outstanding cash amount for all sales trades less the amount of cash allocated so far. This calculation can be summarized below:
Available Cash=[Total Cash Delivered]−[Total Outstanding Cash for All Sales Trades]−[Total Cash Allocated]  (2)

The total outstanding cash for all sales trades is the sum of all cash received by the sales trades eligible for allocation. In this example, referring to Table 5, “Trade 3” is the only sales trade, and therefore, the total outstanding cash for all sales trades is $20. Further in regard to the running example, because no cash has yet been allocated, “Total Cash Allocated” in equation 1 is zero. Accordingly, “available cash”=[$5]−[$20]−[$0]=negative $15.

After “available cash” according to equation 2 is calculated at 318, it is determined whether “available cash” is less than the outstanding cash amount for the current trade at 319. If the “available cash” is less than the outstanding amount for the current trade, it is determined whether or not the current trade is the last purchase trade at 320. If the current trade is not the last purchase trade, the cash amount allocated at 321 to the current trade is the outstanding cash amount for the current trade.

However, if the current trade is the last purchase trade eligible for allocation at 320, then it is determined whether any sales trades exist that are eligible for allocation at 322. If sales trades do exist, the cash amount allocated to the current trade is the outstanding cash amount for the current trade at 321. If no sales trades exist at 322, or if it is determined at 319 that the “available cash” is not less than the outstanding amount for the current trade, then it is determined whether the “available cash” according to equation 2 is less than zero at 323. If the “available cash” is less than zero, the cash amount allocated to the current trade is the “available cash” at 324. If the “available cash” is not less than zero at 323, no cash is allocated to the current trade at 325.

After allocating the appropriate amount of cash to the current trade at 321, 324, or 325, the amount allocated to the current trade is added to the total amount of cash allocated thus far at 326.

Referring back to 319 and the running example, “available cash,” according to equation 2, is −$15 as previously calculated. On the other hand, the outstanding cash amount for the current trade, “Trade 1,” is −$5, as indicated in Table 5 above. Accordingly, “available cash” is less than the outstanding cash amount for “Trade 1,” and processing moves from 319 to 320. At 320, “Trade 1” is not the last purchase trade because “Trade 2,” which is also a purchase trade, has not been processed. (See Table 5.) Accordingly, processing moves to 321, and “Trade 1” is allocated the outstanding cash amount for “Trade 1,” which is −$5. This −$5 amount is then added to the total amount of cash allocated thus far so that the total amount of cash allocated is now: $0+[−$5]=−$5. The current state of the allocation processing is shown in Table 6 below.

TABLE 6
Allocation Status
Cash Stock Cash
Trade Type Stock Amount Amount Allocated Allocated
Trade 1 Purchase    5 Shares  −$5 5 Shares −$5
Trade 2 Purchase   10 Shares −$10
Trade 3 Sale −20 Shares   $20
Total N/A N/A N/A 5 Shares −$5

After incrementing the total amount of cash allocated at 326, processing proceeds to 327, which connects to 306 in FIG. 3B, where the next purchase trade is processed as discussed. Referring to the running example, “Trade 2” of Table 6 is selected for allocation processing at 306. Because “Trade 2” is another purchase trade, it is determined that more purchase trades exist at 307. At 309, “available stock” is again calculated according to equation 1. In the running example, “available stock”=[−5 shares]−[−20 shares]−[5 shares]=10 shares.

At 310, the “available stock” is compared to the outstanding stock amount for the current trade, “Trade 2,” which is 10 shares. Because “available stock” and the outstanding stock amount for “Trade 2” are equal at 10 shares, processing moves from 310 to 312, which connects to 314 in FIG. 3B. At 314 it is determined whether the “available stock” is greater than zero. Because “available stock” is 10 shares in the running example, the answer is “yes,” and processing moves to 315. At 315, the current trade, “Trade 2,” is allocated the “available stock,” which is 10 shares. At 317, the allocated 10 shares is added to the total amount of stock thus far allocated, bringing the total to 15 shares. The current state of the allocation processing is shown in Table 7 below.

TABLE 7
Allocation Status
Cash Stock Cash
Trade Type Stock Amount Amount Allocated Allocated
Trade 1 Purchase    5 Shares  −$5  5 Shares −$5
Trade 2 Purchase   10 Shares −$10 10 Shares
Trade 3 Sale −20 Shares   $20
Total N/A N/A N/A 15 Shares −$5

After adjusting the total amount of stock allocated at 317, cash allocation begins at 318, where the “available cash” is calculated according to equation 2. In the running example, “available cash”=[$5]−[$20]−[−$5]=negative $10. At 319, “available cash” is compared to the outstanding cash amount for the current trade, “Trade 2,” which is −$10. Because “available cash” is equal to the outstanding amount for “Trade 2,” processing proceeds from 319, 323. At 323, because “available cash” is less than zero, processing moves to 324. At 324, the “available cash,”−$10, is allocated to “Trade 2.”. At 326, the −$10 allocated to “Trade 2” is added to the total amount of cash allocated, bringing the total to −$15. The current state of the allocation processing is shown in Table 8 below.

TABLE 8
Allocation Status
Cash Stock Cash
Trade Type Stock Amount Amount Allocated Allocated
Trade 1 Purchase    5 Shares  −$5  5 Shares  −$5
Trade 2 Purchase   10 Shares −$10 10 Shares −$10
Trade 3 Sale −20 Shares   $20
Total N/A N/A N/A 15 Shares −$15

Having completed allocation for “Trade 2,” processing proceeds to 327, which connects to 306 in FIG. 3A. At 306, the next purchase trade is acquired. However, no more unallocated purchase trades exist at 307, so processing moves to sales trade processing at 308, which connects to 401 in FIG. 4A.

At 401, all sales trades, if any, are ordered by nominal ascending and cash descending, so that the sales trades will be processed starting with the smallest trade first. Sorting the trades in this particular order allows for an optimum number of sales trades to be processed in the event that there is not enough stock, cash, or both available to be allocated to all sales trades eligible for allocation. Additionally, sales trades may be ordered so that older sales trades are given priority over newer sales trades. In the running example, the ordering of step 401 does not modify the trade ordering of Table 8 because only one sales trade, “Trade 3,” exists.

After sorting the sales trades at 401, the next sales trade in the sorted list, which may be the first sales trade, is selected for allocation processing at 402. If no more unallocated trades exist, as determined at 403, a validation of total allocation values is performed at 423. The “Self Validation” performed at 423 checks to ensure that the total stock and cash amounts allocated are equal to the amounts received in the settlement message. If these values are not equal, validation fails at 424 and a fatal error condition is generated at 425. (Note that events 424 and 425 are the same as events 209 and 210 in FIG. 2.) If these values are equal, validation passes at 424 and allocation processing is complete at 426. After completion of allocation processing at 426, the settlements postings process of 211 in FIG. 2 occurs, which will be described later.

Stepping back to 403 in FIG. 4A, if more unallocated sales trades do exist, the “available stock” is calculated at 404. The available stock amount in this situation is calculated as the total net amount delivered in the settlement message (Table 1, for example) less the stock allocated so far. The stock allocated so far is carried forward from the purchase trade processing described with respect to FIGS. 3A and 3B (Table 8, for example). The calculation of “available stock” for sales trades is summarized in equation 3 below.
Available Stock=[Total Stock Delivered]−[Total Stock Allocated]  (3)

Referring to the running example, “available stock”=[−5 shares]−[15 shares]=negative 20 shares.

After calculating “available stock” according to equation 3 at 404, “available stock” is compared to the outstanding stock amount for the current trade at 405. If “available stock” is less than the outstanding amount for the current trade, processing moves to 406, which connects to 407 in FIG. 4B, where the outstanding stock amount for the current trade is allocated to the current trade. Otherwise, it is determined whether the “available stock” is less than zero at 408. If it is determined that “available stock” is less than zero at 408, processing proceeds to 409, which connects to 410 in FIG. 4B. At 410 the amount of the “available stock” is allocated to the current trade. If it is determined that “available stock” is not less than zero at 408, processing proceeds to 411, which connects to 412 in FIG. 4B. At 412, no stock is allocated to the current trade.

After determining the proper allocation for the current trade at 407, 410, or 412, the amount allocated to the current trade is added to the total amount of stock allocated thus far at 413.

Returning to 405 in FIG. 4A for the sake of the running example, recall that the “available stock” was calculated to be negative 20 shares at 404. Further, the outstanding stock amount for the current trade, “Trade 3,” is negative 20 shares, as shown in Table 8. Therefore, “available stock” is not less than the outstanding stock amount for “Trade 3” at 405, and processing moves to 408. Because “available stock” is less than zero at 408, processing moves to 409, which connects to 410 in FIG. 4B. At 410, the amount of “available stock,” which is negative 20 shares, is allocated to “Trade 3.” At 413, this negative 20 shares is added to the total stock allocated thus far, resulting in [15 shares]+[−20 shares]=negative 5 shares. Accordingly, the current state of the allocation processing is shown in Table 9 below.

TABLE 9
Allocation Status
Trade Cash Stock Cash
Type Stock Amount Amount Allocated Allocated
Trade 1 Purchase    5 Shares  −$5    5 Shares  −$5
Trade 2 Purchase   10 Shares −$10   10 Shares −$10
Trade 3 Sale −20 Shares   $20 −20 Shares
Total N/A N/A N/A  −5 Shares −$15

Now, the available cash amount is calculated at 414 as the total net delivered in the settlement message less the amount of cash allocated so far. The cash allocated so far is carried forward from the purchase trade processing described with respect to FIGS. 3A and 3B (Table 8, for example). The calculation of “available cash” for sales trades is summarized in equation 4 below.
Available Cash=[Total Cash Delivered]−[Total Cash Allocated]  (4)

In the running example, “available cash” according to equation 4 is [$5]−[−$15]=positive $20.

After calculating “available cash” according to equation 4 at 414, “available cash” is compared to the outstanding cash amount for the current trade at 415. If “available cash” is greater than the outstanding amount for the current trade, processing moves to 416, where it is determined whether the current trade is the last sales trade. If it is not the last sales trade at 416, the amount allocated to the current trade is the outstanding cash amount for the current trade at 417. If the current trade is the last sales trade at 416, or if it is determined at 415 that the “available cash” is not greater than the outstanding cash amount for the current trade, then it is determined whether the “available cash” is greater than zero at 418. If so, the amount allocated to the current trade is the “available cash” amount at 419. If not, no money is allocated to the current trade at 420. After determining the proper allocation for the current trade at 417, 419, or 420, the amount of cash allocated to the current trade is added to the total amount of cash allocated thus far at 421.

Returning to 415 for the sake of the running example, recall that the “available cash” was calculated to be $20 at 414. Further, the outstanding cash amount for the current trade, “Trade 3,” is $20, as shown in Table 9. Therefore, “available cash” is not greater than the outstanding stock amount for “Trade 3” at 415, and processing moves to 418. Because “available cash” is greater than zero at 418, processing moves to 419, where the amount of “available cash,” which is $20, is allocated to “Trade 3.” At 421, this allocated $20 is added to the total cash allocated thus far, resulting in [−$15]+[$20]=positive $5. Accordingly, the current state of the allocation processing is shown in Table 10 below.

TABLE 10
Allocation Status
Trade Cash Stock Cash
Type Stock Amount Amount Allocated Allocated
Trade 1 Purchase    5 Shares  −$5    5 Shares  −$5
Trade 2 Purchase   10 Shares −$10   10 Shares −$10
Trade 3 Sale −20 Shares   $20 −20 Shares   $20
Total N/A N/A N/A  −5 Shares    $5

After incrementing the cash allocated thus far at 421, processing proceeds to 422, which connects to 402 in FIG. 4A, where the next sales trade is selected for allocation as just described. In the running example, no more sales trades exist at 403, so a self validation of the total allocations is performed at 423. In other words, the total stock and cash allocated throughout the allocation process is compared to the total net amount of stock and cash delivered as indicated in the settlement message. In this scenario, the total stock allocated is negative 5 shares and the total cash allocated is $5, as shown in Table 10, and the total net amount of stock and cash delivered, as indicated in the settlement message of Table 1, is negative 5 shares and $5, respectively. Accordingly, these values match up and validation passes at 424 (and 209 in FIG. 2). Accordingly, the allocation process completes at 426 and processing moves to 211 in FIG. 2. At 211 in FIG. 2, the amounts of stock and cash to be posted against each trade are taken from the final table of trade allocations, ignoring any trades with zero allocations, and the relevant systems' posting routines, as known in the art, are invoked for each trade. In the running example, the stock and cash allocated for “Trade 1,” “Trade 2,” and “Trade 3” are posted for each trade. After the posting process, processing is complete at 212.

It is to be understood that the exemplary embodiment is merely illustrative of the present invention and that many variations of the above-described embodiment and example can be devised by one skilled in the art without departing from the scope of the invention. It is therefore intended that all such variations be included within the scope of the following claims and their equivalents.

Treacy, Paul A., Clark, Julian, Bevan, Patricia, Palmer, Tim M., Moore, Jeffery E., Stark, Matthew S., Coad, Edward J., McNeillis, Michael J.

Patent Priority Assignee Title
9786004, Mar 27 2014 Bank of America Corporation Obtaining missing documents from user
9811857, Mar 27 2014 Bank of America Corporation Document calculator
Patent Priority Assignee Title
4169285, Dec 07 1977 Sefel J. & Associates Inc. Method for producing color representations of quantifiable data by maximizing differential perception of colors
4648038, Nov 21 1984 Lazard Freres & Co.; LAZARD FRERES & CO Methods and apparatus for restructuring debt obligations
4739478, Nov 21 1984 Lazard Freres & Co. Methods and apparatus for restructuring debt obligations
4742457, Aug 27 1985 TRANS TEXAS HOLDINGS CORPORATION, 1304 WEST AVENUE, AUSTIN, TEXAS, 78701, A CORP OF TEXAS System and method of investment management including means to adjust deposit and loan accounts for inflation
4752877, Mar 08 1984 College Savings Bank Method and apparatus for funding a future liability of uncertain cost
4933842, Feb 29 1988 Tesseract Corporation Automated investment fund accounting system
5121469, Jun 20 1989 Grumman Aerospace Corporation Method and apparatus for processing and displaying multivariate time series data
5222019, Jan 06 1988 Casio Computer Co., Ltd. Financial calculator capable of displaying graphic representation
5257369, Oct 22 1990 Thomson Reuters Global Resources Unlimited Company Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
5270922, Jun 29 1984 Bank of America Corporation System for distributing, processing and displaying financial information
5297032, Feb 01 1991 Bank of America Corporation Securities trading workstation
5305200, Nov 02 1990 EBS DEALING RESOURCES, INC Financial exchange system having automated recovery/rollback of unacknowledged orders
5419890, Jan 19 1994 Valence Technology, Inc.; Valence Technology, Inc Use of organic solvents in the synthesis of V6 O13+x [0
5454104, Feb 25 1993 Steidlmayer Software, Inc.; STEIDLMAYER SOFTWARE, INC Financial data event flow analysis system with study conductor display
5462438, Dec 10 1993 AT&T IPM Corp Method of displaying multiple time series and display generated thereby
5497317, Dec 28 1993 Omgeo LLC Device and method for improving the speed and reliability of security trade settlements
5517406, Sep 01 1994 WELLS FARGO BANK, N A Method and apparatus for data verification and position reporting in an automated trade transactions processing system
5557798, Jul 27 1989 Thomson Reuters Global Resources Unlimited Company Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
5563783, May 13 1992 The Trustees of Columbia University in the City of New York Method and system for securities pool allocation
5592379, Apr 13 1992 Method and apparatus for pooling and distributing bond dividends
5649186, Aug 07 1995 Open Invention Network, LLC System and method for a computer-based dynamic information clipping service
5675746, Sep 30 1992 MARSHALL, CHARLES C, MR ; MAXUS STRATEGIC SYSTEMS INC Virtual reality generator for use with financial information
5706502, Mar 26 1996 Oracle America, Inc Internet-enabled portfolio manager system and method
5710889, Feb 22 1995 Citibank, N.A. Interface device for electronically integrating global financial services
5724593, Jun 07 1995 LIONBRIDGE US, INC Machine assisted translation tools
5778157, Jun 17 1996 YY Software Corporation System and method for expert system analysis using quiescent and parallel reasoning and set structured knowledge representation
5787402, May 15 1996 CITIGROUP GLOBAL MARKETS, INC Method and system for performing automated financial transactions involving foreign currencies
5806047, Sep 25 1995 Metlife Life Insurance Company System for combined pool portfolio
5806048, Oct 12 1995 MOPEX INC Open end mutual fund securitization process
5819273, Jul 25 1994 Apple Inc Method and apparatus for searching for information in a network and for controlling the display of searchable information on display devices in the network
5832461, Aug 27 1985 Trans Texas Holdings Corporation System and method of investment management including means to adjust deposit and loan accounts for inflation
5845266, Dec 12 1995 OPTIMARK HOLDINGS, INC ; OPTIMARK, INC Crossing network utilizing satisfaction density profile with price discovery features
5864827, Jun 27 1997 Belzberg Financial Markets & News International Inc. System and method for providing an information gateway
5890140, Feb 22 1995 Citibank, N.A. System for communicating with an electronic delivery system that integrates global financial services
5913214, May 30 1996 Massachusetts Institute of Technology; MADNICK, STUART E ; SIEGEL, MICHAEL D Data extraction from world wide web pages
5918218, Sep 01 1994 WACHOVIA BANK, N A Method and apparatus for automated trade transactions processing
5922044, Dec 13 1996 Hewlett Packard Enterprise Development LP System and method for providing information to applets in a virtual machine
5940810, Aug 04 1994 COLUMBIA UNIVERSITY IN THE CITY OF NEW YORK, TRUSTEES OF, THE Estimation method and system for complex securities using low-discrepancy deterministic sequences
5944784, Sep 30 1997 The United States of America as represented by the Secretary of the Navy Operating methods for a universal client device permittting a computer to receive and display information from several special applications simultaneously
5946667, Apr 06 1994 MORGAN STANLEY SERVICES GROUP INC Data processing system and method for financial debt instruments
5950176, Mar 25 1996 CFPH, L L C Computer-implemented securities trading system with a virtual specialist function
5966531, Jul 27 1989 Thomson Reuters Global Resources Unlimited Company Apparatus and method for providing decoupled data communications between software processes
5966672, Jul 28 1997 MITHRAS PETROLEUM, LLC Visualization technology method
5970479, May 29 1992 Alice Corporation Pty Ltd Methods and apparatus relating to the formulation and trading of risk management contracts
5986673, Oct 17 1997 Method for relational ordering and displaying multidimensional data
5995943, Apr 01 1996 TVL LP Information aggregation and synthesization system
6006206, Sep 08 1997 Thomson Reuters Global Resources Unlimited Company Data health monitor for financial information communications networks
6012046, Dec 12 1995 OPTIMARK HOLDINGS, INC ; OPTIMARK, INC Crossing network utilizing satisfaction density profile with price discovery features
6018714, Nov 08 1997 IP Value, LLC Method of protecting against a change in value of intellectual property, and product providing such protection
6018721, May 20 1996 CITIBANK, N A Method and system for improved collateral monitoring and control
6023280, Feb 28 1996 Lucent Technologies Inc. Calculation and visualization of tabular data
6029146, Aug 21 1996 CITIBANK, N A Method and apparatus for trading securities electronically
6029147, Mar 15 1996 Microsoft Technology Licensing, LLC Method and system for providing an interface for supporting multiple formats for on-line banking services
6035287, Dec 17 1997 HANGER SOLUTIONS, LLC Method and apparatus for bundled asset trading
6049783, Aug 08 1997 Power Financial Group, Inc. Interactive internet analysis method
6052673, Aug 27 1985 Trans Texas Holdings Corporation Investment management
6055522, Jan 29 1997 ART TECHNOLOGY GROUP, LLC; Oracle OTC Subsidiary LLC Automatic page converter for dynamic content distributed publishing system
6058378, Feb 22 1995 Citibank, N.A. Electronic delivery system and method for integrating global financial services
6061662, Aug 16 1996 OPTIONS TECHNOLOGY COMPANY, INC Simulation method and system for the valuation of derivative financial instruments
6064984, Aug 29 1996 SINGLEPOINT ACQUISITION CO Graphical user interface for a computer-implemented financial planning tool
6073104, Nov 09 1994 System for invoice record management and asset-backed commercial paper program management
6073115, Sep 30 1992 MARSHALL, CHARLES C, MR ; MAXUS STRATEGIC SYSTEMS INC Virtual reality generator for displaying abstract information
6078914, Dec 09 1996 Open Text Corporation Natural language meta-search system and method
6078956, Sep 08 1997 International Business Machines Corporation World wide web end user response time monitor
6081774, Aug 22 1997 RPX Corporation Natural language information retrieval system and method
6088685, Oct 12 1995 Mopex, Inc. Open end mutual fund securitization process
6092056, Apr 06 1994 MORGAN STANLEY SERVICES GROUP INC Data processing system and method for financial debt instruments
6105005, Sep 15 1997 Bank of America Corporation System for enhanced financial trading support
6131082, Jun 07 1995 LIONBRIDGE US, INC Machine assisted translation tools utilizing an inverted index and list of letter n-grams
6134600, Jul 01 1996 Sun Microsystems, Inc. Method and apparatus for dynamic derivatives desktops
6148298, Dec 23 1998 ChannelPoint, Inc. System and method for aggregating distributed data
6173270, Sep 01 1992 Bank of America Corporation Stock option control and exercise system
6173276, Aug 21 1997 SCICOMP INC , A TX CORP System and method for financial instrument modeling and valuation
6178420, Jan 13 1998 Fujitsu Limited Related term extraction apparatus, related term extraction method, and a computer-readable recording medium having a related term extraction program recorded thereon
6185567, May 29 1998 TRUSTEES OF THE UNIVERSITY OF PENNSYLVANIA, THE Authenticated access to internet based research and data services
6195647, Sep 26 1996 NASDAQ, INC On-line transaction processing system for security trading
6226623, May 23 1996 CITIBANK, N A Global financial services integration system and process
6233566, Mar 18 1999 GHR SYSTEMS, INC System, method and computer program product for online financial products trading
6236972, Dec 02 1998 Red Hat, Inc Method and apparatus for facilitating transactions on a commercial network system
6236977, Jan 04 1999 Acacia Research Group LLC Computer implemented marketing system
6243670, Sep 02 1998 Nippon Telegraph and Telephone Corporation Method, apparatus, and computer readable medium for performing semantic analysis and generating a semantic structure having linked frames
6260021, Jun 12 1998 Philips Electronics North America Corporation Computer-based medical image distribution system and method
6263321, Jul 29 1994 RAMEY LANE, LLC Apparatus and process for calculating an option
6263335, Feb 09 1996 Textwise, LLC Information extraction system and method using concept-relation-concept (CRC) triples
6266683, Jul 24 1997 JPMORGAN CHASE BANK, N A Computerized document management system
6272474, Feb 08 1999 Method for monitoring and trading stocks via the internet displaying bid/ask trade bars
6275229, May 11 1999 Manning & Napier Information Services Computer user interface for graphical analysis of information using multiple attributes
6278982, Apr 21 1999 LAVAFLOW, INC Securities trading system for consolidation of trading on multiple ECNS and electronic exchanges
6282537, May 30 1996 MADNICK, STUART E ; SIEGEL, MICHAEL D Query and retrieving semi-structured data from heterogeneous sources by translating structured queries
6285986, Aug 11 1999 SLINGSHOT TECHNOLOGIES LLC Method of and apparatus for interactive automated registration, negotiation and marketing for combining products and services from one or more vendors together to be sold as a unit
6285989, Aug 07 1998 ARIBA, INC Universal on-line trading market design and deployment system
6304858, Feb 13 1998 ADAMS, VINER AND MOSLER, LTD Method, system, and computer program product for trading interest rate swaps
6313854, Oct 16 1998 International Business Machines Corporation Display mechanism for HTML frames
6317726, Dec 30 1996 THE GLOBE RESOURCES GROUP, INC Automated strategies for investment management
6317728, Oct 13 1998 KCG IP HOLDINGS LLC Securities and commodities trading system
6321212, Jul 21 1999 Longitude LLC Financial products having a demand-based, adjustable return, and trading exchange therefor
6323881, Oct 23 1998 RPX CLEARINGHOUSE LLC Web based GUI server and method for a telecommunications node
6332163, Sep 01 1999 Accenture Global Services Limited Method for providing communication services over a computer network system
6338055, Dec 07 1998 INNOVATION TECHNOLOGY GROUP, INC Real-time query optimization in a decision support system
6338068, Dec 14 1998 International Business Machines Corporation Method to demonstrate software that performs database queries
6343287, May 19 1999 Oracle America, Inc External data store link for a profile service
6347307, Jun 14 1999 Integral Development Corp.; Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
6349291, Jan 21 2000 INVESTPIC, LLC Method and system for analysis, display and dissemination of financial information using resampled statistical methods
6356933, Sep 07 1999 XCELEDATA CORPORATION Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
6360210, Feb 12 1999 FOLIO FINANCIAL, INC Method and system for enabling smaller investors to manage risk in a self-managed portfolio of assets/liabilities
6366908, Jun 28 1999 UNILOC 2017 LLC Keyfact-based text retrieval system, keyfact-based text index method, and retrieval method
6381585, May 04 1998 Method and apparatus for administering a share bond
6381586, Dec 10 1998 International Business Machines Corporation; COLUMBIA UNIVERSITY IN THE CITY OF NEW YORK, TRUSTEES THE Pricing of options using importance sampling and stratification/ Quasi-Monte Carlo
6385660, Oct 06 1997 Oracle America, Inc Site specific message dispatch in object-oriented systems
6389413, Feb 26 1997 Hitachi, Ltd. Structured-text cataloging method, structured-text searching method, and portable medium used in the methods
6389452, Dec 01 1997 HANGER SOLUTIONS, LLC Method of communicating between objects and agents across a computer network
6401080, Mar 21 1997 International Business Machines Corporation Intelligent agent with negotiation capability and method of negotiation therewith
6408282, Mar 01 1999 UBS Business Solutions AG System and method for conducting securities transactions over a computer network
6418417, Oct 08 1998 PLANALYTICS, INC System, method, and computer program product for valuating weather-based financial instruments
6421653, Oct 14 1997 GFINET, INC Systems, methods and computer program products for electronic trading of financial instruments
6424980, Jun 10 1998 Nippon Telegraph and Telephone Corporation Integrated retrieval scheme for retrieving semi-structured documents
6429868, Jul 13 2000 IAC, L L C Method and computer program for displaying quantitative data
6442545, Jun 01 1999 REFINITIV US ORGANIZATION LLC Term-level text with mining with taxonomies
6446110, Apr 05 1999 International Business Machines Corporation; IBM Corporation; International Business Machines Corporatoin Method and apparatus for representing host datastream screen image information using markup languages
6457066, Nov 10 1997 Microsoft Technology Licensing, LLC Simple object access protocol
6460021, Sep 28 1993 VISION MANAGEMENT RESEARCH LLC Collaterally secured debt obligation and method of creating same
6480882, Jun 25 1999 Data General Corporation Method for control and communication between computer systems linked through a network
6489954, Oct 13 1998 COMPUTING RESOURCE TECHNOLOGY LLC System and method for permitting a software routine having restricted local access to utilize remote resources to generate locally usable data structure
6490584, Nov 26 1997 International Business Machines Corporation User-centered push methods and system
6493681, Aug 11 1999 TERTITSKI, LEONID M Method and system for visual analysis of investment strategies
6510406, Mar 23 1999 FIVER LLC Inverse inference engine for high performance web search
6516303, Sep 14 1998 FOLIO FINANCIAL, INC Method, system, and apparatus for managing taxable events within a portfolio
6516308, May 10 2000 AT&T Corp Method and apparatus for extracting data from data sources on a network
6523022, Jun 09 1997 Red Hat, Inc Method and apparatus for selectively augmenting retrieved information from a network resource
6556987, May 12 2000 APR SMARTLOGIK LIMITED Automatic text classification system
6564250, Aug 21 1997 Intellectual Ventures I LLC Miniclient for internet appliance
6581056, Jun 27 1996 Xerox Corporation Information retrieval system providing secondary content analysis on collections of information objects
6581062, Mar 02 2000 OPEN TEXT HOLDINGS, INC Method and apparatus for storing semi-structured data in a structured manner
6598028, Sep 03 1999 MONEY MARKET FX, LLC Computer-implemented universal financial management/translation system and method
6601044, Mar 11 1998 FOLIO FINANCIAL, INC Method and apparatus for enabling individual or smaller investors or others to create and manage a portfolio of securities or other assets or liabilities on a cost effective basis
6611825, Jun 09 1999 The Boeing Company Method and system for text mining using multidimensional subspaces
6615187, Feb 09 2000 Method of securitizing and trading real estate brokerage options
6629097, Apr 28 1999 Douglas K., Keith Displaying implicit associations among items in loosely-structured data sets
6631373, Mar 02 1999 Canon Kabushiki Kaisha Segmented document indexing and search
6633868, Jul 28 2000 MIN, SHERMANN LOYALL System and method for context-based document retrieval
7047218, Mar 11 1998 FOLIO FINANCIAL, INC Method and apparatus for trading securities or other instruments on behalf of customers
20010011241,
20010011242,
20010018674,
20010025264,
20010032217,
20010042034,
20010043235,
20010044771,
20010056398,
20020002530,
20020004777,
20020007335,
20020007358,
20020013753,
20020013862,
20020016762,
20020016819,
20020018077,
20020022956,
20020023053,
20020026405,
20020026449,
20020026462,
20020029183,
20020032644,
20020035561,
20020042767,
20020049666,
20020054115,
20020059141,
20020065752,
20020065755,
20020069148,
20020069157,
20020073007,
20020078253,
20020087373,
20020087454,
20020087455,
20020087457,
20020099646,
20020099656,
20020112056,
20020120570,
20020123947,
20020130868,
20020138390,
20020147671,
20020152154,
20020152156,
20020156658,
20020156719,
20020161692,
20020161853,
20020169707,
20020174043,
20020178096,
20020184132,
20020184237,
20020194097,
20020194114,
20030004942,
20030009411,
20030018558,
20030018714,
20030033212,
20030037174,
20030065594,
20030066025,
20030066032,
20030078869,
20030088496,
20030093360,
20030093362,
20030093565,
20030105981,
20030115122,
20030126063,
20030126068,
20030126069,
20030126117,
20030140035,
20030149653,
20030154071,
20030158949,
20030188255,
20030220861,
20030220868,
20030233459,
20030236862,
20030236957,
20040039692,
20040064397,
20040068559,
20040078248,
20040103003,
20040128169,
20040148247,
20040148259,
20040162775,
20040167850,
20040220885,
20040225596,
20050060256,
20050086170,
WO120530,
WO137540,
WO157716,
WO159670,
WO203774,
WO2054189,
WO2056146,
WO2063516,
WO2065278,
WO2065286,
WO214991,
WO3012588,
WO3030013,
WO3032158,
WO3102733,
WO9843170,
WO3065256,
/////////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Nov 23 2004JP Morgan Chase Bank(assignment on the face of the patent)
Jan 25 2005TREACY, PAUL A JP Morgan Chase BankASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0157540145 pdf
Jan 25 2005CLARK, JULIANJP Morgan Chase BankASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0157540145 pdf
Jan 25 2005PALMER, TIM M JP Morgan Chase BankASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0157540145 pdf
Jan 25 2005MCNEILLIS, MICHAEL J JP Morgan Chase BankASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0157540145 pdf
Feb 07 2005MOORE, JEFFERY E JP Morgan Chase BankASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0157540145 pdf
Feb 17 2005STARK, MATTHEW S JP Morgan Chase BankASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0157540145 pdf
Feb 18 2005BEVAN, PATRICIAJP Morgan Chase BankASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0157540145 pdf
Feb 18 2005COAD, EDWARD J JP Morgan Chase BankASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0157540145 pdf
Date Maintenance Fee Events
Oct 17 2016M1551: Payment of Maintenance Fee, 4th Year, Large Entity.
Sep 18 2020M1552: Payment of Maintenance Fee, 8th Year, Large Entity.
Sep 19 2024M1553: Payment of Maintenance Fee, 12th Year, Large Entity.


Date Maintenance Schedule
Apr 16 20164 years fee payment window open
Oct 16 20166 months grace period start (w surcharge)
Apr 16 2017patent expiry (for year 4)
Apr 16 20192 years to revive unintentionally abandoned end. (for year 4)
Apr 16 20208 years fee payment window open
Oct 16 20206 months grace period start (w surcharge)
Apr 16 2021patent expiry (for year 8)
Apr 16 20232 years to revive unintentionally abandoned end. (for year 8)
Apr 16 202412 years fee payment window open
Oct 16 20246 months grace period start (w surcharge)
Apr 16 2025patent expiry (for year 12)
Apr 16 20272 years to revive unintentionally abandoned end. (for year 12)