lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master b14c85a 1/2: Swap names and correct formulas


From: Greg Chicares
Subject: [lmi-commits] [lmi] master b14c85a 1/2: Swap names and correct formulas in documentation
Date: Thu, 11 Mar 2021 10:52:48 -0500 (EST)

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

    Swap names and correct formulas in documentation
    
    Arranged named concepts more logically. In formulas, any initial
    guarantee is a floor, not a subtrahend.
---
 i7702.cpp | 50 +++++++++++++++++++++++++-------------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/i7702.cpp b/i7702.cpp
index 696d05a..279583b 100644
--- a/i7702.cpp
+++ b/i7702.cpp
@@ -49,28 +49,28 @@
 ///   B3: sep acct (generally 0%, so no effect on Bmax)
 ///   Bmax: max(B0, B1, B2, B3)
 ///
-/// C: NAAR discount (given here as i, the annual rate of interest)
-///   almost always specified in contract as B0 upper 12 / 12
-///     which should be rounded up, if at all
-///     if it was rounded down, B0 governs instead
-///   but some policies do not discount NAAR, in which case
-///     but C uniformly equals zero
-///   therefore, assert that either C=0 or C materially equals B0
-///
-/// D: initial short-term guarantees
+/// C: initial short-term guarantees
 ///   good product design generally creates none
 ///   therefore, always zero in practice for lmi
 ///
-/// E: asset-based charges
+/// D: asset-based charges
 ///   lowest value each year, if dependent on assets, premiums, etc.
 ///
-/// ic_usual  max(A0, Bmax)  + D
-/// ig_usual  max(A0, B0, C) + D
-/// ic_glp    max(A0, Bmax)      - E
-/// ig_glp    max(A0, B0, C)     - E
-/// ic_gsp    max(A1, Bmax)  + D - E
-/// ig_gsp    max(A1, B0, C) + D - E
-///   but all ig* are zero if C uniformly equals zero
+/// E: NAAR discount (given here as i, the annual rate of interest)
+///   almost always specified in contract as B0 upper 12 / 12
+///     which should be rounded up, if at all
+///     if it was rounded down, B0 governs instead
+///   but some policies do not discount NAAR, in which case
+///     but E uniformly equals zero
+///   therefore, assert that either E=0 or E materially equals B0
+///
+/// ic_usual  max(A0, Bmax, C   )
+/// ig_usual  max(A0, B0,   C, E)
+/// ic_glp    max(A0, Bmax      ) - D
+/// ig_glp    max(A0, B0,      E) - D
+/// ic_gsp    max(A1, Bmax, C   ) - D
+/// ig_gsp    max(A1, B0,   C, E) - D
+///   but all ig* are zero if E uniformly equals zero
 ///
 /// Exhaustive list of use cases:
 ///   {GLP, GSP, CVAT NSP, §7702A NSP, 7PP, and DCV}
@@ -90,30 +90,30 @@
 /// so this could be considered "conservative", but really it just
 /// follows from §7702(b)(2)(A)'s "greater of" prescription.
 ///
-/// Asset-based charges (E above) affect the interest rate only for
+/// Asset-based charges (D above) affect the interest rate only for
 /// calculation of guideline premiums. They're expense charges, which
 /// must be ignored for 7PP and for the §7702 as well as §7702A NSPs
 /// because those quantities are net premiums. DCV calculations deduct
 /// actual charges during monthly processing, and credit interest at
-/// the ic_usual rate, which ignores E, because those charges must not
+/// the ic_usual rate, which ignores D, because those charges must not
 /// be double-counted; thus, DCV correctly reflects any dependence of
-/// such charges on asset or premium tiers, which E cannot do.
+/// such charges on asset or premium tiers, which D cannot do.
 ///
-/// Idea not implemented: optionally set all ig* equal to C. The SOA
+/// Idea not implemented: optionally set all ig* equal to E. The SOA
 /// textbook (page 52) supports treating it as "a contractual element
 /// that is not an interest rate guaranteed on issue of the contract"
 /// for §7702 purposes. Yet it's simple to follow lmi's more careful
 /// interpretation, which most often produces materially the same
-/// result. If a contract specifies C as the monthly equivalent of
+/// result. If a contract specifies E as the monthly equivalent of
 /// any rate other than B0, that's presumably just a mistake.
 ///
 /// Present shortcomings of the code in this file:
 ///   [first change names to follow scheme above, adding new ones]
 ///   formulas are too simplistic:
 ///     igross: max(A0, Bmax)
-///     iglp:   max(A0, Bmax) - E
-///     igsp:   max(A1, Bmax) - E
-///     ig:     max(A0, C)
+///     iglp:   max(A0, Bmax) - D
+///     igsp:   max(A1, Bmax) - D
+///     ig:     max(A0, E)
 ///   ig problems:
 ///     A1 ignored: must reflect +2% for GSP
 ///       and that 2% extra should be parameterized



reply via email to

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