lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [5630] Distinguish general- and separate-account withdrawa


From: Greg Chicares
Subject: [lmi-commits] [5630] Distinguish general- and separate-account withdrawal limits
Date: Thu, 20 Dec 2012 12:06:22 +0000

Revision: 5630
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5630
Author:   chicares
Date:     2012-12-20 12:06:21 +0000 (Thu, 20 Dec 2012)
Log Message:
-----------
Distinguish general- and separate-account withdrawal limits

Modified Paths:
--------------
    lmi/trunk/ChangeLog
    lmi/trunk/basic_values.hpp
    lmi/trunk/dbdict.cpp
    lmi/trunk/dbdict.hpp
    lmi/trunk/dbnames.hpp
    lmi/trunk/dbnames.xpp
    lmi/trunk/ihs_avmly.cpp
    lmi/trunk/ihs_basicval.cpp

Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2012-12-19 23:12:43 UTC (rev 5629)
+++ lmi/trunk/ChangeLog 2012-12-20 12:06:21 UTC (rev 5630)
@@ -31148,3 +31148,19 @@
   mortality_rates.cpp
 Refactor for concinnity.
 
+20121219T2312Z <address@hidden> [546]
+
+  input_harmonization.cpp
+Improve documentation.
+
+20121220T1206Z <address@hidden> [546]
+
+  basic_values.hpp
+  dbdict.cpp
+  dbdict.hpp
+  dbnames.hpp
+  dbnames.xpp
+  ihs_avmly.cpp
+  ihs_basicval.cpp
+Distinguish general- and separate-account withdrawal limits.
+

Modified: lmi/trunk/basic_values.hpp
===================================================================
--- lmi/trunk/basic_values.hpp  2012-12-19 23:12:43 UTC (rev 5629)
+++ lmi/trunk/basic_values.hpp  2012-12-20 12:06:21 UTC (rev 5630)
@@ -301,7 +301,8 @@
     double                       CurrCoiTable1Limit;
     e_actuarial_table_method     CoiInforceReentry;
     mcenum_anticipated_deduction MaxWDDed_;
-    double                       MaxWDAVMult;
+    double                       MaxWdGenAcctValMult;
+    double                       MaxWdSepAcctValMult;
     mcenum_anticipated_deduction MaxLoanDed_;
     double                       MaxLoanAVMult;
     int                          NoLapseMinDur;

Modified: lmi/trunk/dbdict.cpp
===================================================================
--- lmi/trunk/dbdict.cpp        2012-12-19 23:12:43 UTC (rev 5629)
+++ lmi/trunk/dbdict.cpp        2012-12-20 12:06:21 UTC (rev 5630)
@@ -309,7 +309,8 @@
     ascribe("WdFeeRate"           , &DBDictionary::WdFeeRate           );
     ascribe("FreeWdProportion"    , &DBDictionary::FreeWdProportion    );
     ascribe("MinWd"               , &DBDictionary::MinWd               );
-    ascribe("MaxWdAcctValMult"    , &DBDictionary::MaxWdAcctValMult    );
+    ascribe("MaxWdGenAcctValMult" , &DBDictionary::MaxWdGenAcctValMult );
+    ascribe("MaxWdSepAcctValMult" , &DBDictionary::MaxWdSepAcctValMult );
     ascribe("MaxWdDed"            , &DBDictionary::MaxWdDed            );
     ascribe("WdCanDecrSpecAmtDbo1", &DBDictionary::WdCanDecrSpecAmtDbo1);
     ascribe("WdCanDecrSpecAmtDbo2", &DBDictionary::WdCanDecrSpecAmtDbo2);
@@ -523,6 +524,8 @@
     Add(database_entity(DB_SubstdTableMult     , 1.0));
     Add(database_entity(DB_SurrChgSpecAmtSlope , 1.0));
     Add(database_entity(DB_SurrChgAcctValSlope , 1.0));
+    Add(database_entity(DB_MaxWdGenAcctValMult , 1.0));
+    Add(database_entity(DB_MaxWdSepAcctValMult , 1.0));
 
     // These are the same as class date_trammel's nominal limits.
     Add(database_entity(DB_CoiResetMinDate     , 
gregorian_epoch().julian_day_number()));
@@ -592,7 +595,6 @@
     Add(database_entity(DB_DacTaxFundCharge    , 0.0));
     Add(database_entity(DB_WaivePremTaxInt1035 , true));
     Add(database_entity(DB_FirstWdMonth        , 0.0));
-    Add(database_entity(DB_MaxWdAcctValMult    , 1.0));
     Add(database_entity(DB_MaxWdDed            , mce_to_next_anniversary));
     Add(database_entity(DB_MinWd               , 100.0));
     Add(database_entity(DB_WdFee               , 25.0));

Modified: lmi/trunk/dbdict.hpp
===================================================================
--- lmi/trunk/dbdict.hpp        2012-12-19 23:12:43 UTC (rev 5629)
+++ lmi/trunk/dbdict.hpp        2012-12-20 12:06:21 UTC (rev 5630)
@@ -285,7 +285,8 @@
     database_entity WdFeeRate           ;
     database_entity FreeWdProportion    ;
     database_entity MinWd               ;
-    database_entity MaxWdAcctValMult    ;
+    database_entity MaxWdGenAcctValMult ;
+    database_entity MaxWdSepAcctValMult ;
     database_entity MaxWdDed            ;
     database_entity WdCanDecrSpecAmtDbo1;
     database_entity WdCanDecrSpecAmtDbo2;

