[Top][All Lists]
[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));
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5630] Distinguish general- and separate-account withdrawal limits,
Greg Chicares <=