[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5203] Resolve a marked defect
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5203] Resolve a marked defect |
Date: |
Sun, 12 Jun 2011 12:52:32 +0000 |
Revision: 5203
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5203
Author: chicares
Date: 2011-06-12 12:52:32 +0000 (Sun, 12 Jun 2011)
Log Message:
-----------
Resolve a marked defect
Modified Paths:
--------------
lmi/trunk/ihs_avmly.cpp
Modified: lmi/trunk/ihs_avmly.cpp
===================================================================
--- lmi/trunk/ihs_avmly.cpp 2011-06-11 14:26:14 UTC (rev 5202)
+++ lmi/trunk/ihs_avmly.cpp 2011-06-12 12:52:32 UTC (rev 5203)
@@ -1419,7 +1419,25 @@
// call them EeTaxBasis and ErTaxBasis.
}
-//============================================================================
+/// Determine premium load.
+///
+/// The total load has several components:
+/// - nonrefundable premium load
+/// - refundable sales load
+/// - premium-tax load
+/// - DAC-tax load
+/// which are applied separately (with due regard to variation by
+/// target versus excess), added together, and then rounded.
+///
+/// Alternatively, the load factors may be totalled, and their sum
+/// applied to the target and excess portions of the payment. This may
+/// yield a slightly different result due to intermediate rounding,
+/// which could be important for matching a particular admin system.
+/// Therefore, both calculations are performed, and their results are
+/// asserted to be materially equal--but only when the alternative
+/// calculation doesn't require too many adjustments, in particular
+/// when tiered premium tax is passed through as a load.
+
double AccountValue::GetPremLoad
(double a_pmt
,double a_portion_exempt_from_premium_tax
@@ -1458,14 +1476,6 @@
LMI_ASSERT(0.0 <= sales_load_);
CumulativeSalesLoad += sales_load_;
- // TODO ?? This variable and the variables it depends on probably
- // are no longer needed and should be expunged.
- double total_load =
- target_portion * YearsTotLoadTgt
- + excess_portion * YearsTotLoadExc
- - a_portion_exempt_from_premium_tax * PremiumTax_->load_rate()
- ;
-
premium_tax_load_ = PremiumTax_->calculate_load
(a_pmt - a_portion_exempt_from_premium_tax
,*StratifiedCharges_
@@ -1481,6 +1491,12 @@
+ dac_tax_load_
;
LMI_ASSERT(0.0 <= sum_of_separate_loads);
+
+ double total_load =
+ target_portion * YearsTotLoadTgt
+ + excess_portion * YearsTotLoadExc
+ - a_portion_exempt_from_premium_tax * PremiumTax_->load_rate()
+ ;
LMI_ASSERT
( PremiumTax_->is_tiered()
|| materially_equal(total_load, sum_of_separate_loads)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5203] Resolve a marked defect,
Greg Chicares <=