[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>
+ Separate Account:
{{GenAcctAllocationComplementPercent}}<br>
+ 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>
- [lmi-commits] [lmi] master 173cc28 022/156: Change interpolated strings syntax to be Mustache-like, (continued)
- [lmi-commits] [lmi] master 173cc28 022/156: Change interpolated strings syntax to be Mustache-like, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 2e4850c 023/156: Implement the rest of "Narrative Summary" page body text, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master c341dbb 108/156: Factor out compliance_tracking template from the footer one, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 76881d8 019/156: Refactor: extra add_body_paragraph() helper, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 08127f1 028/156: Add symbolic constant for the "valign" HTML attribute, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 0d6c7f0 062/156: Get rid of separate wxDC parameter in the code, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master bbada54 084/156: Add image to the columns headings page too, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 3cf5a1c 056/156: Add wx_table_generator::output_super_header(), Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 95e616e 105/156: Add wx_table_generator::columns_count() accessor, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 3f1d437 088/156: Add add_abbreviated_variable() helper, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 118a249 097/156: Add "Column Definitions and Key Terms" page to NASD illustrations,
Greg Chicares <=
- [lmi-commits] [lmi] master 1ab47c0 063/156: Fix definition of integer-valued variable in PDF illustrations, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master bb21f4d 077/156: Fix header for composite illustrations, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master d2b2cae 038/156: Change column_headings page to use external template, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 2bb1c91 041/156: Remove unnecessary outer html and body tags, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 1afd45c 040/156: Avoid spurious coding style violation, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 9695e9e 112/156: Create InitAnnLoanDueRate vector in addition to the scalar, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 5f6dc89 131/156: Use string objects for illustration_table_column fields, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master fb01571 035/156: Pass what is being expanded to interpolation function, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master fc6d8b7 034/156: Implement the "Columns Headings" page, Greg Chicares, 2018/01/30
- [lmi-commits] [lmi] master 46788b8 119/156: Start implementing individual private placement illustration kind, Greg Chicares, 2018/01/30