U.S. patent application number 14/185397 was filed with the patent office on 2014-07-03 for system and method for optimizing fixed rate whole loan trading.
The applicant listed for this patent is Rajan Godse, Harsha Nagesh. Invention is credited to Rajan Godse, Harsha Nagesh.
Application Number | 20140188692 14/185397 |
Document ID | / |
Family ID | 41726765 |
Filed Date | 2014-07-03 |
United States Patent
Application |
20140188692 |
Kind Code |
A1 |
Nagesh; Harsha ; et
al. |
July 3, 2014 |
System And Method For Optimizing Fixed Rate Whole Loan Trading
Abstract
Optimizing fixed rate whole loan trading. Specifically, the
invention provides computer-based systems and methods for optimally
packaging a population of whole loans into bonds in either a
senior/subordinate bond structure or into pools of pass through
securities guaranteed by a government agency. Models for each type
of bond structure are processed on the population of loans until
either an optimal bond package is found or a user determines that a
solution of sufficient high quality is found. Additionally, the
models can account for bids for whole loans by allocating whole
loans that meet requirements of the bid but are least favorable to
be securitized.
Inventors: |
Nagesh; Harsha; (Highland
Park, NJ) ; Godse; Rajan; (Plainsboro, NJ) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Nagesh; Harsha
Godse; Rajan |
Highland Park
Plainsboro |
NJ
NJ |
US
US |
|
|
Family ID: |
41726765 |
Appl. No.: |
14/185397 |
Filed: |
February 20, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12533315 |
Jul 31, 2009 |
8694404 |
|
|
14185397 |
|
|
|
|
61191011 |
Sep 3, 2008 |
|
|
|
Current U.S.
Class: |
705/37 |
Current CPC
Class: |
G06Q 40/06 20130101;
G06Q 10/04 20130101; G06Q 40/02 20130101; G06Q 40/04 20130101 |
Class at
Publication: |
705/37 |
International
Class: |
G06Q 40/04 20120101
G06Q040/04 |
Claims
1. A computer-implemented method comprising: creating, by a
computer, a model comprising an objective function representing a
total market value of the senior/subordinate bond structure for the
plurality of loans; and maximizing, by the computer, the objective
function to maximize the total market value of the
senior/subordinate bond structure.
2. The computer-implemented method of claim 1, wherein the step of
maximizing the objective function comprises: determining a market
price of each loan; determining a first weighted average execution
coupon for the plurality of loans corresponding to the market price
of each loan; determining the total market value of the
senior/subordinate structure at the first weighted average
execution coupon; iterating the weighted average execution coupon
and determining a total market value for the senior/subordinate
structure at each iteration; and determining the weighted average
execution coupon having the highest total market values for the
senior/subordinate structure.
3. The computer-implemented method of claim 1, further comprising
developing and maximizing an objective function to optimally split
at least one of the loans into two pseudo loans to prevent a
creation of an interest only bond or a principal only bond, the two
pseudo loans comprising different coupon values.
4. A computer-implemented method for optimally pooling a population
of loans into pass through bond pools, the method comprising:
selecting the population of loans; determining, by the computer, an
optimal execution of each loan from the population of loans by a
buy up or a buy down of a guarantee fee; determining one or more
pools for which each loan is eligible; building a model based on at
least one constraint for at least one determined pool; and
allocating loans to the one or more pass through bond pools.
5. The computer-implemented method of claim 4 further comprises
determining, by the computer, at least one module of one or more
modules that is configured to pool the population of loans into
pass through bond pools based on a received input, wherein the at
least one module comprises a pass-through module.
6. The computer-implemented method of claim 4, wherein the model
comprises an objective function comprising a linear combination of
a market value of each of the population of loans.
7. The computer-implemented method of claim 6, wherein allocating
the loans comprises executing the model to maximize the objective
function.
8. The computer-implemented method of claim 4, further comprising
transforming the at least one constraint of each pass through bond
pool into a conditional constraint.
9. The computer-implemented method of claim 4, further comprising
converting at least a portion of the at least one constraint of
each pass through bond pool into a conditional constraint prior to
processing the model to ensure that the model is solvable.
10. The computer-implemented method of claim 4, further comprising
transforming each of the at least one constraints into a
conditional constraint to allow constraints to be applicable to
only pass through bond pools that are allocated.
11. The computer-implemented method of claim 4, further comprising
allocating at least one of the population of loans to an
unallocated pool.
12. The computer-implemented method of claim 4, further comprising
allocating loans into an unallocated pool if each of the pass
through bond pools cannot be allocated with the population of
loans, wherein loans in the unallocated pool are given zero market
value and wherein processing the model further comprises minimizing
the number of loans allocated to the unallocated pool.
13. The computer-implemented method of claim 4, wherein the model
accounts for the constraint of each pass through bond pool and a
payup associated with each pass through bond pool.
14. A system comprising: a memory comprising a set of instructions
for allocating a portion of a plurality of loans to a loan package;
and a computer coupled to the memory and configured to execute the
set of instructions to: determine which of the plurality of loans
meet one or more constraints of the loan package; determine a
market price of each of the plurality of loans based on a
securitization model; model an objective function to determine
which loans in the plurality of loans that meets the one or more
constraints are least profitable for securitization in the
securitization model; and allocate the loans that meets the one or
more constraints and are least profitable for securitization into
the loan package.
15. The system of claim 14, wherein the securitization model
comprises a senior/subordinate model.
16. The system of claim 14, wherein the objective function is
modeled to minimize a spread between a weighted average price of
the loans in the loan package and a To Be Announced (TBA) bond
price of the weighted average coupon of the loans in the loan
package.
17. The system of claim 14, wherein the objective function is
modeled to minimize a dollar value of a spread between a weighted
average price of the loans in the loan package and a To Be
Announced (TBA) bond price of the weighted average coupon of the
loans in the loan package.
18. A method for optimizing fixed rate whole loan trading, the
method comprising: selecting a population of loans; selecting, by a
computer, one or more loans that meet a constraint of a bid;
determining, by the computer, a price for each loan that meets the
constraint based on a securitized model; determining, by the
computer, whether to use an efficient model to select which of the
one or more loans are least favorable to be securitized; and if the
efficient model is used, then selecting, by the computer, which of
the one or more loans are least favorable to be securitized by
minimum dollar value of spread.
19. The method of claim 18, further comprising: determining, by the
computer, at least one module of one or more modules that optimizes
fixed rate whole loan trading based on a received input, wherein
the at least one module comprises a whole loan module.
20. The method of claim 18, further comprising the step of
allocating, by the computer, a portion of the plurality of whole
loans to a package of whole loans for selling as whole loans, the
portion comprising whole loans meeting at least one constraint and
being less profitable than the other whole loans when executed into
a bond in the bond structure if the efficient model is not used,
then selecting, by the computer, which of the one or more loans are
least favorable to be securitized by minimizing spread.
21. A system comprising: a network; and a computer communicably
coupled to the network and configured to: create a model
corresponding to a plurality of excess coupon bond pools and an
unallocated pool, each excess coupon bond pool comprising at least
one constraint; and process the model to allocate each of the loans
into either an excess coupon bond pool or into the unallocated pool
in order to maximize the total market value of the excess coupon
that gets allocated to the excess coupon bond pools.
22. The system of claim 21, wherein the model comprises an
objective function representing the total market value of the
excess coupon that gets allocated to the excess coupon bond
pools.
23. The system of claim 21, wherein the computer is further
configured to transform each of the at least one constraints into a
conditional constraint.
22. The system of claim 21, wherein the computer is further
configured to transform each of the at least one constraints into a
conditional constraint to allow constraints to be applicable to
only excess coupon bond pools that are allocated.
24. The system of claim 21, wherein the computer is further
configured to: identify the excess coupon pools for which each of
the loans can be allocated based on collateral attributes of the
loans; and collapse each loan identified for an excess coupon pool
into a single loan to reduce the number of loans in the model.
Description
RELATED APPLICATION
[0001] This application is a divisional of U.S. patent application
Ser. No. 12/533,315, filed Jul. 31, 2009, which claims the benefit
of U.S. Provisional Patent Application No. 61/191,011, filed Sep.
3, 2009, both of which are hereby fully incorporated herein by
reference.
TECHNICAL FIELD
[0002] The present invention relates generally to systems and
methods for optimizing loan trading and more specifically to
computerized systems and computer implemented methods for
optimizing packages of whole loans for execution into bonds or sale
as whole loan packages.
BACKGROUND
[0003] Financial institutions, such as investment banks, buy loans
and loan portfolios from banks or loan originators primarily to
securitize the loans into bonds and then sell the bonds to
investors. These bonds are considered asset-backed securities as
they are collateralized by the assets of the loans. Many types of
loans can be securitized into bonds, including residential
mortgages, commercial mortgages, automobile loans, and credit card
receivables.
[0004] A variety of bond structures can be created from a
population of loans, each structure having characteristics and
constraints that need to be accounted for in order to maximize the
profit that a financial institution can realize by securitizing the
loans into bonds. The optimal grouping or pooling of loans into
bonds for a given bond structure and a given loan population can
depend on the characteristics of each loan in the population.
Furthermore, the bond pool or execution coupon that an individual
loan executes into can depend on the bond pool or best execution of
each other loan in the population. As the typical loan population
considered for securitizing into bonds is very large (e.g. 10,000
loans or more), determining an optimal pooling of loans for
securitizing into bonds can be challenging.
[0005] Accordingly, what is needed are systems and methods for
optimizing the packaging of a population of loans into bonds for a
given bond structure.
SUMMARY
[0006] The invention provides computerized systems and computer
implemented methods for optimizing fixed rate whole loan trading
for a population of whole loans.
[0007] An aspect of the present invention provides a system for
optimizing fixed rate whole loan trading. This system includes a
computing system that includes a software application including one
or more modules operable to develop a model for determining a
securitization strategy for a population of whole loans, the
securitization strategy including bonds; and operable to process
the model until an optimal securitization strategy for the
population of whole loans is found; and a user interface for
receiving user input for the one or more modules and for outputting
the optimal securitization strategy, the user interface being in
communication with the software application.
[0008] Another aspect of the present invention provides a
computer-implemented method for determining an optimal execution
bond coupon for each loan in a group of loans in a
senior/subordinate bond structure. The method includes creating a
model comprising an objective function representing a total market
value of the senior/subordinate bond structure for the loans.
Further, the method includes maximizing the objective function to
maximize the total market value of the senior/subordinate bond
structure.
[0009] Another aspect of the invention provides a
computer-implemented method for optimally pooling loans into pass
through bond pools. The method includes selecting a population of
loans. Further, for each loan of the selection population of loans,
the method includes determining an optimal execution of each loan
by a buy up or a buy down of guarantee fee. Further, the method
includes determining one or more pools for which each loan is
eligible. In addition, the method includes building a model based
on at least one constraint for at least one determined pool; and
allocating loans to the one or more pass through bond pools.
[0010] Another aspect of the invention provides a system including
a memory that has a set of instructions for allocating a portion of
a group of loans to a loan package. Further, the system includes a
computer coupled to the memory. Upon execution of the set of
instructions the computer determines which of the loans meet one or
more constraints of the loan package. In addition, the computer
determines a market price of each of the loans based on a
securitization model. Further, the computer can model an objective
function to determine which loans in the group of loans that meets
the one or more constraints are least profitable for securitization
in the securitization model; and allocate the loans that meets the
one or more constraints and are least profitable for securitization
into the loan package.
[0011] Another aspect of the present invention provides a method
for optimizing fixed rate whole loan trading. This method includes
the steps of selecting a population of loans; selecting one or more
loans that meet a constraint of a bid; determining a price of each
loan that meets the constraint based on a securitized model;
determining whether to use an efficient model to select which of
the one or more loans are least favorable to be securitized.
Further, if the efficient model is used, the method includes
selecting which of the pone or more loans are least favorable to be
securitized by minimum dollar value of spread.
[0012] Another aspect of the present invention provides a system
for optimally pooling excess coupon resulting from securitizing
loans. The system includes and network and a computer communicable
coupled to the network. Further, the computer creates a model
corresponding to excess coupon bond pools and an unallocated pool,
each excess coupon bond pool including at least one constraint; and
processes the model to allocate each of the loans into either an
excess coupon bond pool or into the unallocated pool in order to
maximize the total market value of the excess coupon that gets
allocated to the excess coupon bond pools.
[0013] These and other aspects, features and embodiments of the
invention will become apparent to a person of ordinary skill in the
art upon consideration of the following detailed description of
illustrated embodiments exemplifying the best mode for carrying out
the invention as presently perceived.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] For a more complete understanding of the exemplary
embodiments of the present invention and the advantages thereof,
reference is now made to the following description, in conjunction
with the accompanying figures briefly described as follows.
[0015] FIG. 1 is a block diagram depicting a system for optimizing
fixed rate whole loan trading in accordance with one exemplary
embodiment of the present invention.
[0016] FIG. 2 is a flow chart depicting a method for optimizing
fixed rate whole loan trading in accordance with one exemplary
embodiment of the present invention.
[0017] FIG. 3 is a flow chart depicting a method for determining a
securitization strategy for a population of loans in accordance
with one exemplary embodiment of the present invention.
[0018] FIG. 4 is a flow chart depicting a method for packaging a
population of loans into a senior/subordinate structure in
accordance with one exemplary embodiment of the present
invention.
[0019] FIG. 5 is a flow chart depicting a method for packaging a
population of loans into a senior/subordinate structure in
accordance with one exemplary embodiment of the present
invention.
[0020] FIG. 6 is a flow chart depicting a method for packaging a
population of loans into pass through bonds in accordance with one
exemplary embodiment of the present invention.
[0021] FIG. 7 is a flow chart depicting a method for packaging
whole loans in accordance with one exemplary embodiment of the
present invention.
[0022] FIG. 8 is a flow chart depicting a method for pooling excess
coupon in accordance with one exemplary embodiment of the present
invention.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0023] The invention provides computer-based systems and methods
for optimizing fixed rate whole loan trading. Specifically, the
invention provides computer-based systems and methods for optimally
packaging a population of whole loans into bonds in either a
senior/subordinate bond structure or into pools of pass through
securities guaranteed by a government agency. Models for each type
of bond structure are processed on the population of loans until
either an optimal bond package is found or a user determines that a
solution of sufficient high quality is found. Additionally, the
models can account for bids for whole loans by allocating whole
loans that meet requirements of the bid but are least favorable to
be securitized. Although the exemplary embodiments of the invention
are discussed in terms of whole loans (particularly fixed rate
residential mortgages), aspects of the invention can also be
applied to trading other types of loans and assets, such as
variable rate loans and revolving debts.
[0024] The invention can comprise a computer program that embodies
the functions described herein and illustrated in the appended flow
charts. However, it should be apparent that there could be many
different ways of implementing the invention in computer
programming, and the invention should not be construed as limited
to any one set of computer program instructions. Further, a skilled
programmer would be able to write such a computer program to
implement an embodiment of the disclosed invention based on the
flow charts and associated description in the application text.
Therefore, disclosure of a particular set of program code
instructions is not considered necessary for an adequate
understanding of how to make and use the invention. The inventive
functionality of the claimed computer program will be explained in
more detail in the following description read in conjunction with
the figures illustrating the program flow. Further, it will be
appreciated to those skilled in the art that one or more of the
stages described may be performed by hardware, software, or a
combination thereof, as may be embodied in one or more computing
systems.
[0025] Turning now to the drawings, in which like numerals
represent like elements throughout the figures, aspects of the
exemplary embodiments will be described in detail. FIG. 1 is a
block diagram depicting a system 100 for optimizing fixed rate
whole loan trading in accordance with one exemplary embodiment of
the present invention. Referring to FIG. 1, the system 100 includes
a computing system 110 connected to a distributed network 140. The
computing system 110 may be a personal computer connected to the
distributed network 140. The computing system 110 can include one
or more applications, such as loan trading optimizer application
120. This exemplary loan trading optimizer 120 includes four
modules 121-124 that can operate individually or interact with each
other to provide an optimal packaging of loans into one or more
bond structures and whole loan packages.
[0026] A senior/subordinate module 121 distributes loans into a
senior/subordinate bond structure with bonds having different
credit ratings and different net coupon values. As will be
discussed in more detail with reference to FIGS. 4-5, the
senior/subordinate module 121 distributes the loans into bonds
having a AAA rating, subordinate bonds with lower credit ratings,
and, depending on the loans and the coupon values of the AAA bonds
and the subordinate bonds, interest only bonds and principal only
bonds.
[0027] A pass-thru module 122 distributes loans into pass through
bonds guaranteed by a government agency, such as Freddie Mac or
Fannie Mae. The pass-thru module 122 optimally pools the loans into
To Be Announced (TBA) pass through securities based on a variety of
constraints. The pass-thru module 122 is discussed in more detail
below with reference to FIG. 6.
[0028] A whole loan module 123 allocates loans to meet bids for
loan portfolios meeting specific requirements and constraints of
the bid. The whole loan module 123 can interact with either the
senior/subordinate module 121 or the pass-thru module 122 to
allocate loans that meet the requirements of the bids but are less
favorable to be securitized. The whole loan module 123 is discussed
below in more detail with reference to FIG. 7.
[0029] An excess coupon module 124 distributes excess coupons of
securitized loans into different bond tranches or pools. The excess
coupon module 124 can pool excess coupons resulting from
senior/subordinate bond structure created by the senior/subordinate
module 121 and/or excess coupons resulting from pass through
securities created by the pass-thru module 122. The excess coupon
module 124 is discussed below in more detail with reference to FIG.
8.
[0030] Users can enter information into a user interface 115 of the
computing system 110. This information can include a type of bond
structure to optimize, constraints associated with bond structures
and bond pools, information associated with loan bids, and any
other information required by the loan trading optimizer 120. After
the information is received by the user interface 115, the
information is stored in a data storage unit 125, which can be a
software database or other memory structure. Users can also select
a population of loans to consider for optimization by way of the
user interface 115. The loans can be stored in a database stored on
or coupled to the computing system 110 or at a data source 150
connected to the distributed network 140. The user interface 115
can also output to a user the bond packages and whole loan packages
determined by the loan trading optimizer 120.
[0031] The loan trading optimizer 120 can communicate with multiple
data sources 150 by way of the distributed network 140. For
example, the loan trading optimizer 120 can communicate with a data
source 150 to determine Fannie Mae TBA prices and another data
source 150 to determine U.S. Treasury prices. In another example,
the loan trading optimizer 120 can communicate with a data source
150 to access information associated with bids for whole loan
packages. The distributed network 140 may be a local area network
(LAN), wide area network (WAN), the Internet or other type of
network.
[0032] FIG. 2 is a flow chart depicting a method 200 for optimizing
fixed rate whole loan trading in accordance with one exemplary
embodiment of the present invention. Referring to FIGS. 1 and 2, at
step 205, the user interface 115 receives input from a user. This
user input is used by the loan trading optimizer 120 to determine
the bond structure that should be optimized for a population of
loans. For example, if the user desires to find the optimal pooling
of loans for pass through bonds, the user can input the constraints
for each bond pool. Examples of constraints for pass through bond
pools include constraints on loan balances, total number of loans
for a pool, and total loan balance for a pool.
[0033] At step 210, a population of loans is selected for
optimization. The population of loans can be selected from loans
stored in a loan database stored on or coupled to the computing
system 110 or from a database at a data source 150 connected to the
distributed network 140. The population of loans can include loans
currently owned by the user (e.g. investment bank) of the loan
trading optimizer 120 and/or loans that are up for bid by another
bank, loan originator, or other institution. For example, a user
may employ the loan trading optimizer 120 to find the maximum
market value of a loan portfolio currently for sale in order to
determine an optimal bid for the loan portfolio. Additionally, a
user can select the population of loans by specifying certain
criteria, such as maximum loan balance, location of the loans, and
FICO score.
[0034] At step 215, the loan trading optimizer 120 determines a
securitization strategy for the population of loans selected in
step 210. Depending upon the user inputs received in step 205, the
loan trading optimizer 120 employs one or more of the
senior/subordinate module 121, the pass-thru module 122, and the
whole loan module 123 to determine the securitization strategy for
the population of loans. Step 215 is discussed in more detail with
reference to FIGS. 3-7.
[0035] At step 220, the loan trading optimizer 120 determines
whether the securitization strategy returned at step 215 is of
sufficiently high quality. In this exemplary embodiment, the loan
trading optimizer 120 iterates the step of determining a
securitization strategy for the population of loans until either an
optimal solution is found or the user determines that the
securitization strategy is of sufficiently high quality. In order
for the user to determine if the securitization strategy if of
sufficient high quality, the loan trading optimizer 120 can output
the results to the user by way of the user interface 115. The loan
trading optimizer 120 can output these results based on a number of
iterations of step 215 (e.g. every 100 iterations) or when a
certain level of quality is found. The user interface 115 can then
receive input from the user indicating whether the securitization
strategy is of sufficient high quality. If the securitization
strategy is of sufficient high quality or optimal, the method 200
proceeds to step 225. Otherwise, the method 200 returns to step
215.
[0036] In one exemplary embodiment, quality is measured in terms of
the total dollar value of the population of loans. For example, the
user may desire to sell a population of loans for at least ten
million dollars in order to bid on the loans. The user can set a
threshold for the loan trading optimizer 120 to only return a
solution that meets this threshold or a solution that is the
optimal solution if the optimal solution is below this
threshold.
[0037] At step 225, the excess coupon module 124 of the loan
trading optimizer 120 can pool any excess coupon resulting from the
securitization strategy determined in step 215. This step is
optional and is discussed below in more detail with reference to
FIG. 8.
[0038] At step 230, the loan trading optimizer 120 communicates the
final securitization strategy to the user interface 115 for
outputting to a user. The user interface 115 can display the final
securitization strategy and optionally other possible
securitization strategies with similar quality levels.
[0039] FIG. 3 is a flow chart depicting a method 215 for
determining a securitization strategy for a population of loans in
accordance with one exemplary embodiment of the present invention.
Referring to FIGS. 1 and 3, at step 305, the loan trading optimizer
120 determines which models to use for determining the
securitization strategies. In this exemplary embodiment, the loan
trading optimizer 120 includes a senior/subordinate module 121, a
pass-thru module 122, and a whole loan module 123. Each of the
modules 121-123 can build and process a model for determining an
optimal packaging of loans as discussed below. The loan trading
optimizer 120 determines which modules 121-123 to use based on the
input received from the user in step 205 of FIG. 2. For example,
the user may specify that only a senior/subordinate structure
should be optimized for the population of loans. Alternatively, if
the user has entered bid information for a portfolio of whole
loans, the loan trading optimizer 120 can execute the whole loan
module 123 with the senior/subordinate module 121 and/or the
pass-thru module 122 to determine which of the loans meet the
requirements of the bid and are least favorable for securitization.
Additionally, a user may specify that both an optimal
senior/subordinate bond structure and an optimal pooling of pass
through bonds should be determined for the population of loans.
[0040] If the user selected that a senior/subordinate bond
structure should be optimized, the method 215 proceeds to step 310.
At step 310, the senior/subordinate module 121 develops a model for
packaging the population of loans into a senior/subordinate bond
structure and processes the model to determine an optimal
senior/subordinate bond structure for the loan population. Step 310
is discussed in more detail with reference to FIGS. 4 and 5. After
the senior/subordinate structure is determined, the method 215
proceeds to step 220 (FIG. 2).
[0041] If the user selected that the population of loans should be
optimally pooled into pass through bonds, the method 215 proceeds
to step 315. At step 315, the pass-thru module 122 develops a model
for pooling the population of loans into multiple bond pools and
processes the model to determine an optimal pooling for the loan
population. Step 315 is discussed in more detail with reference to
FIG. 6. After the pooling is determined, the method 215 proceeds to
step 220 (FIG. 2).
[0042] If the user selected that whole loans should be allocated to
a package of whole loans to be sold, the method 215 proceeds to
step 320. At step 320, the whole loan module 123 develops a model
for allocating whole loans that meet certain constraints and are
less favorable to be securitized into a whole loan package and
processes the model to determine which loans are best suited for
the whole loan package. Step 320 is discussed in more detail with
reference to FIG. 7. After the whole loan package is determined,
the method 215 proceeds to step 220 (FIG. 2).
[0043] FIG. 4 is a flow chart depicting a method 310 for packaging
a population of loans into a senior/subordinate bond structure in
accordance with one exemplary embodiment of the present invention.
As briefly discussed above with reference to FIG. 1, a
senior/subordinate bond structure is a structure where bonds with
different credit ratings are created. Typically, the
senior/subordinate bond structure includes a senior tranche of
bonds having a AAA or similar credit rating and a subordinate
tranche of bonds having a lower credit rating. The senior tranche
is protected from a certain level of loss by the subordinate
tranche as the subordinate tranche incurs the first losses that may
occur. The senior trance can be sold to investors desiring a more
conservative investment having a lower yield, while the
subordinated tranche can be sold to investors willing to take on
more risk for a higher yield. For the purpose of this application,
a AAA rated bond refers to a bond in the senior tranche, but not
necessarily a bond having a credit rating of AAA.
[0044] Additionally, interest only (IO) and principal only (PO)
bonds may be created in a senior/subordinate structure. An IO bond
is created when the net coupon of a loan is more than the coupon of
the bond in which the loan executes. Thus, the difference in the
loan coupon and the bond coupon creates an interest only cash flow.
Similarly, when the loan coupon is less than the bond coupon, a PO
bond is created which receives only principal payments.
[0045] Referring to FIGS. 1 and 4, at step 405, the
senior/subordinate module 121 determines the bond coupons that are
available for executing the loans into. The senior/subordinate
module 121 may obtain the available bond coupons from a data source
150 or may receive the available bond coupons from the user by way
of the user interface 115 in step 205 of FIG. 2. For example, the
user may desire to execute the loans into bonds having coupon
values between 4.5% and 7.0%.
[0046] At step 410, the senior/subordinate module 121 selects a
first bond coupon value from the range of available bond coupon
values. This first coupon value can be the lowest bond coupon
value, the highest coupon value, or any other bond coupon value in
the range of available bond coupon values.
[0047] At step 415, the senior/subordinate module 121 determines
the execution price of each loan in the population of loans at the
selected coupon value. Each loan in the population of loans is
structured as a bond. The cash flow of each loan is distributed
into symbolic AAA and subordinate bonds, and depending on the
coupon of the loan and the selected bond coupon, an IO or PO bond.
The principal payment and interest cash flows of each loan is
generated in each period accounting for loan characteristics of the
loan, such as IO period, balloon terms, and prepayment
characteristics. The cash flow generated in each period is
distributed to all bonds that the loan executes taking into account
shifting interest rules that govern the distribution of prepayments
between the AAA and the subordinate bonds in each period. The
proportion in which the principal payments are distributed depends
on the subordination levels of the AAA and the subordinate bonds.
The subordination levels are a function of the loan attributes and
are supplied by rating agencies for each loan through an
Application Program Interface (API) coupled to the computing device
110. Prepayments are first distributed pro rata to the PO bond and
then between the AAA and the subordinate bonds based on the
shifting interest rules. Any remaining prepayment is distributed
proportionally among all the subordinate bonds. The interest
payment for each of the bonds is a direct function of the coupon
value for the bond.
[0048] After the cash flows of each of the bonds for each of the
loans have been generated, the present value of these cash flows is
determined. For fixed rate loans, the AAA bonds can be priced as a
spread to the To Be Announced (TBA) bond prices. However, the
subordinate bond cash flows are discounted by a spread to the U.S.
Treasury Yield Curve. The IO and PO bonds are priced using the
Trust IO and PO prices. Finally, the price of the AAA bond, the
subordinate bonds, and the IO or PO bond is combined proportionally
for each loan based on the bond sizes to get the final bond price
for each loan. This final bond price is the price of the loan
executing into the bond given the selected coupon value of the
bond.
[0049] At step 420, the senior/subordinate module 121 determines if
there are more bond coupon values in the range of available bond
coupon values. If there are more bond coupon values, the method 310
proceeds to step 425. Otherwise, the method 310 proceeds to step
430.
[0050] At step 425, the next bond coupon value in the range of
available bond coupon values is selected. In one exemplary
embodiment, the senior/subordinate module 121 can increment from
the previous selected bond coupon value (e.g. 0.5% increments) to
determine the next bond coupon value. In an alternative embodiment,
the senior/subordinate module 121 can progress through a fixed list
of bond coupon values. For example, the user may select specific
bond coupon values to execute the loans into, such as only 4.0%,
5.0%, and 6.0%. After the next bond coupon value is selected, the
method 310 returns to step 415 to determine the execution price of
each loan in the population of loans at the new coupon value.
[0051] At step 430, the senior/subordinate module 121 determines,
for each loan in the population of loans, which bond coupon value
yielded the highest final bond price for that particular loan.
[0052] At step 435, the senior/subordinate module 121 groups the
loans according to the bond coupon value that yielded the highest
final bond price for each loan. For example, if the available bond
coupon values are 4.0%, 5.0%, and 6.0%, each loan that has a
highest final bond price at 4.0% are grouped together, while each
loan that has a highest final bond price at 5.0% are grouped
together, and each loan that has a final bond price at 6.0% are
grouped together. After step 435 is complete, the method proceeds
to step 220 (FIG. 2).
[0053] In the embodiment of FIG. 4, the subordinate bonds for each
loan execute at the same bond coupon value as the corresponding AAA
bond. For example, if a first loan of 6.25% best executes into a
bond having a coupon value of 6.0%, then a AAA bond of 6.0% and a
subordinate bond that is priced at U.S. Treasury spreads specified
for execution coupon 6.0% is created. If a second loan of 5.375%
best executes into a bond having a coupon value of 5.0%, then a AAA
bond of 5.0% and a subordinate bond that is priced at U.S. Treasury
spreads specified for execution coupon 5.0% is created. This
creates two AAA bonds and two subordinate bonds at two different
coupon values.
[0054] Typically, when loans are packaged in a senior/subordinate
bond structure, multiple AAA bonds with multiple coupon values are
created with a common set of subordinate bonds that back all of the
AAA bonds. This set of subordinate bonds is priced at the weighted
average (WA) execution coupon of all of the AAA bonds created for
the loan package. Pricing the subordinate bonds at the WA execution
coupon implies that the spread to the benchmark U.S. Treasury
curve, which is a function of the bond rating and the execution
coupon of the subordinate bond, has to be chosen appropriately. In
order to know the WA execution coupon of all the AAA bonds for the
population of loans, the best execution coupon for each loan in the
population of loans has to be known. In order to know the best
execution coupon of each loan, the loan has to be priced at
different bond coupon values and the AAA and subordinate bonds
created at those coupons also have to be priced. However, the
subordinate bond cash flows are discounted with spreads to the U.S.
Treasury, with spreads taken at the WA best execution coupon which
is still unknown. This creates a circular dependency as the best
execution of each loan in the population of loans now depends on
all the other loans in the population.
[0055] FIG. 5 is a flow chart depicting a method 500 for packaging
a population of loans into a senior/subordinate structure in
accordance with one exemplary embodiment of the present invention.
The method 500 is an alternative method to that of method 310 of
FIG. 4, accounting for pricing subordinate bonds at the WA
execution coupon and provides a solution to the circular dependency
discussed above.
[0056] The WA execution coupon for a population of loans can be
calculated by:
WA Execution Coupon={Sum.sub.i(x.sub.i0d.sub.0+x.sub.i1d.sub.1+ . .
. +x.sub.ijd.sub.j)*b.sub.i}/{Sum.sub.ib.sub.i} [1]
[0057] In Equation [1], x.sub.ij is a binary variable with a value
of either "0" or "1," whereby a value of "1" indicates that the
i.sup.th loan is optimally executing at the j.sup.th execution
coupon value. The parameters d.sub.0 to d.sub.j represent the j
execution coupon values. For example, the coupons values could
range from 4.5% to 7.0%. Finally, the parameter b.sub.i represents
the balance of the i.sup.th loan.
[0058] If q.sub.o to q.sub.j are the weights of the j execution
coupons, then:
q.sub.0+q.sub.1+ . . . +q.sub.j=1 [2]
q.sub.0d.sub.0+q.sub.1d.sub.1+ . . . +q.sub.jd.sub.j=WA Execution
Coupon [3]
[0059] where q.sub.0 to q.sub.1 are special ordered sets of type
two, which implies that at most two are non-zero and the two
non-zero weights are adjacent.
[0060] Let Pa.sub.ij be the price of the AAA bond when loan i
executes at coupon j. Next, let Ps.sub.ij be the overall price of
all of the subordinate bonds combined when loan i executes at
coupon j. Finally, let Pio.sub.ij and Ppo.sub.ij be the prices of
the IO and PO bonds respectively when loan i executes at coupon
j.
[0061] The AAA bond prices and the IO and PO bond price components
of loan i executing at coupon j are linear functions of x.sub.ij.
The AAA priced as a spread to the TBA is a function of the
execution coupon of the AAA bond and the IO/PO prices are a lookup
based on collateral attributes of the loan. However, pricing the
subordinate bonds is complicated because the subordinate cash flows
are discounted at the WA execution coupon.
[0062] Let P.sup.i be a matrix of size j*j that contains the prices
of the subordinate bonds. The (m,n) entry of the matrix represents
the price of the subordinate cash flows when the cash flow of loan
i is generated assuming that loan i executes at the m.sup.th coupon
and is discounted using subordinate spreads for the n.sup.th
coupon. Subordinate spreads to the U.S. Treasury are a function of
the execution coupon and any product definition, such as the size
(e.g. Jumbo/Conforming), maturity (e.g. 15/30 years), etc. The
price of the subordinate bond of the i.sup.th loan can be written
as:
q.sub.0(x.sub.i0P.sup.i.sub.(0,0)+ . . .
+x.sub.ijP.sup.i.sub.(0,j))+ . . .
+q.sub.j(x.sub.i0P.sup.i.sub.c(j,0)+ . . .
+x.sub.ijP.sup.i.sub.(j,j)) [4]
[0063] which is a non linear expression as the equation contains a
product of q and x.sub.ij, both of which are variables in this
equation.
[0064] FIG. 5 provides a method 500 for overcoming this
non-linearity. Referring to FIG. 5, at step 505, the
senior/subordinate module 121 determines the optimal execution
price for each loan in the population of loans independent of the
WA execution coupon. In one exemplary embodiment, the
senior/subordinate module 121 employs the method 310 of FIG. 4 to
find the optimal execution price for each loan.
[0065] At step 510, the senior/subordinate module 121 determines
the WA execution coupon corresponding to the optimal execution
price for each loan. This WA execution coupon can be found using
Equation [1] above.
[0066] At step 515, the senior/subordinate module 121 determines
the weights (i.e. q.sub.0-q.sub.j) of each execution coupon for the
WA execution coupon found in step 510. These weights can be found
using Equation [3] above.
[0067] At step 520, the senior/subordinate module 121 builds a
model including an objective function to determine the optimal
execution coupon for each loan to maximize the total market value
of all of the bonds in the senior/subordinate structure. The
expression of the objective function contains i*j terms, where the
ij term represents the market value of executing the i.sup.th loan
at the j.sup.th execution coupon. After inserting the values of the
weights of the execution coupons (i.e. q's) into the expression for
subordinate bond price (Equation [4]), only two of the terms will
be non-zero for the sub-price of the i.sup.th loan executing at the
j.sup.th execution coupon.
[0068] As the method 200 of FIG. 2 iterates step 215, different WA
execution coupons can be used to maximize the objective function.
The iterations can begin with the WA execution coupon found in step
510 and the senior/subordinate module 121 can search around this WA
execution coupon until either the optimal solution is found or the
user decides that a solution of sufficient high quality is found in
step 220 of FIG. 2. In other words, the senior/subordinate module
121 searches for an optimal solution by guessing several values of
the WA execution coupon around an initial estimate of the optimal
execution coupon. After a final solution is found by the
senior/subordinate module 121, the loans can be grouped based on
the coupon values for each loan in the final solution to the
objective function.
[0069] In some instances, one of the undesirable effects of the
senior/subordinate bond structure is the creation of IO and/or PO
bonds, which may not trade as rich as AAA bonds. In some exemplary
embodiments, the senior/subordinate module 121 can ameliorate this
issue by considering a loan as two pseudo loans. For example, a
loan having a net rate of 6.125% and a balance of $100,000 can be
considered equivalent to two loans of balance b1 and b2 and coupons
6% and 6.5% such that the following conditions are satisfied:
b1+b2=100,000 [5]
((b1*6.0)+(b2*6.5))/(b1+b2)=6.125 [6]
[0070] The first condition conserves the original balance, while
the second condition is to set the WA coupon of the two pseudo
loans to equal the net rate of the original loan. Solving these
equations for b1 and b2, we find that b1=75,000 and b2=25,000.
These two loans, when executed at 6.0% and 6.5% bond coupons
respectively, avoids the creation of either an IO bond or a PO
bond.
[0071] Although in the above example two adjacent half point
coupons were used to create the two pseudo loans, two coupons from
any of the half point bond coupons that are being used to create
the bonds can be used. For example, if only bond coupons from 4.5%
to 7.0% are being used to create the bonds, there would be fifteen
combinations to consider (6C2=15). In some cases, the best solution
is not to split the loan into two adjacent half point bond coupons.
For example, this split may not be optimal if the AAA spreads at
the two adjacent half point coupons are far higher than the ones
that are not adjacent to the net balance of the loan.
[0072] The senior/subordinate module 121 can construct a linear
program or linear objective function to determine the optimal split
into pseudo loans. The output of the linear program is the optimal
splitting of the original loan into pseudo loans such that the
overall execution of the loan is maximized, subject to no IO bond
or PO bond creation. For each loan i, let variable x.sub.ij
indicate the balance of loan i allocated to the jth half point
coupon, subject to the constraint that the sum of over x.sub.ij for
all j equals to the balance of loan i and the WA coupon expressed
as a function of the x.sub.ij's equals to the net coupon of loan i,
similar to Equation [6] above. Let the execution coupons be r.sub.0
to r.sub.n. Thus, this equation becomes:
(x.sub.i0r.sub.0+ . . . +x.sub.inr.sub.n)/b.sub.i=c.sub.i [7]
[0073] where b.sub.i is the balance of loan i and c.sub.i is the
net coupon of loan i. The price of loan i executing at coupon j is
the sum of the price of the AAA bond and the subordinate bonds. No
IO or PO bonds are created when the coupons are split. The
senior/subordinate module 121 calculates the price of the AAA bond
as a spread to the TBA, where the spread is a function of the
execution coupon j. In one embodiment, the senior/subordinate
module 121 also calculates the price of the subordinate bond as a
spread to the TBA for simplification of the problem. Cash flows are
not generated as the split of the balances to different execution
coupons is not yet known. The senior/subordinate module 121
combines the price of the subordinate bond and the AAA bond in
proportion to the subordination level of loan i, which can be input
by a user in step 205 of FIG. 2 or input by an API. At this point,
the senior/subordinate module 121 has calculated the price of loan
i (P.sub.ij) for each execution coupon j. To determine the optimal
splitting of the original loan into pseudo loans, the
senior/subordinate module 121 creates the following objective
function and works to maximize this objective function:
[0074] Equation [8] is a simple linear program with two constraints
and can be solved optimally. The solution gives the optimal split
of the loan into at most two coupons and thus, a bond can be
structured without creating any IO or PO bonds. The user can
determine if the bond should be split or not based on the optimal
execution and other business considerations.
[0075] FIG. 6 is a flow chart depicting a method 315 for packaging
a population of loans into pass through bonds in accordance with
one exemplary embodiment of the present invention. A pass through
bond is a fixed income security backed by a package of loans or
other assets. Typically, as briefly discussed above with reference
to FIG. 1, a pass through bond is guaranteed by a government
agency, such as Freddie Mac or Fannie Mae. The government agency
guarantees the pass through bond in exchange for a guarantee fee
(Gfee). The Gfee can be an input provided by the agencies for a
specific set of loans or can be specified as a set of rules based
on collateral characteristics. Regardless of how the Gfee is
obtained, the Gfee for a loan set is known.
[0076] When loans are securitized as a pass through bond, one has
the option to buy up or buy down the Gfee in exchange for an
equivalent fee to the agencies. Buying up the Gfee reduces the net
coupon and thus the price of the bond as well. This upfront buy up
fee is exchanged in lieu of the increased Gfee coupon. Similarly,
buying down the Gfee reduces the Gfee and increases the net coupon
and therefore increases the bond price. An upfront fee is paid to
the agencies to compensate for the reduced Gfee.
[0077] The Fannie Mae and Freddie Mac agencies typically provide
buy up and buy down grids each month. Referring to FIG. 1, these
grids can be stored in a data source 150 or in the data storage
unit 125 for access by the pass-thru module 122 of the loan trading
optimizer 120. If the Gfee is bought up or bought down, an excess
coupon is created. The amount of buy up or buy down of Gfee can
vary based on collateral attributes of the loan and can also be
subject to a minimum and maximum limit.
[0078] Referring now to FIGS. 1 and 6, at step 605, the pass-thru
module 122 determines the optimal execution of each loan by buy up
or buy down of the Gfee. In one exemplary embodiment, the optimal
execution of each loan is determined by finding the overall price
of the loan for each available buy up and buy down of the Gfee.
Typically, a Gfee can be bought up or down in increments of
1/100.sup.th of a basis point. The pass-thru module 122 implements
a loop for each loan from the minimum to the maximum Gfee buy up
with a step size of 1/100.sup.th of a basis point. Similarly, the
pass-thru module 122 implements a loop for each loan from the
minimum to the maximum Gfee buy down with a step size of
1/100.sup.th of a basis point. In each iteration, the amount of
Gfee buy up or buy down is added to the current net rate of the
loan. From this modified net rate of the loan, the TBA coupon is
determined as the closest half point coupon lower than or equal to
the modified net rate. The excess coupon is equal to the modified
net rate of the TBA coupon and the price of the excess coupon is a
lookup in the agency grid. The fee for the buy up or buy down is
also a lookup in the agency grid. The price of the TBA coupon is a
lookup from the TBA price curve. When the Gfee is bought up, the
cost is added to the overall price and when the Gfee is bought
down, the cost is subtracted from the overall price. The pass-thru
module 122 determines the overall price of execution for the loan
at each iteration and determines the optimal execution for the loan
as the execution coupon of the TBA for which the overall price is
maximized. This overall cost is the combination of the price of the
TBA coupon, the price of the excess coupon, and the cost of the
Gfee (added if buy up, subtracted if buy down).
[0079] At step 610, the pass-thru module 122 determines which TBA
pools each loan is eligible for. Pooling loans into TBA bonds is a
complex process with many constraints on pooling. Furthermore,
different pools of loans have pool payups based on collateral
characteristics. For example, low loan balance pools could prepay
slower and thus may trade richer. Also, loan pools with geographic
concentration known to prepay faster may trade cheaper and thus
have a negative pool payup. Thus, pooling optimally taking into
account both the constraints and the pool payups can lead to
profitable execution that may not be captured otherwise.
[0080] Each of the TBA pools for which a loan can be allocated has
a set of pool eligibility rules and a pool payup or paydown.
Non-limiting examples of pools can be a low loan balance pool (e.g.
loan balances less than $80K), a medium loan balance pool (e.g.
loan balance between $80K and $150K), a high loan balance pool
(e.g. loan balances above $150K), a prepay penalty loan pool, and
an interest only loan pool. For a loan to be allocated to a
specific pool by the pass-thru module 122, the loan has to satisfy
both the eligibility rules of the pool and also best execute at the
execution coupon for that pool.
[0081] The pass-thru module 122 applies the eligibility rules of
the TBA bond pools to the loans to determine the TBA bond pools for
which each loan is eligible. The pass-thru module 122 can utilize
pool priorities to arbitrate between multiple pools if a loan is
eligible for more than one pool. If a loan is eligible to be pooled
into a higher and lower priority pool, the pass-thru module 122
allocates the loan to the higher priority pool. However, if a loan
is eligible for multiple pools having the same priority, the
pass-thru module 122 can allocate the loan into either of the pools
having the same priority.
[0082] At step 615, the pass-thru module 122 builds a model for
allocating the loans into TBA pools based on the constraints of
each TBA bond pool. Let x.sub.ij be a binary variable with a value
of "1" or "0" which has a value of "1" when loan i is allocated to
TBA bond pool j. The total loan balance and loan count constraints
of the TBA pools are linear functions of the x.sub.ij variables.
The objective function for this model is also a linear combination
of the market values of each loan. The primary problem in this
model is that the given loan population selected in step 210 of
FIG. 2 may not be sufficient to allocate all TBA loan pools, as
some of the pools may not have loans to satisfy the balance and
count constraints or the loans may not be eligible for those pools.
In such cases, it is desirable for the pools to have the
constraints when applicable. If there are some pools for which
there are not enough loans in the population of loans to form a
pool, then such pools are not subjected to the specified
constraints while the other pools are. However, it is not possible
to know a-priori which pools do not have enough loans to satisfy
the constraints. Thus, the model employs conditional constraints to
allow constraints to be applicable to only those pools which are
allocated.
[0083] The pooling model is modified to allow for some loans to not
be allocated to any pool. This non-allocation will ensure that the
model is always solvable and is similar to introducing a slack
variable in linear programming. Thus, for each loan in the
population of loans, there is an additional binary variable
representing the "unallocated pool" into which the loan can be
allocated. Those loans allocated to the unallocated pool are given
a zero cost/market value, thus encouraging the pass-thru module 122
to allocate as many loans as possible.
[0084] The next step in building this pooling model is to introduce
p binary variables for the p possible TBA pools. A value of "1"
indicates that this pool is allocated with loans satisfying the
pool constraints and a value of "0" indicates that this pool is not
allocated. These variables are used to convert simple linear
constraints into conditional constraints.
[0085] Each constraint of each pool is converted to conditional
constraints for the pooling model. To detail this conversion, a
maximum loan count constraint is considered for pool P. Let x.sub.1
to x.sub.n be binary variable where x.sub.i are the loans eligible
for pool P. Next, let x.sub.1+ . . . +x.sub.n=U, where U equals the
total number of loans in pool P. Finally, let w be the binary
variable to indicate if pool P is allocated. The user constraint
for maximum loan count is specified as U.ltoreq.K, where K is given
by the user. In order to impose this constraint conditionally, this
constraint is transformed to the following two constraints: [0086]
U.ltoreq.K w [0087] U.ltoreq.M w
[0088] where M is a constant such that the sum of all x.sub.i's is
bounded by M. Consider both the cases when pool P is allocated
(w=1) and when pool P is not allocated (w=0) below: [0089] w=1:
U.ltoreq.K (required) [0090] U.ltoreq.M (redundant) [0091] w=0:
U.ltoreq.0 [0092] U.ltoreq.0
[0093] The only way for U.ltoreq.0 would be when all the x.sub.i's
are "0" and thus, pool P will be unallocated.
[0094] Other constraints, such as minimum count, minimum balance,
maximum balance, average balance, and weighted average constraints
can be transformed similarly for the pooling model. After all of
the constraints are transformed to conditional constraints, the
pooling model is ready to handle constraints conditionally.
[0095] At step 620, the pass-thru module 122 executes the pooling
model to allocate the loans into TBA pools. After the pass-thru
module 122 executes the model for one iteration, the method 315
proceeds to step 220 (FIG. 2). As the method 200 of FIG. 2 iterates
step 215, different TBA pool allocations are produced by the
pass-thru module 122 until either the optimal TBA pool allocation
is found or until the user decides that a solution of sufficient
high quality is found in step 220 (FIG. 2).
[0096] FIG. 7 is a flow chart depicting a method 320 for packaging
whole loans in accordance with one exemplary embodiment of the
present invention. The method 320 identifies an optimal package of
loans meeting a set of constraints given by a customer or investor.
In this embodiment, the loan package is optimized by determining
which loans, among the population of loans that meet the
constraints, are least favorable to be securitized. Although the
method 320 of FIG. 7 is discussed in terms of the
senior/subordinate bond structure, other bonds structures or models
can be used.
[0097] Referring to FIG. 7, at step 705, the whole loan module 123
determines which loans in the population of loans meets constraints
of a bid for whole loans. Investment banks and other financial
institutions receive bids for whole loans meeting specific
requirements. These requirements can be entered into the user
interface 115 at step 205 of FIG. 2 and/or stored in the data
storage unit 125 or a data source 150. The constraints can include
requirements that the loans must satisfy, such as, for example,
minimum and maximum balance of the total loan package, constraints
on the weighted average coupon, credit ratings of the recipients of
the loans (e.g. FICO score), and loan-to-value (LTV) ratio. The
constraints can also include location based constraints, such as no
more than 10% of the loan population be from Florida and no zip
code should have more than 5% of the loan population.
[0098] After the whole loan module 123 selects the loans that meet
the constraints, at step 710, the whole loan module 123 determines
the price of each loan that meets the constraints based on a
securitization module. For example, the price of the loans may be
calculated based on the senior/subordinate structure discussed
above with reference to FIGS. 4 and 5.
[0099] At step 715, the whole loan module 123 determines whether to
use an efficient model to select loans least favorable to be
securitized by minimizing the dollar value of the spread of
execution of the loans based on a securitization model or a less
efficient model to select loans least favorable to be securitized
by minimizing the spread of execution of the loans based on a
securitization model. In one exemplary embodiment, this
determination can be based on the total number of loans in the
population or chosen by a user. If the whole loan module 123
determines to use the efficient model, the method 320 proceeds to
step 725. Otherwise, the method 320 proceeds to step 720.
[0100] At step 720, the whole loan module 123 selects loans that
are least favorable to be securitized by minimizing the spread of
execution of the loans based on the senior/subordinate bond
structure. The whole loan module 123 builds a model to select a
subset of the loans that meet the constraints such that the WA
price of the loans of this subset net of the TBA price of the WA
coupon of this subset is minimized. The TBA price of the WA coupon
of the subset is typically higher as the TBA typically has a better
credit quality and hence the metric chosen will have a negative
value. The objective function that needs to be minimized is given
by:
(x.sub.1b.sub.1p.sub.1+ . . .
+x.sub.nb.sub.np.sub.n)/(x.sub.1b.sub.1+ . . .
+x.sub.nb.sub.n)-(q.sub.1px.sub.1+ . . . +q.sub.mpx.sub.m) [9]
[0101] In Equation [9], x.sub.1 to x.sub.n are binary variables
with a value of either "0" or "1", whereby a value of "1" indicates
that the loan is allocated and "0" otherwise. The variables b.sub.1
to b.sub.n are the balances of the loans and p.sub.1 to p.sub.n are
the prices of the loans as determined in step 710. The variables
q.sub.1 to q.sub.m are the weights for each of the half point
coupons and px.sub.1 to px.sub.m are the TBA prices for the half
point coupons. The weights are special ordered sets of type two,
which as discussed above, implies that at most two are non-zero and
the two non-zero weights are adjacent. Thus, the expression
(q.sub.1px.sub.1+ . . . +q.sub.mpx.sub.m) is the price of the WA
coupon of the allocated loans.
[0102] The weights (q.sub.1-q.sub.m) are subject to the
constraints:
q.sub.1+ . . . +q.sub.m=1 [10]
(x.sub.1b.sub.1c.sub.1+ . . .
+x.sub.nb.sub.nc.sub.n)/(x.sub.1b.sub.1+ . . .
+x.sub.nb.sub.n)=(q.sub.1r.sub.1+ . . . +q.sub.mr.sub.m) [11]
[0103] where the c.sub.i's are the net coupons on the loans and the
r.sub.i's are the half point coupons of the TBA curve.
[0104] An illustrated weighted average constraint (Kwac) on the
coupon could be:
(x.sub.ib.sub.ic.sub.i+ . . .
+x.sub.jb.sub.jc.sub.j)/(x.sub.ib.sub.i+ . . .
+x.sub.jb.sub.j)<=Kwac [12]
[0105] Let y.sub.0=M/(x.sub.1b.sub.1+ . . . +x.sub.nb.sub.n) and
y.sub.j=x.sub.jy.sub.0 where M is a scaling constant to keep the
model scaled sensibly. Rewriting the equations, the objective
function to minimize is:
Min: ((y.sub.1b.sub.1p.sub.1)/M+ . . .
+(y.sub.nb.sub.np.sub.n)/M-(q.sub.1px.sub.1+ . . .
+q.sub.mpx.sub.m) [13]
such that:
((y.sub.1b.sub.1c.sub.1)/M+ . . .
+(y.sub.nb.sub.nc.sub.n)/M)=q.sub.1r.sub.1+ . . . +q.sub.mr.sub.m
[14]
and:
q.sub.1+ . . . +q.sub.m=1 [15]
and:
(x.sub.ib.sub.ic.sub.i+ . . .
+x.sub.jb.sub.jc.sub.j)<=(x.sub.ib.sub.i+ . . .
+x.sub.jb.sub.j)Kwac [16]
[0106] Multiplying Equation [16] by y.sub.0 yields:
(y.sub.ib.sub.ic.sub.i+ . . .
+y.sub.jb.sub.jc.sub.j)<=(y.sub.ib.sub.i+ . . .
+y.sub.jb.sub.j)Kwac [17]
[0107] Additionally, other constraints for loan balance and ratio
balance can similarly be transformed into linear constraints. In
this exemplary embodiment, the y's are real numbers and the y's
should be equal to y.sub.0 when that loan is allocated, else the y
should equal "0." This requirement can be enforced by adding
additional constraints and variables:
y.sub.i.gtoreq.0 [18]
y.sub.i.ltoreq.Kz.sub.i [19]
y.sub.i-y.sub.0-Kz.sub.i-K(1+eps) [20]
y.sub.i-y.sub.0+Kz.sub.i.ltoreq.K(1+eps) [21]
[0108] The equations above are analyzed when z.sub.i is set to "1"
and z.sub.i is set to "0" and which shows that y.sub.i will be
y.sub.0 or zero within a tolerance of eps. Eps is a model specific
constant and is suitably small to account for lack of numerical
precision in a binary variable. The tolerance eps is utilized in
this model as although binary variables are supposed to be "0" or
"1," the binary variables suffer from precision issues and thus,
the model should accommodate numerical difficulties. The source of
this precision issue is the way y.sub.0 has been defined. The
denominator of y.sub.0=M/(x.sub.1b.sub.1+ . . . +x.sub.nb.sub.n) is
essentially the sum of the balances of all loans in the pool, which
can be a very large number resulting in a small y.sub.0.
[0109] After building the model, the whole loan module 123
minimizes the objective function in Equation [13] with each
iteration of step 215 of FIG. 2 while maintaining the constraints
of the subsequent equations [17]-[21]. The loans that are allocated
into the whole loan package are the loans that meet the constraints
of the bid and have a y value equal to y.sub.0. After step 720 is
completed, the method 320 proceeds to step 220 (FIG. 2).
[0110] At step 725, the whole loan module 123 selects loans that
are least favorable to be securitized by minimizing the dollar
value of the spread of execution of the loans based on the
senior/subordinate bond structure. Thus, the difference of the
market value of the allocated loans and the notional market value
of the loan pool using the price of the WA execution coupon is
minimized. The objective function that needs to be minimized for
this model is given by:
Min: (x.sub.1b.sub.1p.sub.1+ . . .
+x.sub.nb.sub.np.sub.n)-(x.sub.1b.sub.1+ . . .
+x.sub.nb.sub.n)*(q.sub.1px.sub.1+ . . . +q.sub.mpx.sub.m) [22]
Let y.sub.i=q.sub.i(x.sub.1b.sub.1+ . . . +x.sub.nb.sub.n) [23]
[0111] Rewriting Equation [22] yields:
Min: (x.sub.1b.sub.1p.sub.1+ . . .
+x.sub.nb.sub.np.sub.n)-(y.sub.1px.sub.1+ . . . +y.sub.mpx.sub.m)
[24]
such that:
q.sub.1+q.sub.m=1 [25]
(x.sub.1b.sub.1c.sub.1+ . . .
+x.sub.nb.sub.nc.sub.n)/(x.sub.1b.sub.1+ . . .
+x.sub.nb.sub.n)=q.sub.1r.sub.1+ . . . +q.sub.mr.sub.m [26]
which gets transformed to:
(x.sub.1b.sub.1+ . . . +x.sub.nb.sub.n)(q.sub.1+ . . .
+q.sub.m)=(x.sub.1b.sub.1+ . . . +x.sub.nb.sub.n) [27]
y.sub.1+ . . . +y.sub.m=(x.sub.1b.sub.1= . . . +x.sub.nb.sub.n)
[28]
(x.sub.1b.sub.1c.sub.1+ . . .
+x.sub.nb.sub.nc.sub.n)=y.sub.1r.sub.1+ . . . +y.sub.mr.sub.m
[29]
[0112] After building the model, the whole loan module 123
minimizes the objective function in Equation [24] with each
iteration of step 215 of FIG. 2 while maintaining the constraints
of the subsequent equations [25]-[29]. The loans that are allocated
into the whole loan package are the loans that meet the constraints
of the bid and have a y value equal to y.sub.0. After step 725 is
completed, the method 320 proceeds to step 220 of FIG. 2.
[0113] FIG. 8 is a flow chart depicting a method 225 for pooling
excess coupon in accordance with one exemplary embodiment of the
present invention. The excess coupon module 124 can pool the excess
coupon of securitized loans into different tranches or pools. The
excess coupon module 124 can take a large population of loans (e.g.
100 thousand or more), each with some excess coupon, and pool the
loans into different pools, each pool with a different coupon and
specified eligibility rules. Each of the pools can also have a
minimum balance constraint. Pools that are created with equal
contribution of excess coupon from every loan that is contributing
to that pool typically trades richer than pools that have a
dispersion in the contribution of excess from different loans.
Therefore, it is profitable to create homogeneous pools.
[0114] Referring to FIG. 8, at step 805, the excess coupon module
124 converts the pool constraints into conditional constraints as
some of the pools defined in this excess coupon model may not have
loans to satisfy the pool constraints. This conversion is similar
to the conversion of constraints discussed above with reference to
FIG. 6.
[0115] At step 810, the excess coupon module 124 builds a model to
determine the optimal pooling for the excess coupons. Let x.sub.ij
be the contribution of excess coupon from loan i to pool j. Unlike
the pooling model in FIG. 6 above, this variable is not a binary
variable. However, an unallocated pool is added to the set of user
defined pools which enables the pass-thru module 122 to always
solve the model and produce partial allocations. The first
constraint of this excess coupon model is the conservation of
excess coupon allocated among all the pools for each loan. Any loan
that does not get allocated to a user defined pool is placed in the
unallocated pool, and thus the unallocated pool is also included in
the conservation constraint. In this embodiment, the unallocated
pool does not have any other constraint. The objective function of
this excess coupon model is to maximize the total market value of
the excess that gets allocated. Unallocated excess coupon is
assigned a zero market value and thus the solver tries to minimize
the unallocated excess coupon. In this model, the excess coupon
module 124 tries to create the maximum possible pools with equal
excess contribution. Any leftover excess from all the loans can be
lumped into a single pool and a WA coupon pool can be created from
this pool.
[0116] An aspect of this excess coupon model is to enforce equality
of the excess coupon that gets allocated from a loan to a pool.
Furthermore, it is not necessary that all loans allocate excess to
a given pool. Thus, the equality of excess is enforced only among
loans that have a non-zero contribution of excess to this pool.
[0117] Let xp.sub.0 to xp.sub.p be p real variables that indicate
the amount of excess in each pool. Also, let w.sub.ij be a binary
variable that indicates if loan i is contributing excess to pool.
For each eligible loan i, for pool j, the following constraints are
added:
x.sub.ij.ltoreq.M*w.sub.ij [30]
x.sub.ij.ltoreq.xp.sub.j [31]
x.sub.ij.gtoreq.xp.sub.j-M(1-w.sub.ij) [32]
[0118] When w.sub.ij=1 (loan does not contribute excess to this
pool), then:
x.sub.ij.ltoreq.M [33]
x.sub.ij.ltoreq.xp.sub.j [34]
x.sub.ij.gtoreq.xp.sub.j [35]
[0119] Thus, x.sub.ij is equal to x.sub.pj, the excess coupon of
the pool. When w.sub.ij=0, then:
x.sub.ij.ltoreq.0 [36]
x.sub.ij.ltoreq.xp.sub.j [37]
x.sub.ij.ltoreq.xp.sub.j-M [38]
[0120] When M is chosen to be the maximum excess coupon of all
loans in the allocation, the expression xp.sub.j-M is negative.
Thus, from x.sub.ij.ltoreq.0 and that all excess coupons have to be
zero or positive, this implies that x.sub.ij=0 when w.sub.ij=0.
[0121] This excess coupon model can be difficult to solve because
of its complexity level. In order to reduce the complexity, the
excess coupon module 124 employs dimensionality reduction. The
first step of this process is to identify the pools into which a
loan can be allocated. Eligibility filters in this excess coupon
model specify the mapping of the collateral attributes of the loans
to the coupons of the pools that the attributes can go into. For
example, loans with a net coupon between 4.375% and 5.125% can go
into pools of 4.5% or 5.0%. Unlike the pooling model discussed
above with reference to FIG. 6, there are no pool priorities.
[0122] At step 815, the excess coupon module 124 identifies the
pool into which a given loan can be allocated based on the
collateral attributes of the loan and independent of the pool
execution coupon. This gives a one to one mapping between the loans
and the pools.
[0123] At step 820, the excess coupon module 124 collapses all
loans having the same excess coupon within a given pool definition
into a single loan. This approach can significantly reduce the
number of loans in the loan population.
[0124] After the population of loans is reduced, the excess coupon
module 124 maximizes the objective function at step 825. The excess
coupon module 124 can iteratively determine solutions to the
objective function until an optimal solution is found or until a
user decides that a solution of sufficient high quality is
found.
[0125] One of ordinary skill in the art would appreciate that the
present invention provides computer-based systems and methods for
optimizing fixed rate whole loan trading. Specifically, the
invention provides computer-based systems and methods for optimally
packaging a population of whole loans into bonds in either a
senior/subordinate bond structure or into pools of pass through
securities guaranteed by a government agency. Models for each type
of bond structure are processed on the population of loans until
either an optimal bond package is found or a user determines that a
solution of sufficient high quality is found. Additionally, the
models can account for bids for whole loans by allocating whole
loans that meet requirements of the bid but are least favorable to
be securitized.
[0126] Although specific embodiments of the invention have been
described above in detail, the description is merely for purposes
of illustration. It should be appreciated, therefore, that many
aspects of the invention were described above by way of example
only and are not intended as required or essential elements of the
invention unless explicitly stated otherwise. Various modifications
of, and equivalent steps corresponding to, the disclosed aspects of
the exemplary embodiments, in addition to those described above,
can be made by a person of ordinary skill in the art, having the
benefit of this disclosure, without departing from the spirit and
scope of the invention defined in the following claims, the scope
of which is to be accorded the broadest interpretation so as to
encompass such modifications and equivalent structures.
* * * * *