Operate a Mortgage Pool
MortgagePool operates any number of Mortgages within the one function. Each mini-mortgage is specified as one of the NetAdvances.
Auto Array Function
###### Why we need this function

This function does series of mortgages, as opposed to a single Mortgage like Mortgage. The difference between a single loan with multiple NetAdvances and series of mini-mortgages, each absorbing one of the NetAdvances, is:

• Each mini-mortgage can have a different Term (Term_s), and can have a different margin (via AddMargin_s).
• Each mini-mortgage can have its own time geometry, in terms of interest frequency (via PmtsPerYr_s), and the start date of the first interest payment (StartingSeqNum_s if specified, otherwise its the advance date).
The usefulness of this function is in engineering a planned financing line in a cashflow, where you don"t want to go to the trouble (and calculation overhead) of lots of Mortgages. Where this function was used for the first time to great effect was in doing just that - boiling several mortgages down to, effectively one.

###### Key Points

Fixed Rate
The mortgages are fixed rate. Constant repayment mortgages don"t have to be fixed rate, and the
Mortgage function can do floating rate, but to make it easier to comprehend and to program, the mortgages in this function are fixed rate. The interest rate is looked up from the interest rate schedule input. This has the curious effect of making the interest schedule you input equal to a forecast of the period fixed rate of the mortgage, which itself depends on the structure of the repayment schedule. Most people will overlook this curiosity, but its worth pointing out.
Pluralable "_s" variables
This function has several variables that either accept a single value or a range of values. If a single value is specified, then that value is used for all the mini-mortgages (each of the NetAdvances. If a number of values are specified then each value is used against the corresponding value in NetAdvances and each mini-mortgage can have its own characteristics in terms of term, payments per year, etc. If the number of values in a pluralable variable is more than one but less than the total number of the NetAdvances then the values in the plural variable are used against the corresponding value in NetAdvances until they run out - then the final value is used for all future NetAdvances.

StartingSeqNum_s and PmtsPerYr_s
This function does not have a Periods variable, unlike most other lloan, mortgage or projectons functions. Periods in a loan function is used to define the periods over which interest accrues and is paid. In LoanPool, each loan needs to create its own payment schedule (or Periods) internally. It does this my looking at the AdvanceDate and uses PmtsPerYr to generate regular periods starting on the AdvanceDate. However, if you want to specify the payment periods more closely, and don"t want day 1 of the mini-loan to be an interest payment date (say, you want a short stub period), you can use StartingSeqNum_s to specify the first interest payment date in the form mm.dd (eg 7.01). It is a pluralable variable, so you can even have a different one for each mini-mortgage.

###### Example
MortgagePool.xls

Business Functions Ltd, London, UK Website Design: Webpure