lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master e9a9bbe 1/3: Almost add CurrAcctValLoad to 77


From: Greg Chicares
Subject: [lmi-commits] [lmi] master e9a9bbe 1/3: Almost add CurrAcctValLoad to 7702 "spread"
Date: Thu, 25 Feb 2021 16:36:07 -0500 (EST)

branch: master
commit e9a9bbec2291a53648b70c0103a32277b83d4dde
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    Almost add CurrAcctValLoad to 7702 "spread"
    
    This commit uses new code, zeroing out the effect of CurrAcctValLoad
    to make acceptance testing easy. The next commit will un-zero it back
    in, causing regressions that should be straightforward to test.
    
    The new code explicitly imposes the separate-account-only condition
    that is now stated in the 7702 documentation as well, which was
    mentioned in a comment added in the preceding commit.
---
 7702.html              |  6 ++++--
 i7702.cpp              | 19 +++++++++++++++----
 stratified_charges.cpp |  3 +--
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/7702.html b/7702.html
index 6581cdb..53e897c 100644
--- a/7702.html
+++ b/7702.html
@@ -1001,11 +1001,13 @@ reflect expenses.
 
 <p>
 6 Asset based charges can be deducted only if they are
-specified in the contract itself: charges imposed by
+specified in the contract itself; charges imposed by
 separate accounts cannot be deducted unless they are
 specified in the life insurance contract proper, since any
 charge not so specified is deemed to be
-zero<a href="#fn37" name="fr37" title="">[37]</a>.
+zero<a href="#fn37" name="fr37" title="">[37]</a>,
+and naturally do not reduce the interest rate for contracts
+that offer a general-account option.
 They also must not exceed the charges reasonably expected to be
 actually
 imposed<a href="#fn38" name="fr38" title="">[38]</a>.
diff --git a/i7702.cpp b/i7702.cpp
index 9cc305a..4826c41 100644
--- a/i7702.cpp
+++ b/i7702.cpp
@@ -36,10 +36,21 @@ i7702::i7702
     :database_   {database}
     ,stratified_ {stratified}
 {
-    spread_.assign
-        (database_.length()
-        ,stratified_.minimum_tiered_sepacct_load_for_7702()
-        );
+    database_.query_into(DB_CurrAcctValLoad, spread_);
+    // For the nonce, zero out the effect of DB_CurrAcctValLoad in
+    // order to demonstrate that this commit has no effect on
+    // regression tests using real-world products, all of which
+    // either offer no general-account option or have no
+    // tiered separate-account loads--IOW, they obey the 'if'
+    // condition that is now made explicit below.
+    spread_ *= 0.0;
+    if
+        (   database_.query<bool>(DB_AllowSepAcct)
+        && !database_.query<bool>(DB_AllowGenAcct)
+        )
+        {
+        spread_ += stratified_.minimum_tiered_sepacct_load_for_7702();
+        }
 
     // Monthly guar net int for 7702 is
     //   greater of {iglp(), igsp()} and annual guar int rate
diff --git a/stratified_charges.cpp b/stratified_charges.cpp
index 87c8e30..219bbae 100644
--- a/stratified_charges.cpp
+++ b/stratified_charges.cpp
@@ -416,8 +416,7 @@ double stratified_charges::tiered_guar_sepacct_load(double 
assets, double) const
 ///
 /// TODO ?? TAXATION !! Missing "CurrSepAcctLoadBandedByAssets".
 /// But "CurrSepAcctLoadBandedByPrem" is deliberately excluded,
-/// because it's not based on assets. Elsewhere, "DB_CurrAcctValLoad"
-/// should be added to the result.
+/// because it's not based on assets.
 
 double stratified_charges::minimum_tiered_sepacct_load_for_7702() const
 {



reply via email to

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