[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lmi] Question about "Numeric summary" logic
From: |
Greg Chicares |
Subject: |
Re: [lmi] Question about "Numeric summary" logic |
Date: |
Fri, 28 Jul 2017 23:59:16 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 |
On 2017-07-28 22:41, Vadim Zeitlin wrote:
>
> I have a lot of trouble trying to understand the logic of
> "numeric-summary-values" template in illustration_reg.xsl and I wonder if
> you can explain it in some simpler terms because I think most of the
> complexity there, e.g. the recursive use of the template inside it, is just
> due to XSLT limitations and the real logic implemented by it might be much
> simpler than it seems -- but I'm not 100% sure about it from just reading
> the code and there are a lot of special cases, so testing this is not
> completely obvious neither.
That code is incomprehensible...
> So if you could please describe which years should be present in this
> table, it would be great.
...so let's just follow the regulation:
http://www.naic.org/documents/committees_lhatf_582.pdf
which says, in relevant part (C)(1):
| This summary shall be shown for at least policy years five (5),
| ten (10) and twenty (20) and at age 70, if applicable ...
Here, "if applicable" means if the row-index year in {5,10,20,age_70}
above precedes the 'lapse year' [0] for the given output column, i.e.:
scalars/LapseYear_Guaranteed
scalars/LapseYear_Midpoint
scalars/LapseYear_Current
A policy "lapses" if it runs out of money and therefore expires.
For a policy issued at age 45 that "lapses" in its twenty-second
year (i.e., at age 67), we'd show rows for durations {5,10,20},
but not for age 70 because it expires before age 70.
[There is a further requirement in (C)(2), which the XSL code
addresses by showing an extra row with values as of the highest
lapse year: apparently it appends 'LapseYear_Current' to the set
{5,10,20,age_70} and just prints out a row of values indexed
accordingly. Before you spend too much time replicating that
particular row, let me consult with some experts--I think it may
be preferable to replace that extra row with one that just prints
the *value* of each 'LapseYear_*' instead of using any of them
as an *index*. I won't be able to have that discussion before
Monday at the earliest.]
---------
[0] "if applicable" means ... precedes 'lapse year'"
For anyone who's curious: that's correct even for a policy that
by its terms ends at, say, age 65. The reason is that the default
lapse year is the last possible year:
// Assume by default that the policy never lapses or becomes a MEC,
// so that the lapse and MEC durations are the last possible month.
...
VariantValues().LapseMonth = 11;
VariantValues().LapseYear = BasicValues::GetLength();
IOW, if no lapse occurs, the value of the 'LapseYear' variable is
conveniently defined as maturity duration.
- [lmi] Question about "Numeric summary" logic, Vadim Zeitlin, 2017/07/28
- Re: [lmi] Question about "Numeric summary" logic,
Greg Chicares <=
- Re: [lmi] Question about "Numeric summary" logic, Vadim Zeitlin, 2017/07/29
- Re: [lmi] Question about "Numeric summary" logic, Greg Chicares, 2017/07/29
- Re: [lmi] Question about "Numeric summary" logic, Vadim Zeitlin, 2017/07/29
- Re: [lmi] Question about "Numeric summary" logic, Greg Chicares, 2017/07/29
- Re: [lmi] Question about "Numeric summary" logic, Vadim Zeitlin, 2017/07/30
- Re: [lmi] Question about "Numeric summary" logic, Greg Chicares, 2017/07/30
- Re: [lmi] Question about "Numeric summary" logic, Vadim Zeitlin, 2017/07/30
- Re: [lmi] Question about "Numeric summary" logic, Greg Chicares, 2017/07/30
- Re: [lmi] Question about "Numeric summary" logic, Greg Chicares, 2017/07/31