lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master 73a46af 5/6: Add more database entities for 7


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 73a46af 5/6: Add more database entities for 7702
Date: Thu, 18 Feb 2021 18:53:35 -0500 (EST)

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

    Add more database entities for 7702
    
    Incidentally improved descriptions of DB_MlyDiscountRate7702:
    - for DCV only
    + for 7702 and 7702A only
    Reason: this discount rate is used to generate all 7702 commutation
    functions, so it affects more than just DCV.
---
 db_sort.sed | 54 ++++++++++++++++++++++++++++--------------------------
 dbdict.cpp  |  5 +++++
 dbdict.hpp  |  2 ++
 dbnames.hpp |  2 ++
 dbnames.xpp |  4 +++-
 5 files changed, 40 insertions(+), 27 deletions(-)

diff --git a/db_sort.sed b/db_sort.sed
index 069e499..df3a443 100644
--- a/db_sort.sed
+++ b/db_sort.sed
@@ -63,32 +63,34 @@
 /DB_AllowGpt\>/                  s/^/B002/
 /DB_AllowNo7702\>/               s/^/B003/
 /DB_AnnInterestRate7702\>/       s/^/B004/
-/DB_MlyDiscountRate7702\>/       s/^/B005/
-/DB_Irc7702Obreption\>/          s/^/B006/
-/DB_CorridorWhence\>/            s/^/B007/
-/DB_Irc7702NspWhence\>/          s/^/B008/
-/DB_SevenPayWhence\>/            s/^/B009/
-/DB_Irc7702QWhence\>/            s/^/B010/
-/DB_CorridorTable\>/             s/^/B011/
-/DB_Irc7702NspTable\>/           s/^/B012/
-/DB_SevenPayTable\>/             s/^/B013/
-/DB_Irc7702QTable\>/             s/^/B014/
-/DB_Irc7702QAxisGender\>/        s/^/B015/
-/DB_Irc7702QAxisSmoking\>/       s/^/B016/
-/DB_RatingsAffect7702\>/         s/^/B017/
-/DB_CvatMatChangeDefn\>/         s/^/B018/
-/DB_GptMatChangeDefn\>/          s/^/B019/
-/DB_Irc7702BftIsSpecAmt\>/       s/^/B020/
-/DB_RiskyInitial7702Db\>/        s/^/B021/
-/DB_Irc7702Endowment\>/          s/^/B022/
-/DB_Effective7702DboRop\>/       s/^/B023/
-/DB_TermIsQABOrDb7702\>/         s/^/B024/
-/DB_TermIsQABOrDb7702A\>/        s/^/B025/
-/DB_GioIsQAB\>/                  s/^/B026/
-/DB_AdbIsQAB\>/                  s/^/B027/
-/DB_SpouseRiderIsQAB\>/          s/^/B028/
-/DB_ChildRiderIsQAB\>/           s/^/B029/
-/DB_WpIsQAB\>/                   s/^/B030/
+/DB_IgnoreLoanRateFor7702\>/     s/^/B005/
+/DB_MlyDiscountRate7702Whence\>/ s/^/B006/
+/DB_MlyDiscountRate7702\>/       s/^/B007/
+/DB_Irc7702Obreption\>/          s/^/B008/
+/DB_CorridorWhence\>/            s/^/B009/
+/DB_Irc7702NspWhence\>/          s/^/B010/
+/DB_SevenPayWhence\>/            s/^/B011/
+/DB_Irc7702QWhence\>/            s/^/B012/
+/DB_CorridorTable\>/             s/^/B013/
+/DB_Irc7702NspTable\>/           s/^/B014/
+/DB_SevenPayTable\>/             s/^/B015/
+/DB_Irc7702QTable\>/             s/^/B016/
+/DB_Irc7702QAxisGender\>/        s/^/B017/
+/DB_Irc7702QAxisSmoking\>/       s/^/B018/
+/DB_RatingsAffect7702\>/         s/^/B019/
+/DB_CvatMatChangeDefn\>/         s/^/B020/
+/DB_GptMatChangeDefn\>/          s/^/B021/
+/DB_Irc7702BftIsSpecAmt\>/       s/^/B022/
+/DB_RiskyInitial7702Db\>/        s/^/B023/
+/DB_Irc7702Endowment\>/          s/^/B024/
+/DB_Effective7702DboRop\>/       s/^/B025/
+/DB_TermIsQABOrDb7702\>/         s/^/B026/
+/DB_TermIsQABOrDb7702A\>/        s/^/B027/
+/DB_GioIsQAB\>/                  s/^/B028/
+/DB_AdbIsQAB\>/                  s/^/B029/
+/DB_SpouseRiderIsQAB\>/          s/^/B030/
+/DB_ChildRiderIsQAB\>/           s/^/B031/
+/DB_WpIsQAB\>/                   s/^/B032/
 # DB_Topic_MortalityCharges
 /DB_CsoEra\>/                    s/^/C001/
 /DB_CsoMisprint\>/               s/^/C002/
