lmi-commits
[Top][All Lists]
Advanced

[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.




reply via email to

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