lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master 118a249 097/156: Add "Column Definitions and


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 118a249 097/156: Add "Column Definitions and Key Terms" page to NASD illustrations
Date: Tue, 30 Jan 2018 17:22:21 -0500 (EST)

branch: master
commit 118a249758779128e47b69eb87b4bd40c4a06e93
Author: Vadim Zeitlin <address@hidden>
Commit: Vadim Zeitlin <address@hidden>

    Add "Column Definitions and Key Terms" page to NASD illustrations
    
    This includes adding the header template used by all non-cover NASD
    illustration pages.
---
 ledger_evaluator.cpp          |  8 +++++
 ledger_pdf_generator_wx.cpp   | 28 +++++++++++++++
 nasd_column_headings.mustache | 75 ++++++++++++++++++++++++++++++++++++++++
 nasd_header.mustache          | 80 +++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 191 insertions(+)

diff --git a/ledger_evaluator.cpp b/ledger_evaluator.cpp
index acc6bb9..b3fa6c0 100644
--- a/ledger_evaluator.cpp
+++ b/ledger_evaluator.cpp
@@ -350,6 +350,8 @@ ledger_evaluator Ledger::make_evaluator() const
 // > Format as percentage with no decimal places (##0%)
     format_map["SalesLoadRefundRate0"              ] = f3;
     format_map["SalesLoadRefundRate1"              ] = f3;
+    format_map["GenAcctAllocationPercent"          ] = f3;
+    format_map["GenAcctAllocationComplementPercent"] = f3;
 
 // >
 // F2: two decimals, commas
@@ -701,6 +703,12 @@ ledger_evaluator Ledger::make_evaluator() const
     scalars["SalesLoadRefundRate0"] = &SalesLoadRefundRate0;
     scalars["SalesLoadRefundRate1"] = &SalesLoadRefundRate1;
 
+    double GenAcctAllocation           = ledger_invariant_->GenAcctAllocation;
+    double GenAcctAllocationComplement = 1. - GenAcctAllocation;
+
+    scalars["GenAcctAllocationPercent"          ] = &GenAcctAllocation;
+    scalars["GenAcctAllocationComplementPercent"] = 
&GenAcctAllocationComplement;
+
     std::string ScaleUnit = ledger_invariant_->ScaleUnit();
     strings["ScaleUnit"] = &ScaleUnit;
 
diff --git a/ledger_pdf_generator_wx.cpp b/ledger_pdf_generator_wx.cpp
index 2c7b55d..539738d 100644
--- a/ledger_pdf_generator_wx.cpp
+++ b/ledger_pdf_generator_wx.cpp
@@ -1910,7 +1910,35 @@ class pdf_illustration_nasd : public pdf_illustration
         )
         :pdf_illustration(ledger, output)
     {
+        auto const& invar = ledger.GetLedgerInvariant();
+
+        add_abbreviated_variable("CorpName", 60);
+        add_abbreviated_variable("Insured1", 30);
+
+        if(!invar.ContractName.empty())
+            {
+            std::string s = invar.ContractName;
+            for(auto& c : s)
+                {
+                c = lmi_tolower(c);
+                }
+            s[0] = lmi_toupper(s[0]);
+
+            add_variable("ContractNameCap", s);
+            }
+
+        add_variable
+            ("UWTypeIsGuaranteedIssueInTexasWithFootnote"
+            ,invar.UWType == "Guaranteed issue"
+            );
+
+        add_variable
+            ("HasTermOrSupplSpecAmt"
+            ,test_variable("HasTerm") || test_variable("HasSupplSpecAmt")
+            );
+
         add<cover_page>();
+        add<standard_page>("nasd_column_headings");
     }
 
     std::string get_upper_footer_template_name() const override