diff --git a/dbdict.cpp b/dbdict.cpp
index 7f35da5..bb767ae 100644
--- a/dbdict.cpp
+++ b/dbdict.cpp
@@ -148,6 +148,8 @@ void DBDictionary::ascribe_members()
     ascribe("AllowGpt"                  , &DBDictionary::AllowGpt              
    );
     ascribe("AllowNo7702"               , &DBDictionary::AllowNo7702           
    );
     ascribe("AnnInterestRate7702"       , &DBDictionary::AnnInterestRate7702   
    );
+    ascribe("IgnoreLoanRateFor7702"     , &DBDictionary::IgnoreLoanRateFor7702 
    );
+    ascribe("MlyDiscountRate7702Whence" , 
&DBDictionary::MlyDiscountRate7702Whence );
     ascribe("MlyDiscountRate7702"       , &DBDictionary::MlyDiscountRate7702   
    );
     ascribe("Irc7702Obreption"          , &DBDictionary::Irc7702Obreption      
    );
     ascribe("CorridorWhence"            , &DBDictionary::CorridorWhence        
    );
@@ -777,6 +779,9 @@ void DBDictionary::InitDB()
     // This is determined by law, in a way that varies by product;
     // all pre-2021 products use this default.
     Add({DB_AnnInterestRate7702 , 0.04});
+    // Should these be specified here?
+    //   DB_IgnoreLoanRateFor7702
+    //   DB_MlyDiscountRate7702Whence
     // This probably should correspond to the annual 7702 rate.
     Add({DB_MlyDiscountRate7702 , 0.0032737});
 
diff --git a/dbdict.hpp b/dbdict.hpp
index 4508759..d444155 100644
--- a/dbdict.hpp
+++ b/dbdict.hpp
@@ -129,6 +129,8 @@ class LMI_SO DBDictionary
     database_entity AllowGpt                  ;
     database_entity AllowNo7702               ;
     database_entity AnnInterestRate7702       ;
+    database_entity IgnoreLoanRateFor7702     ;
+    database_entity MlyDiscountRate7702Whence ;
     database_entity MlyDiscountRate7702       ;
     database_entity Irc7702Obreption          ;
     database_entity CorridorWhence            ;
diff --git a/dbnames.hpp b/dbnames.hpp
index 5c7fadc..75e04c2 100644
--- a/dbnames.hpp
+++ b/dbnames.hpp
@@ -159,6 +159,8 @@ enum e_database_key
         ,DB_AllowGpt
         ,DB_AllowNo7702
         ,DB_AnnInterestRate7702
+        ,DB_IgnoreLoanRateFor7702
+        ,DB_MlyDiscountRate7702Whence
         ,DB_MlyDiscountRate7702
         ,DB_Irc7702Obreption
 
diff --git a/dbnames.xpp b/dbnames.xpp
index 53f530e..aead843 100644
--- a/dbnames.xpp
+++ b/dbnames.xpp
@@ -69,7 +69,9 @@
 {DB_AllowGpt,DB_Topic_7702And7702A,"AllowGpt","Allow guideline premium test: 
0=no, 1=yes",}, \
 {DB_AllowNo7702,DB_Topic_7702And7702A,"AllowNo7702","Allow 7702 to be ignored 
(foreign): 0=no, 1=yes",}, \
 {DB_AnnInterestRate7702,DB_Topic_7702And7702A,"AnnInterestRate7702","Annual 
statutory 7702 and 7702A interest rate (all but GSP), e.g. 0.04 for pre-2021 
life-insurance contracts",}, \
-{DB_MlyDiscountRate7702,DB_Topic_7702And7702A,"MlyDiscountRate7702","Monthly 
rate (12 times i upper 12) for discounting NAAR for DCV only, e.g., 0.00246627 
for a 3% annual rate",}, \
+{DB_IgnoreLoanRateFor7702,DB_Topic_7702And7702A,"IgnoreLoanRateFor7702","Riskily
 don't treat guaranteed net loan rate as a floor for 7702 interest: 0=no, 
1=yes",}, \
+{DB_MlyDiscountRate7702Whence,DB_Topic_7702And7702A,"MlyDiscountRate7702Whence","Source
 of 7702 NAAR discount rate: 0=first principles, 1=table",}, \
+{DB_MlyDiscountRate7702,DB_Topic_7702And7702A,"MlyDiscountRate7702","Monthly 
rate (12 times i upper 12) for discounting NAAR for 7702 and 7702A only, e.g., 
0.00246627 for a 3% annual rate",}, \
 {DB_Irc7702Obreption,DB_Topic_7702And7702A,"Irc7702Obreption","Prevent the 
product verifier from treating a frank error as such, due to some indult): 0=no 
[other values to be added later]",}, \
 {DB_CorridorWhence,DB_Topic_7702And7702A,"CorridorWhence","Source of CVAT 
'corridor' factors: 0=first principles, 1=table",}, \
 {DB_Irc7702NspWhence,DB_Topic_7702And7702A,"Irc7702NspWhence","Source of 7702 
and 7702A net single premium rates: 0=first principles, 1=table, 2=reciprocal 
of CVAT corridor",}, \



reply via email to

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