lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master ef6c706 3/3: Guaranteed premium needn't endow


From: Greg Chicares
Subject: [lmi-commits] [lmi] master ef6c706 3/3: Guaranteed premium needn't endow
Date: Fri, 25 Jun 2021 11:31:04 -0400 (EDT)

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

    Guaranteed premium needn't endow
    
    "naic" scenarios run faster, by about
      10% with solves
      15-20% with no solve (other than for guaranteed premium)
    because solving for guaranteed premium is faster with a goal of $0
    ultimate cash value than a goal of endowment for specamt. The reason
    is that the objective function is a sigmoid with a point of inflection
    near a goal of zero.
---
 Speed_gcc_i686-w64-mingw32    | 12 ++++++------
 Speed_gcc_x86_64-pc-linux-gnu | 12 ++++++------
 Speed_gcc_x86_64-w64-mingw32  | 12 ++++++------
 ihs_avsolve.cpp               |  6 +++++-
 sample.cns.touchstone         |  2 +-
 sample.ill.touchstone         |  2 +-
 6 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/Speed_gcc_i686-w64-mingw32 b/Speed_gcc_i686-w64-mingw32
index 653c8cf..370a7eb 100644
--- a/Speed_gcc_i686-w64-mingw32
+++ b/Speed_gcc_i686-w64-mingw32
@@ -1,7 +1,7 @@
 Test speed:
-  naic, no solve      : 2.651e-02 s mean;      26326 us least of  38 runs
-  naic, specamt solve : 5.084e-02 s mean;      50567 us least of  20 runs
-  naic, ee prem solve : 4.571e-02 s mean;      45340 us least of  22 runs
-  finra, no solve     : 1.135e-02 s mean;      10735 us least of  89 runs
-  finra, specamt solve: 3.360e-02 s mean;      33304 us least of  30 runs
-  finra, ee prem solve: 3.004e-02 s mean;      29696 us least of  34 runs
+  naic, no solve      : 2.238e-02 s mean;      22081 us least of  45 runs
+  naic, specamt solve : 4.625e-02 s mean;      45685 us least of  22 runs
+  naic, ee prem solve : 4.159e-02 s mean;      41076 us least of  25 runs
+  finra, no solve     : 1.102e-02 s mean;      10819 us least of  91 runs
+  finra, specamt solve: 3.371e-02 s mean;      33262 us least of  30 runs
+  finra, ee prem solve: 3.014e-02 s mean;      29787 us least of  34 runs
diff --git a/Speed_gcc_x86_64-pc-linux-gnu b/Speed_gcc_x86_64-pc-linux-gnu
index c836e21..f9e4b59 100644
--- a/Speed_gcc_x86_64-pc-linux-gnu
+++ b/Speed_gcc_x86_64-pc-linux-gnu
@@ -1,7 +1,7 @@
 Test speed:
-  naic, no solve      : 1.856e-02 s mean;      18268 us least of  54 runs
-  naic, specamt solve : 3.502e-02 s mean;      34428 us least of  29 runs
-  naic, ee prem solve : 3.115e-02 s mean;      30694 us least of  33 runs
-  finra, no solve     : 5.366e-03 s mean;       5119 us least of 100 runs
-  finra, specamt solve: 2.023e-02 s mean;      19828 us least of  50 runs
-  finra, ee prem solve: 1.799e-02 s mean;      17492 us least of  56 runs
+  naic, no solve      : 1.577e-02 s mean;      14775 us least of  64 runs
+  naic, specamt solve : 3.090e-02 s mean;      30354 us least of  33 runs
+  naic, ee prem solve : 2.763e-02 s mean;      27169 us least of  37 runs
+  finra, no solve     : 5.386e-03 s mean;       5260 us least of 100 runs
+  finra, specamt solve: 2.033e-02 s mean;      19904 us least of  50 runs
+  finra, ee prem solve: 1.802e-02 s mean;      17614 us least of  56 runs
diff --git a/Speed_gcc_x86_64-w64-mingw32 b/Speed_gcc_x86_64-w64-mingw32
index 4c0ab38..5c04e51 100644
--- a/Speed_gcc_x86_64-w64-mingw32
+++ b/Speed_gcc_x86_64-w64-mingw32
@@ -1,7 +1,7 @@
 Test speed:
