Calculations

The lp_calc block provides functionality specific to the CoreLogic Securities data set.

Calculations to be performed by the library are specified via the calcs attribute.

A very basic example:

<import path="pub.lib.ucl.prod.mbscalc"/>
<insert block="lp_calc" calcs="cpr"/>

Multiple calculations can be specified by placing valid values for calcs in a comma-separated list, as follows:

<import path="pub.lib.ucl.prod.mbscalc"/>
<insert block="lp_calc" calcs="cpr,cdr"/>

Valid values for the calcs attribute

calcs
A comma-separated list of the valid calculations for the lp_calc implementation of the library.

Valid values are:

cpr
Calculates the Conditional Prepayment Rate.

The cpr calculation also accepts the custom input: ncpr.

See the Inputs section for details on ncpr.

cdr
Calculates the Constant Default Rate.

The cdr calculation also accept the custom input: ncdr.

See the Inputs section for details on ncdr.

surveillance
Calculates many important deal-level and pool-level metrics distributed over time to provide a complete Surveillance Report.
The following list details some of the data points returned by the surveillance calculation:
  • CPR
  • CDR
  • Roll Rates
  • Weighted Average Parameters (LTV, Current LTV, FICO, etc.)
cum_defaults
Applies the remaining balance at the time of liquidation.

Loans with Loss or Loans with 9/F/R DQ final non-zero delinquency status are considered defaulted loans by the calculation.

cum_loss
Uses the Loss History Time Series in the CoreLogic data set (pub.fin.lp[abs|mbs].loss) to attribute the loss/recovery at the at the time the losses were realized.
severity
Calculates the ratio of the loss to the remaining balance.
roll_rates
Calculates roll rates for the selected population over a period specified using the nroll input.

When nroll is not provided with a value, it defaults to 1.

recovery_lag
Calculates the number of months for a delinquent loan to cure.
servicer_advance
Combines reported servicer advances from the CoreLogic Advance table with inferred advances, based on the difference between balance and investor balance, when servicer advance information is not available.

Setting default logic override

<import path="pub.lib.ucl.beta_latest.lib_mbscalc_beta" library=""/>
<insert block="lp_calc" calcs="roll_rates" cusips="46630BAR7" 
 default_logic="if((loss_amt_sum<>0 | (has_loss='N' & ots_stat_sum='F' 'R')
 & exception=6)=1; inv_bal_sum; 0)"
 hpi="ofheo"/>