diff --git a/nasd_column_headings.mustache b/nasd_column_headings.mustache
new file mode 100644
index 0000000..679381e
--- /dev/null
+++ b/nasd_column_headings.mustache
@@ -0,0 +1,75 @@
+{{>nasd_header}}
+
+<p align="center"><b>Column Definitions and Key Terms</b></p>
+
+<p>
+<b>Account Value</b>
+<br>
+{{AccountValueFootnote}}
+</p>
+
+<p>
+<b>Cash Surrender Value</b>
+<br>
+{{CashSurrValueFootnote}}
+</p>
+
+<p>
+<b>Death Benefit</b>
+<br>
+{{DeathBenefitFootnote}}
+</p>
+
+{{^Composite}}
+<p>
+<b>End of Year Age</b>
+<br>
+{{AttainedAgeFootnote}}
+</p>
+{{/Composite}}
+
+{{#GroupCarveout}}
+<p>
+<b>Gross Payment</b>
+<br>
+{{GrossPremiumFootnote}}
+</p>
+{{/GroupCarveout}}
+
+<p>
+<b>Gross Rate</b>
+<br>
+{{GrossRateFootnote}}
+</p>
+
+{{#GroupCarveout}}
+<p>
+<b>Minimum Premium</b>
+<br>
+{{InitialPremiumFootnote}}
+</p>
+{{/GroupCarveout}}
+
+<p>
+<b>Net Premium</b>
+<br>
+{{NetPremiumFootnote}}
+</p>
+
+<p>
+<b>Net Rate</b>
+<br>
+{{NetRateFootnote}}
+</p>
+
+<p>
+<b>Policy Year</b>
+<br>
+{{PolicyYearFootnote}}
+</p>
+
+<p>
+<b>Premium Outlay</b>
+<br>
+{{OutlayFootnote}}
+</p>
diff --git a/nasd_header.mustache b/nasd_header.mustache
new file mode 100644
index 0000000..2b5492b
--- /dev/null
+++ b/nasd_header.mustache
@@ -0,0 +1,80 @@
+<scaled_image inv_factor="0.36" src="company_logo.png"></scaled_image>
+
+<br></br>
+<br></br>
+
+<p>
+The purpose of this illustration is to show how the performance
+of the underlying investment account could affect the
+{{ContractName}} account value and death benefit.
+<b>
+These hypothetical returns do not reflect past performance
+and are not predictive of future results. Actual results could be
+less than or greater than the hypothetical results
+and in all likelihood will vary from year to year.
+</b>
+</p>
+
+<br></br>
+<br></br>
+
+<table width="100%" cellspacing="0" cellpadding="0" valign="top">
+    <tr>
+        <td>
+        {{#Composite}}
+            {{CorpNameAbbrev60}}
+        {{/Composite}}
+        {{^Composite}}
+            {{Insured1Abbrev30}}
+        {{/Composite}},
+        {{Gender}} {{Smoker}} rates, Age {{Age}}<br>
+        {{#Composite}}
+            Composite<br>
+        {{/Composite}}
+        {{ContractNameCap}}: {{PolicyMktgName}}<br>
+        {{#GroupCarveout}}
+            Minimum Initial Premium: ${{InitMinPrem}}<br>
+        {{/GroupCarveout}}
+        First Year Premium: ${{InitPrem}}<br>
+        {{^Composite}}
+            {{#UWTypeIsMedical}}
+              Fully underwritten,
+            {{/UWTypeIsMedical}}
+            {{^UWTypeIsMedical}}
+                {{#UWTypeIsGuaranteedIssueInTexasWithFootnote}}
+                    Substandard ***,
+                {{/UWTypeIsGuaranteedIssueInTexasWithFootnote}}
+                {{^UWTypeIsGuaranteedIssueInTexasWithFootnote}}
+                    {{UWType}},
+                {{/UWTypeIsGuaranteedIssueInTexasWithFootnote}}
+            {{/UWTypeIsMedical}}
+            {{UWClass}}, Initial Death Benefit Option: {{InitDBOpt}}<br>
+            {{#UWClassIsRated}}
+                Table Rating: {{SubstandardTable}}<br>
+            {{/UWClassIsRated}}
+        {{/Composite}}
+        {{>contract_numbers}}
+        </td>
+        <td>
+            Assumed Premium Allocation:**<br>
+            &nbsp;&nbsp;&nbsp;&nbsp;Separate Account: 
{{GenAcctAllocationComplementPercent}}<br>
+            &nbsp;&nbsp;&nbsp;&nbsp;Guaranteed Principal Account (GPA): 
{{GenAcctAllocationPercent}}<br>
+            Initial
+                {{#HasTermOrSupplSpecAmt}}
+                    Total
+                {{/HasTermOrSupplSpecAmt}}
+                Face Amount: ${{InitTotalSA}}<br>
+            {{#HasTermOrSupplSpecAmt}}
+                Initial Base Face Amount: ${{InitBaseSpecAmt}}<br>
+                Initial
+                    {{#HasTerm}}
+                        Term Face Amount:
+                    {{/HasTerm}}
+                    {{#HasSupplSpecAmt}}
+                        Supplemental Face Amount:
+                    {{/HasSupplSpecAmt}}
+                  ${{InitTermSpecAmt}}<br>
+            {{/HasTermOrSupplSpecAmt}}
+        </td>
+    </tr>
+</table>



reply via email to

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