-  naic, no solve      : 2.614e-02 s mean;      26006 us least of  39 runs
-  naic, specamt solve : 4.753e-02 s mean;      45585 us least of  22 runs
-  naic, ee prem solve : 4.117e-02 s mean;      40958 us least of  25 runs
-  finra, no solve     : 9.621e-03 s mean;       9433 us least of 100 runs
-  finra, specamt solve: 2.737e-02 s mean;      27210 us least of  37 runs
-  finra, ee prem solve: 2.462e-02 s mean;      24470 us least of  41 runs
+  naic, no solve      : 2.184e-02 s mean;      21525 us least of  46 runs
+  naic, specamt solve : 4.088e-02 s mean;      40442 us least of  25 runs
+  naic, ee prem solve : 3.682e-02 s mean;      36469 us least of  28 runs
+  finra, no solve     : 9.607e-03 s mean;       9400 us least of 100 runs
+  finra, specamt solve: 2.760e-02 s mean;      27214 us least of  37 runs
+  finra, ee prem solve: 2.481e-02 s mean;      24489 us least of  41 runs
diff --git a/ihs_avsolve.cpp b/ihs_avsolve.cpp
index f55fcef..a616790 100644
--- a/ihs_avsolve.cpp
+++ b/ihs_avsolve.cpp
@@ -309,6 +309,10 @@ void AccountValue::SolveSetWD(currency a_CandidateValue)
 /// 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.)
+/// This premium results in a final CSV of at least zero, as opposed
+/// to endowment, because section 7B(2) of the regulation describes
+/// is as "the premium outlay that must be paid to guarantee coverage
+/// for the term of the contract".
 ///
 /// A large dumpin or 1035 exchange might suffice to keep the contract
 /// in force until normal maturity. However, showing the guaranteed
@@ -338,7 +342,7 @@ currency AccountValue::SolveGuarPremium()
         (mce_solve_ee_prem
         ,0
         ,BasicValues::GetLength()
-        ,mce_solve_for_endt
+        ,mce_solve_for_target_csv
         ,C0
         ,BasicValues::GetLength()
         ,mce_gen_guar
diff --git a/sample.cns.touchstone b/sample.cns.touchstone
index 9b1a975..33619c7 100644
--- a/sample.cns.touchstone
+++ b/sample.cns.touchstone
@@ -10,7 +10,7 @@ Composite
 This is an illustration of a life insurance policy. It is not an offer of 
insurance. Availability is subject to underwriting.
 
 The premium outlay that must be paid to guarantee coverage for the term of the 
contract, subject to maximum premiums allowable
-to qualify as a life insurance policy under the applicable provisions of the 
Internal Revenue Code, is 23844.41 annually.
+to qualify as a life insurance policy under the applicable provisions of the 
Internal Revenue Code, is 23839.99 annually.
 
 Policy features, riders or options, guaranteed or non-guaranteed, shown in the 
basic illustration include:
 
diff --git a/sample.ill.touchstone b/sample.ill.touchstone
index 3eea3d0..b5a815a 100644
--- a/sample.ill.touchstone
+++ b/sample.ill.touchstone
@@ -11,7 +11,7 @@ Male Standard Nontobacco, issue age 45
 This is an illustration of a life insurance policy. It is not an offer of 
insurance. Availability is subject to underwriting.
 
 The premium outlay that must be paid to guarantee coverage for the term of the 
contract, subject to maximum premiums allowable
-to qualify as a life insurance policy under the applicable provisions of the 
Internal Revenue Code, is 23844.41 annually.
+to qualify as a life insurance policy under the applicable provisions of the 
Internal Revenue Code, is 23839.99 annually.
 
 Policy features, riders or options, guaranteed or non-guaranteed, shown in the 
basic illustration include:
 



reply via email to

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