Prepayment Library - Structures

EspPrepayProjStruct

Provides to the prepayment model all projected mortgage rates and other data (not related to a specific security) required to perform prepayment projections. Prepayment projections (expressed as an array of SMMs) are returned via this structure.

Notes

Use

typedef struct _EspPrepayProjStruct {
long settleDateYyyyMm;
long mrateDateYyyyMm;
double *projMortCommitRate30InPercent;
double *projMortCommitRate15InPercent;
double *projMortCommitRate07InPercent;
double *projMortCommitRate05InPercent;
double *projTreasuryRate10InPercent;
double *projTreasuryRate05InPercent;
double *projTreasuryRate03InPercent;
double *projected_smm_percent;
EspDefaultRate *projDefaultVector;
char paramsDir[200];
} EspPrepayProjStruct;

Member Detail

settleDateYyyyMm
(long)  Settlement date - defining when prepay projections will begin - in YYYYMM format. For example, August 2004 is expressed as "200408".

The base element of the output SMM array (the element with subscript [0]) corresponds to this date.  The array element will hold the prepayment speed reported in the month of settlement.

mrateDateYyyyMm
(long)  Specifies the starting date for the projected mortgage rate arrays (or projected Treasaury rates, if used) passed to the AFT prepayment model.  Normally, this element is equal to settleDateYyyyMm.

If it is not equal to settle date, the prepay model interprets the date as being of the date of the base elements (the element with subscript [0]) of the four arrays of projected mortgage rates:
*projMortCommitRate30InPercent
*projMortCommitRate15InPercent
*projMortCommitRate07InPercent
*projMortCommitRate05InPercent

Set each of the pointers for the projected mortgage rates to zero to direct the prepay model to use the arrays of projected Treasury rates.   As in the above, mrateDateYyyyMm is expected to hold the date that corresponds to the base element in each of the projected Treasury rate arrays.

*projMortCommitRate30InPercent
(pointer)  Points to an array of projected 30 year FNMA 10 day commitment rates expressed as percents.  The base element (subscript [0]) corresponds to the date stored in mrateDateYyyyMm.  The rate in the base element is the "average" mortgage rate that actually occurred in the month of the mrateDateYyyyMm.

A Note on Array Sizes
The array must be large enough to accomodate the period from mrateDateYyyyMm to the end of the mortgage.   For example, given the following information -
Original term: 360 months
Current Age: 5 months
Settlement Date: Oct-1999 (ie, 199910)

- we know the origination date was May-1995 (199505).  Normally, this would dictate a minimum size of 355 for each of the projection arrays in this structure.

If the value specified for mrateDateYyyyMm differs from the settlement date, a different minimum array size is called for.   For example, given the origination data above the following array sizes would be required:
mrateDateYyyyMm = 199911 ... dictates a minimum array size of 354
mrateDateYyyyMm = 199909 ... dictates a minimum array size of 356

*projMortCommitRate15InPercent
(pointer)  Points to an array of projected 15 year FNMA 10 day commitment rates expressed as percents.  Use and sizing of this array is the same as for *projMortCommitRate30InPercent.

*projMortCommitRate07InPercent
(pointer)  Points to an array of projected 7 year FNMA 10 day commitment rates expressed as percents.  Use and sizing of this array is the same as for *projMortCommitRate30InPercent.

*projMortCommitRate05InPercent
(pointer)  Points to an array of projected 5 year FNMA 10 day commitment rates expressed as percents.  Use and sizing of this array is the same as for *projMortCommitRate30InPercent.

*projTreasuryRate10InPercent
(pointer)  Points to an array of projected 10 year Treasury rates. Used when projected mortage rates are unavailable and all of the pointers to the projected mortgage rate arrays have been set to zero.  Use and sizing of this array is the same as for *projMortCommitRate30InPercent.

*projTreasuryRate05InPercent
(pointer)  Points to an an array of projected 5 year Treasury rates. Used when projected mortage rates are unavailable and all of the pointers to the projected mortgage rate arrays have been set to zero.  Use and sizing of this array is the same as for *projMortCommitRate30InPercent.

*projTreasuryRate03InPercent
(pointer)  Points to an array of projected 3 year Treasury rates. Used when projected mortage rates are unavailable and all of the pointers to the projected mortgage rate arrays have been set to zero.  Use and sizing of this array is the same as for *projMortCommitRate30InPercent.

*projected_smm_percent
(pointer)  Points to an array of projected single month mortality (SMM) percents calculated by the prepayment model.   Use and sizing of this array is the same as for *projMortCommitRate30InPercent.

*projDefaultVector
(pointer)  Points to an output array of monthly projections regarding loan defaults as described in structure EspDefaultRate.

Array element [0] stores default data ocuring during the month immediately prior to settlement date and reported in the month of settlement date.

The number of vector elements is equal to nProjHPI + 1.  The array will always contain at least two elements if WAM is greater than or equal to 2 (even if nProjHPI is zero).  It will never contain more than Original Term - Age At Settlement elements.

paramsDir[200]
(char)  File system location (ie, full path, directory, share name, mount-point) of the AFT prepayment model parameter files.  The array size of 200 bytes is a system default and may be changed.  This parameter is meaningful only in the context of the "open" model.