lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master b52654b 4/5: Add database entities for new st


From: Greg Chicares
Subject: [lmi-commits] [lmi] master b52654b 4/5: Add database entities for new statutory 7702 interest rate
Date: Thu, 4 Feb 2021 20:45:16 -0500 (EST)

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

    Add database entities for new statutory 7702 interest rate
---
 db_sort.sed | 52 +++++++++++++++++++++++++++-------------------------
 dbdict.cpp  |  8 ++++++++
 dbdict.hpp  |  2 ++
 dbnames.hpp |  2 ++
 dbnames.xpp |  2 ++
 5 files changed, 41 insertions(+), 25 deletions(-)

diff --git a/db_sort.sed b/db_sort.sed
index 298a216..c4c29d0 100644
--- a/db_sort.sed
+++ b/db_sort.sed
@@ -62,31 +62,33 @@
 /DB_AllowCvat\>/                 s/^/B01/
 /DB_AllowGpt\>/                  s/^/B02/
 /DB_AllowNo7702\>/               s/^/B03/
-/DB_Irc7702Obreption\>/          s/^/B04/
-/DB_CorridorWhence\>/            s/^/B05/
-/DB_Irc7702NspWhence\>/          s/^/B06/
-/DB_SevenPayWhence\>/            s/^/B07/
-/DB_Irc7702QWhence\>/            s/^/B08/
-/DB_CorridorTable\>/             s/^/B09/
-/DB_Irc7702NspTable\>/           s/^/B10/
-/DB_SevenPayTable\>/             s/^/B11/
-/DB_Irc7702QTable\>/             s/^/B12/
-/DB_Irc7702QAxisGender\>/        s/^/B13/
-/DB_Irc7702QAxisSmoking\>/       s/^/B14/
-/DB_RatingsAffect7702\>/         s/^/B15/
-/DB_CvatMatChangeDefn\>/         s/^/B16/
-/DB_GptMatChangeDefn\>/          s/^/B17/
-/DB_Irc7702BftIsSpecAmt\>/       s/^/B18/
-/DB_RiskyInitial7702Db\>/        s/^/B19/
-/DB_Irc7702Endowment\>/          s/^/B20/
-/DB_Effective7702DboRop\>/       s/^/B21/
-/DB_TermIsQABOrDb7702\>/         s/^/B22/
-/DB_TermIsQABOrDb7702A\>/        s/^/B23/
-/DB_GioIsQAB\>/                  s/^/B24/
-/DB_AdbIsQAB\>/                  s/^/B25/
-/DB_SpouseRiderIsQAB\>/          s/^/B26/
-/DB_ChildRiderIsQAB\>/           s/^/B27/
-/DB_WpIsQAB\>/                   s/^/B28/
+/DB_AnnInterestRate7702\>/       s/^/B04/
+/DB_MlyDiscountRate7702\>/       s/^/B05/
+/DB_Irc7702Obreption\>/          s/^/B06/
+/DB_CorridorWhence\>/            s/^/B07/
+/DB_Irc7702NspWhence\>/          s/^/B08/
+/DB_SevenPayWhence\>/            s/^/B09/
+/DB_Irc7702QWhence\>/            s/^/B10/
+/DB_CorridorTable\>/             s/^/B11/
+/DB_Irc7702NspTable\>/           s/^/B12/
+/DB_SevenPayTable\>/             s/^/B13/
+/DB_Irc7702QTable\>/             s/^/B14/
+/DB_Irc7702QAxisGender\>/        s/^/B15/
+/DB_Irc7702QAxisSmoking\>/       s/^/B16/
+/DB_RatingsAffect7702\>/         s/^/B17/
+/DB_CvatMatChangeDefn\>/         s/^/B18/
+/DB_GptMatChangeDefn\>/          s/^/B19/
+/DB_Irc7702BftIsSpecAmt\>/       s/^/B20/
+/DB_RiskyInitial7702Db\>/        s/^/B21/
+/DB_Irc7702Endowment\>/          s/^/B22/
+/DB_Effective7702DboRop\>/       s/^/B23/
+/DB_TermIsQABOrDb7702\>/         s/^/B24/
+/DB_TermIsQABOrDb7702A\>/        s/^/B25/
+/DB_GioIsQAB\>/                  s/^/B26/
+/DB_AdbIsQAB\>/                  s/^/B27/
+/DB_SpouseRiderIsQAB\>/          s/^/B28/
+/DB_ChildRiderIsQAB\>/           s/^/B29/
+/DB_WpIsQAB\>/                   s/^/B30/
 # DB_Topic_MortalityCharges
 /DB_CsoEra\>/                    s/^/C01/
 /DB_CsoMisprint\>/               s/^/C02/
