[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master f2a0fce 6/6: Fix defect introduced 20050114T1
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master f2a0fce 6/6: Fix defect introduced 20050114T1947Z: wrong DCV NAAR discount |
Date: |
Tue, 16 Mar 2021 20:20:11 -0400 (EDT) |
branch: master
commit f2a0fce591240b92f5a865ae424de461c28b5313
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
Fix defect introduced 20050114T1947Z: wrong DCV NAAR discount
The DCV death benefit must be discounted at a rate that takes the
statutory rate into account. The SOA textbook (on page 52 of the first
edition) offers a questionable rationale for treating it as "not an
interest rate guaranteed on issue of the contract" (i.e., not subject
to the rule in ยง7702(b)(2)(A)), yet it is clearly an interest rate,
and it is clearly guaranteed in the contract.
Although this defect was introduced 20050114T1947Z into CVS, it comes
from an original file predating the lmi epoch.
---
basic_values.hpp | 1 +
ihs_avmly.cpp | 4 ++--
ihs_basicval.cpp | 4 ++++
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/basic_values.hpp b/basic_values.hpp
index 637bde8..13d2381 100644
--- a/basic_values.hpp
+++ b/basic_values.hpp
@@ -369,6 +369,7 @@ class LMI_SO BasicValues
bool AllowSAIncr;
bool NoLapseAlwaysActive;
std::vector<double> DBDiscountRate;
+ std::vector<double> DcvDBDiscountRate;
bool UseUnusualCOIBanding;
diff --git a/ihs_avmly.cpp b/ihs_avmly.cpp
index cd94fd6..9b8dc7c 100644
--- a/ihs_avmly.cpp
+++ b/ihs_avmly.cpp
@@ -1783,7 +1783,7 @@ void AccountValue::TxSetCoiCharge()
// TAXATION !! Should this be handled at the same time as GPT forceouts?
DcvNaar = round_naar().c
- ( std::max(DcvDeathBft, DBIgnoringCorr) * DBDiscountRate[Year]
+ ( std::max(DcvDeathBft, DBIgnoringCorr) * DcvDBDiscountRate[Year]
- dblize(std::max(C0, Dcv))
);
DcvNaar = std::max(C0, DcvNaar);
@@ -1837,7 +1837,7 @@ void AccountValue::TxSetRiderDed()
// TAXATION !! Use a distinct discount rate for taxation? Or
// the policy's rate, as used for DcvNaar?
DcvTermCharge = round_rider_charges().c
- (YearsDcvCoiRate * TermDB * DBDiscountRate[Year]
+ (YearsDcvCoiRate * TermDB * DcvDBDiscountRate[Year]
);
}
diff --git a/ihs_basicval.cpp b/ihs_basicval.cpp
index 82f7453..1b94fc1 100644
--- a/ihs_basicval.cpp
+++ b/ihs_basicval.cpp
@@ -600,6 +600,10 @@ void BasicValues::SetPermanentInvariants()
LMI_ASSERT(!contains(DBDiscountRate, -1.0));
assign(DBDiscountRate, 1.0 / (1.0 + DBDiscountRate));
+ DcvDBDiscountRate = i7702_->ig_usual();
+ LMI_ASSERT(!contains(DcvDBDiscountRate, -1.0));
+ assign(DcvDBDiscountRate, 1.0 / (1.0 + DcvDBDiscountRate));
+
database().query_into(DB_DynamicMandE , MandEIsDynamic);
database().query_into(DB_DynamicSepAcctLoad , SepAcctLoadIsDynamic);
- [lmi-commits] [lmi] master updated (60d683a -> f2a0fce), Greg Chicares, 2021/03/16
- [lmi-commits] [lmi] master e52df17 1/6: Establish a data member to control i7702 trace, Greg Chicares, 2021/03/16
- [lmi-commits] [lmi] master 468d06c 3/6: Record speed measurements, Greg Chicares, 2021/03/16
- [lmi-commits] [lmi] master bcd3f13 5/6: Improve i7702 trace, Greg Chicares, 2021/03/16
- [lmi-commits] [lmi] master f2a0fce 6/6: Fix defect introduced 20050114T1947Z: wrong DCV NAAR discount,
Greg Chicares <=
- [lmi-commits] [lmi] master 790cfc3 4/6: Expunge DB_BonusInt, Greg Chicares, 2021/03/16
- [lmi-commits] [lmi] master b677016 2/6: Add a 7702i unit test, Greg Chicares, 2021/03/16