[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5925] Rectify names
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5925] Rectify names |
Date: |
Wed, 09 Jul 2014 23:00:27 +0000 |
Revision: 5925
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5925
Author: chicares
Date: 2014-07-09 23:00:25 +0000 (Wed, 09 Jul 2014)
Log Message:
-----------
Rectify names
Modified Paths:
--------------
lmi/trunk/ihs_server7702.cpp
lmi/trunk/ihs_server7702io.cpp
lmi/trunk/ihs_server7702io.hpp
Modified: lmi/trunk/ihs_server7702.cpp
===================================================================
--- lmi/trunk/ihs_server7702.cpp 2014-07-09 14:37:35 UTC (rev 5924)
+++ lmi/trunk/ihs_server7702.cpp 2014-07-09 23:00:25 UTC (rev 5925)
@@ -100,49 +100,49 @@
// TODO ?? Perhaps the control word should be changed and
// processing restarted.
Output.Status |= precision_changed;
- warning() << Output.UniqueIdentifier << " error: " << e.what() <<
LMI_FLUSH;
+ warning() << Output.ContractNumber << " error: " << e.what() <<
LMI_FLUSH;
}
catch(server7702_implausible_input const& e)
{
Output.Status |= implausible_input;
- warning() << Output.UniqueIdentifier << " error: " << e.what() <<
LMI_FLUSH;
+ warning() << Output.ContractNumber << " error: " << e.what() <<
LMI_FLUSH;
}
catch(server7702_inconsistent_input const& e)
{
Output.Status |= inconsistent_input;
- warning() << Output.UniqueIdentifier << " error: " << e.what() <<
LMI_FLUSH;
+ warning() << Output.ContractNumber << " error: " << e.what() <<
LMI_FLUSH;
}
catch(x_product_rule_violated const& e)
{
Output.Status |= product_rule_violated;
- warning() << Output.UniqueIdentifier << " error: " << e.what() <<
LMI_FLUSH;
+ warning() << Output.ContractNumber << " error: " << e.what() <<
LMI_FLUSH;
}
catch(server7702_adjustable_event_forbidden_at_issue const& e)
{
Output.Status |= adjustable_event_forbidden_at_issue;
- warning() << Output.UniqueIdentifier << " error: " << e.what() <<
LMI_FLUSH;
+ warning() << Output.ContractNumber << " error: " << e.what() <<
LMI_FLUSH;
}
catch(server7702_guideline_negative const& e)
{
Output.Status |= guideline_negative;
- warning() << Output.UniqueIdentifier << " error: " << e.what() <<
LMI_FLUSH;
+ warning() << Output.ContractNumber << " error: " << e.what() <<
LMI_FLUSH;
}
catch(server7702_misstatement_of_age_or_gender const& e)
{
Output.Status |= misstatement_of_age_or_gender;
- warning() << Output.UniqueIdentifier << " error: " << e.what() <<
LMI_FLUSH;
+ warning() << Output.ContractNumber << " error: " << e.what() <<
LMI_FLUSH;
}
catch(std::range_error const& e)
{
Output.Status |= implausible_input; // TODO ?? can we be more specific?
- warning() << Output.UniqueIdentifier << " error: " << e.what() <<
LMI_FLUSH;
+ warning() << Output.ContractNumber << " error: " << e.what() <<
LMI_FLUSH;
}
// Unknown error
catch(std::exception const& e)
{
Output.Status |= unknown_error;
- warning() << Output.UniqueIdentifier << " error: " << e.what() <<
LMI_FLUSH;
+ warning() << Output.ContractNumber << " error: " << e.what() <<
LMI_FLUSH;
// Since we don't know what the error is, we propagate
// it back to the caller; we put a message on standard error,
// but don't try to emit anything to standard output.
@@ -153,11 +153,11 @@
//============================================================================
void Server7702::PerformProcessing()
{
- Output.UniqueIdentifier = Input.UniqueIdentifier;
+ Output.ContractNumber = Input.ContractNumber;
Output.Status = 0;
Output.AdjustableEventOccurred = false;
- Output.GuidelineLevelPremium = Input.OldGuidelineLevelPremium;
- Output.GuidelineSinglePremium = Input.OldGuidelineSinglePremium;
+ Output.GuidelineLevelPremium = Input.InforceGlp;
+ Output.GuidelineSinglePremium = Input.InforceGsp;
Output.GuidelineLevelPremiumPolicyA = 0.0;
Output.GuidelineSinglePremiumPolicyA = 0.0;
Output.GuidelineLevelPremiumPolicyB = 0.0;
@@ -248,14 +248,14 @@
"Old benefit amount less than least benefit amount ever"
);
}
- if(Input.NewSpecifiedAmount < Input.LeastBenefitAmountEver)
+ if(Input.NewSpecAmt < Input.LeastBenefitAmountEver)
{
throw server7702_implausible_input
(
"New specified amount less than least benefit amount ever"
);
}
- if(Input.OldSpecifiedAmount < Input.LeastBenefitAmountEver)
+ if(Input.OldSpecAmt < Input.LeastBenefitAmountEver)
{
throw server7702_implausible_input
(
@@ -285,17 +285,17 @@
IsPossibleAdjustableEvent =
// TODO ?? Why treat a taxable withdrawal as an adjustment event?
-// 0.0 !=
Input.GrossNontaxableWithdrawal
+// 0.0 != Input.PremsPaidDecrement
true == Input.DecreaseRequiredByContract
- || Input.NewDeathBenefitOption != Input.OldDeathBenefitOption
- || ( Input.NewSpecifiedAmount != Input.OldSpecifiedAmount
+ || Input.NewDbo != Input.OldDbo
+ || ( Input.NewSpecAmt != Input.OldSpecAmt
&& Input.NewBenefitAmount != Input.OldBenefitAmount
)
// TODO ?? NEED DECISION whether it's a SA or DB change that causes adj event
- || Input.NewTermAmount != Input.OldTermAmount
+ || Input.NewQabTermAmt != Input.OldQabTermAmt
// TODO ?? No adj event if term and SA change but DB remains constant, but
// TODO ?? NEED DECISION whether it's a SA or DB change that causes adj event
- || Input.NewSmoker != Input.OldSmoker
+ || Input.NewSmoking != Input.OldSmoking
// 7702 mortality basis is the same for preferred vs. standard
// Assume nothing else (e.g. loads) varies by that either
// || Input.NewUnderwritingClass != Input.OldUnderwritingClass
@@ -309,11 +309,11 @@
// Assume ADD rating is ignored
// || Input.NewAccidentalDeathRating != Input.OldAccidentalDeathRating
// Assume table rating is ignored
-// || Input.NewTableRating != Input.OldTableRating
+// || Input.NewSubstandardTable != Input.OldSubstandardTable
// Assume flat extras are ignored
// || Input.NewPermanentFlatAmount0 != Input.OldPermanentFlatAmount0
// || Input.NewTemporaryFlatAmount0 != Input.OldTemporaryFlatAmount0
-// || Input.NewTemporaryFlatDuration0 != Input.OldTemporaryFlatDuration0
+// || Input.NewTemporaryFlatInforceYear0 !=
Input.OldTemporaryFlatInforceYear0
;
if(IsIssuedToday && IsPossibleAdjustableEvent)
@@ -327,16 +327,16 @@
void Server7702::ProcessNewIssue()
{
bool okay =
- Input.Duration == 0
- && Input.OldGuidelineLevelPremium == 0.0
- && Input.OldGuidelineSinglePremium == 0.0
+ Input.InforceYear == 0
+ && Input.InforceGlp == 0.0
+ && Input.InforceGsp == 0.0
&& Input.OldGender == Input.NewGender
&& Input.OldUnderwritingClass == Input.NewUnderwritingClass
- && Input.OldSmoker == Input.NewSmoker
+ && Input.OldSmoking == Input.NewSmoking
&& Input.OldIssueAge == Input.NewIssueAge
&& Input.OldStateOfJurisdiction == Input.NewStateOfJurisdiction
- && Input.OldSpecifiedAmount == Input.NewSpecifiedAmount
- && Input.OldDeathBenefitOption == Input.NewDeathBenefitOption
+ && Input.OldSpecAmt == Input.NewSpecAmt
+ && Input.OldDbo == Input.NewDbo
;
// TODO ?? It would be better to spell them all out.
@@ -375,8 +375,8 @@
);
}
- Output.GuidelineLevelPremiumPolicyA = Input.OldGuidelineLevelPremium;
- Output.GuidelineSinglePremiumPolicyA = Input.OldGuidelineSinglePremium;
+ Output.GuidelineLevelPremiumPolicyA = Input.InforceGlp;
+ Output.GuidelineSinglePremiumPolicyA = Input.InforceGsp;
SetDoleBentsenValuesBC();
Output.GuidelineLevelPremium =
@@ -399,12 +399,12 @@
(Input.ProductName
,Input.OldGender .value()
,Input.OldUnderwritingClass .value()
- ,Input.OldSmoker .value()
+ ,Input.OldSmoking .value()
,Input.OldIssueAge
- ,Input.UnderwritingBasis .value()
+ ,Input.GroupUnderwritingType .value()
,Input.OldStateOfJurisdiction .value()
- ,Input.OldSpecifiedAmount
- ,Input.OldDeathBenefitOption .value()
+ ,Input.OldSpecAmt
+ ,Input.OldDbo .value()
,Input.OldAccidentalDeathInForce
,Input.TargetPremium
);
@@ -412,16 +412,16 @@
Output.GuidelineLevelPremiumPolicyA = basic_values_A.Irc7702_->CalculateGLP
(0
,Input.OldBenefitAmount
- ,Input.OldSpecifiedAmount
- ,Input.OldSpecifiedAmount
- ,Input.OldDeathBenefitOption.value()
+ ,Input.OldSpecAmt
+ ,Input.OldSpecAmt
+ ,Input.OldDbo.value()
);
Output.GuidelineSinglePremiumPolicyA =
basic_values_A.Irc7702_->CalculateGSP
(0
,Input.OldBenefitAmount
- ,Input.OldSpecifiedAmount
- ,Input.OldSpecifiedAmount
+ ,Input.OldSpecAmt
+ ,Input.OldSpecAmt
);
}
@@ -432,58 +432,58 @@
(Input.ProductName
,Input.NewGender .value()
,Input.NewUnderwritingClass .value()
- ,Input.NewSmoker .value()
+ ,Input.NewSmoking .value()
,Input.NewIssueAge
- ,Input.UnderwritingBasis .value()
+ ,Input.GroupUnderwritingType .value()
,Input.NewStateOfJurisdiction .value()
- ,Input.NewSpecifiedAmount
- ,Input.NewDeathBenefitOption .value()
+ ,Input.NewSpecAmt
+ ,Input.NewDbo .value()
,Input.NewAccidentalDeathInForce
,Input.TargetPremium
);
Output.GuidelineLevelPremiumPolicyB = basic_values_B.Irc7702_->CalculateGLP
- (Input.Duration
+ (Input.InforceYear
,Input.NewBenefitAmount
- ,Input.NewSpecifiedAmount
- ,Input.NewSpecifiedAmount
- ,Input.NewDeathBenefitOption.value()
+ ,Input.NewSpecAmt
+ ,Input.NewSpecAmt
+ ,Input.NewDbo.value()
);
Output.GuidelineSinglePremiumPolicyB =
basic_values_B.Irc7702_->CalculateGSP
- (Input.Duration
+ (Input.InforceYear
,Input.NewBenefitAmount
- ,Input.NewSpecifiedAmount
- ,Input.NewSpecifiedAmount
+ ,Input.NewSpecAmt
+ ,Input.NewSpecAmt
);
BasicValues basic_values_C
(Input.ProductName
,Input.OldGender .value()
,Input.OldUnderwritingClass .value()
- ,Input.OldSmoker .value()
+ ,Input.OldSmoking .value()
,Input.OldIssueAge
- ,Input.UnderwritingBasis .value()
+ ,Input.GroupUnderwritingType .value()
,Input.OldStateOfJurisdiction .value()
- ,Input.OldSpecifiedAmount
- ,Input.OldDeathBenefitOption .value()
+ ,Input.OldSpecAmt
+ ,Input.OldDbo .value()
,Input.OldAccidentalDeathInForce
,Input.TargetPremium
);
Output.GuidelineLevelPremiumPolicyC = basic_values_C.Irc7702_->CalculateGLP
- (Input.Duration
+ (Input.InforceYear
,Input.OldBenefitAmount
- ,Input.OldSpecifiedAmount
- ,Input.OldSpecifiedAmount
- ,Input.OldDeathBenefitOption.value()
+ ,Input.OldSpecAmt
+ ,Input.OldSpecAmt
+ ,Input.OldDbo.value()
);
Output.GuidelineSinglePremiumPolicyC =
basic_values_C.Irc7702_->CalculateGSP
- (Input.Duration
+ (Input.InforceYear
,Input.OldBenefitAmount
- ,Input.OldSpecifiedAmount
- ,Input.OldSpecifiedAmount
+ ,Input.OldSpecAmt
+ ,Input.OldSpecAmt
);
}
Modified: lmi/trunk/ihs_server7702io.cpp
===================================================================
--- lmi/trunk/ihs_server7702io.cpp 2014-07-09 14:37:35 UTC (rev 5924)
+++ lmi/trunk/ihs_server7702io.cpp 2014-07-09 23:00:25 UTC (rev 5925)
@@ -38,37 +38,37 @@
Server7702Input::Server7702Input(gpt_input const& z)
{
- UniqueIdentifier = z["ContractNumber"].str();
- Duration =
exact_cast<tnr_duration>(z["InforceYear"])->value();
- IsIssuedToday = 0 == Duration; // Casual, but strictly
correct for all testdeck cases.
- GrossNontaxableWithdrawal =
exact_cast<tnr_nonnegative_double>(z["PremsPaidDecrement"])->value();
- Premium =
exact_cast<tnr_nonnegative_double>(z["Payment"])->value();
+ ContractNumber = z["ContractNumber"].str();
+ InforceYear =
exact_cast<tnr_duration>(z["InforceYear"])->value();
+ IsIssuedToday = 0 == InforceYear; // Casual, but strictly
correct for all testdeck cases.
+ PremsPaidDecrement =
exact_cast<tnr_nonnegative_double>(z["PremsPaidDecrement"])->value();
+ Payment =
exact_cast<tnr_nonnegative_double>(z["Payment"])->value();
DecreaseRequiredByContract = 0.0;
ProductName = z["ProductName"].str();
- UnderwritingBasis =
exact_cast<mce_uw_basis>(z["GroupUnderwritingType"])->value();
+ GroupUnderwritingType =
exact_cast<mce_uw_basis>(z["GroupUnderwritingType"])->value();
PremTaxLoadRate = 0.0;
TieredAssetChargeRate = 0.0;
LeastBenefitAmountEver = 0.0;
- OldGuidelineLevelPremium =
exact_cast<tnr_unrestricted_double>(z["InforceGlp"])->value();
- OldGuidelineSinglePremium =
exact_cast<tnr_unrestricted_double>(z["InforceGsp"])->value();
+ InforceGlp =
exact_cast<tnr_unrestricted_double>(z["InforceGlp"])->value();
+ InforceGsp =
exact_cast<tnr_unrestricted_double>(z["InforceGsp"])->value();
NewIssueAge = exact_cast<tnr_age>(z["IssueAge"])->value();
OldIssueAge = NewIssueAge;
NewGender =
exact_cast<mce_gender>(z["NewGender"])->value();
OldGender =
exact_cast<mce_gender>(z["OldGender"])->value();
- NewSmoker =
exact_cast<mce_smoking>(z["NewSmoking"])->value();
- OldSmoker =
exact_cast<mce_smoking>(z["OldSmoking"])->value();
+ NewSmoking =
exact_cast<mce_smoking>(z["NewSmoking"])->value();
+ OldSmoking =
exact_cast<mce_smoking>(z["OldSmoking"])->value();
NewUnderwritingClass =
exact_cast<mce_class>(z["UnderwritingClass"])->value();
OldUnderwritingClass = NewUnderwritingClass;
NewStateOfJurisdiction =
exact_cast<mce_state>(z["StateOfJurisdiction"])->value();
OldStateOfJurisdiction = NewStateOfJurisdiction;
- NewDeathBenefitOption =
exact_cast<mce_dbopt_7702>(z["NewDbo"])->value();
- OldDeathBenefitOption =
exact_cast<mce_dbopt_7702>(z["OldDbo"])->value();
+ NewDbo =
exact_cast<mce_dbopt_7702>(z["NewDbo"])->value();
+ OldDbo =
exact_cast<mce_dbopt_7702>(z["OldDbo"])->value();
NewBenefitAmount =
exact_cast<tnr_nonnegative_double>(z["NewDeathBft"])->value();
OldBenefitAmount =
exact_cast<tnr_nonnegative_double>(z["OldDeathBft"])->value();
- NewSpecifiedAmount =
exact_cast<tnr_nonnegative_double>(z["NewSpecAmt"])->value();
- OldSpecifiedAmount =
exact_cast<tnr_nonnegative_double>(z["OldSpecAmt"])->value();
- NewTermAmount =
exact_cast<tnr_nonnegative_double>(z["NewQabTermAmt"])->value();
- OldTermAmount =
exact_cast<tnr_nonnegative_double>(z["OldQabTermAmt"])->value();
+ NewSpecAmt =
exact_cast<tnr_nonnegative_double>(z["NewSpecAmt"])->value();
+ OldSpecAmt =
exact_cast<tnr_nonnegative_double>(z["OldSpecAmt"])->value();
+ NewQabTermAmt =
exact_cast<tnr_nonnegative_double>(z["NewQabTermAmt"])->value();
+ OldQabTermAmt =
exact_cast<tnr_nonnegative_double>(z["OldQabTermAmt"])->value();
NewWaiverOfPremiumInForce = false;
OldWaiverOfPremiumInForce = false;
NewPremiumsWaived = false;
@@ -79,8 +79,8 @@
OldAccidentalDeathInForce = false;
NewAccidentalDeathRating = "None";
OldAccidentalDeathRating = "None";
- NewTableRating =
exact_cast<mce_table_rating>(z["NewSubstandardTable"])->value();
- OldTableRating =
exact_cast<mce_table_rating>(z["OldSubstandardTable"])->value();
+ NewSubstandardTable =
exact_cast<mce_table_rating>(z["NewSubstandardTable"])->value();
+ OldSubstandardTable =
exact_cast<mce_table_rating>(z["OldSubstandardTable"])->value();
NewPermanentFlatAmount0 = 0.0;
OldPermanentFlatAmount0 = 0.0;
NewPermanentFlatAmount1 = 0.0;
@@ -107,8 +107,8 @@
{
gpt_input z;
- z["ContractNumber"] = UniqueIdentifier;
- z["InforceYear"] = value_cast<std::string>(Duration);
+ z["ContractNumber"] = ContractNumber;
+ z["InforceYear"] = value_cast<std::string>(InforceYear);
// For class gpt_input, 'InforceAsOfDate' is primary by default,
// so it needs to be set here.
calendar_date d = add_years
@@ -117,36 +117,36 @@
,true
);
z["InforceAsOfDate"] = value_cast<std::string>(d);
- z["PremsPaidDecrement"] =
value_cast<std::string>(GrossNontaxableWithdrawal);
- z["Payment"] = value_cast<std::string>(Premium);
+ z["PremsPaidDecrement"] = value_cast<std::string>(PremsPaidDecrement);
+ z["Payment"] = value_cast<std::string>(Payment);
z["ProductName"] = ProductName;
- z["GroupUnderwritingType"] = UnderwritingBasis.str();
- z["InforceGlp"] =
value_cast<std::string>(OldGuidelineLevelPremium);
- z["InforceGsp"] =
value_cast<std::string>(OldGuidelineSinglePremium);
+ z["GroupUnderwritingType"] = GroupUnderwritingType.str();
+ z["InforceGlp"] = value_cast<std::string>(InforceGlp);
+ z["InforceGsp"] = value_cast<std::string>(InforceGsp);
z["IssueAge"] = value_cast<std::string>(NewIssueAge);
LMI_ASSERT(OldIssueAge == NewIssueAge);
z["NewGender"] = NewGender.str();
z["OldGender"] = OldGender.str();
- z["NewSmoking"] = NewSmoker.str();
- z["OldSmoking"] = OldSmoker.str();
+ z["NewSmoking"] = NewSmoking.str();
+ z["OldSmoking"] = OldSmoking.str();
z["UnderwritingClass"] = NewUnderwritingClass.str();
LMI_ASSERT(OldUnderwritingClass == NewUnderwritingClass);
z["StateOfJurisdiction"] = NewStateOfJurisdiction.str();
LMI_ASSERT(OldStateOfJurisdiction == NewStateOfJurisdiction);
- z["NewDbo"] = NewDeathBenefitOption.str();
- z["OldDbo"] = OldDeathBenefitOption.str();
+ z["NewDbo"] = NewDbo.str();
+ z["OldDbo"] = OldDbo.str();
z["NewDeathBft"] = value_cast<std::string>(NewBenefitAmount);
z["OldDeathBft"] = value_cast<std::string>(OldBenefitAmount);
- z["NewSpecAmt"] = value_cast<std::string>(NewSpecifiedAmount);
- z["OldSpecAmt"] = value_cast<std::string>(OldSpecifiedAmount);
- // It's unclear whether Server7702Input's [Old|New]TermAmount
+ z["NewSpecAmt"] = value_cast<std::string>(NewSpecAmt);
+ z["OldSpecAmt"] = value_cast<std::string>(OldSpecAmt);
+ // It's unclear whether Server7702Input's [Old|New]QabTermAmt
// members were intended to represent an integrated term rider or
// a QAB. That doesn't really matter, because these amounts were
// never used in the old GPT calculations.
- z["NewQabTermAmt"] = value_cast<std::string>(NewTermAmount);
- z["OldQabTermAmt"] = value_cast<std::string>(OldTermAmount);
- z["NewSubstandardTable"] = NewTableRating.str();
- z["OldSubstandardTable"] = OldTableRating.str();
+ z["NewQabTermAmt"] = value_cast<std::string>(NewQabTermAmt);
+ z["OldQabTermAmt"] = value_cast<std::string>(OldQabTermAmt);
+ z["NewSubstandardTable"] = NewSubstandardTable.str();
+ z["OldSubstandardTable"] = OldSubstandardTable.str();
// 'TargetPremium' should have had "old" and "new" variants.
z["OldTarget"] = value_cast<std::string>(TargetPremium);
z["NewTarget"] = value_cast<std::string>(TargetPremium);
Modified: lmi/trunk/ihs_server7702io.hpp
===================================================================
--- lmi/trunk/ihs_server7702io.hpp 2014-07-09 14:37:35 UTC (rev 5924)
+++ lmi/trunk/ihs_server7702io.hpp 2014-07-09 23:00:25 UTC (rev 5925)
@@ -38,43 +38,43 @@
Server7702Input(gpt_input const&);
operator gpt_input() const;
- std::string UniqueIdentifier; // an arbitrary string that
identifies the contract uniquely. The contract number may be used, but remember
that the server maintains no database of actual contracts.
+ std::string ContractNumber; // an arbitrary string that
identifies the contract uniquely. The contract number may be used, but remember
that the server maintains no database of actual contracts.
bool IsIssuedToday; // true if the contract is
issued or reissued today. Used to prevent adjustable events at issue, which
must not occur.
- int Duration; // number of policy years
completed since issue (so it starts at 0).
- double GrossNontaxableWithdrawal; // UNUSED IN OLD TESTDECK the
nontaxable portion of partial surrenders, including any withdrawal fees, plus
involuntary withdrawals to restrict NAAR for reinsurance, plus amounts returned
to preserve \xA77702A status.
- double Premium; // UNUSED IN OLD TESTDECK
gross payments, including those paid by a waiver benefit, before subtracting
any "GrossNontaxableWithdrawal" on the same date, but net of any charges for
non-qualified additional benefits that are not prefunded.
+ int InforceYear; // number of policy years
completed since issue (so it starts at 0).
+ double PremsPaidDecrement; // UNUSED IN OLD TESTDECK the
nontaxable portion of partial surrenders, including any withdrawal fees, plus
involuntary withdrawals to restrict NAAR for reinsurance, plus amounts returned
to preserve \xA77702A status.
+ double Payment; // UNUSED IN OLD TESTDECK
gross payments, including those paid by a waiver benefit, before subtracting
any "PremsPaidDecrement" on the same date, but net of any charges for
non-qualified additional benefits that are not prefunded.
double DecreaseRequiredByContract; // UNUSED amount of decrease
in specified amount required by the contract's terms, as for example in a
decreasing term contract: unsupported, so use 0.0 for now.
std::string ProductName; // the only permissible
values are those for which data files exist.
- mce_uw_basis UnderwritingBasis; // permissible values are
Medical, Paramedical, Nonmedical, Simplified_issue, and Guaranteed_issue, and I
assume this is set at issue and can never change.
+ mce_uw_basis GroupUnderwritingType; // permissible values are
Medical, Paramedical, Nonmedical, Simplified_issue, and Guaranteed_issue, and I
assume this is set at issue and can never change.
double PremTaxLoadRate; // the rate actually charged
as a premium load. Example: 0.02 means a 2% load. Used to determine whether any
load reflected in \xA77702 calculations has changed.
double TieredAssetChargeRate; // UNUSED the tiered rate
actually charged against assets, reflecting the current tier. Example: 0.0050
means fifty basis points. Used to determine whether any load reflected in
\xA77702 calculations has changed.
double LeastBenefitAmountEver; // UNUSED the lowest face
amount ever used in \xA77702 calculations since the contract was issued; equal
at issue to DB. The server will always calculate this but never store it. The
client will always store it but never calculate it, except to set it equal to
DB at issue.
// The names of the next several parameters begin with the prefix "Old" to
indicate that they are evaluated before the day's transactions. Should an
adjustable event occur, they describe the state of the contract before any
transaction that might have caused the adjustable event. At issue, "Old" values
are the contract's issue parameters.
- double OldGuidelineLevelPremium; // as previously calculated
by the server; 0.0 at issue.
- double OldGuidelineSinglePremium; // as previously calculated
by the server; 0.0 at issue.
+ double InforceGlp; // as previously calculated
by the server; 0.0 at issue.
+ double InforceGsp; // as previously calculated
by the server; 0.0 at issue.
// Each of the remaining parameters must be supplied in both a "new" and
an "old" flavor, reflecting the state of the contract respectively before and
after the day's transactions. For economy of presentation I don't repeat the
list here with "Old" and "New" prefixes, but we'll have to do that when
specifying the record layout.
int NewIssueAge; // as defined in the GPT
specs.
int OldIssueAge; // UNUSED IN OLD TESTDECK
mce_gender NewGender; // male, female, or unisex.
mce_gender OldGender; // UNUSED IN OLD TESTDECK
- mce_smoking NewSmoker; // smoker, nonsmoker, or
unismoke.
- mce_smoking OldSmoker;
+ mce_smoking NewSmoking; // smoker, nonsmoker, or
unismoke.
+ mce_smoking OldSmoking;
mce_class NewUnderwritingClass; // permissible values are
Preferred, Standard, and Rated.
mce_class OldUnderwritingClass; // UNUSED IN OLD TESTDECK
mce_state NewStateOfJurisdiction; // capitalized two-letter
postal abbreviation for the state that determines the premium tax rate.
mce_state OldStateOfJurisdiction; // UNUSED IN OLD TESTDECK
- mce_dbopt_7702 NewDeathBenefitOption; // DBO--A or B only.
- mce_dbopt_7702 OldDeathBenefitOption;
+ mce_dbopt_7702 NewDbo; // DBO--A or B only.
+ mce_dbopt_7702 OldDbo;
double NewBenefitAmount; // 'death benefit' as
defined in 7702: we are using the amount payable by reason of death.
double OldBenefitAmount; // the benefit amount before
today's transactions; at issue, the amount described in the section on dumpins.
- double NewSpecifiedAmount; // SA.
- double OldSpecifiedAmount;
- double NewTermAmount; // benefit amount of any
term rider; 0.0 if none.
- double OldTermAmount;
+ double NewSpecAmt; // SA.
+ double OldSpecAmt;
+ double NewQabTermAmt; // benefit amount of any
term rider; 0.0 if none.
+ double OldQabTermAmt;
bool NewWaiverOfPremiumInForce; // UNUSED true if waiver
benefit in force, otherwise false.
bool OldWaiverOfPremiumInForce; // UNUSED
bool NewPremiumsWaived; // UNUSED true if waiver
benefit in disability status, otherwise false.
@@ -85,8 +85,8 @@
bool OldAccidentalDeathInForce;
mce_table_rating NewAccidentalDeathRating; // UNUSED substandard rating
for premium waiver; I don't know what the permissible values are.
mce_table_rating OldAccidentalDeathRating; // UNUSED
- mce_table_rating NewTableRating; // UNUSED
- mce_table_rating OldTableRating; // UNUSED
+ mce_table_rating NewSubstandardTable; // UNUSED
+ mce_table_rating OldSubstandardTable; // UNUSED
// The remaining parameters specify flat extras.
// The distinction between temporary and permanent flats is important. I
give the names with a suffix "0" here, but they need to be repeated with "1",
"2", and so on for as many flats as permitted (how many is that?). As noted
above, each has both an "old" and a "new" flavor.
@@ -118,7 +118,7 @@
struct Server7702Output
{
- std::string UniqueIdentifier; // the same identifier
supplied as input.
+ std::string ContractNumber; // the same identifier
supplied as input.
int Status;
bool AdjustableEventOccurred;
double GuidelineLevelPremium; // the new GLP.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5925] Rectify names,
Greg Chicares <=