[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",}, \