diff --git a/dbdict.cpp b/dbdict.cpp
index b3c62aa..0138fee 100644
--- a/dbdict.cpp
+++ b/dbdict.cpp
@@ -147,6 +147,8 @@ void DBDictionary::ascribe_members()
     ascribe("AllowCvat"                 , &DBDictionary::AllowCvat             
    );
     ascribe("AllowGpt"                  , &DBDictionary::AllowGpt              
    );
     ascribe("AllowNo7702"               , &DBDictionary::AllowNo7702           
    );
+    ascribe("AnnInterestRate7702"       , &DBDictionary::AnnInterestRate7702   
    );
+    ascribe("MlyDiscountRate7702"       , &DBDictionary::MlyDiscountRate7702   
    );
     ascribe("Irc7702Obreption"          , &DBDictionary::Irc7702Obreption      
    );
     ascribe("CorridorWhence"            , &DBDictionary::CorridorWhence        
    );
     ascribe("Irc7702NspWhence"          , &DBDictionary::Irc7702NspWhence      
    );
@@ -773,6 +775,12 @@ void DBDictionary::InitDB()
     std::vector<int> premium_tax_dimensions(ptd, ptd + e_number_of_axes);
     Add({DB_PremTaxRate, premium_tax_dimensions, 
premium_tax_rates_for_life_insurance()});
 
+    // This is determined by law, in a way that varies by product;
+    // all pre-2021 products use this default.
+    Add({DB_AnnInterestRate7702 , 0.04});
+    // This probably should correspond to the annual 7702 rate.
+    Add({DB_MlyDiscountRate7702 , 0.0032737});
+
     Add({DB_MaxIssSpecAmt       , dbl_inf});
     Add({DB_MaxRenlSpecAmt      , dbl_inf});
     Add({DB_WpLimit             , dbl_inf});
diff --git a/dbdict.hpp b/dbdict.hpp
index 7d301fa..574413a 100644
--- a/dbdict.hpp
+++ b/dbdict.hpp
@@ -128,6 +128,8 @@ class LMI_SO DBDictionary
     database_entity AllowCvat                 ;
     database_entity AllowGpt                  ;
     database_entity AllowNo7702               ;
+    database_entity AnnInterestRate7702       ;
+    database_entity MlyDiscountRate7702       ;
     database_entity Irc7702Obreption          ;
     database_entity CorridorWhence            ;
     database_entity Irc7702NspWhence          ;
diff --git a/dbnames.hpp b/dbnames.hpp
index 1d926c4..1cf5160 100644
--- a/dbnames.hpp
+++ b/dbnames.hpp
@@ -158,6 +158,8 @@ enum e_database_key
         ,DB_AllowCvat
         ,DB_AllowGpt
         ,DB_AllowNo7702
+        ,DB_AnnInterestRate7702
+        ,DB_MlyDiscountRate7702
         ,DB_Irc7702Obreption
 
         ,DB_CorridorWhence
diff --git a/dbnames.xpp b/dbnames.xpp
index ce9c631..008db43 100644
--- a/dbnames.xpp
+++ b/dbnames.xpp
@@ -68,6 +68,8 @@
 {DB_AllowCvat,DB_Topic_7702And7702A,"AllowCvat","Allow cash value accumulation 
test: 0=no, 1=yes",}, \
 {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, e.g. 0.04 for pre-2021 life-insurance 
contracts",}, \
+{DB_MlyDiscountRate7702,DB_Topic_7702And7702A,"MlyDiscountRate7702","Monthly 
rate (i over i upper 12) for discounting NAAR for DCV only, e.g. 0.0032737 for 
4% 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]