! Z_SEMT0307_MKT.CDI #CMOVER_3.0C1 WHOLE_LOAN ! MAX_CF_VECTSIZE 551
!
!! Created by Intex Deal Maker v3.5.362 , subroutines 3.0f
!! 11/12/2003 3:22 PM
!
! Modeled in the Intex CMO Modeling Language, (GPWWS195)
! which is copyright (c) 2003 by Intex Solutions, Inc.
! Intex shall not be held liable for the accuracy of this data
! nor for the accuracy of information which is derived from this data.
!
COLLAT_GROUPS 1 2
!
!
DEFINE CONSTANT #OrigCollBal = 725975211.85
DEFINE CONSTANT #OrigCollBal1 = 362988095.12
DEFINE CONSTANT #OrigCollBal2 = 362987116.73
!
DEFINE CONSTANT #OrigBondBal = 725975211.85
DEFINE CONSTANT #OrigBondBal1 = 362988095.12
DEFINE CONSTANT #OrigBondBal2 = 362987116.73
!
DEFINE #BondBal1 = 378415211.85
DEFINE #BondBal2 = 378414111.85
!
FULL_DEALNAME: Sequoia Mortgage Trust 03-7
!
DEAL SIZE: $ 725975211.85
PRICING SPEED: 20% CPR
! ISSUE DATE: 20031101
SETTLEMENT DATE: 20031125
!
Record date delay: 19
!
DEFINE TR_INDEXDEPS_ALL
!
DEFINE TRANCHE "SUBORD_1", "SUBORD_2", "AR", "A1", "A2", "B1", "B2", "B3", "B4", "B5", "B6", "XB"
!
DEFINE SCHEDULE "SHIFT1%","SHIFT2%","GRP1_NAS_SCHED","GRP2_NAS_SCHED"
!
DEAL_CLOCK_INFO _
ISSUE_CDU_DATE 20031101 _
DEAL_FIRSTPAY_DATE 20031220
!
!
CREDIT_SUPPORT_BASIS DEAL
DEFINE DYNAMIC STICKY #NetRate = ( COLL_I_MISC("COUPON") ) / COLL_PREV_BAL * 1200
DEFINE DYNAMIC STICKY #NetRate1 = ( COLL_I_MISC("COUPON",1) ) / COLL_PREV_BAL(1) * 1200
DEFINE DYNAMIC STICKY #NetRate2 = ( COLL_I_MISC("COUPON",2) ) / COLL_PREV_BAL(2) * 1200
!
!
DEFINE TABLE "SI_LOSSA1" (6, 2) = "MONTH" "SHIFTR"
36.1 20%
132.1 30%
144.1 35%
156.1 40%
168.1 45%
180.1 50%
!
DEFINE TABLE "SI_LOSSA2" (6, 2) = "MONTH" "SHIFTR"
36.1 20%
132.1 30%
144.1 35%
156.1 40%
168.1 45%
180.1 50%
!
DEFINE #COUPON_ALL_SUBS = 0
DEFINE #COUPON_ALL_SUBS_B1 = 0
DEFINE #COUPON_ALL_SUBS_B2 = 0
DEFINE #COUPON_ALL_SUBS_B3 = 0
DEFINE #COUPON_ALL_SUBS_B4 = 0
DEFINE #COUPON_ALL_SUBS_B5 = 0
DEFINE #COUPON_ALL_SUBS_B6 = 0
DEFINE #COUPON_ALL_SUBS_XB = 0
!
TOLERANCE CLEANUP 0.00
!
TOLERANCE WRITEDOWN_0LOSS 1.00
!
!! DEFINE DYNAMIC #X1NAS_OptCoupon = (( #NetRate1 - (OPTIMAL_INTPMT("A1") - COUPONCAP_SHORTFALL("A1")) / BBAL("A1") * 1200 ) * 30 / NDAYS_ACCRUE_INT("X1_NAS"))
!! DEFINE DYNAMIC #X2NAS_OptCoupon = (( #NetRate2 - (OPTIMAL_INTPMT("A2") - COUPONCAP_SHORTFALL("A2")) / BBAL("A2") * 1200 ) * 30 / NDAYS_ACCRUE_INT("X2_NAS"))
!! DEFINE DYNAMIC #UncoveredIntX1NAS = MAX(0, -1 * #X1NAS_OptCoupon * BBAL("A1") / 1200 _
!! * NDAYS_ACCRUE_INT("X1_NAS") / 30)
!! DEFINE DYNAMIC #UncoveredIntX2NAS = MAX(0, -1 * #X2NAS_OptCoupon * BBAL("A2") / 1200 _
!! * NDAYS_ACCRUE_INT("X2_NAS") / 30)
!! DEFINE DYNAMIC #X1NAS_Coupon = MIN ( 0.95, MAX(0, #X1NAS_OptCoupon - _
!! #UncoveredIntX1NAS / ( BBAL("A1") ) * 1200 ) )
!! DEFINE DYNAMIC #X2NAS_Coupon = MIN ( 0.95, MAX(0, #X2NAS_OptCoupon - _
!! #UncoveredIntX2NAS / ( BBAL("A2") ) * 1200 ) )
!
!! DEFINE DYNAMIC #X1COMP_OptCoupon = (( #NetRate1 - (OPTIMAL_INTPMT("A1","X1_NAS") - COUPONCAP_SHORTFALL("A1")) / BBAL("A1") * 1200 ) * 30 / NDAYS_ACCRUE_INT("X1_COMP"))
!! DEFINE DYNAMIC #X2COMP_OptCoupon = (( #NetRate2 - (OPTIMAL_INTPMT("A2","X2_NAS") - COUPONCAP_SHORTFALL("A2")) / BBAL("A2") * 1200 ) * 30 / NDAYS_ACCRUE_INT("X2_COMP"))
!! DEFINE DYNAMIC #UncoveredIntX1COMP = MAX(0, -1 * #X1COMP_OptCoupon * BBAL("A1") / 1200 _
!! * NDAYS_ACCRUE_INT("X1_COMP") / 30)
!! DEFINE DYNAMIC #UncoveredIntX2COMP = MAX(0, -1 * #X2COMP_OptCoupon * BBAL("A2") / 1200 _
!! * NDAYS_ACCRUE_INT("X2_COMP") / 30)
!! DEFINE DYNAMIC #X1COMP_Coupon = MAX(0, #X1COMP_OptCoupon - _
!! #UncoveredIntX1COMP / ( BBAL("A1") ) * 1200 )
!! DEFINE DYNAMIC #X2COMP_Coupon = MAX(0, #X2COMP_OptCoupon - _
!! #UncoveredIntX2COMP / ( BBAL("A2") ) * 1200 )
!
INITIAL INDEX LIBOR_1MO 1.12
INITIAL INDEX LIBOR_6MO 1.27
!
!
Tranche "SUBORD_1" MODELING EXCHANGE
Block 15426995.12 FLOAT GROUP 1 _
DAYCOUNT 30360 BUSINESS_DAY NONE FREQ M _
Delay 19 Dated 20031101 Next 20031220
( #NetRate1 )
0 999
!
Tranche "SUBORD_2" MODELING EXCHANGE
Block 15427116.73 FLOAT GROUP 2 _
DAYCOUNT 30360 BUSINESS_DAY NONE FREQ M _
Delay 19 Dated 20031101 Next 20031220
( #NetRate2 )
0 999
!
Tranche "AR" SEN_WAC
Block 100.00 FLOAT GROUP 1 _
DAYCOUNT 30360 BUSINESS_DAY NONE FREQ M _
Delay 19 Dated 20031101 Next 20031220
( #NetRate1 )
0 999
!
Tranche "A1" SEN_FLT
Block 347561000.00 at 1.45 GROUP 1 FREQ M FLOAT RESET M _
COUPONCAP 30360 NONE ( ( COLL_I_MISC("COUPON",1) ) / COLL_PREV_BAL(1) * 1200 ); _
DAYCOUNT 30360 BUSINESS_DAY NONE _
Delay 0 Dated 20031125 Next 20031220
(1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 0.66 ELSE 0.33 ))
0 11.50
!
Tranche "A2" SEN_FLT
Block 347560000.00 at 1.62 GROUP 2 FREQ M FLOAT RESET S _
COUPONCAP 30360 NONE ( ( COLL_I_MISC("COUPON",2) ) / COLL_PREV_BAL(2) * 1200 ); _
DAYCOUNT 30360 BUSINESS_DAY NONE _
Delay 0 Dated 20031125 Next 20031220
(1 * LIBOR_6MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 0.7 ELSE 0.35 ))
0 11.500
!
Tranche "B1" JUN_FLT
Block 14518000.00 at 1.77 FREQ M FLOAT RESET M _
COUPONCAP 30360 NONE ( #COUPON_ALL_SUBS_B1 ); _
DAYCOUNT 30360 BUSINESS_DAY NONE _
Delay 0 Dated 20031125 Next 20031220
(1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 0.975 ELSE 0.65 ))
0 11.500
!
Tranche "B2" JUN_WAC
Block 5806000.00 FLOAT _
DAYCOUNT 30360 BUSINESS_DAY NONE FREQ M _
Delay 19 Dated 20031101 Next 20031220
( #COUPON_ALL_SUBS_B2 )
0 999
!
Tranche "B3" JUN_WAC
Block 4354000.00 FLOAT _
DAYCOUNT 30360 BUSINESS_DAY NONE FREQ M _
Delay 19 Dated 20031101 Next 20031220
( #COUPON_ALL_SUBS_B3 )
0 999
!
Tranche "B4" JUN_WAC
Block 2176000.00 FLOAT _
DAYCOUNT 30360 BUSINESS_DAY NONE FREQ M _
Delay 19 Dated 20031101 Next 20031220
( #COUPON_ALL_SUBS_B4 )
0 999
!
Tranche "B5" JUN_WAC
Block 1450000.00 FLOAT _
DAYCOUNT 30360 BUSINESS_DAY NONE FREQ M _
Delay 19 Dated 20031101 Next 20031220
( #COUPON_ALL_SUBS_B5 )
0 999
!
Tranche "B6" JUN_WAC
Block 2550111.85 FLOAT _
DAYCOUNT 30360 BUSINESS_DAY NONE FREQ M _
Delay 19 Dated 20031101 Next 20031220
( #COUPON_ALL_SUBS_B6 )
0 999
!
Tranche "XB" SEN_WAC_IO
Block 14518000.00 FLOAT NOTIONAL WITH BLOCK "B1#1" _
DAYCOUNT 30360 BUSINESS_DAY NONE FREQ M _
Delay 19 Dated 20031101 Next 20031220
( ( #COUPON_ALL_SUBS_XB) - ((OPTIMAL_INTPMT("B1#1") - COUPONCAP_SHORTFALL("B1#1")) / BBAL("B1#1") * 36000 / NDAYS_ACCRUE_INT("XB") ))
0 999
!
!
ifndef #_CMOVER_3.0D2 _
DEFINE EXCHANGE "SUBORD_1" + "SUBORD_2" = "B1" + "B2" + "B3" + "B4" + "B5" + "B6"
!
DEFINE PSEUDO_TRANCHE COLLAT GROUP 1 _
Delay 19 Dated 20031101 Next 20031220 Settle 20031125
DEFINE PSEUDO_TRANCHE COLLAT GROUP 2 _
Delay 19 Dated 20031101 Next 20031220 Settle 20031125
!
CLASS "X" NO_BUILD_TRANCHE _
= "XB"
CLASS "AR" NO_BUILD_TRANCHE _
= "AR"
CLASS "A1" NO_BUILD_TRANCHE _
SHORTFALL_PAYBACK COUPONCAP TRUE _
SHORTFALL_EARN_INT COUPONCAP TRUE _
= "A1"
CLASS "SNR_2" NO_BUILD_TRANCHE _
SHORTFALL_PAYBACK COUPONCAP TRUE _
SHORTFALL_EARN_INT COUPONCAP TRUE _
WRITEDOWN_LIMIT BALANCE (#OrigCollBal2); _
= "A2"
CLASS "SUBORD_1" DISTRIB_CLASS RULES _
= "SUBORD_1"
CLASS "SUBORD_2" DISTRIB_CLASS RULES _
= "SUBORD_2"
CLASS "B6" NO_BUILD_TRANCHE _
= "B6"
CLASS "B5" NO_BUILD_TRANCHE _
= "B5", SUPPORT_CLASSES = "B6"
CLASS "B4" NO_BUILD_TRANCHE _
= "B4", SUPPORT_CLASSES = "B6" "B5"
CLASS "B3" NO_BUILD_TRANCHE _
= "B3", SUPPORT_CLASSES = "B6" "B5" "B4"
CLASS "B2" NO_BUILD_TRANCHE _
= "B2", SUPPORT_CLASSES = "B6" "B5" "B4" "B3"
CLASS "B1" NO_BUILD_TRANCHE _
SHORTFALL_PAYBACK COUPONCAP TRUE _
SHORTFALL_EARN_INT COUPONCAP TRUE _
= "B1", SUPPORT_CLASSES = "B6" "B5" "B4" "B3" "B2"
CLASS "SNR_1" ALLOCATION _
= "AR" "A1"
CLASS "ALL_SUBS" DISTRIB_CLASS SUBORD WRITEDOWN_BAL SUBORD _
= "X" "B1" "B2" "B3" "B4" "B5" "B6" , _
COMBINE_CLASSES = "SUBORD_1" "SUBORD_2"
!
!
CLASS "GRP1" _
DISTRIB_CLASS RULES _
= "SNR_1" "SUBORD_1"
CLASS "GRP2" _
DISTRIB_CLASS RULES _
= "SNR_2" "SUBORD_2"
!
CLASS "ROOT" ROOT_LIST = "GRP1" "GRP2"
!
GROUP 0 ROOT = 1 2
!
!
DEFINE PSEUDO_TRANCHE CLASS "SNR_1" Delay 19 Dated 20031101 Next 20031220 DAYCOUNT 30360 BUSINESS_DAY NONE
!
DEFINE PSEUDO_TRANCHE CLASS "SUBORD_1" Delay 19 Dated 20031101 Next 20031220 DAYCOUNT 30360 BUSINESS_DAY NONE
!
DEFINE PSEUDO_TRANCHE CLASS "SUBORD_2" Delay 19 Dated 20031101 Next 20031220 DAYCOUNT 30360 BUSINESS_DAY NONE
!
DEFINE PSEUDO_TRANCHE CLASS "ALL_SUBS" Delay 19 Dated 20031101 Next 20031220 DAYCOUNT 30360 BUSINESS_DAY NONE
!
!
CROSSOVER When 0
!
DEFINE DYNAMIC #COUPON_ALL_SUBS = OPTIMAL_INTPMT("SUBORD_1", "SUBORD_2") / BBAL("SUBORD_1", "SUBORD_2") * 36000 / NDAYS_ACCRUE_INT("ALL_SUBS#1")
DEFINE DYNAMIC #COUPON_ALL_SUBS_B1 = #COUPON_ALL_SUBS * NDAYS_ACCRUE_INT("ALL_SUBS#1") / NDAYS_ACCRUE_INT("B1#1")
DEFINE DYNAMIC #COUPON_ALL_SUBS_B2 = #COUPON_ALL_SUBS * NDAYS_ACCRUE_INT("ALL_SUBS#1") / NDAYS_ACCRUE_INT("B2#1")
DEFINE DYNAMIC #COUPON_ALL_SUBS_B3 = #COUPON_ALL_SUBS * NDAYS_ACCRUE_INT("ALL_SUBS#1") / NDAYS_ACCRUE_INT("B3#1")
DEFINE DYNAMIC #COUPON_ALL_SUBS_B4 = #COUPON_ALL_SUBS * NDAYS_ACCRUE_INT("ALL_SUBS#1") / NDAYS_ACCRUE_INT("B4#1")
DEFINE DYNAMIC #COUPON_ALL_SUBS_B5 = #COUPON_ALL_SUBS * NDAYS_ACCRUE_INT("ALL_SUBS#1") / NDAYS_ACCRUE_INT("B5#1")
DEFINE DYNAMIC #COUPON_ALL_SUBS_B6 = #COUPON_ALL_SUBS * NDAYS_ACCRUE_INT("ALL_SUBS#1") / NDAYS_ACCRUE_INT("B6#1")
DEFINE DYNAMIC #COUPON_ALL_SUBS_XB = #COUPON_ALL_SUBS * NDAYS_ACCRUE_INT("ALL_SUBS#1") / NDAYS_ACCRUE_INT("XB#1")
!
OPTIONAL REDEMPTION: "Cleanup" _
COLL_FRAC 10% _
PRICE_P ( COLL_BAL ); _
DISTR_P RULES "OPTR_DEAL"
!
!
INTEREST_SHORTFALL GROUP 1 FULL_PREPAY Compensate Pro_rata _
PARTIAL_PREPAY Compensate Pro_rata _
LOSS Compensate Pro_rata
!
INTEREST_SHORTFALL GROUP 2 FULL_PREPAY Compensate Pro_rata _
PARTIAL_PREPAY Compensate Pro_rata _
LOSS Compensate Pro_rata
!
!
CMO Block Payment Rules
------------------------------------
!
calculate : #OrigSenPct1 = 100 * ORIG_BBAL("SNR_1") / #OrigCollBal1
!
calculate : #SenPct1 = _
IF BBAL("B1", "B2", "B3", "B4", "B5", "B6") GT 0.01 _
THEN MIN(100, 100 * BBAL("SNR_1") / COLL_PREV_BAL(1)) _
ELSE 100
!
calculate : #OrigSubBal1 = #OrigCollBal1 - ORIG_BBAL("SNR_1")
calculate : #SubBal1 = MAX(0, COLL_PREV_BAL(1) - BBAL("SNR_1"))
!
calculate : #OrigSenPct2 = 100 * ORIG_BBAL("SNR_2") / #OrigCollBal2
!
calculate : #SenPct2 = _
IF BBAL("B1", "B2", "B3", "B4", "B5", "B6") GT 0.01 _
THEN MIN(100, 100 * BBAL("SNR_2") / COLL_PREV_BAL(2)) _
ELSE 100
!
calculate : #OrigSubBal2 = #OrigCollBal2 - ORIG_BBAL("SNR_2")
calculate : #SubBal2 = MAX(0, COLL_PREV_BAL(2) - BBAL("SNR_2"))
!
calculate : #ReduceTestA1 = LOOKUP_TBL( "STEP", CURMONTH , "SI_LOSSA1", "MONTH", "SHIFTR" )
!
calculate : #StepProviso11 = IF COLL_PREV_BAL(1) GT 0.01 _
THEN (( AVG_DELINQ_BAL(2,2,1) < 50% * #SubBal1) AND _
( DELINQ_LOSS_ACCUM(1) < #OrigSubBal1 * #ReduceTestA1 )) _
ELSE 1
!
calculate : #ReduceTestA2 = LOOKUP_TBL( "STEP", CURMONTH , "SI_LOSSA2", "MONTH", "SHIFTR" )
!
calculate : #StepProviso12 = IF COLL_PREV_BAL(2) GT 0.01 _
THEN (( AVG_DELINQ_BAL(2,2,2) < 50% * #SubBal2) AND _
( DELINQ_LOSS_ACCUM(2) < #OrigSubBal2 * #ReduceTestA2 )) _
ELSE 1
!
calculate : #Sub2TimesTestAgg = BBAL("SUBORD_1", "SUBORD_2") / BBAL("SNR_1", "SUBORD_1", "SNR_2", "SUBORD_2") _
GE 2 * ORIG_BBAL("SUBORD_1", "SUBORD_2")/ORIG_BBAL("SNR_1", "SUBORD_1", "SNR_2", "SUBORD_2")
!
calculate : #SenPrep1 = _
IF (#SenPct1 > #OrigSenPct1) OR (#SenPct2 > #OrigSenPct2) _
THEN 100 _
ELSE #SenPct1 + SHIFT%(1) * (100-#SenPct1), _
Reduce_SHIFT%_when GROUP 1 SLIPPERY FAILVAL_100PCT _
(#StepProviso11 AND #StepProviso12)
!
calculate : #SenPrep2 = _
IF (#SenPct1 > #OrigSenPct1) OR (#SenPct2 > #OrigSenPct2) _
THEN 100 _
ELSE #SenPct2 + SHIFT%(2) * (100-#SenPct2), _
Reduce_SHIFT%_when GROUP 2 SLIPPERY FAILVAL_100PCT _
(#StepProviso11 AND #StepProviso12)
!
!
calculate : #SenPrep1 = _
IF (#SenPct1 > #OrigSenPct1) OR (#SenPct2 > #OrigSenPct2) _
THEN 100 _
ELSE IF #Sub2TimesTestAgg and ( #StepProviso11 ) _
THEN IF CURMONTH LE 36 _
THEN #SenPct1 + (50% * (100-#SenPct1)) _
ELSE #SenPct1 _
ELSE #SenPrep1
!
calculate : #SenPrep2 = _
IF (#SenPct1 > #OrigSenPct1) OR (#SenPct2 > #OrigSenPct2) _
THEN 100 _
ELSE IF #Sub2TimesTestAgg and ( #StepProviso12 ) _
THEN IF CURMONTH LE 36 _
THEN #SenPct2 + (50% * (100-#SenPct2)) _
ELSE #SenPct2 _
ELSE #SenPrep2
!
calculate : #SENRECOV1 = _
MAX( 0, MIN( #SenPct1/100 * DELINQ_LIQUIDATE(1), _
#SenPrep1/100 * DELINQ_RECOVER(1)))
!
calculate : #SENRECOV2 = _
MAX( 0, MIN( #SenPct2/100 * DELINQ_LIQUIDATE(2), _
#SenPrep2/100 * DELINQ_RECOVER(2)))
!
calculate: "SNR_1" _
NO_CHECK SCHEDULED GROUP 1 PERCENT LIMIT V0 = #SenPrep1 , _
NO_CHECK PREPAY GROUP 1 PERCENT LIMIT V1 = #SenPrep1 , _
NO_CHECK RECOVER GROUP 1 AMOUNT LIMIT V3 = #SENRECOV1
!
calculate : #SenSchedAlloc1 = V0 / 100 * COLL_P_SCHED(1)
calculate : #SenPrepayAlloc1 = V1 / 100 * COLL_P_PREPAY(1)
calculate : #SenRecoverAlloc1 = V3
!
calculate: "SNR_2" _
NO_CHECK SCHEDULED GROUP 2 PERCENT LIMIT V0 = #SenPrep2 , _
NO_CHECK PREPAY GROUP 2 PERCENT LIMIT V1 = #SenPrep2 , _
NO_CHECK RECOVER GROUP 2 AMOUNT LIMIT V3 = #SENRECOV2
!
calculate : #SenSchedAlloc2 = V0 / 100 * COLL_P_SCHED(2)
calculate : #SenPrepayAlloc2 = V1 / 100 * COLL_P_PREPAY(2)
calculate : #SenRecoverAlloc2 = V3
!
calculate : #SubSched1 = MAX( 0, COLL_P_SCHED(1) - #SenSchedAlloc1 )
calculate : #SubPrepay1 = MAX( 0, COLL_P_PREPAY(1) - #SenPrepayAlloc1 )
calculate : #SubRecov1 = MAX( 0, DELINQ_RECOVER(1) - #SenRecoverAlloc1 )
!
calculate: "SUBORD_1" _
NO_CHECK SCHEDULED GROUP 1 AMOUNT = #SubSched1 , _
NO_CHECK PREPAY GROUP 1 AMOUNT = #SubPrepay1 , _
NO_CHECK RECOVER GROUP 1 AMOUNT = #SubRecov1
!
calculate : #SubSched2 = MAX( 0, COLL_P_SCHED(2) - #SenSchedAlloc2 )
calculate : #SubPrepay2 = MAX( 0, COLL_P_PREPAY(2) - #SenPrepayAlloc2 )
calculate : #SubRecov2 = MAX( 0, DELINQ_RECOVER(2) - #SenRecoverAlloc2 )
!
calculate: "SUBORD_2" _
NO_CHECK SCHEDULED GROUP 2 AMOUNT = #SubSched2 , _
NO_CHECK PREPAY GROUP 2 AMOUNT = #SubPrepay2 , _
NO_CHECK RECOVER GROUP 2 AMOUNT = #SubRecov2
!
calculate : #SubSched = #SubSched1 + #SubSched2
calculate : #SubRecov = #SubRecov1 + #SubRecov2
calculate : #SubPrepay = #SubPrepay1 + #SubPrepay2
!
calculate: "B1" _
NO_CHECK SCHEDULED AMOUNT = #SubSched * SHARE("B1") , _
NO_CHECK PREPAY AMOUNT = #SubPrepay * SUB_SHARE("B1") , _
NO_CHECK RECOVER AMOUNT = #SubRecov * SHARE("B1")
!
calculate: "B2" _
NO_CHECK SCHEDULED AMOUNT = #SubSched * SHARE("B2") , _
NO_CHECK PREPAY AMOUNT = #SubPrepay * SUB_SHARE("B2") , _
NO_CHECK RECOVER AMOUNT = #SubRecov * SHARE("B2")
!
calculate: "B3" _
NO_CHECK SCHEDULED AMOUNT = #SubSched * SHARE("B3") , _
NO_CHECK PREPAY AMOUNT = #SubPrepay * SUB_SHARE("B3") , _
NO_CHECK RECOVER AMOUNT = #SubRecov * SHARE("B3")
!
calculate: "B4" _
NO_CHECK SCHEDULED AMOUNT = #SubSched * SHARE("B4") , _
NO_CHECK PREPAY AMOUNT = #SubPrepay * SUB_SHARE("B4") , _
NO_CHECK RECOVER AMOUNT = #SubRecov * SHARE("B4")
!
calculate: "B5" _
NO_CHECK SCHEDULED AMOUNT = #SubSched * SHARE("B5") , _
NO_CHECK PREPAY AMOUNT = #SubPrepay * SUB_SHARE("B5") , _
NO_CHECK RECOVER AMOUNT = #SubRecov * SHARE("B5")
!
calculate: "B6" _
NO_CHECK SCHEDULED AMOUNT = #SubSched * SHARE("B6") , _
NO_CHECK PREPAY AMOUNT = #SubPrepay * SUB_SHARE("B6") , _
NO_CHECK RECOVER AMOUNT = #SubRecov * SHARE("B6")
!
------------------------------------
pay : CLASS INTEREST PRO_RATA ("SNR_1" )
pay : CLASS INTSHORT PRO_RATA ("SNR_1" )
pay : CLASS PRINCIPAL SEQUENTIAL ( "SNR_1" )
------------------------------------
pay : CLASS INTEREST PRO_RATA ("SNR_2" )
pay : CLASS INTSHORT PRO_RATA ("SNR_2" )
pay : CLASS PRINCIPAL SEQUENTIAL ( "SNR_2" )
------------------------------------
pay : CLASS INTEREST PRO_RATA ( "SUBORD_1" )
pay : CLASS INTSHORT PRO_RATA ( "SUBORD_1" )
------------------------------------
pay : CLASS INTEREST PRO_RATA ( "SUBORD_2" )
pay : CLASS INTSHORT PRO_RATA ( "SUBORD_2" )
------------------------------------
from : CLASS ( "GRP1"; "GRP2" )
pay : CLASS INTEREST PRO_RATA ( "SUBORD_1"; "SUBORD_2" )
pay : CLASS INTSHORT PRO_RATA ( "SUBORD_1"; "SUBORD_2" )
------------------------------------
pay : CLASS PRINCIPAL SEQUENTIAL ( "SUBORD_1" )
------------------------------------
pay : CLASS PRINCIPAL SEQUENTIAL ( "SUBORD_2" )
------------------------------------
from : CLASS ( "GRP1"; "GRP2" )
pay : CLASS PRINCIPAL PRO_RATA ( "SUBORD_1"; "SUBORD_2" )
------------------------------------
calculate : #P_SNR_1 = BBAL("AR","A1") - BBAL("SNR_1")
------------------------------------
from : CLASS ( "SNR_1" )
pay : CLASS INTEREST SEQUENTIAL ( "AR" )
pay : CLASS INTSHORT SEQUENTIAL ( "AR" )
------------------------------------
from : CLASS ( "SNR_1" )
from : SUBACCOUNT ( #P_SNR_1 )
pay : CLASS BALANCE SEQUENTIAL ( "AR" )
------------------------------------
from : CLASS ( "SNR_1" )
pay : CLASS INTEREST SEQUENTIAL ( "A1" )
pay : CLASS INTSHORT SEQUENTIAL ( "A1" )
------------------------------------
from : CLASS ( "SNR_1" )
from : SUBACCOUNT ( #P_SNR_1 )
pay : CLASS BALANCE SEQUENTIAL ( "A1" )
------------------------------------
!
------------------------------------
from : CLASS ( "AR" )
pay : SEQUENTIAL ( "AR#1" )
------------------------------------
from : CLASS ( "A1" )
pay : SEQUENTIAL ( "A1#1" )
------------------------------------
!
------------------------------------
from : CLASS ( "SNR_2" )
pay : SEQUENTIAL ( "A2#1" )
------------------------------------
------------------------------------
from : CLASS ( "SUBORD_1" ; "SUBORD_2" )
pay : CLASS INTEREST PRO_RATA ( "ALL_SUBS" )
pay : CLASS INTSHORT PRO_RATA ( "ALL_SUBS" )
pay : CLASS BALANCE SEQUENTIAL ( "ALL_SUBS" )
------------------------------------
!
from : CLASS ( "ALL_SUBS" )
pay : CLASS INTEREST SEQUENTIAL ("X")
pay : CLASS INTSHORT SEQUENTIAL ("X")
------------------------------------
------------------------------------ SUB COMBO DISTRIBUTION
from : CLASS ("ALL_SUBS" )
pay : CLASS ENTIRETY SEQUENTIAL ("B1" )
pay : CLASS ENTIRETY SEQUENTIAL ("B2" )
pay : CLASS ENTIRETY SEQUENTIAL ("B3" )
pay : CLASS ENTIRETY SEQUENTIAL ("B4" )
pay : CLASS ENTIRETY SEQUENTIAL ("B5" )
pay : CLASS ENTIRETY SEQUENTIAL ("B6" )
------------------------------------
------------------------------------ CLEAN UP
from : CLASS ("ALL_SUBS" )
pay : CLASS BALANCE SEQUENTIAL ("B1", "B2", "B3", "B4", "B5", "B6" )
------------------------------------
!
------------------------------------
from : CLASS ( "B1" )
pay : SEQUENTIAL ( "B1#1" )
------------------------------------
from : CLASS ( "B2" )
pay : SEQUENTIAL ( "B2#1" )
------------------------------------
from : CLASS ( "B3" )
pay : SEQUENTIAL ( "B3#1" )
------------------------------------
from : CLASS ( "B4" )
pay : SEQUENTIAL ( "B4#1" )
------------------------------------
from : CLASS ( "B5" )
pay : SEQUENTIAL ( "B5#1" )
------------------------------------
from : CLASS ( "B6" )
pay : SEQUENTIAL ( "B6#1" )
------------------------------------
!
------------------------------------ PAYDOWN SUBORD TRANCHES
calculate : #PrincReduce = BBAL("B1#1", "B2#1", "B3#1", "B4#1", "B5#1", "B6#1") - BBAL("ALL_SUBS")
calculate : #SubPrinc1 = BBAL("SUBORD_1#1") - BBAL("SUBORD_1")
calculate : #SubPrinc2 = BBAL("SUBORD_2#1") - BBAL("SUBORD_2")
calculate : #PrincReduce1 = #PrincReduce * #SubPrinc1 / ( #SubPrinc1 + #SubPrinc2 )
calculate : #PrincReduce2 = #PrincReduce * #SubPrinc2 / ( #SubPrinc1 + #SubPrinc2 )
------------------------------------
subject to : CEILING ( ( #SubPrinc1 - #PrincReduce1 ) )
pay : SEQUENTIAL ( "SUBORD_1#1" )
------------------------------------
subject to : CEILING ( ( #SubPrinc2 - #PrincReduce2 ) )
pay : SEQUENTIAL ( "SUBORD_2#1" )
------------------------------------
!
from : CLASS ( "GRP1" )
pay : CLASS COUPONCAP_SHORT PRO_RATA ( "A1" )
------------------------------------
from : CLASS ( "GRP1" )
pay : CLASS COUPONCAP_SHORT PRO_RATA ( "B1" )
------------------------------------
from : CLASS ( "GRP2" )
pay : CLASS COUPONCAP_SHORT PRO_RATA ( "SNR_2" )
------------------------------------
from : CLASS ( "GRP2" )
pay : CLASS COUPONCAP_SHORT PRO_RATA ( "B1" )
------------------------------------
from : CLASS ( "ALL_SUBS" )
pay : CLASS MORE_INTEREST SEQUENTIAL ("GRP1")
------------------------------------
------------------------------------ MANUAL WRITEDOWNS
calculate : #ReduceSubord1 = MIN( BBAL("SUBORD_1#1"), BBAL( "AR#1", "A1#1", "SUBORD_1#1" ) - COLL_BAL(1))
------------------------------------
when : IS_THERE ( "B1#1","B2#1","B3#1","B4#1","B5#1","B6#1" )
pay : DECREMENT ( BALANCE "SUBORD_1#1", BY #ReduceSubord1 )
------------------------------------
calculate : #ReduceSubord2 = MIN( BBAL("SUBORD_2#1"), BBAL( "A2#1", "SUBORD_2#1" ) - COLL_BAL(2))
------------------------------------
when : IS_THERE ( "B1#1","B2#1","B3#1","B4#1","B5#1","B6#1" )
pay : DECREMENT ( BALANCE "SUBORD_2#1", BY #ReduceSubord2 )
------------------------------------
calculate : #MoreReduceSubord1 = MIN( BBAL("SUBORD_1#1"), BBAL("SUBORD_1#1")/BBAL("SUBORD_1#1", "SUBORD_2#1") * ( BBAL("AR#1", "A1#1", "SUBORD_1#1", "A2#1", "SUBORD_2#1") - COLL_BAL(1,2)))
calculate : #MoreReduceSubord2 = MIN( BBAL("SUBORD_2#1"), BBAL("SUBORD_2#1")/BBAL("SUBORD_1#1", "SUBORD_2#1") * ( BBAL("AR#1", "A1#1", "SUBORD_1#1", "A2#1", "SUBORD_2#1") - COLL_BAL(1,2)))
------------------------------------
when : IS_TRUE ( (BBAL("B1#1","B2#1","B3#1","B4#1","B5#1","B6#1") GT 0.01 ) AND (( BBAL("SUBORD_2#1") LT 0.01 ) ))
pay : DECREMENT ( BALANCE "SUBORD_1#1", BY #MoreReduceSubord1 )
------------------------------------
when : IS_TRUE ( (BBAL("B1#1","B2#1","B3#1","B4#1","B5#1","B6#1") GT 0.01 ) AND (( BBAL("SUBORD_1#1") LT 0.01 ) ))
pay : DECREMENT ( BALANCE "SUBORD_2#1", BY #MoreReduceSubord2 )
------------------------------------
calculate : #WriteDown = BBAL( "AR#1", "A1#1", "B1#1", "B2#1", "B3#1", "B4#1", "B5#1", "B6#1", "A2#1" ) - COLL_BAL(1,2)
------------------------------------
from : SUBACCOUNT ( #WriteDown )
pay : WRITEDOWN PRO_RATA ( "B6#1" )
pay : WRITEDOWN PRO_RATA ( "B5#1" )
pay : WRITEDOWN PRO_RATA ( "B4#1" )
pay : WRITEDOWN PRO_RATA ( "B3#1" )
pay : WRITEDOWN PRO_RATA ( "B2#1" )
pay : WRITEDOWN PRO_RATA ( "B1#1" )
------------------------------------
calculate : #SenWriteDown1 = MAX(0, BBAL( "AR#1", "A1#1" ) / BBAL( "AR#1", "A1#1", "A2#1" ) * #WriteDown)
------------------------------------
calculate : #SenWriteDown2 = MAX(0, BBAL( "A2#1" ) / BBAL( "AR#1", "A1#1", "A2#1" ) * #WriteDown)
------------------------------------
from : SUBACCOUNT ( #WriteDown, #SenWriteDown1 )
pay : WRITEDOWN SEQUENTIAL ( "A1#1" )
------------------------------------
from : SUBACCOUNT ( #WriteDown, #SenWriteDown1 )
pay : WRITEDOWN SEQUENTIAL ( "AR#1" )
------------------------------------
from : SUBACCOUNT ( #WriteDown, #SenWriteDown2 )
pay : WRITEDOWN SEQUENTIAL ( "A2#1" )
------------------------------------
!
calculate : #BondBal1 = BBAL("AR#1","A1#1","SUBORD_1#1")
------------------------------------
calculate : #BondBal2 = BBAL("A2#1","SUBORD_2#1")
------------------------------------
------------------------------------
calculate: #CallBalGrp1 = COLL_BAL(1)
calculate: #CallBalGrp2 = COLL_BAL(2)
------------------------------------
---------------------- SECTION: "OPTR_DEAL"
------------------------------------
from : CASH_ACCOUNT (100)
subject to : CEILING ( #CallBalGrp1)
pay : CLASS BALANCE SEQUENTIAL ( "GRP1" )
pay : CLASS MORE_INTEREST SEQUENTIAL ( "GRP1" )
------------------------------------
from : CLASS ( "GRP1" )
pay : SEQUENTIAL ( "AR#1", "A1#1" )
------------------------------------
from : CLASS ( "GRP1" )
pay : CLASS BALANCE SEQUENTIAL ( "SUBORD_1" )
------------------------------------
subject to : CEILING ( (BBAL("SUBORD_1#1")-BBAL("SUBORD_1")) )
pay : SEQUENTIAL ( "SUBORD_1#1" )
------------------------------------
from : CLASS ( "SUBORD_1" )
pay : CLASS BALANCE SEQUENTIAL ("ALL_SUBS")
------------------------------------
from : CLASS ( "ALL_SUBS" )
pay : CLASS BALANCE SEQUENTIAL ("B1","B2","B3","B4","B5","B6")
------------------------------------
from : CLASS ( "B1" )
pay : SEQUENTIAL ( "B1#1" )
------------------------------------
from : CLASS ( "B2" )
pay : SEQUENTIAL ( "B2#1" )
------------------------------------
from : CLASS ( "B3" )
pay : SEQUENTIAL ( "B3#1" )
------------------------------------
from : CLASS ( "B4" )
pay : SEQUENTIAL ( "B4#1" )
------------------------------------
from : CLASS ( "B5" )
pay : SEQUENTIAL ( "B5#1" )
------------------------------------
from : CLASS ( "B6" )
pay : SEQUENTIAL ( "B6#1" )
------------------------------------
------------------------------------
from : CASH_ACCOUNT (100)
subject to : CEILING ( #CallBalGrp2)
pay : CLASS BALANCE SEQUENTIAL ( "GRP2" )
pay : CLASS MORE_INTEREST SEQUENTIAL ( "GRP2" )
------------------------------------
from : CLASS ( "GRP2" )
pay : SEQUENTIAL ( "A2#1" )
------------------------------------
from : CLASS ( "GRP2" )
pay : CLASS BALANCE SEQUENTIAL ( "SUBORD_2" )
------------------------------------
subject to : CEILING ( (BBAL("SUBORD_2#1")-BBAL("SUBORD_2")) )
pay : SEQUENTIAL ( "SUBORD_2#1" )
------------------------------------
from : CLASS ( "SUBORD_2" )
pay : CLASS BALANCE SEQUENTIAL ("ALL_SUBS")
------------------------------------
from : CLASS ( "ALL_SUBS" )
pay : CLASS BALANCE SEQUENTIAL ("B1","B2","B3","B4","B5","B6")
------------------------------------
from : CLASS ( "B1" )
pay : SEQUENTIAL ( "B1#1" )
------------------------------------
from : CLASS ( "B2" )
pay : SEQUENTIAL ( "B2#1" )
------------------------------------
from : CLASS ( "B3" )
pay : SEQUENTIAL ( "B3#1" )
------------------------------------
from : CLASS ( "B4" )
pay : SEQUENTIAL ( "B4#1" )
------------------------------------
from : CLASS ( "B5" )
pay : SEQUENTIAL ( "B5#1" )
------------------------------------
from : CLASS ( "B6" )
pay : SEQUENTIAL ( "B6#1" )
------------------------------------
!
Schedule "SHIFT1%"
Declare
SHIFTINT GROUP 1
120 100%
132 70%
144 60%
156 40%
168 20%
180 0%
!
!
Schedule "SHIFT2%"
Declare
SHIFTINT GROUP 2
120 100%
132 70%
144 60%
156 40%
168 20%
180 0%
!
Schedule "GRP1_NAS_SCHED" GROUP 1
DECLARE
VALUES OK
20031220 347,561,000.00
20040120 334,761,463.08
20040220 322,413,165.22
20040320 310,500,291.36
20040420 299,007,487.65
20040520 287,919,941.61
20040620 277,223,363.12
20040720 266,903,965.93
20040820 256,948,449.92
20040920 247,343,983.96
20041020 238,078,189.38
20041120 229,139,123.99
20041220 220,515,266.71
20050120 212,195,502.71
20050220 204,169,109.10
20050320 196,425,741.09
20050420 188,955,418.68
20050520 181,748,513.76
20050620 174,795,737.74
20050720 168,088,129.56
20050820 161,617,044.16
20050920 155,646,133.59
20051020 149,890,563.94
20051120 144,342,657.33
20051220 138,995,008.12
20060120 133,840,473.27
20060220 128,872,163.05
20060320 124,083,432.09
20060420 119,467,870.74
20060520 115,019,296.72
20060620 110,731,747.10
20060720 106,599,470.53
20060820 102,616,919.75
20060920 98,778,744.37
20061020 95,079,783.93
20061120 91,515,061.15
20061220 88,079,775.47
20070120 84,973,918.39
20070220 81,977,579.62
20070320 79,086,897.34
20070420 76,298,145.90
20070520 73,607,731.04
20070620 0.00
!
Schedule "GRP2_NAS_SCHED" GROUP 2
DECLARE
VALUES OK
20031220 347,560,000.00
20040120 334,760,397.58
20040220 322,412,133.00
20040320 310,499,291.26
20040420 299,006,518.52
20040520 287,919,002.37
20040620 277,222,452.71
20040720 266,903,083.33
20040820 256,947,594.15
20040920 247,343,154.09
20041020 238,077,384.48
20041120 229,138,343.18
20041220 220,514,509.14
20050120 212,194,767.57
20050220 204,168,395.60
20050320 196,425,048.46
20050420 188,954,746.18
20050520 181,747,860.68
20050620 174,795,103.41
20050720 168,087,513.31
20050820 161,616,445.35
20050920 155,645,553.75
20051020 149,890,002.44
20051120 144,342,113.56
20051220 138,994,481.49
20060120 133,839,963.22
20060220 128,871,669.02
20060320 124,082,953.55
20060420 119,467,407.18
20060520 115,018,847.65
20060620 110,731,312.04
20060720 106,599,049.02
20060820 102,616,511.33
20060920 98,778,348.62
20061020 95,079,400.44
20061120 91,514,689.51
20061220 88,079,415.29
20070120 84,973,570.91
20070220 81,977,244.39
20070320 79,086,573.93
20070420 76,297,833.90
20070520 73,607,430.04
20070620 0.00
!
!
Collateral
!
! Factor --Delay--
! Type Date P/Y BV Use BV for 0
WL 20031101 9999 9999 FALSE
!
! Pool# Type Gross Current Original --Fee-- Maturity Orig ARM Gross #mos #mos P#mos P#mos Life Reset Life Max Look
! Coupon Factor Balance P/Y BV P/Y BV Term Index Margin ToRst RstPer ToRst RstPer Cap Cap Floor Negam Back
!! BEGINNING OF COLLATERAL
M 1 "Greenpoint LIBOR 1 M" WL 00 WAC 2.88591 ( 38104049.47 / 38104049.47 ); 38104049.47 0.382500 0.382500 359:1 359:1 360 NO_CHECK ARM LIBOR_1MO 1.88671 2 1 SYNC_INT &nbs p; 11.99478 999 1.88671 0 0 AMORT NONE FOR 60 GROUP 1
M 2 "Morgan Stanley LIBOR 1 M" WL 00 WAC 2.70555 ( 45623177.68 / 45623177.68 ); 45623177.68 0.382500 0.382500 299:1 299:1 300 NO_CHECK ARM LIBOR_1MO 1.58055 2 1 SYNC_INT 12.00000 999 1.58055 0 0 AMORT NONE FOR 120 GROUP 1
M 3 "Greenpoint LIBOR 6 M" WL 00 WAC 3.00963 ( 256789776.62 / 256789776.62 ); 256789776.62 0.382500 0.382500 359:1 359:1 360 NO_CHECK ARM LIBOR_6MO 1.93439 6 6 SYNC_INT & nbsp; 11.99968 999 1.93439 0 0 AMORT NONE FOR 60 GROUP 1 TEASER
M 4 "Morgan Stanley LIBOR 6 M" WL 00 WAC 2.83307 ( 22471091.35 / 22471091.35 ); 22471091.35 0.382500 0.382500 298:2 298:2 300 NO_CHECK ARM LIBOR_6MO 1.64436 5 6 SYNC_INT 12.00000 999 1.64436 0 0 AMORT NONE FOR 120 GROUP 1 TEASER
M 5 "Greenpoint LIBOR 6 M" WL 00 WAC 2.98122 ( 337483665.54 / 337483665.54 ); 337483665.54 0.382500 0.382500 359:1 359:1 360 NO_CHECK ARM LIBOR_6MO 1.90829 6 6 SYNC_INT & nbsp; 12.00493 999 1.90829 0 0 AMORT NONE FOR 60 GROUP 2 TEASER
M 6 "Morgan Stanley LIBOR 6 M" WL 00 WAC 2.87337 ( 25503451.19 / 25503451.19 ); 25503451.19 0.382500 0.382500 298:2 298:2 300 NO_CHECK ARM LIBOR_6MO 1.68288 5 6 SYNC_INT 12.00000 999 1.68288 0 0 AMORT NONE FOR 120 GROUP 2 TEASER