lmi
[Top][All Lists]
Advanced

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



reply via email to

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