[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master be19add 4/6: Block all other payments for gua
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master be19add 4/6: Block all other payments for guaranteed-premium solves |
Date: |
Thu, 24 Jun 2021 20:09:16 -0400 (EDT) |
branch: master
commit be19adde49d30c087dcf91a94380f896a1654f59
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
Block all other payments for guaranteed-premium solves
---
ihs_avsolve.cpp | 14 ++++++++++++--
outlay.cpp | 15 +++++++++++++++
outlay.hpp | 4 ++++
3 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/ihs_avsolve.cpp b/ihs_avsolve.cpp
index d74365f..cc7439c 100644
--- a/ihs_avsolve.cpp
+++ b/ihs_avsolve.cpp
@@ -306,10 +306,18 @@ void AccountValue::SolveSetWD(currency a_CandidateValue)
/// Ascertain guaranteed premium for NAIC illustration reg.
///
-/// Zero out all payments [not yet], and solve for level ee premium
+/// Zero out all payments, even 1035s, and solve for level ee premium
/// to keep the contract in force until normal maturity. (It would be
/// equally good to solve for er premium--the choice is arbitrary.)
///
+/// A large dumpin or 1035 exchange might suffice to keep the contract
+/// in force until normal maturity. However, showing the guaranteed
+/// premium as zero on a new-business illustration could be construed
+/// as implying that no premium at all is required, not even the lump
+/// sum (which has not been received prior to issue); yet for inforce
+/// contracts, the lump sum has been booked, and may result in a
+/// guaranteed (future) premium of zero.
+///
/// This is necessarily the last step in producing an illustration,
/// so that the guaranteed premium reflects any parameters that have
/// been adjusted dynamically. It's okay that it overwrites payments
@@ -319,7 +327,9 @@ void AccountValue::SolveSetWD(currency a_CandidateValue)
currency AccountValue::SolveGuarPremium()
{
Outlay_->set_er_modal_premiums(C0, 0, BasicValues::GetLength());
- // other payments, like 1035 exchanges, to be zeroed out soon
+ Outlay_->block_dumpin ();
+ Outlay_->block_external_1035_amount();
+ Outlay_->block_internal_1035_amount();
Solving = true;
SolvingForGuarPremium = true;
diff --git a/outlay.cpp b/outlay.cpp
index 4d42eba..530a001 100644
--- a/outlay.cpp
+++ b/outlay.cpp
@@ -49,6 +49,21 @@ modal_outlay::modal_outlay
{
}
+void modal_outlay::block_dumpin()
+{
+ dumpin_ = C0;
+}
+
+void modal_outlay::block_external_1035_amount()
+{
+ external_1035_amount_ = C0;
+}
+
+void modal_outlay::block_internal_1035_amount()
+{
+ internal_1035_amount_ = C0;
+}
+
void modal_outlay::set_ee_modal_premiums(currency z, int from_year, int
to_year)
{
z = round_gross_premium_.c(z); // CURRENCY !! already rounded?
diff --git a/outlay.hpp b/outlay.hpp
index fac512c..5fc0c2c 100644
--- a/outlay.hpp
+++ b/outlay.hpp
@@ -59,6 +59,10 @@ class modal_outlay final
modal_outlay(modal_outlay const&) = delete;
modal_outlay& operator=(modal_outlay const&) = delete;
+ void block_dumpin ();
+ void block_external_1035_amount();
+ void block_internal_1035_amount();
+
void set_ee_modal_premiums(currency z, int from_year, int to_year);
void set_er_modal_premiums(currency z, int from_year, int to_year);
void set_withdrawals (currency z, int from_year, int to_year);
- [lmi-commits] [lmi] master updated (04379f7 -> 3f71b11), Greg Chicares, 2021/06/24
- [lmi-commits] [lmi] master 131d1a2 2/6: Expunge another disused function, Greg Chicares, 2021/06/24
- [lmi-commits] [lmi] master 1b73f19 1/6: Expunge two disused functions, Greg Chicares, 2021/06/24
- [lmi-commits] [lmi] master 0090fb0 3/6: Refactor for simplicity, Greg Chicares, 2021/06/24
- [lmi-commits] [lmi] master 3f71b11 6/6: Follow odd NAIC "in force" definition more closely, Greg Chicares, 2021/06/24
- [lmi-commits] [lmi] master be19add 4/6: Block all other payments for guaranteed-premium solves,
Greg Chicares <=
- [lmi-commits] [lmi] master d018628 5/6: Do guaranteed-premium solves in first year only [276], Greg Chicares, 2021/06/24