lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master 840fd2f 4/8: Treat LedgerInvariant::Salary as


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 840fd2f 4/8: Treat LedgerInvariant::Salary as forborne
Date: Thu, 9 Apr 2020 18:33:05 -0400 (EDT)

branch: master
commit 840fd2f1e9e2127b1aad3820eedea1d8a5d3288d
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Treat LedgerInvariant::Salary as forborne
    
    LedgerInvariant::Salary might alternatively be treated as a BOY vector.
    The real motivation for treating it as forborne is to exercise the
    logic for compositing forborne vectors (adding them together without
    weighting by LedgerInvariant::InforceLives), which is otherwise used
    only by LedgerVariant::ExperienceReserve (which latter may soon be
    removed, as experience rating has fallen into disuse).
    
    Here, of course, "forborne" is actuarial argot--see, e.g., Greville,
    _UNITED STATES LIFE TABLES and ACTUARIAL TABLES 1939-1941_, p. 85:
    
    | A concrete illustration of the forborne annuity is provided by the
    | tontine fund, to which a group of individuals contribute regularly
    | until the end of a specified period of years (or until prior death),
    | the accumulated fund being then divided equally among the survivors
    | on a designated date.
    
    which more obviously describes an experience reserve than salary,
    though the numerical treatment here is the same.
---
 ledger_invariant.cpp | 3 ++-
 ledger_invariant.hpp | 4 +++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/ledger_invariant.cpp b/ledger_invariant.cpp
index f581441..35120d3 100644
--- a/ledger_invariant.cpp
+++ b/ledger_invariant.cpp
@@ -96,9 +96,10 @@ void LedgerInvariant::Alloc(int len)
     EndYearVectors  ["TermSpecAmt"           ] = &TermSpecAmt            ;
     EndYearVectors  ["SpecAmt"               ] = &SpecAmt                ;
 
+    ForborneVectors ["Salary"                ] = &Salary                 ;
+
     OtherVectors    ["IndvTaxBracket"        ] = &IndvTaxBracket         ;
     OtherVectors    ["CorpTaxBracket"        ] = &CorpTaxBracket         ;
-    OtherVectors    ["Salary"                ] = &Salary                 ;
     OtherVectors    ["AnnualFlatExtra"       ] = &AnnualFlatExtra        ;
     OtherVectors    ["HoneymoonValueSpread"  ] = &HoneymoonValueSpread   ;
     OtherVectors    ["PartMortTableMult"     ] = &PartMortTableMult      ;
diff --git a/ledger_invariant.hpp b/ledger_invariant.hpp
index 9711664..7d39631 100644
--- a/ledger_invariant.hpp
+++ b/ledger_invariant.hpp
@@ -85,10 +85,12 @@ class LMI_SO LedgerInvariant final
     std::vector<double> TermSpecAmt;
     std::vector<double> SpecAmt;
 
+    // Forborne vectors.
+    std::vector<double> Salary;
+
     // Other vectors.
     std::vector<double> IndvTaxBracket;
     std::vector<double> CorpTaxBracket;
-    std::vector<double> Salary;
     std::vector<double> AnnualFlatExtra;
     std::vector<double> HoneymoonValueSpread;
     std::vector<double> PartMortTableMult;



reply via email to

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