Modified: lmi/trunk/dbnames.hpp
===================================================================
--- lmi/trunk/dbnames.hpp       2012-12-19 23:12:43 UTC (rev 5629)
+++ lmi/trunk/dbnames.hpp       2012-12-20 12:06:21 UTC (rev 5630)
@@ -363,7 +363,8 @@
 
         ,DB_FreeWdProportion
         ,DB_MinWd
-        ,DB_MaxWdAcctValMult
+        ,DB_MaxWdGenAcctValMult
+        ,DB_MaxWdSepAcctValMult
         ,DB_MaxWdDed
 
         ,DB_WdCanDecrSpecAmtDbo1

Modified: lmi/trunk/dbnames.xpp
===================================================================
--- lmi/trunk/dbnames.xpp       2012-12-19 23:12:43 UTC (rev 5629)
+++ lmi/trunk/dbnames.xpp       2012-12-20 12:06:21 UTC (rev 5630)
@@ -226,7 +226,8 @@
 {DB_WdFeeRate,DB_Topic_Withdrawals,"WdFeeRate","Maximum fee per withdrawal as 
percent of net withdrawal",}, \
 {DB_FreeWdProportion,DB_Topic_Withdrawals,"FreeWdProportion","Yearly free 
partial surrender as a proportion of account value",}, \
 {DB_MinWd,DB_Topic_Withdrawals,"MinWd","Minimum withdrawal amount",}, \
-{DB_MaxWdAcctValMult,DB_Topic_Withdrawals,"MaxWdAcctValMult","Maximum 
withdrawal as proportion of account value, e.g. 1=100%",}, \
+{DB_MaxWdGenAcctValMult,DB_Topic_Withdrawals,"MaxWdGenAcctValMult","Maximum 
withdrawal as proportion of general-account value, e.g. 1=100%",}, \
+{DB_MaxWdSepAcctValMult,DB_Topic_Withdrawals,"MaxWdSepAcctValMult","Maximum 
withdrawal as proportion of separate-account value, e.g. 1=100%",}, \
 {DB_MaxWdDed,DB_Topic_Withdrawals,"MaxWdDed","Monthiversary deductions 
reflected in maximum withdrawal: 0=12 times most recent, 1=to next anniversary, 
2=to next modal premium due date, 3=18 times most recent",}, \
 
{DB_WdCanDecrSpecAmtDbo1,DB_Topic_Withdrawals,"WdCanDecrSpecAmtDbo1","Withdrawals
 decrease specified amount for level death benefit option",}, \
 
{DB_WdCanDecrSpecAmtDbo2,DB_Topic_Withdrawals,"WdCanDecrSpecAmtDbo2","Withdrawals
 decrease specified amount for increasing death benefit option",}, \

Modified: lmi/trunk/ihs_avmly.cpp
===================================================================
--- lmi/trunk/ihs_avmly.cpp     2012-12-19 23:12:43 UTC (rev 5629)
+++ lmi/trunk/ihs_avmly.cpp     2012-12-20 12:06:21 UTC (rev 5630)
@@ -2323,15 +2323,14 @@
 /// policy year.
 ///
 /// Some contracts make only a portion of account value eligible for
-/// withdrawal, say 80% or 90%. Some apply such a multiple only to
-/// separate-account value--a refinement not yet implemented.
-/// DATABASE !! Add a database item to restrict the multiple to the
-/// separate account only.
+/// withdrawal, say 80% or 90%. Some apply different proportions to
+/// general- and separate-account values.
 
 void AccountValue::SetMaxWD()
 {
     MaxWD =
-          (AVGenAcct + AVSepAcct) * MaxWDAVMult
+          AVGenAcct * MaxWdGenAcctValMult
+        + AVSepAcct * MaxWdSepAcctValMult
         + (AVRegLn  + AVPrfLn)
         - (RegLnBal + PrfLnBal)
         - anticipated_deduction(MaxWDDed_)

Modified: lmi/trunk/ihs_basicval.cpp
===================================================================
--- lmi/trunk/ihs_basicval.cpp  2012-12-19 23:12:43 UTC (rev 5629)
+++ lmi/trunk/ihs_basicval.cpp  2012-12-20 12:06:21 UTC (rev 5630)
@@ -731,7 +731,8 @@
     LMI_ASSERT(CurrCoiTable0Limit <= CurrCoiTable1Limit);
     CoiInforceReentry   = 
static_cast<e_actuarial_table_method>(static_cast<int>(Database_->Query(DB_CoiInforceReentry)));
     MaxWDDed_           = 
static_cast<mcenum_anticipated_deduction>(static_cast<int>(Database_->Query(DB_MaxWdDed)));
-    MaxWDAVMult         = Database_->Query(DB_MaxWdAcctValMult     );
+    MaxWdGenAcctValMult = Database_->Query(DB_MaxWdGenAcctValMult  );
+    MaxWdSepAcctValMult = Database_->Query(DB_MaxWdSepAcctValMult  );
     MaxLoanDed_         = 
static_cast<mcenum_anticipated_deduction>(static_cast<int>(Database_->Query(DB_MaxLoanDed)));
     MaxLoanAVMult       = Database_->Query(DB_MaxLoanAcctValMult   );
     NoLapseMinDur       = static_cast<int>(Database_->Query(DB_NoLapseMinDur));




reply via email to

[Prev in Thread] Current Thread [Next in Thread]