lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [6203] Conditionalize rider vs.


From: Greg Chicares
Subject: [lmi-commits] [6203] Conditionalize rider vs.
Date: Sun, 31 May 2015 23:23:27 +0000

Revision: 6203
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=6203
Author:   chicares
Date:     2015-05-31 23:23:26 +0000 (Sun, 31 May 2015)
Log Message:
-----------
Conditionalize rider vs. non-rider term behaviors

Modified Paths:
--------------
    lmi/trunk/ChangeLog
    lmi/trunk/ihs_avmly.cpp

Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2015-05-31 20:02:41 UTC (rev 6202)
+++ lmi/trunk/ChangeLog 2015-05-31 23:23:26 UTC (rev 6203)
@@ -36288,3 +36288,41 @@
   ledger_invariant.cpp
 Establish storage for supplemental specified amount.
 
+20150531T1443Z <address@hidden> [511]
+
+  account_value.hpp
+  ihs_avmly.cpp
+Convert optionally when term rider ends.
+
+20150531T1726Z <address@hidden> [511]
+
+  basic_values.hpp
+  ihs_acctval.cpp
+  ihs_avstrtgy.cpp
+  ihs_basicval.cpp
+Calculate special minimum premiums.
+
+20150531T1803Z <address@hidden> [511]
+
+  account_value.hpp
+  ihs_avstrtgy.cpp
+Refactor.
+
+20150531T1837Z <address@hidden> [511]
+
+  account_value.hpp
+  ihs_acctval.cpp
+  ihs_avstrtgy.cpp
+Offer strategies for supplemental specified amount.
+
+20150531T2002Z <address@hidden> [511]
+
+  account_value.hpp
+  ihs_avmly.cpp
+Support yearly changes in supplemental specified amount.
+
+20150531T2323Z <address@hidden> [511]
+
+  ihs_avmly.cpp
+Conditionalize rider vs. non-rider term behaviors.
+

Modified: lmi/trunk/ihs_avmly.cpp
===================================================================
--- lmi/trunk/ihs_avmly.cpp     2015-05-31 20:02:41 UTC (rev 6202)
+++ lmi/trunk/ihs_avmly.cpp     2015-05-31 23:23:26 UTC (rev 6203)
@@ -739,7 +739,8 @@
 {
     double ProportionAppliedToTerm = 0.0;
     double prior_specamt = ActualSpecAmt;
-    if(TermRiderActive)
+    // Adjust term here only if it's formally a rider.
+    if(TermRiderActive && !TermIsNotRider)
         {
         switch(yare_input_.TermAdjustmentMethod)
             {
@@ -830,7 +831,12 @@
 // that the ledger object is used for working storage, where it should
 // probably be write-only instead.
         InvariantValues().SpecAmt[j] = ActualSpecAmt;
-        InvariantValues().TermSpecAmt[j] = TermSpecAmt;
+        // Adjust term here only if it's formally a rider.
+        // Otherwise, its amount should not have been changed.
+        if(!TermIsNotRider)
+            {
+            InvariantValues().TermSpecAmt[j] = TermSpecAmt;
+            }
 // Term specamt is a vector in class LedgerInvariant, but a scalar in
 // the input classes, e.g.:
 //   yare_input_.TermRiderAmount
@@ -1586,7 +1592,7 @@
     // and includes term rider.
     if(Year == InforceYear && Month == InforceMonth)
         {
-        if(!yare_input_.TermRider)
+        if(!yare_input_.TermRider && !TermIsNotRider)
             {
             LMI_ASSERT(0.0 == InvariantValues().TermSpecAmt[0]);
             }
@@ -1735,12 +1741,15 @@
         {
         return;
         }
-    if(!yare_input_.TermRider)
+    // If term is not formally a rider, then it's always active for
+    // the entire illustrated duration. Its amount may be reduced to
+    // zero, but might later be increased; at any rate, illustrations
+    // do not "remove" it.
+    if(!yare_input_.TermRider && !TermIsNotRider)
         {
         TermRiderActive = false;
         return;
         }
-
     if
         (  (TermForcedConvDur <= Year)
         && (TermForcedConvAge <= Year + BasicValues::GetIssueAge())
@@ -1890,7 +1899,7 @@
 
     TermCharge = 0.0;
     DcvTermCharge = 0.0;
-    if(TermRiderActive && yare_input_.TermRider)
+    if(TermRiderActive)
         {
         TermCharge    = YearsTermRate   * TermDB * DBDiscountRate[Year];
         // TAXATION !! Integrated term: s/TermDB/TermSpecAmt/ because




reply via email to

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