lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [5593] Mark some taxation issues


From: Greg Chicares
Subject: [lmi-commits] [5593] Mark some taxation issues
Date: Mon, 12 Nov 2012 13:07:11 +0000

Revision: 5593
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5593
Author:   chicares
Date:     2012-11-12 13:07:10 +0000 (Mon, 12 Nov 2012)
Log Message:
-----------
Mark some taxation issues

Modified Paths:
--------------
    lmi/trunk/ihs_avmly.cpp
    lmi/trunk/ihs_basicval.cpp
    lmi/trunk/ihs_mortal.cpp
    lmi/trunk/interest_rates.cpp
    lmi/trunk/loads_impl.hpp
    lmi/trunk/premium_tax.cpp

Modified: lmi/trunk/ihs_avmly.cpp
===================================================================
--- lmi/trunk/ihs_avmly.cpp     2012-11-11 13:41:15 UTC (rev 5592)
+++ lmi/trunk/ihs_avmly.cpp     2012-11-12 13:07:10 UTC (rev 5593)
@@ -1175,7 +1175,7 @@
     no pmt this month due to mode
     zero pmt
 Perform strategy
-Test 7702, 7702A
+Test 7702, 7702A // TAXATION !! Resolve these issues:
     apportion limited prem across ee, er,...dumpin?
     need to limit pmt here, but other events e.g. WD affect limits
     pmts must be the same on all bases
@@ -2622,7 +2622,7 @@
         {
         if(!SolvingForGuarPremium)
             {
-            double fake_cum_pmt = 0.0; // TODO ?? Needs work.
+            double fake_cum_pmt = 0.0; // TODO ?? TAXATION !! Needs work.
             double premiums_paid_increment = -GrossWD;
             Irc7702_->ProcessGptPmt(Year, premiums_paid_increment, 
fake_cum_pmt);
             }
@@ -2916,7 +2916,7 @@
             InvariantValues().Dumpin = Dumpin;
             }
 
-        // We could also capture MEC status on other bases here.
+        // TAXATION !! We could also capture MEC status on other bases here.
         if(true == Irc7702A_->UpdateEOM7702A())
             {
             if(!InvariantValues().IsMec)

Modified: lmi/trunk/ihs_basicval.cpp
===================================================================
--- lmi/trunk/ihs_basicval.cpp  2012-11-11 13:41:15 UTC (rev 5592)
+++ lmi/trunk/ihs_basicval.cpp  2012-11-12 13:07:10 UTC (rev 5593)
@@ -84,7 +84,7 @@
     Init();
 }
 
-// Temporary kludge for ancient GPT server.
+// Temporary kludge for ancient GPT server. TAXATION !! Remove along with that 
ancient stuff.
 template<typename T>
 std::string mc_str(T t)
 {
@@ -450,7 +450,7 @@
 ///   - at least one known product uses GLP as a handy proxy for a
 ///     minimum no-lapse premium, even when the GPT is not elected.
 /// TAXATION !! OTOH, such strategies need not always be offered, and
-/// the cited product's implementation actually uses 7pp, not GLP.
+/// the cited product was simplified to use a table lookup.
 ///
 /// To conform to the practices of certain admin systems, DCV COI
 /// rates are stored in a rounded table, but calculations from first
@@ -1662,6 +1662,7 @@
 }
 
 //============================================================================
+// TAXATION !! Resolve these issues:
 // TODO ?? This might be reworked to go through class Irc7702 all the time;
 // at least it shouldn't refer to the input class.
 // TODO ?? The profusion of similar names should be trimmed.

Modified: lmi/trunk/ihs_mortal.cpp
===================================================================
--- lmi/trunk/ihs_mortal.cpp    2012-11-11 13:41:15 UTC (rev 5592)
+++ lmi/trunk/ihs_mortal.cpp    2012-11-12 13:07:10 UTC (rev 5593)
@@ -109,7 +109,7 @@
         unisex male proportion curr
         ANB/ALB
         bool use NY COI limits
-        TODO ?? bool ignore ratings for 7702
+        TODO ?? TAXATION !! bool ignore ratings for 7702
         flat extras
         substd table
         uninsurable
@@ -286,8 +286,8 @@
         // Assume target premium table is never changed for substandard.
         }
 
