[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;
- [lmi-commits] [lmi] master updated (655648d -> dfb045a), Greg Chicares, 2020/04/09
- [lmi-commits] [lmi] master 859240e 1/8: Remove unneeded assertion and conditional, Greg Chicares, 2020/04/09
- [lmi-commits] [lmi] master 840fd2f 4/8: Treat LedgerInvariant::Salary as forborne,
Greg Chicares <=
- [lmi-commits] [lmi] master 07c029f 2/8: Improve documentation, Greg Chicares, 2020/04/09
- [lmi-commits] [lmi] master ce789de 3/8: Treat 'AddonMonthlyFee' as a BOY vector, Greg Chicares, 2020/04/09
- [lmi-commits] [lmi] master 9cd8cf7 7/8: Refactor: composite 'OtherVectors' in LedgerBase::PlusEq(), Greg Chicares, 2020/04/09
- [lmi-commits] [lmi] master ab9d0d1 6/8: Truncate GPT corridor factors at maturity age [349], Greg Chicares, 2020/04/09
- [lmi-commits] [lmi] master 46b9de9 5/8: Regularize compositing of non-additive vectors, Greg Chicares, 2020/04/09
- [lmi-commits] [lmi] master dfb045a 8/8: Move a block of code, Greg Chicares, 2020/04/09