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
- Input / Output
- Required for projecting prepayments.
- Used by the functions EspPrep_PrepayModelMThread and EspPrep_PrepayAndDefaultModelMThread to acquire projected mortgage rates, settlement date, and - for the open version of the AFT model - the file system location (path, directory or folder) of the AFT prepayment model parameter files.
- Returns a pointer to an array of prepayment projections expressed as single month mortalities (SMM).
- Optionally returns a pointer to an array of monthly default projections.
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.