-    // TODO ?? Temporary stuff to support NSP for 7702A
-    // TODO ?? Incorrect if GPT
+    // TODO ?? TAXATION !! Temporary stuff to support NSP for 7702A
+    // TODO ?? TAXATION !! Incorrect if GPT
     LMI_ASSERT(0 == CvatNspRates_.size());
     for(int j = 0; j < Length_; ++j)
         {

Modified: lmi/trunk/interest_rates.cpp
===================================================================
--- lmi/trunk/interest_rates.cpp        2012-11-11 13:41:15 UTC (rev 5592)
+++ lmi/trunk/interest_rates.cpp        2012-11-12 13:07:10 UTC (rev 5593)
@@ -995,7 +995,7 @@
 // loan rate determination period, or simply by forbidding loans
 // during that period.
 
-// TODO ?? Calculate both:
+// TODO ?? TAXATION !! Calculate both:
 //    std::vector<double> MlyGlpRate_;
 //    std::vector<double> MlyGspRate_;
 
@@ -1014,12 +1014,13 @@
 #if 0
 // TODO ?? Here's the implementation actually used, elsewhere--it needs work.
 // Eventually this should be rewritten. It still lives here because it
-// really belongs here, not in class BasicValues.
+// really belongs here, not in class BasicValues. TAXATION !! Resolve this.
 
 {
     // Monthly guar net int for 7702, with 4 or 6% min, is
     //   greater of {4%, 6%} and annual guar int rate
     //   less 7702 spread
+    // TAXATION !! Resolve this:
     // TODO ?? We need to subtract other things too, e.g. comp (sometimes)...
     //   transformed to monthly (simple subtraction?).
     // These interest rates belong here because they're used by
@@ -1034,14 +1035,14 @@
             {
             // ET !! std::vector<double> guar_loan_rate = PublishedLoanRate_ - 
RegLoanSpread_[mce_gen_guar];
             // ET !! guar_int = max(guar_int, RegLoanSpread_[mce_gen_guar]);
-            // TODO ?? But that looks incorrect when written clearly!
+            // TODO ?? TAXATION !! But that looks incorrect when written 
clearly!
             // Perhaps this old comment:
             //   APL: guar_int gets guar_int max gross_loan_rate - 
guar_loan_spread
             // suggests the actual intention.
 
-            // TODO ?? Need loan rates for 7702 whenever loans are allowed.
+            // TODO ?? TAXATION !! Need loan rates for 7702 whenever loans are 
allowed.
             std::vector<double> gross_loan_rate = PublishedLoanRate_;
-            // TODO ?? Should at least assert that preferred <= regular spread.
+            // TODO ?? TAXATION !! Should at least assert that preferred <= 
regular spread.
             std::vector<double> guar_loan_spread = 
RegLoanSpread_[mce_gen_guar];
             std::vector<double> guar_loan_rate(Length);
             std::transform

Modified: lmi/trunk/loads_impl.hpp
===================================================================
--- lmi/trunk/loads_impl.hpp    2012-11-11 13:41:15 UTC (rev 5592)
+++ lmi/trunk/loads_impl.hpp    2012-11-12 13:07:10 UTC (rev 5593)
@@ -49,7 +49,8 @@
 ///
 /// LowestPremiumTaxLoadRate_: The lowest rate of premium tax, which
 /// products that pass through premium tax need for 7702 calculations.
-/// The actual rate may vary if it is tiered.
+/// The actual rate may vary if it is tiered. TAXATION !! Obsolete:
+/// see commentary on lowest_premium_tax_load().
 ///
 /// asset_charge_type_: Determines whether input extra asset loads
 /// should be treated as a load or as an interest-rate decrement.

Modified: lmi/trunk/premium_tax.cpp
===================================================================
--- lmi/trunk/premium_tax.cpp   2012-11-11 13:41:15 UTC (rev 5592)
+++ lmi/trunk/premium_tax.cpp   2012-11-12 13:07:10 UTC (rev 5593)
@@ -406,6 +406,12 @@
 #endif // 0
 
 /// Lowest premium-tax load, for 7702 and 7702A purposes.
+///
+/// TAXATION !! No contemporary authority seems to believe that a
+/// change in the premium-tax rate, even if passed through to the
+/// policyowner, is a 7702A material change or a GPT adjustment
+/// event. Therefore, this function will be expunged; but any unique
+/// commentary or consistency test should be preserved.
 
 double lowest_premium_tax_load
     (mcenum_state              tax_state




reply via email to

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