WO1999057665A1 - System and method for intraday netting payment finality - Google Patents
System and method for intraday netting payment finality Download PDFInfo
- Publication number
- WO1999057665A1 WO1999057665A1 PCT/US1999/009698 US9909698W WO9957665A1 WO 1999057665 A1 WO1999057665 A1 WO 1999057665A1 US 9909698 W US9909698 W US 9909698W WO 9957665 A1 WO9957665 A1 WO 9957665A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- payment
- participant
- orders
- order
- payment order
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 154
- 239000012729 immediate-release (IR) formulation Substances 0.000 claims abstract description 9
- 230000002146 bilateral effect Effects 0.000 claims description 92
- 238000004422 calculation algorithm Methods 0.000 claims description 55
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 description 69
- 230000008569 process Effects 0.000 description 35
- 238000012545 processing Methods 0.000 description 21
- 238000004088 simulation Methods 0.000 description 20
- 230000000694 effects Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 16
- 238000010276 construction Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 230000001934 delay Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000006735 deficit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 101100174285 Arabidopsis thaliana FRB1 gene Proteins 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012954 risk control Methods 0.000 description 2
- 230000009885 systemic effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000002939 deleterious effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000009474 immediate action Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
Definitions
- the invention relates to a system and method of receiving and transmitting electronic payments between and among financial institutions in which payments are final when transmitted.
- a person (individual or corporate) making a payment in the United States has an array of payment instruments from which to choose. It is likely that most single transactions still are paid for in cash (coin and currency) . There are also checks and other paper instruments (travelers' checks, money orders, and official checks) and debit and credit entries processed - 2 -
- ACH automated clearing houses
- ACH a computer based, batch processing electronic payment mechanism that supports both credit and debit transfers and is used primarily for low-dollar transactions such as direct deposit of payroll and benefit payments and mortgage and insurance premium payments that can be scheduled some time in advance and that are not time-critical
- the two principal funds transfer systems, Fedwire and CHIPS (“Clearing House Interbank Payments System"), transfer hundreds of thousands of payments worth more than $2 trillion.
- the average size of a funds transfer is very large -- about $6 million on CHIPS and $3 million on Fedwire.
- Funds transfers can involve a number of different parties. Many transfers take place to settle obligations of two banks, such as the delivery or return of "fed funds" (a bank's deposits with its Federal Reserve Bank) . In these cases, only the two banks will be involved. Banks also transfer funds on behalf of customers. These transfers may be to another person, either at the same bank or at another bank. Sometimes a customer will move funds between two of its own accounts, either at different banks or at the same bank, for example, from local accounts used to collect bills to a cash concentration account or to a payroll account .
- a funds transfer may involve a single bank (a "book- transfer") or it may involve several.
- the originator will not specify the method for carrying out his payment order, and the originator's bank will select the most efficient way to have the funds sent to the beneficiary, including choosing a network or intermediary bank.
- Customer X orders his bank, Bank A, to pay $10,000 to the account of Customer Y at Bank B.
- the following will look at the different stages of the funds transfer and the various options open to the parties at each stage: How Customer X transmits the payment order to Bank A; how Bank A transmits the payment order to Bank B; how Bank B notifies Customer Y and makes the funds available to him; and how Banks A and B settle their balances.
- the bank's funds- transfer computer system Once the payment order has been entered into the bank' s funds- transfer computer system and passes the initial edits, it is checked against the customer's demand account balance. If the balance is sufficient, the bank executes the payment order by issuing a corresponding payment order to a funds- transfer network or the next bank in the funds transfer. If the customer does not have a sufficient balance in his account, the computer checks to see if the customer has an available credit line. If so, the payment is released; if not, the payment is held pending receipt of funds to cover the payment. If covering funds have not been received by the late afternoon (usually 2:00 to 4:00 P.M.) , the payment order may be referred to a credit officer who will decide whether to extend additional credit to the customer to enable the payment to be made .
- Fedwire is the funds transfer network operated by the 12 Federal Reserve Banks. It is a real-time, gross settlement system, meaning that the payment is final and irrevocable at the time the Federal Reserve Bank credits the account on its books of the receiving bank. There is thus no risk that the receiving bank will suffer a loss if it makes the funds available to the beneficiary and the sender cannot pay the amount of the payment order to its Federal Reserve Bank. In such a case, the Federal Reserve Bank would suffer the loss, not the receiving bank.
- a payment order received by a Federal Reserve Bank is routed to a Fedwire processing computer.
- This computer performs system edits and routes the payment order to the receiving Federal Reserve Bank, which automatically credits the receiving bank's account and sends an advice to the receiving bank.
- Example 1 shows the progress of a funds transfer involving a Fedwire payment order, noting the appropriate accounting entries. Settlements between Federal Reserve Banks are also discussed below.
- Step 1 Customer X sends payment order to Bank A; Bank A debits Customer X's account and sends Fedwire payment order to FRB1. - 7
- Step 2 FRB1 debits Bank A' s reserve account and sends payment order to FRB2.
- Step 3 FRB2 receives payment order and credits Bank B's account and sends advice to Bank B instructing it to pay Customer Y.
- Step 4 Bank B credits Customer Y's account and sends advice of credit. Both Bank B and Customer Y have received final funds and the payment is final.
- CHIPS Clearing House Interbank Payments System
- CHIPS is open to commercial banking institutions with offices in the United States. There are currently 83 active participants, 18 of which are settling participants. Each participant that is not a settling participant must arrange with a settling participant to settle on its behalf. (The specifics of the CHIPS settlement will be discussed below.)
- Bank A sends a payment message from its computer directly to the CHIPS computer over leased, dedicated telephone lines.
- the CHIPS computer authenticates and edits the payment message and sends a corresponding payment message to Bank B and an acknowledgement to Bank A.
- Example 2 shows a CHIPS transfer with appropriate accounting entries . - 9
- Step 1 Customer X sends payment order to Bank A.
- Step 2 Bank A sends payment message to Bank B via CHIPS.
- Step 3 Bank B notifies Customer Y that it has received $10,000 for his account.
- a bank may use debits and credits to various correspondent accounts to complete a funds transfer.
- a bank will send a payment order over the network operated by the Society for Worldwide Interbank Financial Telecommunication ( "S .W. I . F.T. " ) , with payment of the sender's obligation effected through adjustment of correspondent balances or other means.
- Payment orders may also be sent by telex or other communications medium. The actual mechanics of performing these transactions will vary from bank to bank.
- Examples 3 and 4 below show two different ways in which a funds transfer can be completed using a correspondent account.
- Step 1 Customer X sends payment order to Bank A.
- Step 2 Bank A debits Customer Y's account and sends payment order to Bank B authorizing Bank B to debit Bank A' s account.
- Step 3 Bank B debits Bank A' s account and credits Customer Y's account. 11
- Step 4 Bank B informs Customer Y that the funds are available .
- Example 4 Customer X orders Bank A to send $10,000 to Customer Y's account at Bank B. Bank A holds correspondent account for Bank B.
- Step 1 Customer X sends payment order to Bank A.
- Step 2 Bank A debits Customer X's account and credits Bank B's account.
- Step 3 Bank A sends payment order to Bank B.
- Step 4 Bank B credits Customer Y's account.
- Step 5 Bank B informs Customer Y that the funds are available for use.
- a customer may ask his bank to transfer funds from his account and pay another account on the books of the same bank (either another customer's account or a different account of the ordering customer) .
- the last step in the process of a funds transfer is paying the beneficiary. In all but a small number of cases, this is accomplished when the beneficiary's bank credits the beneficiary's account on its books and allows the beneficiary use of the funds. Under Federal Reserve Board regulations, a bank must make the proceeds of a funds transfer available to the beneficiary no later than the opening of business on the day after the bank has received final payment. For Fedwire payments, final payment occurs when the amount of the payment order is credited to the receiving bank's account at the Federal Reserve Bank or when notice of the credit is sent, whichever occurs first. For CHIPS transfers, final payment occurs when settlement is completed.
- the beneficiary's bank may use methods other than a credit to the beneficiary's account. For example, a bank may hold funds to be paid to the beneficiary upon presentation of proper identification, or the bank may pay a beneficiary by sending a check.
- Both of the above-mentioned major funds- transfer systems in the United States provide for settlement, i.e., the actual transfer of value in good funds that results in final payment. Once settlement is accomplished, payments are irrevocable (except in cases of duplicate or erroneous payments) .
- the actual mechanics of the settlement in Fedwire and CHIPS differ, reflecting the differences between a real-time, gross settlement system operated by the central bank and a privately operated multilateral netting system.
- the receiving bank has good funds in its reserve or clearing account that can be withdrawn and that counts towards fulfillment of the bank's required reserve balance.
- Fedwire is a net settlement system involving 12 settling banks, each of which is a separate corporation with its own balance sheet, and transactions must be settled among these banks.
- the Federal Reserve Board maintains interdistrict settlement accounts for the Federal Reserve Banks. This account appears on each Federal Reserve Bank's balance sheet. Each transaction between Federal Reserve Banks results in a credit to the interdistrict settlement account of one Federal
- each Federal Reserve Bank has an accumulated position that is either a debit or a credit, and on the consolidated balance sheet of all 12 Federal Reserve Banks, these debits and credits net to zero.
- the interdistrict settlement account of each Federal Reserve Bank is brought to zero by the reallocation of the Federal Reserve Bank's ownership interest in the System Open Market Account - the consolidated holdings of all Federal Reserve Banks' government securities.
- CHIPS is a true multilateral net settlement system.
- the release of a payment message creates an obligation to settle that is netted against the obligation of the receiving participant to settle for payments that it sent.
- Each bank thus has an overall net position that is either a debit or credit.
- each participant receives a report showing the total value of all payment messages sent, the total value of all payment messages received, and a net figure (debit or credit) showing the difference.
- Each settling participant receives a report showing in addition to its own position, the net position of each participant it settles for and an aggregate balance showing an overall net position that includes its own position and the positions of each participant it settles for.
- Each settling participant is then given 45 minutes within which it must notify the Clearing House if it decides not to settle for one or more of the participants for which it is the designated settling participant.
- the Clearing House instructs the Federal Reserve Bank of New York to open the CHIPS settlement account that it holds on behalf of all CHIPS settling participants and sends a notice to all settling participants that settlement may begin. After this notice has been sent, each settling participant that has an aggregate net debit position has 15 minutes to send a Fedwire funds transfer in the amount of its debit position to the CHIPS settlement account at the Federal Reserve Bank of New York. Once all these Fedwires have been completed, the Clearing House checks the balance in the account and then sends 16
- a multilateral net settlement system that provides for settlement at the end of the day is subject to the risk that a participant with a net debit position (a "debtor participant") would be unwilling or unable to pay its settlement obligation. Absent some measures to make up for the debtor participant's failure, a failure of this kind could mean that the system would fail to settle, which could mean that the funds transfers that were processed by the netting system on the date of the failure would not be completed. Depending on the number and value of the payments handled by the funds- transfer system, such a failure could have serious deleterious effects on the surviving participants and world financial markets generally.
- CHIPS has taken a number of steps to control the risk of a settlement failure. In 1984, it required each of its participants to establish "bilateral credit limits on each other participant as a measure of the credit risk that it would be willing to accept from the other participant. In 1986, CHIPS took a further step by establishing "sender net debit caps" on each participant as a percentage of the aggregate of the bilateral limits that had been established by other participants. This control limits the amount of risk that a participant can present to the system.
- CHIPS began to strengthen its existing risk controls so that by 1997 the two banks with the highest debit caps would fail simultaneously with each at its greatest possible debit position, and CHIPS would still be able to settle (referred to as a "Lamfalussy + 1 Standard"). The same loss-sharing formula would allow CHIPS to settle if a large number of smaller banks were to fail .
- EAF 2 Electronic Clearing Frankfurt
- EAF 2's operating day has two phases.
- phase 1 8:00 a.m. to 12:45 p.m.
- payment orders received from financial institutions are entered into the system and offset bilaterally.
- final payments are available to the recipient credit institution in phase 1, as in a gross settlement system.
- the proceeds of the payment order can thereafter be made available to the beneficiary, without credit risk to the receiving bank.
- phase 2 1:00 p.m. to 2:15 p.m.
- an attempt is made to effect two- stage multilateral clearing of the remaining payments, which have not been netted bilaterally during the first phase.
- the crucial difference from multilateral clearing, as it exists at present, lies in the avoidance of the systemic risk.
- EAF 2 is very similar to a gross settlement system in which individual payments are executed after cover is available. It is based on the principle that, in bilateral relations, incoming payments are used preferably instead of account balances as cover for outgoing payments, by offsetting them against each 19
- CHIPS for example, by debits or credits to an account at the end of day.
- phase 2 there is an initial multilateral clearing process of the payments not offset in phase 1. If debit balances are not covered, the maximum volume of residual payments, which is covered by liquidity on the giro accounts, is calculated on the basis of an algorithm for sorting out individual payments. These residual payments then become final immediately. With the aid of the objective selection criteria predefined by the algorithm, individual payments that have caused the uncovered debit balances are identified. The individual payments that are regarded as uncovered are set aside provisionally pending the execution of the second multilateral clearing, and the revised balances are booked on the Bundesbank giro accounts.
- a payment input from the EIL-ZV increases the account balance, which is then used to cover the net balances .
- a payment input in the EAF 2 itself changes the net balances between the participants; the liquidity on the giro accounts remain unchanged.
- the EAF 2 system has several drawbacks. For one thing, although final settlement occurs throughout the day, the occurrences are at 20 minute intervals. Also, although the system allows prefunded accounts to be set up by individual institutions, each account is created for use in offsetting payments to a preselected financial institution. For example, Bank A may set up an account for offsetting payments and receipts vis-avis Bank B, and only Bank B, and another account for Bank A' s relations with Bank C, and so on.
- an object of the present invention is to provide a system and method for continuous intraday final settlement of payment orders between banks in which the system receives payment orders from and transmits payment orders to financial institutions so that the payments are finally settled when transmitted.
- the system requires minimum auxiliary funding and has delays that vary with payment size but that are acceptably small, and a high percentage of the total dollar volume is released before cutoff.
- the system comprises: (a) a central controlling agent, including a central computer operable to communicate electronically with the satellite computer stations of the participants to receive payment orders therefrom, and to control release of payment orders to the participants; and (b) means for storing a plurality of prefunded balances in a prefunded balance account, each balance representing the right of one of the participants to payment from the prefunded balance account and containing an initial prefunded balance for each participant at a start of each business day.
- the central computer is operable on a continuous basis: (1) upon receipt of a payment order by said central controlling agent from one of said participants, operating as a sending participant, for payment to 23
- each received payment order is categorize as small if it is less than a predetermined percentage of one of the initial prefunded balance for the associated sending participant and the initial prefunded balance for the associated receiving participant, and as large otherwise; (2) to store the received payment order in a queue maintained by said central computer; (3) to monitor the queue for previously stored small payment orders as candidates for immediate release for payment; (4) to determine if release of a candidate small payment order for payment will cause available balances for both the sending participant and the receiving participant associated with the candidate small payment order to fall within respective predetermined limits; (5) if the determination in step (4) is positive, to release the candidate small payment order by debiting the available balance of the sending participant and crediting the available balance of the receiving participant by the amount of the associated candidate small payment order; (6) to monitor the queue for previously stored target large payment orders for payment from a sending participant to a receiving participant; (7) to release a target large payment order stored in the queue by performing multilateral batching (i) by forming a first tree comprised of the
- the available balances of the sending participant of the target large payment order and of the sending participants of the helper payment orders in a multilateral batch comprising the target and helper payment orders of the first and second trees by the amounts of each respective payment order; and (iv) crediting the balances of the receiving participant of the target large payment and of the receiving participants of the helper payment orders in the multilateral batch by the amounts of the respective payment orders; the multilateral batch having been chosen so that after the payment orders comprising the first and second trees are released, the resulting position in the available balance of each participant involved in the multilateral batching falls within predetermined limits.
- the computer system is operable to selectively offset, in a bilateral batch, the amount of a target large payment order by searching the queue for a previously queued second payment order from the associated receiving participant of the target large payment order; to generate a pseudo-payment order in an amount of a net difference between the target large payment order and the second payment order; and to store the pseudo-payment order in the queue.
- a method for continuous intra-day final settlement of payments among a plurality of participants each having an associated satellite computer station operable to transmit payment orders electronically and each being operable to function as a payment receiving participant and a payment sending participant by a central controlling agent including a central computer operable to communicate electronically with the satellite computer stations of the plurality 25
- the method comprises the steps of: (1) upon receipt of a payment order by the central controlling agent from one of the participants, operating as a sending participant, for payment to another of the financial institutions, operating as a receiving participant, categorizing each received payment order as small if it is less than a predetermined percentage of one of the initial prefunded balance for the associated sending participant and the initial prefunded balance for the associated receiving participant, and as large otherwise; (2) storing the received payment order in a queue maintained by the central computer; (3) monitoring the queue for previously stored small payment orders as candidates for immediate release for payment; (4) determining if release of a candidate small payment order for payment will cause available balances for both the sending participant and the receiving participant associated with the candidate small payment order to fall within respective predetermined limits; (5) if the determination in step (4) is positive, releasing the candidate small payment order by debiting the available balance of the sending participant crediting the available balance of the receiving participant by the amount of the associated candidate small payment order; (6) monitoring the queue for previously stored target large payment orders for payment from a sending participant to a receiving participant;
- multilateral batching (i) by forming a first tree comprised of the target payment order and, if necessary, helper payment orders in a direction towards the sending participant of the target payment order, from at least one sending participant other than the receiving participant of the target large payment order; (ii) by forming a second tree comprised of the target payment order and, if necessary, helper payment orders in a direction away from the receiving participant of the large target payment order, to at least one receiving participant other than the receiving participant of the target payment order; (iii) debiting the available balances of the sending participant of the target large payment order and of the sending participants of the helper payment orders in a multilateral batch comprising the target and helper payment orders of the first and second trees by the amounts of each respective payment order; and (iv) crediting the balances of the receiving participant of the target large payment and of the receiving participants of the helper payment orders in the multilateral batch by the amounts of the respective payment orders; the multilateral batch having been chosen so that after the payment orders comprising the first and second
- the method further comprises a step of selectively offsetting, in a bilateral batch, the amount of a target large payment order by searching the queue for a previously queued second payment order from the associated receiving participant of the target large payment order; generating a pseudo-payment order in an amount of a net difference between the target 27 -
- a computer- readable medium storing code executable by a central computer, the code controlling the central computer to perform a method for continuous intraday final settlement of payments among a plurality of participants, each having an associated satellite computer station operable to transmit payment orders electronically and each being operable to function as a payment receiving participant and a payment sending participant.
- the central computer forms a part of a central controlling agent and is operable to communicate electronically with the satellite computer stations of the plurality of participants to receive payment orders therefrom, to control release of payments to the plurality of participants, and to control means for storing a plurality of prefunded balances in a prefunded balance account, each balance representing the right of one of the participants to payment from the account in which the prefunded balances are held and containing an initial prefunded balance for each participant at a start of each business day.
- the method comprises the steps of: (1) upon receipt of a payment order by the central controlling agent from one of the participants, operating as a sending participant, for payment to another of the participants, operating as a receiving participant, categorizing each received payment order as small if it is less than a predetermined percentage of one of the initial prefunded balance for the associated sender financial institution and the initial prefunded balance for the associated receiver financial institution, and as large otherwise; (2) storing the received payment order in a queue maintained by the 28
- step (4) monitoring the queue for previously stored small payment orders as candidates for immediate release for payment; (4) determining if release of a candidate small payment order for payment will cause available balances of both the sending participant and the receiving participant associated with the candidate small payment order to fall within respective predetermined limits; (5) if the determination in step (4) is positive, releasing the candidate small payment order by debiting the available balance of the sending participant and crediting the available balance of the receiving participant by the amount of the associated candidate small payment order; (6) monitoring the queue for previously stored target large payment orders for payment from a sending participant to a receiving participant; (7) releasing a target large payment order stored in the queue by performing multilateral batching (i) by forming a first tree comprised of the target payment order and, if necessary, helper payment orders in a direction towards the sending participant of the target payment order, from at least one sending participant other than the sending participant of the target large payment order; (ii) by forming a second tree comprised of the target payment order and, if necessary, helper payment orders in a direction away from
- the multilateral batch having been chosen so that after the payment orders comprising the first and second trees are released, the resulting position in the available balance of each participant involved in the multilateral batching falls within predetermined limits.
- the computer readable medium stores code to cause the apparatus to perform the method further comprising a step of selectively offsetting, in a bilateral batch, the amount of a target large payment order by searching the queue for a previously queued second payment order from the associated receiving participant of the target large payment order; generating a pseudo-payment order in an amount of a net difference between the target large payment order and the second payment order; and storing the pseudo- payment order in the queue.
- Figure 1 illustrates the release methodology payment process flow of the present invention
- Figure 1A is a block diagram of a computer system for implementing the present invention
- Figure 2 illustrates the tree payment structure of multilateral batching in the present invention
- Figure 3 is a flow chart illustrating the overall payment message flow of the balanced release engine
- Figure 4 is a flow chart illustrating the process flow of procedure CHECKSENDPAYMT.
- Figure 5 is a flow chart illustrating the process flow of procedure GALESHAPLY.
- the present invention relates to a system including a central controlling agent having a central computer that is structured to communicate with participating financial institutions.
- the system has hardware to control and update prefunded balance accounts associated with the participating financial institutions, and, by means of crediting and debiting these accounts within predetermined constraints, the system controls release and settlement of payments between and among the participating institutions.
- the system preferably is implemented with a computer system having the ability to communicate electronically with banks, including the participating financial institutions as well as the Federal Reserve Bank that is providing the settlement service, and having storage capacity sufficient to maintain queues for temporarily storing payment orders received by banks until the associated payments can be released.
- the system may be implemented using certain aspects of the current CHIPS system hardware.
- the system when implemented using CHIPS hardware, the system achieves a significant improvement over the current CHIPS implementation by providing intraday finality of all releases.
- the system of the present invention is not limited to this implementation, however, and may be implemented using hardware and software independent of and different from that utilized in the CHIPS system.
- a design goal of the system of the present invention is to achieve intraday payment finality while using prefunded balances that are smaller than the value of the collateral currently pledged to secure certain obligations as required by, the prior art CHIPS system.
- the system of the present invention includes a computer controlled apparatus that employs software that continuously matches, nets, and releases payment messages on an individual, bilateral, or multilateral basis among participating financial institutions ("participants") throughout the day.
- no payment message will be released to a receiving participant unless (a) the value of the payment message can be simultaneously charged against and credited to prefunded balances established by the sending and receiving participants or (b) the payment message has been netted and set off against one or more other payment messages and the resulting balance can be simultaneously charged against and credited to the prefunded balances.
- This procedure will result in "final settlement" of the sending participant's obligation to pay the amount of the payment message to the receiving participant under section 4-A- ⁇ 403 (1) (a) or section 4-A- ⁇ 03(2) of the New York Uniform Commercial Code.
- the system removes any risk of settlement failure should one or more participants fail, even if the failure were to occur during the business day.
- This significant improvement over the current CHIPS system is the result of requiring each participant to deposit a predetermined amount into an account (prefunded balance account) , at a Federal Reserve Bank and - 32
- the system is expected to permit the release of more than 99 per cent of the number of payment messages, with a value of more than 96 per cent of the total value of payment messages, during the course of the business day. If utilized in CHIPS, the system of the present invention will eliminate the last elements of settlement risk that remains in the CHIPS system.
- use of the system of the present invention will significantly reduce overall risk in the payment system when compared with prior art systems.
- the new system will reduce settlement risk by permitting dollar payments that are part of foreign exchange transactions to be final as soon as the payment is released. For example, the dollar side of a dollar-Euro transaction can be settled with a final payment early in the day and at the same time that the Euro payment is settled in Frankfurt, Germany, the location of the EAF-2 System.
- each participant will be required to deposit a predetermined amount (its "initial prefunded balance") by sending a final, irrevocable payment to an account ("prefunded balance account") on the books of the Federal Reserve Bank of New York (“FRBNY”) .
- the system records each participant's initial deposit to the prefunded balance account, e.g., if implemented in CHIPS, on books and records of CHIPS, and also records all intraday debits or credits that accrue to a 33
- participant when payment messages are released.
- Each participant's required initial prefunded balance will be determined using a formula designed to ensure optimal performance of the system.
- the initial prefunded balance will be recalculated at the end of each week to determine initial prefunded balance requirements for the next week. It is expected that a participant's initial prefunded balance requirement will be approximately the same as that participant's collateral requirement under the current CHIPS.
- no participant's available balance will be permitted to be less than zero (its "minimum available balance") or more than twice the required initial prefunded balance (its "maximum available balance”), however the invention could be implemented using different constraints and is not limited to the preferred embodiment .
- the present invention relates to a computer-based system including a computer program to control the release of payment messages.
- This program (the "balanced release engine") will continuously match, net, set off, and release payment messages throughout the day. All incoming payment messages will be received by the system and held in a queue or, preferably several queues for release when the requirements of the computer program are satisfied.
- the program will broadly classify each payment message as large (in the current modelling equal to or greater than 80 per cent of one of, and preferably the lesser of, the sending participant's initial prefunded balance 35
- the term "large” will be used to refer to the category of payment orders equal to or greater than 80% of the initial prefunded balance.
- the inventors have found some improvement in the efficiency of the system can be attained if the payment orders less than 80%, referred to broadly as “small” in the description, be further divided into “medium” payment orders, i.e., those payment orders of an amount falling between 20% and 80% of the initial prefunded balance, and "small", or “very small” payment orders, i.e., those of an amount less than or equal to 20%.
- “medium” payment orders i.e., those payment orders of an amount falling between 20% and 80% of the initial prefunded balance
- small or “very small” payment orders
- the program will release payments individually, in bilateral batches, or in multilateral batches and release notification will be sent to the sending participant while a receive notification will be sent to the receiving participant.
- This general payment processing flow is shown in Fig. 1. 36 -
- the release of a large payment individually would ordinarily cause the sending participant to fall below its minimum available balance or cause the receiving participant to exceed its maximum available balance. Therefore, the balanced release engine will not release the payment and will begin to search for payments that can be included in a batch and netted against the large payment message. If needed, other "helper" payment messages from other participants will be added to the batch in such a manner that all the payment messages in the batch may be netted and set-off against one another so that the net changes to the available balance of each participant with payment messages in the batch will not cause any participant's available balance to drop below zero or exceed its maximum. This batching will be discussed in greater detail below.
- the balanced release engine After the closing time for the receipt of payment messages, the balanced release engine will be used to match, net, set off, and release as many of the remaining payment messages as possible without regard to any participant's maximum available balance. Following this procedure, the balanced release engine will be used to calculate a net balance for each participant based on the remaining unreleased payment 37
- resulting number for a participant is negative, then that participant has a "final prefunded balance requirement"; if the resulting number for a participant is positive, then the participant has a "final prefunded balance entitlement.”
- Each participant will then receive an administrative message advising of its final prefunded balance requirement or its final prefunded balance entitlement.
- Each participant with a final prefunded balance requirement will be given 30 minutes to send a Fedwire funds transfer in the amount of its final prefunded balance requirement to the prefunded balance account. Once all of these funds transfers have been completed, all remaining unreleased payment messages will be netted, set off, and released, and, at the same time, the system will send to each participant with a final prefunded balance entitlement a Fedwire funds transfer in the amount of its final prefunded balance entitlement .
- CHIPS payment message is a payment order within the meaning of section 4 -A—103 of the New York Uniform Commercial Code.
- CHIPS Rule 2 "[t]he release of a payment message creates an obligation of the Sending Participant to pay the Receiving Participant the amount of the payment message.” See CHIPS Rules and Administrative
- CHIPS Rule 2 also provides that the "obligation of the Sending Participant to pay the Receiving Participant is to be netted in accordance with Rule 12 and settled in accordance with Rule 13. "
- Rule 12 states that CHIPS payment messages are continuously netted and set-off against each other.
- Rule 13 (c) (1) provides that the multilateral net balances remaining from this netting and set-off procedure are settled through the settlement account at The Federal Reserve Bank of New York ("FRBNY"). Under Rule 13(c) (2), settlement is complete when the required payments to and from the settlement account have been made.
- a chief benefit of the system of the present invention is that it allows the sending participant's obligation 39
- Section 4-A— 03(2) of the New York Uniform Commercial Code provides that as between members of a funds - transfer system that nets obligations multilaterally among participants (as the current CHIPS does) , "the receiving bank receives final settlement when settlement is complete in accordance with the rules of the system.”
- Section 4-A—403(2) provides that
- the obligation of the sender to pay the amount of a payment order transmitted through the funds- transfer system may be satisfied, to the extent permitted by the rules of the system, by setting off and applying against the sender's obligation the right of the sender to receive payment from the receiving bank of the amount of any other payment order transmitted to the sender by the receiving bank through the funds- transfer system.
- the aggregate balance of obligations owed by each sender to each receiving bank in the funds - transfer system may be satisfied, to the extent permitted by the rules of the system, by setting off and applying against that balance the aggregate balance of obligations owed to the sender by other members of the system.
- payment messages will be released either individually or in batches. If a payment message is released individually, it will be simultaneously settled and the sending participant's obligation paid by a debit and credit to the available balances of the sending and receiving participants. This, in effect, 40
- each payment message is settled by netting the sending and receiving participants' obligations to one another, and, if more than two participants have payment messages in the batch, by also netting the bilateral net balances of all participants in the same batch.
- Each participant's balance that results from the netting (whether it is a bilateral net balance or a multilateral net balance) is simultaneously settled through a debit or credit to its available balance.
- settlement of those payment messages will be complete in accordance with the proposed rules to govern the system of the present invention. This netting and adjustment of available balances will constitute final settlement and payment under sections 4-A-403(2) and 4-A-403 (1) (a) .
- the procedure will provide that payment obligations in respect of payment messages will be settled through the netting and the adjustment of available balances at the time the payment message is released to the receiving participant.
- there will be no need to provide for an "unwind" as in the current CHIPS system i.e., the authority of the board of directors under CHIPS Rules 2 and 13 (k) to declare that CHIPS has failed to settle and to return all payment messages to storage
- the balanced release engine determines when payments between banks can be released to the intended receiver.
- release of payments proceeds differently for payments in different dollar size classes, as will now be discussed.
- Each participant in the system must deposit a predetermined amount, or initial prefunded balance, into a prefunded balance account.
- a credit limit (maximum available balance) of twice the initial prefunded balance is set as an upper limit or "cap”, while the available balance is never permitted to go below zero (debit limit or “cap”), to be referred to as the minimum available balance in the system of the present invention.
- a "flow cap” arbitrarily defined as 0.8 times the initial prefunded balance, is used broadly to distinguish “small” from “large” payments; those smaller than the flow cap are defined as small, others are defined as large.
- the balanced release engine releases small payments, i.e. preferably those less than 80% of the lower of the initial prefunded balances of the sending participant and receiving participant, individually (without batching) from bilateral FIFO queues, resident in the central computer storage, upon which incoming payment orders are placed upon receipt, as the positions of the sending and receiving participants permit. Neither the minimum nor maximum available balances discussed above may be exceeded following the release of a payment.
- a matching technique based upon the Gale-Shapley algorithm, to be discussed in detail below, is used to find an optimum match of senders with receivers that is in some sense the best possible one for both senders and receivers.
- the balanced release engine releases payments with the aid of multilateral and/or bilateral batching.
- Bilateral batching will now be described.
- Large queued payments are batched bilaterally as follows.
- a large payment order from bank A to bank B is queued, a check is made to see whether there is another payment order from bank B to bank A already queued that is between half as large and twice as large as the first payment order. If so, such a second payment order is chosen and is batched with the first one.
- the result is a "pseudo-payment" whose amount is the difference of the amounts of the original two payment orders. Notice that this difference will be less than or equal to each of the amounts of the two payment orders in the batch.
- the direction of the pseudo-payment is the direction of the larger payment order.
- pseudo-payment After a pseudo-payment is formed, the process is repeated iteratively until no suitable "second" payment order is available. At each step, the size of the pseudo-payment gets smaller or, at worst, remains the same. Thus, the overall effect of bilateral batching is to reduce the size and number of the payments to be released. These pseudo-payments are then released either as small payments as described above, or as 43
- Multilateral Batching is utilized in the system of the present invention to provide a means to release payments (and pseudo-payments) larger than the flow cap; even payments much larger than the debit and credit caps .
- helper payments are used to bank A from third party participants currently in a credit position to produce a net position at bank A that is within the prescribed limits. Helper payments are chosen initially with only the position at bank A in mind.
- a tree of payments exists directed downward toward the root participant bank A.
- An example of such a tree is shown in Fig. 2, which will be discussed in greater detail below.
- Participants at nodes of the tree, such as bank B in Fig. 2 with both incoming and outgoing branches satisfy their limit constraints.
- Leaf (terminal) nodes of the tree are participants that may exceed their debit cap, and which therefore may 44
- a tree of payments is obtained among the participants previously in a credit position such that every participant position in the tree, including participant bank A, is within its prescribed debit and credit limits.
- FIG. 1A An example of a computer system for executing the program that drives the system of the present invention is shown in Figure 1A.
- the system includes a CPU 31 that performs processing functions. Also included is read only memory 32 (ROM) , which stores at least some of the program instructions to be executed by CPU 31, such as portions of the operating system or basic input-output system (BIOS) , and random access memory 33 (RAM) used for temporary storage of data.
- ROM read only memory
- BIOS basic input-output system
- RAM random access memory 33
- the computer also includes a network interface 72 which enables communication with external devices, such as the computers located at participant financial institutions.
- a data storage device 34 is provided to allow for storage of data. Data storage device 34 may 45
- Data/Address bus 37 connects the ROM 32, RAM 33 and data storage device 34 to the CPU.
- a keyboard is preferably provided to receive input from an operator. However any conventional method of operator input may be used.
- a display is preferably provided for conveying information to the operator of the computer.
- a maximum available balance equal in the preferred embodiment to twice the magnitude of the initial prefunded balance requirement, is imposed on each participant.
- a participant's available balance including the amount of his initial prefunded balance, will not be allowed to exceed his credit limit.
- this upper limit is not needed for limiting of risk, simulations run by the inventors have shown that such a limit is needed to provide satisfactory functioning of the system. As discussed above, this limit is eliminated for processing after the end of the day cutoff.
- an incoming payment order is classified as being "small” (i.e. less than a "flow cap", preferably of 80% of the lesser of the sending participant's and the receiving participant's initial prefunded balance requirements) or "large” (i.e. not “small”).
- Small payment orders which comprise most of the workflow, can be queued for immediate release, provided that release would not violate items 2 or 3 above.
- Entries in the queue are processed according to a version of the "first in, first out” queue discipline (FIFO) .
- FIFO first in, first out queue discipline
- the earliest payment order in the sending participant's queue may or may not be earlier than earliest payment order in the receiving participant's queue.
- a matching technique is used to select which payment orders should be processed first. Details of this technique are effectively policy decisions about which payment orders are to be released, and in what order. The details of the algorithm are discussed below.
- helper payment order in the multilateral batching procedure is made.
- an attempt is made to include the payment order as part of a bilateral batch.
- Payment orders that are larger than the flow cap but smaller than the sending participant's initial prefunded balance could be released by themselves at this point, provided that the sending participant's available balance is sufficiently far away from zero and provided that the receiving participant's maximum available balance would not be violated. However, payment orders of less than 160% of the sending participant's initial prefunded balance requirement do not trigger an invocation of bilateral batching.
- the multilateral batching procedure also scans the list of queued large payment orders, sorted by time stamp (an indication of the time at which the payment order was received by the system) , making each a "target payment order" of the multilateral batching procedure. Details of bilateral and multilateral batching follow:
- This pseudo- payment order could then be netted with the previously queued payment order from A to B of $100 million. If, on the other hand, the $800 million and $600 million payment orders entered the system first, they would immediately be netted into a single $200 million pseudo payment order that would be placed on the queue from B to A. 49
- the resulting pseudo-payment order is then treated identically to an actual payment order.
- the pseudo-payment order is released if and when it would not exceed either the sending participant's maximum available balance or the receiving participant's maximum available balance.
- This procedure attempts to identify a double tree of nettable large payment orders (as defined above) and process them as a batch.
- the procedure starts with a particular large payment order that has been identified as a "target payment order.”
- the goal is to identify a list of "helper orders" that can be netted with the target payment order so that the net order satisfies all maximum and minimum available balance constraints.
- the target payment order is a large payment order of an amount A ⁇ from participant 1 to participant 2.
- P 1 including the initial prefunded balance requirement, F, , would be negative, or, in symbols
- the first phase of the multilateral batching program is to search the queue of payment orders to 1 for such helper orders, but only among participants that have an available balance of greater than zero. (See below for an explanation of this restriction.) If more than one possibility is found, the payment order that would itself require the smallest amount of help will be used. If no single payment order can be found that satisfies these constraints, the largest payment order that could partially offset the potential balance deficit would be used, augmented with other, smaller payment orders.
- a multilateral batch of payment orders is eventually generated such that each participant's available balance remains within the maximum and minimum available balance limitations. Otherwise, a suitable tree cannot be completed (i.e. the program terminates "empty handed"). If those participants with available balances greater than zero (i.e. P > 0) are allowed to make helper payment orders, the helper orders required at each stage tend to get smaller and smaller, facilitating successful batching. This is 51
- P 2 + A 12 > 2F 2 i.e. the sum of bank 2's available balance and the original payment order from 1 to 2 would exceed 2's maximum available balance, a similar tree is built for participants to whom 2 has queued payment orders, possibly branching out to participants to whom they have queued payment orders, etc.
- Fig. 2 shows trees of helper payments that assist a target payment.
- a target payment from Bank A to Bank B that does not meet the criteria for immediate release or bilateral release is chosen as the target for multilateral batching based, in part, upon how long it has been in the queue. All participants shown above the thick horizontal line currently have available balances greater than their initial prefunded balance requirements. Those shown below the line have available balances below their initial prefunded balance requirements .
- An attempt is made to group helper payments above the line to construct a tree of payments among the banks with available balances greater than zero to aid the sending participant (A) in sending a designated large payment order without its available balance dropping below zero.
- a second tree of payments is constructed among banks in a debit position (i.e., below the line) to aid the receiving bank in accepting the designated large payment without exceeding its maximum available balance.
- a fairly large helper payment is shown from C to A which ensures that A' s position will not exceed its debit cap as a result of the transfer of funds to B.
- a payment from D is supplied to C.
- D is in turn supplied with helper payments from banks E, F and G.
- Figure 3 illustrates the overall process flow of the Balanced Release Engine.
- the queue structures are represented in matrix form to show that a payment may simultaneously be linked to more than one queue .
- small payment orders i.e., payment orders whose dollar values are less than 80% of the lower of the initial prefunded balances of the sender and receiver
- medium payment orders i.e., payment orders that are between 20% and 80% of the lower initial prefunded balance requirement
- small, or more specifically "very small” payment orders i.e., payment orders that are less than or equal to 20% of the lower initial prefunded balance requirement.
- small is being used to refer to "very small” payment orders.
- “small” refers to all payment orders less than 80% of the lower of the initial prefunded balance requirements of the sending participant and the receiving participant .
- Payment orders characterized as small, or more precisely, very small, are placed both in the BILAT and SYSSMALL queues.
- Medium sized payment orders are placed simultaneously in the BILAT, GROUPORDSEND, GROUPORDRECV, SYSSMALL and BILATORD queues.
- Large incoming payment orders are initially placed in the DELAY (SYS) queue as well as the queues GROUPORDSEND,
- GROUPORDRECV and BILATORD All such payment orders can be used as helpers. Finally, large payment orders that have passed through the delay queue, as well as large pseudo-payments, are placed in the queues GROUPORDSEND, GROUPORDRECV, SYSLARGE and BILATORD.
- All queues with the suffix "ORD”, such as GROUPORDRECV or GROUPORDSEND, are ordered queues, arranged in dollar size order, with largest payment orders at the head of the queue.
- Other queues are FIFO queues.
- BILATORD is an ordered queue that stores only medium and large payment orders between a particular bilateral pair of participants.
- BILAT is a FIFO queue storing medium and small payment orders between a particular bilateral pair of participants.
- All queues with the prefix GROUP contain only payment orders for a particular participant. If this prefix is followed by the suffix SEND, it contains payment orders by a particular participant, if followed by the suffix RECV, it contains payment orders to a particular 54
- GROUPORDRECV is an ordered queue containing payment orders to a particular participant
- GROUPORDSEND is an ordered queue containing payment orders sent by a particular participant.
- SYS denotes a queue that contains payment orders for all participants. Following this convention, the SYSLARGE queue contains all large payment orders and SYSSMALL contains all small payment orders.
- DELAY (SYS) is a FIFO queue that contains all recently queued large payment orders.
- Small and medium payment orders may be eligible for release without batching. This release is performed using the Gale Shapley algorithm, indicated at step S40, to be explained in detail below.
- the DELAY queue length is continuously checked. If the maximum DELAY queue length is set, for example, to be 400 payment orders, the insertion of another large payment order will cause the removal of the oldest payment order from DELAY. After an appropriate delay, the payment orders on the DELAY queue are placed on the SYSLARGE queue .
- bilateral batching may be utilized to combine a target payment in the SYSLARGE queue with a helper payment from the BILATORD queue.
- a pseudo- payment equal to the difference between the target and helper payment, and in the direction of the larger of the two, is formed.
- the formed pseudo-payment is 55
- Multilateral batching may be used to release large payment orders larger than the flow cap, even much larger than the flow cap.
- a target payment order that cannot be bilaterally batched is passed at S30 to the procedure for multilateral batching.
- the multilateral batching procedure attempts to build a tree or trees of payment orders by offsetting the target payment order with helper payment orders, as discussed extensively above.
- helper payment orders can come from queues GROUPORDSEND and GROUPORDRECV.
- Figure 3 illustrates an embodiment in which both bilateral and multilateral batching are used
- the present invention can perform its functions without using bilateral batching at all, since even the largest payment orders can be set off and multilaterally batched by the multilateral batch procedure. Therefore, the present invention is not limited to the embodiment that includes the optional bilateral batching procedure.
- CHIPS had the elevated volumes typical for the day before a holiday.
- CHIPS volume was at a historic high for that day.
- the dollar weighted criterion is a stringent one, because the payment orders receiving the most weight are the orders that are much larger than the pre-funded amounts, and are thus the hardest to handle.
- a particularly telling measure of the throughput of the system is the dollar weighted percentage of payment orders from each participant that were not released by the simulation. If the program model had actually processed the workflow for March 27, 1997, for example, 59
- the simulations show that most batches will have only a single payment (If the simulation code can complete all processing of 400,000 payment orders in half an hour, then the time required per order is less than 0.005 seconds. On the other hand, the available time per order is more than 0.06 seconds, assuming 400,000 payments and that no participant signs on before the required 9 AM deadline.)
- queue size is a complicated function of the detailed composition of the workflow, the rate at which payment orders can be released, and the implementation details of the queue. Nevertheless, the queue operations require CPU time at most proportional to the length of the queue.
- queues are implemented as simple linked lists, as opposed to some more CPU-efficient data structure, because the queue operations do not seem to be a bottleneck. These more efficient data structures are, in fact, much more efficient, so that any future problems in this area could easily be solved.
- the multilateral batching procedure requires the construction of a tree containing participants in a credit position and a tree containing participants in a debit position, where credit and debit are relative to the beginning- of -day positions.
- both the number of institutions per node and the depth of these trees cannot exceed hard coded limits, so that the only variable in the time required to build them is, once again, the time required to perform queue operations.
- the amount of backtracking that occurs following failed attempts at tree building seems to be a rather constant percentage of the total work. Thus, the multilateral batching system is unlikely to be a bottleneck.
- the system can process almost all of the payment orders for almost all participants.
- a payment order from participant A to participant B makes a subsequent payment order from B to participant C more likely.
- the Gale-Shapley algorithm can identify a batch of payments to "nearly disjoint" sender/receiver pairs, in a sense defined below.
- the decision to release a payment would have to take in consideration the effects of all other payments being released at the same time. Otherwise, the release of one payment might result in a violation of funding constraints when a second payment is released, even if the second payment would not have violated funding constraints if it had been released in isolation. This would obviously not be a problem for a batch of disjoint senders and receivers.
- “near disjointness, " in which a participant can both send and receive exactly one payment, is sufficient to avoid the problem. This is because a participant that could send a given payment or receive a given second payment without violating funding constraints could both send and receive these payments without violating funding constraints.
- time stamps are unique, that is, since the time at which a payment order is received is unique to that payment order, a payment order and its time stamp can be used interchangeably, a convention to be used throughout.
- the only additional information needed is a matrix similar to that shown below in Table V, for participants PI, P2 , P3 , and P4 out of a set, II, of participants.
- the given participant is the sender; along the columns, the given participant is the receiver.
- the numbers in the entries are the time stamps of the "releasable payment orders," the first of the hypothetical payment orders from that sender to that receiver provided that the order satisfies the pre- funding or credit constraints.
- the absence of time stamps in the blank boxes indicates that either there was no payment order for that sender-receiver pair or the first payment order for the pair was not releasable .
- selecting the orders that are to be included in a given batch can be viewed as choosing a function that maps the set of senders onto the set of receivers.
- Each such function represents a derangement of the integers 1, 2, . . . , N, which is a permutation of these integers in which no integer is mapped to itself.
- the resulting matches have the following desirable properties :
- Each participant can act as both a sender and receiver of payments, and can, therefore, be both a "bidder” and a "biddee.”
- the participants are analogous to families containing exactly one brother and exactly one sister, who cannot marry each other.
- a set of payments in which a given bank appears at most once as a sender and at most once as receiver will be called near disjoint in what follows.
- a given entity need not be either a bidder or a biddee at any given time.
- senders and receivers are designated as bidders.
- This alternation scheme is part of a feature, discussed later, to increase processor efficiency.
- This feature uses the SENDERSTATE and RECEIVERSTATE bit masks. 68 -
- the bid made by each bidder is determined by finding that payment order with the smallest time stamp, among those releasable payment orders that:
- a) appear at the heads of bilateral queues in which the bidder is the sender or receiver, as appropriate.
- biddee tentatively accepts the bid if it is either the biddee 's first bid or an improvement over its current bid. Otherwise, the bid is rejected, at which point the bidder is free to bid again.
- the bidding proceeds as follows:
- P2 bids to send a payment to PI, and is put in "maybe status" by PI. 69
- P3 bids to send a payment to P4 , and is put in "maybe status" by P4.
- P4 bids to send a payment to P3. Because this payment has an earlier time stamp than that of PI to P3 , that latter payment is dropped.
- PI would bid to send to P2 ; P2 receives no other bids .
- the payments released are therefore 2 ⁇ 1, 3 ⁇ 4, 4 ⁇ 3 , and 1 ⁇ 2. Note that all four participants both send and receive a payment.
- P2 bids to receive a payment from PI, and is put in "maybe * ' status by PI.
- P3 bids to receive a payment from P4 , and is put in "maybe " status by P4.
- P4 bids to receive a payment from P3 , and is put in "maybe " status by P3.
- Each bid is determined by examining at most N time stamps .
- the modified Gale-Shapley algorithm is a generalization of "first-in-first-out” (FIFO) processing, a property that is analogous to the "stability" of the published algorithm.
- FIFO first-in-first-out
- T 0 be a set currently releasable payments.
- a near disjoint batch R of payment orders, a subset of T 0 is generalized FIFO if, for every payment t pq in T 0 not included in the batch R, either the sender, p, has an earlier payment in the batch, or the receiver, q, has an earlier payment in the batch.
- T 0 be the set of all currently releasable payment orders, or, equivalently, the set of all possible t ⁇ 's, and let R C T 0 be the set of time 71
- R is generalized FIFO.
- Theorem The bidder's payment orders get released at least as soon using the modified Gale-Shapley algorithm as they would using any other algorithm that produces generalized FIFO batches.
- T 0 be the set of payments releasable at a particular time. Since each payment is at the head of a bilateral queue, no two payments in T 0 have the same sender and receiver. We assume that T 0 is non-empty. Let (S 0 , R 0 ) be the earliest payment in T 0 where S 0 denotes the sender and R 0 denotes the receiver.
- T k and (S k , R k ) have been defined for some k.
- T k+1 be the set of all of the payments in T k except those payments that have S k as a sender or R k as a receiver. Then if T k+1 is empty, stop. Otherwise, let (S k+1 , R k+1 ) be the earliest payment in T k+] , and continue. 73
- the unique maximal stable assignment is the set consisting of all of the payments (S k , R k ) so chosen.
- Each payment order is input as a record, sorted by release time, consisting of
- time stamp or SSN (system serial number) , marking the time at which the payment order was released for processing.
- the simulation time is advanced to the time of the payment.
- Boolean quantities largeflag and small_payment are set true in procedure INSERT according as the new payment is large or not . IF small_ payment THEN
- ALGOL only supports ordinary arrays, so this is how the queues must ultimately be implemented.
- the implementation details are, however, carefully hidden from the procedures that use these queues by DEFINE 's that perform the standard queue operations.
- the procedures can treat these queues as standard doubly linked lists, with separately maintained heads and tails.
- some of the queues are ordered; because it is open appropriate to insert or delete intermediate nodes the others are FIFO. 77
- RCVR 0 35:12 An index indicating which participant is to receive the payment order. Participants are assigned these indices when the cap file is read.
- BILATERAL 1 36:1 TRUE if this node is a BATCH part of a bilaterally batched pseudo-payment .
- SSN 1 23:24 System Sequence Number (SSN) of the payment order i.e. the order in which it was received by the system.
- AMOUNT 2 entire word The amount of the payment, in cents .
- SYSLINCK 3 47:24 This and SYSBACKLINK allow for all payment orders to be ordered by SSN, according to a doubly linked FIFO queue discipline.
- BILATORD 7 47:24 This and BILATORDBACKLINK LINK allow for payment orders made from a specific sending participant to a specific receiving participant to be ordered by size, according to a doubly linked FIFO queue discipline. Used in bilateral batching.
- BILAT LINK 8 47:24 This and BILATBACKLINK allow for payment orders made on behalf of a specific participant (or "group") to be ordered by SSN (system sequence number) , according to a doubly linked FIFO queue discipline. Used for release of small payments.
- GETSYSLINK sets LINK to the position in the PMT array pointed to by AVAILLINK.
- LINK is a reference to a node in the above data structure;
- NEXTLINK and subsequent link references are formal parameters that will be substituted when the DEFINE is actually used.
- SYSINSERT is a
- ORDINSERT LINK, PMT Find smallest payment size larger NEXTLINK, than that found at LINK and insert BACKLINK, LINK immediately after it, after HEAD, TAIL, adjusting HEAD, TAIL if necessary.
- QNONEMPTY, LINKl, DAMT, and TEMP are LINKl, DAMT, workspaces. Linear search is used TEMP from the HEAD of the list to find the insertion point.
- TEMPNL, TEMPBL TEMPNL are workspaces . Note that the TEMPBL, underlying array entry is not QEMPTY "reclaimed, " as this is done in FORGETSYSLINK
- BILATORDINSERT is another DEFINE that invokes ORDINSERT as follows:
- REMOVE routine is called with two parameters, LINK, which is the location of the node to be removed, and QFS , a bit mask of flags to indicate from which queues LINK is not to be removed.
- QFLAGS(LINK, PMT) is a bit mask of flags in each payment node that indicates the queues to which the node belongs.
- the queues from which LINK is to be removed are thus those queues for which the corresponding bit of QFLAGB, which is the bitwise AND of QFLAGS(LINK, PMT) and NOT QFS, i.e. 83
- This code fragment sets the BOOLEAN variable EOF to either TRUE or FALSE, depending on whether an attempt to read three words from SORTEDPAYMENTSIN results in an end- of -file condition. If not, these three words, each of 6 bytes, are stored in REC.
- PAYMT is a global array of 9 words that is used for temporary storage of the node.
- the individual fields in the input record, each of which is a HEX digit, are read by address equating REC to a HEX array, RECH.
- the first task that is handled by INSERT itself is that of creating a permanent place for the currently processed payment order by calling GETSYSLINK. After setting the RECEIVERSTATE and SENDERSTATE bits, the flow cap, and the small cap, INSERT advances the simulation time to that of the payment.
- BEGINSHRINKQSECONDS simulated seconds after the beginning of the simulation, the maximum size shrinks proportionate to fraction of the simulated time interval that has elapsed since BEGINSHRINKQSECONDS. This is implemented via a WHILE loop with a complicated loop condition (i.e. loop continues only if condition - 85 -
- the body of the loop involves the following steps
- payment orders may broadly be categorized as small, i.e., preferably less than 80% of the lesser initial prefunded balance requirement, and large, i.e, not small.
- the inventors have found that it is advantageous to further divide the category of "small" payment orders less than 80% of the flow cap so as to divide all payment orders into three categories: small, or "very small” (less than or equal to 20% of the initial prefunded balance requirement) , medium (between 20% and 80% of the initial prefunded balance requirement) , and large (greater than 80% of the initial prefunded balance requirement) .
- medium is subcategory of the previously defined "small” category.
- medium that subcategory of small discussed above, and large payments are eligible to be used as helper payments for multilateral batching, and are inserted into the GROUPORDSENDQUEUE and the GROUPORDRECVQUEUE for that purpose.
- Medium and large payments are also inserted into the SYSLARGEQUEUE and the BILATORDQUEUE, where they can also be used for bilateral batching. If the payment is greater than the flow cap (i.e. it is a "large payment"), it is marked as such (the LARGEAMOUNT bit is set) , and inserted into the DELAYQUEUE. Note that the LARGEFLAG is not set because the large payment will not be processed as a target payment until it is released from the DELAYQUEUE.
- the task of MAKEBILATERALBATCH is to try to make a bilateral batch using the current payment, pointed to by LINK, and the "non- small" (that is, medium and large) payments on the BILATORDQUEUE.
- the check is made by following the links from the head of the BILATORDQUEUE to find LINKl, a payment in the opposite direction with the smallest SSN whose size is between half and twice the current payment. If no such payment is found, then the algorithm terminates without changing the MAKEBILATERALBATCH flag from its default value of FALSE. If a LINKl is found, the amounts in LINKl and LINK are netted, and the sender and receiver are reversed if the net payment would be in the other direction. The search is then repeated for a second payment on the queue that is between half and twice the net of LINK and LINKl, then for a third payment on the queue that can be netted with the results, etc.
- control loops back to the label AGAIN for another try; when such a payment is not found, control proceeds to the label XIT.
- HAVEPSEUDO TRUE) . It is at this point, for example, that the sender, receiver, and amount of the pseudo-payment are set. Also, it is only at this point that the LARGEAMOUNT flag in the pseudo-payment can be set, because it is only at this point that the net amount is known. If the net amount is a large amount, then it is put into the BILATORDQUEUE via BILATORDINSERT; if it is not, it is put into the BILATMEDSMALLQUEUE via BILATMEDIUMPUSH. Note that the pseudo-payment cannot simply be INSERTed into the
- This routine attempts to release large payments by including them in a batch of payments that can be released simultaneously, setting the CHECKBATCHES flag to TRUE if it is successful and FALSE otherwise.
- batches that satisfy the constraint that all participants involved in the batch do not exceed their maximum or minimum available balances after the batch is released are acceptable, by including it with an appropriate batch of other payment orders.
- CHECKBATCHES is a pair of loops over two variables, STOG and RTOG that can only assume the values 0 and 1, corresponding to the possible - 90 -
- BATCHRELEASABLE is called to identifier a multilateral batch, and it calls BATCHRELEASE to release the first batch found.
- BATCHRELEASABLE The goal of BATCHRELEASABLE is to populate the BATCHLINK array with nodes that contain a valid multilateral batch that includes the target payment.
- the next several statements compute SMINPMTSZ, SMAXPMTSZ, RMINPMTSZ, RMAXPMTSZ, the sizes of respective minimum and maximum payments that need to be received by the sender and sent by the receiver of the target payment at LINK in order to satisfy the debit and credit limit constraints.
- minima and maxima are needed in the calls to CHECKSENDPAYMT and CHECKRECVPAYMJ, which also require, respectively, the sender and receiver of the current target payment .
- CHECKSENDPAYMT Because the process of constructing a sender batch is essentially identical to that of constructing a receiver batch, only CHECKSENDPAYMT will be described in detail .
- the work of CHECKSENDPAYMT is best described by thinking of the sender batch as a tree with the sender of the target payment at the root, with payments to the sender as the first level branches, payments to the sender (s) on the first level as the second level branches, etc.
- Each recursive call to CHECKSENDPAYMT adds at most MAXBRANCHES leaf nodes above a single sender node until either the position constraints are met at the single sender node or the procedure exits with failure. 92
- CHECKSENDPAYMT begins its work by checking whether it is already done. This possibility must be considered because payments as large as the minimum of the sender's and receiver's initial prefunded balance requirements, above the cutoff for a large payment, could conceivably be released without batching, depending on the sender's and receiver's available balances. This will be the case if the passed parameter SMINPMTSZ, the minimum contribution required from the sender tree, is less than or equal to zero.
- CHECKSENDPAYMT then checks whether DEPTH > MAXDEPTH; if so, it must return false (failure) as the tree cannot be extended further.
- CHECKSENDPAYMT If a non-null sender tree has to be built (i.e. SMINPMTSZ > 0) , CHECKSENDPAYMT first attempts to find a single payment that will work (PHASE 0) , and, failing that, a series of payments that will work (PHASE 1) . To find these payments, CHECKSENDPAYMT loops through the GROUPORDRECVQUEUE , until the payments become smaller than MINACCEPTABLE , to identify those payments to the sender of the target payment that satisfy the following conditions:
- the sender is in a position greater than or equal to its beginning-of -day position.
- the payment amount is less than or equal to MAXACCEPTABLE .
- MAXACCEPTABLE this is the largest payment size that would not violate the receiver's maximum available balance.
- NOCREDITLIMITS TRUE in this phase, and credit limits are lifted, MAXACCEPTABLE is set to $9 billion, a conveniently written amount that suitably large.
- MAXACCEPTABLE is set to SMINPMTSZ, which forces the program to find more than one payment to the target receiver, and so cause branching in the tree.
- the payment order is a candidate for being included as a tree node. There may be more than one such candidate. If so, the one resulting in the smallest deficit below the trial payment sender's minimum available balance (i.e. smallest DNEXTMINPMTSZ) is marked as BESTLINK and the corresponding GRPDONE flag is set. If DBESTMINPMTSZ ⁇ 0, then this node need not have any children (and thus no additional payment orders need be added to the batch) because there is no deficit below the sender's minimum available balance. Otherwise, if the depth of the tree is not yet MAXDEPTH, a recursive call to CHECKSENDPAYMT needs to be made to identify these additional payment orders and include them as children of the current node.
- DNEXTCAP-DNEXTPOS follows from the definition of DNEXTMINPMTSZ as the additional amount that needs to be sent to the sender to ensure that the inequality is true .
- BESTLINK is actually added to the tree via the QUEUE procedure . This procedure copies BESTLINK into the first empty array element in the BATCHLINK array,
- BATCHLINK [BATCHLINKS] as well as storing the sender, receiver, and amount of the corresponding payment in BATCHSGRP [BATCHLINKS] , BATCHRGRP [BATCHLINKS] , and DBATCHAMOUNT [BATCHLINKS] , respectively.
- the QUEUE procedure returns control to CHECKSENDPAYMT, after incrementing BATCHLINKS to reflect the fact that the first empty array elements in the BATCHLINK, BATCHSGRP, BATCHRGRP, and DBATCHAMOUNT arrays are one larger than before .
- Figure 4 illustrates the basic flow of procedure CHECKSENDPAYMT.
- SGRP is the participant number of the sending participant that represents the current end node at any particular point in tree construction.
- SMAXPMTSZ represents the largest size payment order that can, taking into account the available balance, be used as a helper payment to SGRP.
- SMINPMTSZ represents the smallest such payment order.
- TREE is a bitmask used internally to prevent a particular participant from appearing more than once on any particular branch of the tree.
- step 106 at which PHASE is set to be 0, DEPTH is incremented and BLSAVE is assigned the value of BATCHLINKS .
- PHASE can have a value of zero or one. A current value of zero indicates that an attempt is being made to find a single helper payment order.
- step S107 the procedure is attempting to find a list of progressively smaller helper payments that will cause branching on the tree.
- the flow then proceeds to step S107, at which payment size limits MINACCEPTABLE , and MAXACEPTABLE are calculated depending upon phase.
- step S108 a payment is selected from the GROUPORDRECV QUEUE for SGRP whose size is between MINACCEPTABLE and MAXACCEPTABLE that requires the least help at the position of its sender, BESTGRP .
- step S108 the flow proceeds from step S108 to step S116, at which it is determined if PHASE equals one. If PHASE does not equal one, then at step S117, PHASE is set to one and the flow loops back to enter step S107, discussed above. If, on the other hand, PHASE is found at step S116 to equal one, the flow proceeds to step S118, at which BATCHLINKS gets the value of BLSAVE and DEPTH is decremented, and the procedure is exited with a false result.
- step S109 new parameters are computed for a recursive call to CHECKSENDPAYMT, with BESTGRP being passed in as 97
- step S110 the recursive call of CHECKSENDPAYMT is executed. If the recursive call of CHECKSENDPAYMT returns false, the process flow proceeds to step S116, described previously. If the recursive call returns true, the flow proceeds to step Sill. At step Sill, BATCHLINKS is incremented and the BEST payment is queued at array BATCHLINK [BATCHLINKS] . BATCHLINK is an array containing links to the tentative payments in the tree. Next, at step S112, MINACCEPTABLE and MAXACCEPTABLE are updated in the case where PHASE equals one. Then, at step S113, it is determined whether SGRP'S available balance is acceptable. If so, then the procedure
- CHECKSENDPAYMT exits returning true. If not, the flow proceeds to step S115, at which it is determined whether maximum branching has been exceeded. If not, the process loops back to step S108. If so, the process flow proceeds to step S118, described previously, and the procedure exits returning false.
- the "release" of a payment is simply the subtraction of the amount of the payment from the sender's available balance and adding the corresponding amount to the receiver's available balance, a task that is performed in the RELEASE procedure (Note that this procedure is not shown in the pseudo- code above; however, it is called by some of the routines that are listed there. See below for details . ) .
- a payment is passed to the RELEASE procedure in one of several ways, depending on whether it is part of a multilateral batch, a bilateral batch, or an individual 98
- BATCHRELEASE is the routine that supervises the construction of multilateral batches. Since CHECKBATCHES is the routine that supervises the construction of multilateral batches, BATCHRELEASE is called as soon as the multilateral batch is constructed. BATCHRELEASE is coded so that a single multilateral batch is released as a unit.
- Small payments and small bilateral batched payments are both processed via TRYTORELEASE .
- a central feature of this release mode is the attempt, using the routine GALESHAPLEY, to identify a batch of small payments that can be released simultaneously. Once these payments are known, the RELEASELOOP routine is called to actually do the call to RELEASE.
- MASKLOOP is called with the parameters MASK, GRP, and LOOPX.
- MASK is a multi-word bit mask whose bits are set to TRUE if the corresponding participant (or "group") has a potentially releasable payment.
- GRP is an integer between 1 and GROUPSFOUND, the number of groups, and LOOPX is a workspace that is initially set to zero. Each time MASKLOOP is called, GRP is initially set to FIRSTONE (REAL (MASK [LOOPX] ) ) -1.
- GRP to take into account the position of the word currently being searched, and control is returned to the calling procedure.
- BATCHRELEASE which releases multilateral batches, is the most straightforward of the release mechanisms- - it is simply a loop over each of the entries in the BATCHLINK array. These entries contain the payments to be released, as well as a flag indicating whether the payment is actually part of a pseudo-payment .
- the loop invokes RELEASE for each payment, after which the node storing the payment is deleted from the system by calling REMOVE with the argument "0" (Recall that this argument is a mask that prevents the node from being removed from the indicated queues. "0" means "remove this node from all queues”.) .
- BATCHRELEASE When incorporated in CHIPS, BATCHRELEASE will cause the release of all payments in the batch in a single transaction.
- TRYTORELEASE which releases small payments and small pseudo-payments, makes calls to GALESHAPLEY with the correct GROUPBIDDERMASK and GROUPBIDDEEMASK, the flags indicating which participants are bidders and biddee' s. Because GALESHAPLEY' s running time increases at least quadratically with the number of bidders and biddee' s, it is important to make sure that the number of each is as small as possible. In particular, when senders are bidders, only participants with a payment to send (GROUPSENDQNOTNULL flag is TRUE for that participant) should be allowed to bid. Perhaps less obvious is that only those participants whose situation has possibly 100
- GALESHAPLEY is called only if the number of bidders (BIDDERCOUNTl when senders bid and BIDDERC0UNT2 when receivers bid) is greater than zero.
- participants whose status has changed such that they might now be able to send an additional payment i.e. that participant's SENDERSTATE flag is TRUE are bidders.
- TRYTORELEASE calls MASKAND to compute GROUPBIDDERMASK, the set of flags indicating which participants are bidders, as
- COUNTBITS (GROUPBIDDERMASK, BIDDERCOUNTl, TEMP).
- the first call to GALESHAPLEY is made with this set of GROUPBIDDERMASK flags and a set of GROUPBIDDEEMASK flags that are copies of the current GROUPRECVQNOTNULL flags.
- the second call to GALESHAPLEY is made with
- COUNTBITS (GROUPBIDDERMASK, BIDDERCOUNT2 , TEMP)
- GALESHAPLEY is the pair of integer arrays, GROUPSENDSTO and GROUPRECEIVESFROM.
- the 1 th . entry of GROUPSENDSTO is the participant ("group") number of the (unique) receiver of the payment that j has to send; similarly, the j ⁇ entry of
- GROUPRECEIVESFROM is the participant ("group") number of the (unique) sender of the payment that j is to receive. As will be explained below in more detail, this is the mechanism by which RELEASELOOP, which is called immediately after GALESHAPLEY is able to determine which payments are to be sent to RELEASE.
- TRYTORELEASE calls MASKAND to compute GROUPBIDDERMASK, the set of flags indicating which participants are bidders, as
- the GROUPBIDDEEMASK flags that are used are copies of the current GROUPSENDQNOTNULL flags. Once more, RELEASELOOP is then called to actually release the payments .
- TRYTORELEASE returns a flag of the same name that is true if and only if there are no participants that bid to send payments in the first call to GALESHAPLEY and no participants that bid to receive payments in the second call to GALESHAPLEY. Symbolically, this is
- this routine attempts to pair senders and receivers of payments in a kind of generalized FIFO queue discipline.
- the beginning of each round of bidding involves the identification of that payment with the earliest time stamp (SSN) that is associated with the bidder (Note that SSN's which are used in this calculation are unique, thus eliminating the possibility of "ties.”).
- SSN time stamp
- the outer loop uses the MASKLOOP DEFINE on GROUPREJECTMASK, a copy of GROUPBIDDERMASK, to restrict processing to actual bidders.
- the MASKLOOP DEFINE stores either the (positive) participant ID number in GRPA or the value -1.
- the inner loop uses the MASKLOOP DEFINE on GROUPBIDDEEMASK3 , a copy of GROUPBIDDEEMASK, to determine which of the potential biddees is associated with the payment with the earliest time stamp. For each such biddee, the MASKLOOP DEFINE stores either the (positive) participant ID number in GRPB1 or the value -1.
- a bid for a payment is valid only if the payment satisfies all of the funding constraints. Checking these is somewhat more involved than in, say, 103
- CHECKSENDPAYMT because part of the computation can be done in the outer loop and which part is done depends on whether senders or receivers are bidding. Nevertheless, the calculation has been described above, it is noted only that the flag FITTOG is set to TRUE if the constraints are satisfied and FALSE otherwise. It is only if FITTOG is TRUE that the comparison is made between the earliest time stamp found thus far, SAVESSN, and the SSN of the payment involving GRPA and GRPB1. If this latter payment has the earlier time stamp, the contents of GRPB1 are copied to GRPB, and SAVESSN is updated with the earlier time stamp just found.
- TENTATIVEDATEA contains the code required to enable the rejected bidder to bid again.
- the rejected bidder (which must be other than GRPA) is computed to be GROUPRECEIVESFROM (GRPB) , and, since this bidder is a sender, the corresponding GROUPSENDSTO entry is set to 0.
- the GROUPREJECTMASK2 flag for that sender is set to TRUE (See below for the implications of this) .
- REJECTCOUNT the count of rejected bids, is incremented.
- TENTATIVEDATEA sets the array entries GROUPRECEIVESFROM (GRPA) , the receiver of the payment sent by GRPA, and GROUPSENDSTO (GRPB) , the sender of the payment received by GRPB, to GRPB and GRPA, respectively.
- GRPA GROUPRECEIVESFROM
- GRPB GROUPSENDSTO
- GROUPREJECTMASK which prepares for the next pass through the loop. Recall that only the bits corresponding to rejected bidders in GROU REJECTMASK2 are set to TRUE. Thus, each pass through the main loop after the first will involve only those senders whose bids were rejected on the previous pass. 105 -
- FIG. 5 illustrates the overall process flow of procedure GALESHAPLEY, which is used to optimize release of small payments without batching.
- GROUPBIDDERMASK is moved to GROUPREJECTMASK.
- GROUPBIDDERMASK is a mask set by procedure
- GROUPREJECTMASK is a mask containing a bit for all participants that have not been accepted. As the execution of the procedure begins, none of the participants have been accepted. Therefore, all of the bidder participants are placed in GROUPREJECTMASK, to be removed later as they are accepted. Then, at step S202, REJECTCOUNT, a count of how many bidders are rejected in a particular pass through the loop, and GROUPREJECTMASK2 , a mask containing such rejected bidders, each are set to zero.
- step S203 GRPA, a bidding participant currently under consideration, is set to the bit number of the first bit that is set in GROUPREJECTMASK, in other words, a first bidder is selected. Then, this bit is reset so that this bidder will not be selected on subsequent pass through S203.
- step S204 a determination is made whether GRPA is greater than zero, that is, whether a bidder was found (were any bits set in GROUPREJECTMASK) . If no, the process flow proceeds to step S214, where a determination is made whether REJECTCOUNT is greater than zero. If no, the procedure is done and exits. If yes, then at step S216 GROUPREJECTMASK2 is moved to GROUPREJECTMASK and the flow loops to step S202.
- GR0UPBIDDEEMASK2 a mask to indicate candidate biddees in the current pass of the loop, gets
- BILATSENDQNOTNULL [GRPA] AND GROUPBIDDEEMASK is assigned the logical AND of flag BILATSENDQNOTNULL [GRPA] , which is a flag indicating, if true, that there is a payment order in the bilateral queue between GRPA and the biddee, and GROUPBIDDEEMASK, the mask having been previously set at procedure TRYTORELEASE that contains the candidate biddees for this call of GALESHAPLEY.
- the process flow then proceeds to step S206, at which a participant GRPB is selected from GROUPBIDDEEMASK2 that has the earliest payment from GRPA to GRPB. If one cannot be found, GRPB is assigned -1.
- step S207 it is determined if GRPB is greater than zero, which would indicate that a biddee has been found. If it is not greater than zero, the flow loops back to re-enter at step S203.
- step S208 bit GRPB in GROUPBIDDEEMASK2 is reset so that the biddee will not be used again.
- step S209 it is determined whether GRPB already has a bid. If no, the flow proceeds to step S213 at which a tentative match, or "date" is made and the flow then loops back to re-enter at step S203. If GRPB already has a bid, then, at step S210, it is determined if our bid, i.e., the bid currently under consideration, is better.
- step S212 the bit of the rejectee is set in GROUPREJECTMASK2 , and REJECTCOUNT is bumped (incremented) and then the process flow proceeds to step S213, described above. If our bid is not better, then the process flow loops and re-enters at step S206.
- RELEASELOOP gets its name from the loop over the participants flagged as senders or receivers in GROUPBIDDERMASK.
- the loop is implemented using the MASKLOOP DEFINE, which assigns the ID of each such participant to the variable GRPA. Since it is not clear whether such a participant is either a sender or receiver, first
- GROUPSENDSTO (GRPA) and then GROUPRECEIVESFROM(GRPA) are checked to see if they contain positive values. If GROUPSENDSTO (GRPA) has a positive value, then the Gale-Shapley algorithm guarantees that there must be a payment with GROUPSENDSTO (GRPA) as sender and GRPA as receiver; similarly if GROUPRECEIVESFROM (GRPA) has a positive value then there must be a payment with GRPA as sender and GROUPRECEIVESFROM (GRPA) as receiver. Because it must be the payment between these two participants with the earliest time stamp, it must be that payment node to which the corresponding BILATMEDIUMHEAD pointer points.
- maximum available balances increases the percentage of queued payments that are releasable at a given instant of time. It is important to maximize this percentage both to attain efficient system operation and to permit criteria other than mere releasability to govern the order in which payments are released. Importantly, it is desirable to give priority to those payments that have been queued longest; and it is desirable that this priority should have as much effect as possible.
- Efficient operation is also promoted by the use of bit masks, within which each financial institution is assigned one bit position relative to its prefunding amount.
- Two such masks that are used are (a) a mask to indicate which queues are non-empty; and (b) a mask showing which banks have had payments queued recently or have had their positions altered recently so that they may again be in a position to send or receive a payment .
- a method of bilateral batching is used that may combine two payments queued for transmission in opposite directions into one pseudo-payment batch if the two original payments have dollar sizes that differ by no more that 2:1.
- a result of this size restriction is that the resulting pseudo-payment, whose size is the difference of the sizes of the two original payments, has a size no larger than the smaller of the two - 110 -
- the resulting pseudo-payment may then itself be combined with another payment or pseudo- payment, repetitively.
- a new method of multilateral batching is employed.
- a tree of payments is constructed among the banks in a credit position to aid the sending bank in sending a designated large payment without exceeding its debit cap (zero) .
- a second tree of payments is constructed among banks in a debit position to aid the receiving bank in accepting the designated large payment without exceeding its maximum available balance.
- Target payment sender and receiver may be in the wrong positions. That is, the sending participant may 111 -
- a delay queue for large payments is employed. While in the delay queue, large payments may be used as helper payments in multilateral and bilateral batching. The net effect of this is to provide more helper payments; this increases throughput and system efficiency, while increasing the delays experienced somewhat.
- a simple convention permits clearing the payments left queued at end of day.
- the convention is consistent with the principle that no payment will be released until it is finally settled between the sending and receiving participants .
- the procedure is to perform a settlement, at end- of -day, of the queued 112
- CHIPS will calculate a multilateral net balance for all participants based on the payment messages that remain in storage without actually releasing any of those payment messages. This net balance will be applied to each participant's available balance. If the result for a participant is a negative number, then the participant has a final prefunded balance requirement; if the result for a participant is positive, the participant has a final prefunded balance entitlement. A participant that has a final prefunded balance requirement will pay that amount by sending a Fedwire payment order to the prefunded balance account. Once all of the required Fedwires have been received, CHIPS will send Fedwires to the other participants in the amount of their final prefunded balance entitlements.
- B- trees might be used for such queues that require an ordered insert.
- multilateral batches may have any size, theoretically.
- Section B discusses operational aspects.
- Section C is a technical discussion concerned with automated release.
- Section D goes more deeply into the operation of the model code.
- finality is achieved by the end-of-day netting of all payment messages that have been sent through CHIPS during the day and the settlement of resulting balances through a settlement account on the books of the Federal Reserve Bank of New York.
- the possibility of the failure of a debtor participant to pay its settlement obligation is dealt with by requiring all participants to enter into a loss -sharing agreement by which the surviving participants will share the losses resulting from another participant's failure. This obligation is secured by funds pledged by the participants and maintained in the CHIPS Prefunding Account at FRBNY.
- An advantage of the present invention is that it achieves intraday finality for payment messages as they are released while requiring the participants to post prefunded balances that are not significantly greater than the collateral that they post under the current CHIPS system. In effect, this means that the participants will have what are the equivalent of debit caps that are substantially lower than the debit caps that they work with under the current CHIPS system. To achieve this advantageous result, three main principles are brought to bear:
- each participant's available balance equal to twice that participant's prefunded balance.
- Gale-Shapley algorithm is used to find an optimum match of senders with receivers that is in some sense best possible for both senders and receivers.
- Large queued payments are batched bilaterally as follows. When a large payment order from bank A to bank B is queued, a check is made to see whether there is another payment order from bank B to bank A already queued that is between half as large and twice as large as the first payment order. If so, such a second payment order is chosen and is batched with the first one. The result is a "pseudo-payment" whose amount is the difference of the amounts of the original two 117 -
- the direction of the pseudo-payment is the direction of the larger payment order.
- the process is repeated iteratively until no suitable "second" payment order is available.
- the size of the pseudo-payment gets smaller or, at worst, remains the same.
- the overall effect of bilateral batching is to reduce the size and number of the payments to be released.
- the purpose of multilateral batching is to provide a means to release payments (and pseudo-payments) larger than the flow cap; indeed, even payments much larger than the debit and credit caps .
- helper payments to A from third party participants currently in a credit position are used to produce a net position at A that is within the prescribed limits. Helper payments are chosen initially with only the position at A in mind.
- Leaf nodes of the tree are participants that may exceed their debit cap, and which therefore may themselves need helper payments. Any participant in the tree that needs help of this sort is later either supplied with the help or is discarded, cutting back the tree.
- the Model used for simulation of the system of the present invention is a Unisys Algol program. As was described above, its input files consist of a few of offline files generated by CHIPS after the conclusion of a day's work.
- the principal input file is the RELEASEDATA file whose records contain a small amount of extracted data from each payment released over CHIPS that day. This data includes sending bank and receiving bank numbers, release time and money amount.
- Another file used by the program is a file that gives the bilateral limits in effect that day. The reason for this file is that from these limits the program is able to compute a conservative estimate of the amount of collateral on deposit by each bank that day. These collateral amounts are used as debit cap amounts by the model. A primary goal of the modelling exercise was to see how much of a day's work could be released using these greatly reduced debit caps.
- the program sorts the RELEASEDATA file into release time order, then reads this sorted file to simulate the receipt of payments from the participant banks during a working day .
- the output of the program is a lengthy summary report giving details concerning which payments were released by the model and the delays experienced, and which payments were not released.
- the layout of the queued payments given by defines show what is stored relative to each queued payment.
- the first three words contain fields from the RELEASEDATA record as well as a sequence number SSN that indicates the order in which the payment was read, and two special purpose fields QFLAGS and LARGEAMOUNT, discussed later.
- SYSLINK is used to link payments from all banks into a single list. This makes it possible to easily find the oldest unreleased payments .
- the GROUPORD links are used by lists that are distinct for each bank (also called "group" within CHIPS) . These lists are ordered by payment dollar size, and contain only the larger payments . They are used in multilateral batching to find payments of particular sizes from or to particular banks, to be used as helper payments in the tree building.
- Pseudohead and pseudotail are used in bilateral batching to link payments to "pseudo-payments". These pseudo-payments are treated much like real payments by the multilateral batching code.
- the BILATORDLINK is used in selecting the payments to be placed into bilateral batches.
- the BILATLINK is used in linking small payments with a given sender and receiver in FIFO order for release in this order.
- TRAN file Either a TRAN file or a RELEASEDATA file for a given date may be used. A TRAN file will be used if available for the date specified in the run parameter. Otherwise the much smaller RELEASDATA file will be looked for. Other files needed are the current limit file, mentioned before, and the MINIG file. This last small file merely gives the correspondence between the CHIPS four-digit ABA numbers assigned to participants and the sequential Relative Group Number, also called GRP or RGN.
- main loop the main loop is driven by reading the sorted file of releases.
- a sort is performed at initialization that produces a file of releases in order of release time. If the TRAN file is used, this file also contains the actual SSN numbers to provide a link to the TRAN file records. Otherwise, a pseudo- SSN is generated merely for processing and reporting purposes.
- the next action is to format and queue the payment.
- TRYTORELEASE attempts to "release" queued payments of smaller size.
- the procedure CHECKBATCHES checks to see whether multilateral batching is possible at this time.
- GETSYSLINK and FORGETSYSLINK are defines to create and destroy the link values that are used as actual indexes into the PAYMENTQUEUE array. They thus represent the memory management code for the PAYMENTQUEUE.
- the various MASK defines are used for looping over subsets of the set of participants in an efficient manner. Thus, their main contribution is to reduce processor time below what it would be with more straightforward code.
- the TREEGRP defines are to keep track of which groups appear below which in the trees of payments constructed during multilateral batching.
- a GRP can occur on a given tree branch at most once. This restriction is enforced by use of the TREEGRP defines .
- phase zero only single branches leaving a node are tried. This is to conserve helper payments, and to use the largest helper payments possible, on the theory that they are the most difficult to release if they become target payments later.
- phase 0 fails, then phase 1 occurs.
- phase 1 occurs.
- no successive payment may be more than half as large as the one preceding (see PHASE1FACT0R) . This is to spread the impact of the group over a wider range of payment sizes.
- the judgment as to which payment to be released is the oldest is, or may be, different from the point of view of the receiver than from the sender. For this reason, the Gale-Shapley algorithm is used to produce a selection of payments to be released that is optimal for both senders and receivers.
- the GALESHAPLEY procedure marks the payment for release, it acts to enable the release of further payments. Since the release of this payment will increase the position of the receiving bank, the procedure sets the bit of SENDERSTATE corresponding to the receiving bank. Likewise it sets the bit of RECEIVERSTATE corresponding to the sending bank.
- the outer block code calls GALESHAPLEY repeatedly until no more releases are possible without the queuing of additional payment orders. In this way, one new payment may result in many bits in these "state" masks being set, and a flurry of payments may be released before the outer block code asks for a new payment to queue. Just before attempting to queue a new payment, both the SENDERSTATE and - 127 -
- RECEIVERSTATE masks are reset to zero, and the flurry (if any) has ended.
- the invention has been described above in relation to its preferred embodiments.
- the values of the minimum balance, opening balance, and maximum balance could be altered upwards or downwards for each participant without affecting the operation of the release algorithms significantly.
- the operation of the algorithm would be identical if the opening balance for each participant were zero, the minimum balance were minus the prefunded amount and the maximum balance were equal to the prefunded amount.
- the available balance would, at each instant, be equal to the balance plus the prefunded amount.
- the present invention is not limited to the conventions adopted above regarding the balances, their maxima and their minima, since these are immaterial to within an additive constant, so far as the operation of the release algorithms is concerned.
- the present invention is in no way limited by the preferred embodiment.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002330341A CA2330341A1 (en) | 1998-05-05 | 1999-05-05 | System and method for intraday netting payment finality |
EP99921635A EP1093625A4 (en) | 1998-05-05 | 1999-05-05 | System and method for intraday netting payment finality |
JP2000547569A JP3847560B2 (en) | 1998-05-05 | 1999-05-05 | System and method for one day netting payment settlement |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8422398P | 1998-05-05 | 1998-05-05 | |
US60/084,223 | 1998-05-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1999057665A1 true WO1999057665A1 (en) | 1999-11-11 |
Family
ID=22183593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1999/009698 WO1999057665A1 (en) | 1998-05-05 | 1999-05-05 | System and method for intraday netting payment finality |
Country Status (5)
Country | Link |
---|---|
US (1) | US6076074A (en) |
EP (1) | EP1093625A4 (en) |
JP (1) | JP3847560B2 (en) |
CA (1) | CA2330341A1 (en) |
WO (1) | WO1999057665A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1483713A2 (en) * | 2002-02-14 | 2004-12-08 | Zachary Pessin | Apparatus and method of a distributed capital system |
US10540337B2 (en) | 2014-08-26 | 2020-01-21 | Fujitsu Limited | Computer-readable recording medium, data placement method, and data placement device |
Families Citing this family (105)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826545B2 (en) * | 1998-06-18 | 2004-11-30 | Nec Corporation | Method for settling accounts among a plurality of participants |
US7734541B2 (en) * | 1998-12-08 | 2010-06-08 | Yodlee.Com, Inc. | Interactive funds transfer interface |
US7117172B1 (en) | 1999-03-11 | 2006-10-03 | Corecard Software, Inc. | Methods and systems for managing financial accounts |
US8560423B1 (en) | 1999-05-10 | 2013-10-15 | Edeposit Corporation | Web-based account management |
US7092904B1 (en) * | 1999-05-10 | 2006-08-15 | Edeposit Corporation | Web-based account management for hold and release of funds |
US7110978B1 (en) * | 1999-05-10 | 2006-09-19 | First Data Corporation | Internet-based money order system |
US20080243721A1 (en) * | 1999-08-24 | 2008-10-02 | Raymond Anthony Joao | Apparatus and method for providing financial information and/or investment information |
US6629081B1 (en) * | 1999-12-22 | 2003-09-30 | Accenture Llp | Account settlement and financing in an e-commerce environment |
US7069234B1 (en) | 1999-12-22 | 2006-06-27 | Accenture Llp | Initiating an agreement in an e-commerce environment |
US7283977B1 (en) * | 2000-02-25 | 2007-10-16 | Kathleen Tyson-Quah | System for reducing risk payment-based transactions wherein a risk filter routine returns instructions authorizing payment to a payment queue for later re-evaluation |
US20010037284A1 (en) * | 2000-03-27 | 2001-11-01 | Finkelstein Ephraim Brian | Negotiated right exchange system and method |
CN1425164A (en) | 2000-04-26 | 2003-06-18 | 甲骨文公司 | Many-to-many correspondance: methods and systems for replacing interbank funds transfers |
US20030208440A1 (en) * | 2000-05-01 | 2003-11-06 | Robert Harada | International payment system and method |
US20020013767A1 (en) * | 2000-06-26 | 2002-01-31 | Norman Katz | Electronic funds transfer system for financial transactions |
US7797207B1 (en) * | 2000-07-24 | 2010-09-14 | Cashedge, Inc. | Method and apparatus for analyzing financial data |
US7536340B2 (en) * | 2000-07-24 | 2009-05-19 | Cashedge, Inc. | Compliance monitoring method and apparatus |
US7383223B1 (en) * | 2000-09-20 | 2008-06-03 | Cashedge, Inc. | Method and apparatus for managing multiple accounts |
US20030236728A1 (en) * | 2000-09-20 | 2003-12-25 | Amir Sunderji | Method and apparatus for managing a financial transaction system |
US7953660B2 (en) * | 2000-12-28 | 2011-05-31 | Checkfree Services Corporation | Method and system for payment processing |
US20020087469A1 (en) * | 2000-12-28 | 2002-07-04 | Ravi Ganesan | Technique of registration for and direction of electronic payments in real-time |
US20020087461A1 (en) * | 2000-12-28 | 2002-07-04 | Ravi Ganesan | Technique for electronic funds escrow |
US20020087468A1 (en) * | 2000-12-28 | 2002-07-04 | Ravi Ganesan | Electronic payment risk processing |
US20020111886A1 (en) * | 2001-02-12 | 2002-08-15 | Chenevich William L. | Payment management |
GB2395319A (en) * | 2001-04-19 | 2004-05-19 | Espeed Inc | Electronic asset assignment and tracking |
US20030018554A1 (en) * | 2001-06-07 | 2003-01-23 | Efunds Corporation | Network and process for settling financial transactions |
US7822679B1 (en) | 2001-10-29 | 2010-10-26 | Visa U.S.A. Inc. | Method and system for conducting a commercial transaction between a buyer and a seller |
US20040236653A1 (en) * | 2002-01-03 | 2004-11-25 | Sokolic Jeremy N. | System and method for associating identifiers with data |
US20050187867A1 (en) * | 2002-01-03 | 2005-08-25 | Sokolic Jeremy N. | System and method for associating identifiers with transactions |
EP1326192A1 (en) * | 2002-01-07 | 2003-07-09 | S.W.I.F.T. sc | E-commerce payment system |
US7778914B1 (en) * | 2002-01-14 | 2010-08-17 | Goldman Sachs & Co. | Method and apparatus for agreement netting |
WO2003091849A2 (en) | 2002-04-23 | 2003-11-06 | The Clearing House Service Company L.L.C. | Payment identification code system |
US7685051B2 (en) * | 2002-05-31 | 2010-03-23 | Intercontinentalexchange, Inc. | System for settling over the counter trades |
US7110980B2 (en) * | 2002-06-21 | 2006-09-19 | American Express Bank Ltd. | System and method for facilitating electronic transfer of funds |
US20040034596A1 (en) * | 2002-08-19 | 2004-02-19 | Jeremy Light | Electronic payment management |
US7792716B2 (en) * | 2002-10-31 | 2010-09-07 | Federal Reserve Bank Of Atlanta | Searching for and identifying automated clearing house transactions by transaction type |
US7330835B2 (en) * | 2002-10-31 | 2008-02-12 | Federal Reserve Bank Of Minneapolis | Method and system for tracking and reporting automated clearing house transaction status |
US8032452B2 (en) * | 2002-11-06 | 2011-10-04 | The Western Union Company | Multiple-entity transaction systems and methods |
US7558757B2 (en) * | 2003-02-12 | 2009-07-07 | Mann Conroy Eisenberg & Associates | Computer system for managing fluctuating cash flows |
US8036982B2 (en) * | 2003-02-12 | 2011-10-11 | Mann Conroy Eisenberg & Associates, Llc | Computer system for controlling a system of managing fluctuating cash flows |
US7797223B1 (en) | 2003-03-28 | 2010-09-14 | Citigroup Global Markets, Inc. | Method and system for efficiently matching long and short positions in securities trading and transacting a series of overnight trades for balance sheet netting |
US8156040B2 (en) * | 2003-07-03 | 2012-04-10 | Federal Reserve Bank Of Minneapolis | Method and system for conducting international electronic financial transactions |
US8725609B2 (en) * | 2003-09-08 | 2014-05-13 | The Clearing House Payments Company L.L.C. | System and method for intraday netting payment finality with supplemental funding |
US8606602B2 (en) * | 2003-09-12 | 2013-12-10 | Swiss Reinsurance Company Ltd. | Systems and methods for automated transactions processing |
US8417636B2 (en) * | 2003-09-30 | 2013-04-09 | Federal Reserve Bank Of Atlanta | Approving ACH operator processing of ACH payments based on an originating depository financial institution's approved originator list |
US8543477B2 (en) * | 2003-09-30 | 2013-09-24 | Federal Reserve Bank Of Atlanta | Value tracking and reporting of automated clearing house transactions |
US8150770B1 (en) | 2003-12-29 | 2012-04-03 | The Pnc Financial Services Group, Inc. | System and method for reordering checks |
US8725607B2 (en) | 2004-01-30 | 2014-05-13 | The Clearing House Payments Company LLC | Electronic payment clearing and check image exchange systems and methods |
US7788160B2 (en) * | 2004-04-16 | 2010-08-31 | Sap Ag | Method and system for configurable options in enhanced network-based auctions |
US20060004648A1 (en) * | 2004-04-16 | 2006-01-05 | Narinder Singh | Method and system for using templates for enhanced network-based auctions |
US7877313B2 (en) | 2004-04-16 | 2011-01-25 | Sap Ag | Method and system for a failure recovery framework for interfacing with network-based auctions |
US7860749B2 (en) | 2004-04-16 | 2010-12-28 | Sap Ag | Method, medium and system for customizable homepages for network-based auctions |
US7783520B2 (en) | 2004-04-16 | 2010-08-24 | Sap Ag | Methods of accessing information for listing a product on a network based auction service |
US7627500B2 (en) | 2004-04-16 | 2009-12-01 | Sap Ag | Method and system for verifying quantities for enhanced network-based auctions |
US7721304B2 (en) * | 2004-06-08 | 2010-05-18 | Cisco Technology, Inc. | Method and apparatus providing programmable network intelligence |
US8571977B2 (en) | 2004-06-17 | 2013-10-29 | Visa International Service Association | Method and system for providing seller bank receivable discounting aggregation services |
US7881996B1 (en) | 2004-08-03 | 2011-02-01 | Federal Reserve Bank Of Atlanta | Method and system for screening financial transactions |
US20060080217A1 (en) * | 2004-08-31 | 2006-04-13 | Blackall Grenville W | Clearing house for buying and selling short term liquidity |
US7580886B1 (en) * | 2004-09-15 | 2009-08-25 | Federal Reserve Bank Of Atlanta | Managing foreign payments in an international ACH |
US7650309B2 (en) * | 2004-10-28 | 2010-01-19 | The Depository Trust and Clearing Corporation | Methods and systems for netting of payments and collateral |
US7711639B2 (en) | 2005-01-12 | 2010-05-04 | Visa International | Pre-funding system and method |
JP4879528B2 (en) * | 2005-08-26 | 2012-02-22 | 株式会社日立製作所 | Multi-lateral netting settlement method, system and program |
US20070106595A1 (en) * | 2005-10-31 | 2007-05-10 | Sap Ag | Monitoring tool for integrated product ordering/fulfillment center and auction system |
US8095428B2 (en) | 2005-10-31 | 2012-01-10 | Sap Ag | Method, system, and medium for winning bid evaluation in an auction |
US7895115B2 (en) * | 2005-10-31 | 2011-02-22 | Sap Ag | Method and system for implementing multiple auctions for a product on a seller's E-commerce site |
US20070150406A1 (en) * | 2005-10-31 | 2007-06-28 | Sap Ag | Bidder monitoring tool for integrated auction and product ordering system |
US20070143205A1 (en) * | 2005-10-31 | 2007-06-21 | Sap Ag | Method and system for implementing configurable order options for integrated auction services on a seller's e-commerce site |
US8095449B2 (en) * | 2005-11-03 | 2012-01-10 | Sap Ag | Method and system for generating an auction using a product catalog in an integrated internal auction system |
US7835977B2 (en) * | 2005-11-03 | 2010-11-16 | Sap Ag | Method and system for generating an auction using a template in an integrated internal auction system |
AU2007200849A1 (en) * | 2006-01-25 | 2007-08-09 | Bgc Partners, Inc. | Systems and methods for facilitating completion of repurchase agreements |
US7624070B2 (en) * | 2006-03-08 | 2009-11-24 | Martin Frederick Lebouitz | Open payments target marketing system |
US20070250437A1 (en) | 2006-04-06 | 2007-10-25 | Omx Technology Ab | Securities settlement system |
US7848997B2 (en) * | 2006-04-06 | 2010-12-07 | Omx Technology Ab | Securities settlement system |
US20100312679A1 (en) * | 2006-08-29 | 2010-12-09 | Martin Frederick Lebouitz | System and Method for Analyzing Bank Payment Patterns |
US20080071664A1 (en) * | 2006-09-18 | 2008-03-20 | Reuters America, Inc. | Limiting Counter-Party Risk in Multiple Party Transactions |
US20080162322A1 (en) * | 2006-11-07 | 2008-07-03 | Federal Reserve Bank Of Richmond | Automated return item re-clear |
US20080301022A1 (en) * | 2007-04-30 | 2008-12-04 | Cashedge, Inc. | Real-Time Core Integration Method and System |
WO2008137748A1 (en) * | 2007-05-02 | 2008-11-13 | Cashedge, Inc. | Multi-channel and cross-channel account opening |
US8694424B2 (en) | 2007-12-18 | 2014-04-08 | Federal Reserve Bank Of Atlanta | System and method for managing foreign payments using separate messaging and settlement mechanisms |
US20090281946A1 (en) | 2008-05-12 | 2009-11-12 | Davis Peter A | ACH Payment Processing |
US20100049642A1 (en) * | 2008-08-19 | 2010-02-25 | Bank Of America | Online billpay attachments |
US8301565B2 (en) * | 2010-04-13 | 2012-10-30 | Bank Of America Corporation | System and method for correspondent bank customer ATM transaction processing |
US8458091B2 (en) * | 2010-07-26 | 2013-06-04 | Accenture Global Services Limited | System and method for prioritizing processing of payment instructions |
US8700510B2 (en) | 2011-02-11 | 2014-04-15 | Federal Reserve Bank Of Atlanta | Redirecting or returning international credit transfers |
JP5794568B2 (en) * | 2011-09-01 | 2015-10-14 | 国立大学法人東京工業大学 | Data editing apparatus and data editing method |
US20140279384A1 (en) * | 2013-03-15 | 2014-09-18 | Sap Ag | Monitoring financial risks using a quantity ledger |
US20150006350A1 (en) * | 2013-06-28 | 2015-01-01 | D.E. Shaw & Co., L.P. | Electronic Trading Auction with Randomized Acceptance Phase and Order Execution |
US20150006349A1 (en) * | 2013-06-28 | 2015-01-01 | D. E. Shaw & Co., L.P. | Electronic Trading Auction With Orders Interpreted Using Future Information |
US20150066727A1 (en) * | 2013-08-29 | 2015-03-05 | D. E. Shaw & Co., L.P. | Electronic Trading Exchange with User-Definable Order Execution Delay |
US20150081491A1 (en) * | 2013-09-16 | 2015-03-19 | International Business Machines Corporation | Intraday cash flow optimization |
US10515368B1 (en) | 2013-10-01 | 2019-12-24 | Wells Fargo Bank, N.A. | Interbank account verification and funds transfer system and method |
US11295308B1 (en) | 2014-10-29 | 2022-04-05 | The Clearing House Payments Company, L.L.C. | Secure payment processing |
US11068866B1 (en) | 2015-02-17 | 2021-07-20 | Wells Fargo Bank, N.A. | Real-time interbank transactions systems and methods |
US11694168B2 (en) | 2015-07-01 | 2023-07-04 | The Clearing House Payments Company L.L.C. | Real-time payment system, method, apparatus, and computer program |
US11042882B2 (en) | 2015-07-01 | 2021-06-22 | The Clearing House Payments Company, L.L.C. | Real-time payment system, method, apparatus, and computer program |
US10460296B2 (en) | 2016-02-08 | 2019-10-29 | Bank Of America Corporation | System for processing data using parameters associated with the data for auto-processing |
US10437778B2 (en) | 2016-02-08 | 2019-10-08 | Bank Of America Corporation | Archive validation system with data purge triggering |
US10437880B2 (en) | 2016-02-08 | 2019-10-08 | Bank Of America Corporation | Archive validation system with data purge triggering |
US9823958B2 (en) | 2016-02-08 | 2017-11-21 | Bank Of America Corporation | System for processing data using different processing channels based on source error probability |
US9952942B2 (en) | 2016-02-12 | 2018-04-24 | Bank Of America Corporation | System for distributed data processing with auto-recovery |
US10067869B2 (en) | 2016-02-12 | 2018-09-04 | Bank Of America Corporation | System for distributed data processing with automatic caching at various system levels |
CN110168598A (en) | 2017-01-11 | 2019-08-23 | 株式会社野村综合研究所 | Financial transaction management system, financial transaction management method and computer program |
US11436577B2 (en) | 2018-05-03 | 2022-09-06 | The Clearing House Payments Company L.L.C. | Bill pay service with federated directory model support |
US11025558B2 (en) | 2019-01-30 | 2021-06-01 | Bank Of America Corporation | Real-time resource processing based on resource channel factors |
US11314848B2 (en) | 2019-08-30 | 2022-04-26 | Bank Of America Corporation | System for dynamically appending and transforming static activity data transmitted to a user device application |
US11587079B2 (en) | 2021-03-24 | 2023-02-21 | Bank Of America Corporation | Digital resource distribution network matrix for secure interactions |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5262942A (en) * | 1990-06-05 | 1993-11-16 | Bankers Trust Company | Financial transaction network |
US5465206A (en) * | 1993-11-01 | 1995-11-07 | Visa International | Electronic bill pay system |
US5649117A (en) * | 1994-06-03 | 1997-07-15 | Midwest Payment Systems | System and method for paying bills and other obligations including selective payor and payee controls |
US5677955A (en) * | 1995-04-07 | 1997-10-14 | Financial Services Technology Consortium | Electronic funds transfer instruments |
US6090300A (en) | 1998-05-26 | 2000-07-18 | Xerox Corporation | Ion-implantation assisted wet chemical etching of III-V nitrides and alloys |
-
1999
- 1999-05-05 US US09/305,311 patent/US6076074A/en not_active Expired - Lifetime
- 1999-05-05 WO PCT/US1999/009698 patent/WO1999057665A1/en not_active Application Discontinuation
- 1999-05-05 CA CA002330341A patent/CA2330341A1/en not_active Abandoned
- 1999-05-05 JP JP2000547569A patent/JP3847560B2/en not_active Expired - Lifetime
- 1999-05-05 EP EP99921635A patent/EP1093625A4/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5262942A (en) * | 1990-06-05 | 1993-11-16 | Bankers Trust Company | Financial transaction network |
US5465206A (en) * | 1993-11-01 | 1995-11-07 | Visa International | Electronic bill pay system |
US5465206B1 (en) * | 1993-11-01 | 1998-04-21 | Visa Int Service Ass | Electronic bill pay system |
US5649117A (en) * | 1994-06-03 | 1997-07-15 | Midwest Payment Systems | System and method for paying bills and other obligations including selective payor and payee controls |
US5677955A (en) * | 1995-04-07 | 1997-10-14 | Financial Services Technology Consortium | Electronic funds transfer instruments |
US6090300A (en) | 1998-05-26 | 2000-07-18 | Xerox Corporation | Ion-implantation assisted wet chemical etching of III-V nitrides and alloys |
Non-Patent Citations (2)
Title |
---|
LEE P. C. K., GHOSH S.: "NOVAHID: A NOVEL ARCHITECTURE FOR ASYNCHRONOUS, HIERARCHICAL, INTERNATIONAL, DISTRIBUTED, REAL-TIME PAYMENTS PROCESSING.", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS., IEEE SERVICE CENTER, PISCATAWAY., US, vol. 12., no. 06., 1 August 1994 (1994-08-01), US, pages 1072 - 1087., XP000491332, ISSN: 0733-8716, DOI: 10.1109/49.310964 * |
See also references of EP1093625A4 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1483713A2 (en) * | 2002-02-14 | 2004-12-08 | Zachary Pessin | Apparatus and method of a distributed capital system |
EP1483713A4 (en) * | 2002-02-14 | 2005-04-06 | Zachary Pessin | Apparatus and method of a distributed capital system |
JP2005518011A (en) * | 2002-02-14 | 2005-06-16 | ペッシン,ザッカリー | Apparatus and method for decentralized capital system |
JP2009266235A (en) * | 2002-02-14 | 2009-11-12 | Zachary Pessin | Apparatus and method of distributed capital system |
US8224744B2 (en) | 2002-02-14 | 2012-07-17 | Zachary Pessin | Apparatus and method of a distributed capital system |
JP2013117982A (en) * | 2002-02-14 | 2013-06-13 | Zachary Pessin | Apparatus and method of distributed capital system |
JP2014059901A (en) * | 2002-02-14 | 2014-04-03 | Zachary Pessin | Method for distribution type capital system, computer system, and computer readable medium |
US9020851B2 (en) | 2002-02-14 | 2015-04-28 | Zachary Pessin | Apparatus and method of a distributed capital system |
US9830656B2 (en) | 2002-02-14 | 2017-11-28 | Zachary Pessin | Apparatus and method of a distributed capital system |
US10643279B2 (en) | 2002-02-14 | 2020-05-05 | Zachary Pessin | Apparatus and method of a distributed capital system |
US10540337B2 (en) | 2014-08-26 | 2020-01-21 | Fujitsu Limited | Computer-readable recording medium, data placement method, and data placement device |
Also Published As
Publication number | Publication date |
---|---|
EP1093625A1 (en) | 2001-04-25 |
CA2330341A1 (en) | 1999-11-11 |
JP3847560B2 (en) | 2006-11-22 |
JP2002513975A (en) | 2002-05-14 |
US6076074A (en) | 2000-06-13 |
EP1093625A4 (en) | 2004-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6076074A (en) | System and method for intraday netting payment finality | |
US20190220833A1 (en) | System and method for intraday netting payment finality with supplemental funding | |
US5802499A (en) | Method and system for providing credit support to parties associated with derivative and other financial transactions | |
US7933821B1 (en) | Systems and methods for administering return sweep accounts | |
US8290860B1 (en) | Systems and methods for providing enhanced account management services for multiple banks | |
US8606676B1 (en) | System and method for allocating excess funds in control account | |
US7519551B2 (en) | Systems and methods for administering return sweep accounts | |
US7809640B1 (en) | Money fund banking system | |
US8589289B1 (en) | System, method and program product for administering fund movements | |
JP2004213124A (en) | Fund management method and system | |
WO2013017695A1 (en) | Method, system and process for centralized management and control of a budget and electronic mass distribution of funds | |
US20100114749A1 (en) | Financial Inclusion Card, System, and Method for Implementing | |
CA2408215A1 (en) | Method and system for operating an electronic exchange | |
KR100725465B1 (en) | Foreign currency deposit system capable of multiple foreign currency periodic deposits | |
WO2002095644A1 (en) | Financial service system and method | |
MXPA00010891A (en) | System and method for intraday netting payment finality | |
JP2001195528A (en) | Account settlement system and account settlement processing method | |
CN118350929A (en) | Trade financing off-list service credit method based on second-level legal person | |
EP0838062A1 (en) | Method and system for providing credit support to parties associated with derivative and other financial transactions | |
JP2004005732A (en) | Settlement system, and settlement processing method | |
JP2001273396A (en) | System and method for settlement | |
NZ522693A (en) | Method and system for operating an electronic exchange |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): CA JP MX |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 1999921635 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2330341 Country of ref document: CA |
|
ENP | Entry into the national phase |
Ref country code: JP Ref document number: 2000 547569 Kind code of ref document: A Format of ref document f/p: F |
|
WWE | Wipo information: entry into national phase |
Ref document number: PA/a/2000/010891 Country of ref document: MX |
|
WWP | Wipo information: published in national office |
Ref document number: 1999921635 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1999921635 Country of ref document: EP |