LifeInsureR package for R issueshttps://gitlab.open-tools.net/R/LifeInsureR/-/issues2018-01-25T17:02:08Zhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/45Werte für Vorweggewinnbeteiligung in Gewinnbeteiligungs-Klasse und in Ausgabe...2018-01-25T17:02:08ZReinhold KainhoferWerte für Vorweggewinnbeteiligung in Gewinnbeteiligungs-Klasse und in Ausgabe für Gewinnbeteiligunghttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/43Bilanzreserve mit Rückkaufswert nach unten minimieren (U16-3/1_2017)2018-01-25T17:02:08ZReinhold KainhoferBilanzreserve mit Rückkaufswert nach unten minimieren (U16-3/1_2017)https://gitlab.open-tools.net/R/LifeInsureR/-/issues/42Auszahlungsbetrag als allgemeine Formel (VS, reserve, GB, Abschläge, Garantie...2018-01-25T17:02:08ZReinhold KainhoferAuszahlungsbetrag als allgemeine Formel (VS, reserve, GB, Abschläge, Garantien) implementierenAuszahlungsbetrag bei:
* [ ] Ableben prämienpflichtig und planmäßig prämienfrei
* [ ] Ableben prämienfrei mangels Prämienzahlung
* [ ] Erleben
* [ ] Rückkauf
* [ ] Reduktionswert
Enthaltene mögliche Größen:
* [ ] Deckungsrückste...Auszahlungsbetrag bei:
* [ ] Ableben prämienpflichtig und planmäßig prämienfrei
* [ ] Ableben prämienfrei mangels Prämienzahlung
* [ ] Erleben
* [ ] Rückkauf
* [ ] Reduktionswert
Enthaltene mögliche Größen:
* [ ] Deckungsrückstellung
* [ ] Gewinnbeteiligung
* [ ] Mindestreserve
* [ ] Evt. Abschlägehttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/41GB: Ablebensgewinn, Beitragsfreistellung und Rückkauf im Erlebenszeitpunkt so...2018-01-25T17:02:09ZReinhold KainhoferGB: Ablebensgewinn, Beitragsfreistellung und Rückkauf im Erlebenszeitpunkt soll 0 seinhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/39Implement running alpha cost as additional addons, not included in the gross ...2018-01-25T17:02:09ZReinhold KainhoferImplement running alpha cost as additional addons, not included in the gross premium (for premium refund!)Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/38Versicherungen auf zwei (mehrere) Leben2023-01-20T09:37:17ZReinhold KainhoferVersicherungen auf zwei (mehrere) Leben* [x] Parameterstruktur (Konstruktor) überlegen
* [x] Konstruktor implementieren -> technisches Alter und entsprechende Sterbetafel für verbundene Leben
* [x] Sterbetafeln für mehrere Leben
* [ ] Export der Daten nach Excel / Textou...* [x] Parameterstruktur (Konstruktor) überlegen
* [x] Konstruktor implementieren -> technisches Alter und entsprechende Sterbetafel für verbundene Leben
* [x] Sterbetafeln für mehrere Leben
* [ ] Export der Daten nach Excel / Textoutput
* [ ] DokumentationReinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/37Add arbitrary additional / auxiliary reserves (via a function that returns th...2018-01-25T17:02:09ZReinhold KainhoferAdd arbitrary additional / auxiliary reserves (via a function that returns the vector of reserves for the whole period)Write a comment or drag your files here...Write a comment or drag your files here...Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/36Flags für diverse vertragsspezifische Details (z.B. ohne Untersuchung)2018-01-25T17:02:09ZReinhold KainhoferFlags für diverse vertragsspezifische Details (z.B. ohne Untersuchung)* [ ] Flags im Konstruktor von InsuranceContract übergeben, die angeben, ob bestimmte Zuschläge (oder Berechnungsvorschriften) angewendet werden sollen. Aktuell wird z.B. der Zuschlag ohne medizinische Untersuchung immer angewendet, wenn...* [ ] Flags im Konstruktor von InsuranceContract übergeben, die angeben, ob bestimmte Zuschläge (oder Berechnungsvorschriften) angewendet werden sollen. Aktuell wird z.B. der Zuschlag ohne medizinische Untersuchung immer angewendet, wenn er im Tarif spezifiziert ist.
### Mögliche Zuschläge, die nicht immer angewendet warden sollen:
* [ ] Medizinischen Zuschlag (absolut und relative) nur anwenden, wenn das entsprechende Flag gesetzt ist
* [ ] Partnerrabatt
Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/24After the premium payment period, do not calculate/show any premium-free value?2018-01-25T17:02:09ZReinhold KainhoferAfter the premium payment period, do not calculate/show any premium-free value?Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/10Combine InsuranceTarif$premiumCalculation and InsuranceTarif$premiumDecomposi...2018-01-25T17:02:09ZReinhold KainhoferCombine InsuranceTarif$premiumCalculation and InsuranceTarif$premiumDecompositionThere is a lot of code duplication in those two functions (one is used to calculate the gross premium, the other one calculates the premiums over the whole time frame)There is a lot of code duplication in those two functions (one is used to calculate the gross premium, the other one calculates the premiums over the whole time frame)Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/7Implement Cost handling (especially inheritance from default values and parti...2018-01-25T17:02:09ZReinhold KainhoferImplement Cost handling (especially inheritance from default values and partial overriding) with the new contract-wise params (no longer tarif-only params)Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/5Convert benefitFrequencyLoading and premiumFrequencyLoading from a list into ...2018-01-25T17:02:09ZReinhold KainhoferConvert benefitFrequencyLoading and premiumFrequencyLoading from a list into a proper function that also works for values other than 1/2/4/12Current code: `��benefitFrequencyLoading = list("1" = 0.0, "2" = 0.0, "4" = 0.0, "12" = 0.0)`
Should be converted into a function.Current code: `��benefitFrequencyLoading = list("1" = 0.0, "2" = 0.0, "4" = 0.0, "12" = 0.0)`
Should be converted into a function.Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/4Implement different bases for premium refund (gross premium, gross premium in...2018-01-25T17:02:09ZReinhold KainhoferImplement different bases for premium refund (gross premium, gross premium including rebates, net premium, etc.)Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/1Proper documentation of the R6 classes and their methods2018-01-25T17:02:09ZAdministratorProper documentation of the R6 classes and their methods*Created by: kainhofer*
*Created by: kainhofer*
Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/47Reserve für Stückkosten, falls StkK nicht über Prämienzahlungsdauer verrechne...2019-03-18T11:12:26ZReinhold KainhoferReserve für Stückkosten, falls StkK nicht über Prämienzahlungsdauer verrechnet werdenBsp: Einmalerlag mit jährlichen Stückkosten über gesamte Laufzeit => Reserve mit Stückkosten wird anfangs gebildet und über Laufzeit abgebaut.
Bsp: Stückkosten über gesamte Laufzeit, aber abgekürzte PrämienzahlungsdauerBsp: Einmalerlag mit jährlichen Stückkosten über gesamte Laufzeit => Reserve mit Stückkosten wird anfangs gebildet und über Laufzeit abgebaut.
Bsp: Stückkosten über gesamte Laufzeit, aber abgekürzte PrämienzahlungsdauerReinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/48InsuranceContract::addDynamics: Allow overriding params of main contract for ...2020-03-05T20:32:05ZReinhold KainhoferInsuranceContract::addDynamics: Allow overriding params of main contract for dynamics (e.g. different interest rate, tariff, etc.)https://gitlab.open-tools.net/R/LifeInsureR/-/issues/50Better design of exported Excel files2020-03-04T23:03:47ZReinhold KainhoferBetter design of exported Excel fileshttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/51Werte nach Prämienfreistellung noch nicht korrekt2020-03-06T11:57:05ZReinhold KainhoferWerte nach Prämienfreistellung noch nicht korrekt* [ ] Alpha-/Zillmer-Kosten sollten bei Prf. nicht neu verrechnet werden
* [ ] adäquate Reserve nach alter/neuer Berechnung unterschiedlich
* [ ] Prämienzerlegung: gamma, beta, alpha, alpha.noZ, alpha.Z, Zillmer, net => sind NA* [ ] Alpha-/Zillmer-Kosten sollten bei Prf. nicht neu verrechnet werden
* [ ] adäquate Reserve nach alter/neuer Berechnung unterschiedlich
* [ ] Prämienzerlegung: gamma, beta, alpha, alpha.noZ, alpha.Z, Zillmer, net => sind NAReinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/52Turn params with limited values into enums, make sure to implement checks2020-09-04T07:56:49ZReinhold KainhoferTurn params with limited values into enums, make sure to implement checks- [ ] TariffTypeEnum
- [ ] PaymentTimeEnum
- [ ] SexEnum
- [ ] CalculationEnum- [ ] TariffTypeEnum
- [ ] PaymentTimeEnum
- [ ] SexEnum
- [ ] CalculationEnumhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/53Profit participation rates for dynamics / contract blocks are not properly sh...2020-09-12T23:13:53ZReinhold KainhoferProfit participation rates for dynamics / contract blocks are not properly shiftedProfit participation rates for dynamics are not adjusted for the later start of the block.Profit participation rates for dynamics are not adjusted for the later start of the block.Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/54Document all possible values for the "types" parameter of InsuranceTarif2020-11-06T15:01:05ZReinhold KainhoferDocument all possible values for the "types" parameter of InsuranceTarifhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/55General declaration of profit participation rates and per-scenario overrides2020-09-29T19:51:43ZReinhold KainhoferGeneral declaration of profit participation rates and per-scenario overridesAllow profit participation rates to be defined with a global (company-specific) list (indexed by year and profit class) as well as overriding past and future rates with deterministic scenarios (possibly merging observed past rates with f...Allow profit participation rates to be defined with a global (company-specific) list (indexed by year and profit class) as well as overriding past and future rates with deterministic scenarios (possibly merging observed past rates with future assumptions/scenarios, but also allowing scenarios for the past).
Issues to consider:
* Past observed rates should be used by default for the past (not overridden by the profit participation scheme's default!). The last available value should be used for the future.
* If no observed rates are available, default values from the participation scheme should be used
* If the contract or the scenario gives explicit values, these override the company-wide historic rates and the defaults.
Open questions:
* How can the contract or scenario override only future values, but use historic rates for the past?
It should be possible to define past rates and future rates or only future rates (and use past rates).
The conceptual difficulty is that historic rates are indexed by calendar year (i.e. absolute), while explicitly given vectors for the rates are relative to the contract's initial date. The latter currently also causes problems with dynamics that start later (the vectors need to be shifted / shortened accordingly).
One approach could be to use a default function rather than coding the company-wide historic table handling in the ProfitParticipation class. This could give the user full freedom of the past and future, while providing good defaults (historic rates and/or fixed assumptions).Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/56Versicherungen auf verbundene Leben in der Vignette dokumentieren2020-11-06T15:01:06ZReinhold KainhoferVersicherungen auf verbundene Leben in der Vignette dokumentierenhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/60noMedicalExam should only be applied when a flag is set for the contract (cur...2020-11-06T15:00:17ZReinhold KainhofernoMedicalExam should only be applied when a flag is set for the contract (currently it is always applied!)https://gitlab.open-tools.net/R/LifeInsureR/-/issues/61Gamma costs with term-fix insurances should be charged over the whole contrac...2020-11-14T18:09:58ZReinhold KainhoferGamma costs with term-fix insurances should be charged over the whole contract period (not until death!)- [x] Implement costs after death or for the full contract period (even after death)
- [ ] Document this feature- [x] Implement costs after death or for the full contract period (even after death)
- [ ] Document this featurehttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/63Add initial extra payment (e.g. carry-over from a previous contract)2023-01-19T22:39:17ZReinhold KainhoferAdd initial extra payment (e.g. carry-over from a previous contract)* [x] Allow extra payment at contract start (in addition to regular premiums)
* [ ] Premium waiver could be calculated similarly* [x] Allow extra payment at contract start (in addition to regular premiums)
* [ ] Premium waiver could be calculated similarlyhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/64Add parameter(s) for partial cost waiver (e.g. 50% of acquisition costs or 10...2023-01-16T15:31:05ZReinhold KainhoferAdd parameter(s) for partial cost waiver (e.g. 50% of acquisition costs or 100% of unit costs, with a base cost that cannot be waived)https://gitlab.open-tools.net/R/LifeInsureR/-/issues/70Update Documentation for new features2023-01-19T22:40:08ZReinhold KainhoferUpdate Documentation for new features- [ ] useUnearnedPremiums
- [x] initialCapital
- [ ] adjustPremiumCoefficients hook
- [ ] AfterDeath and FullContract cost frequencies (dimension cost array)
- [ ] type parameter of InsuranceTarif
- [ ] balanceSheetMethod => pass functio...- [ ] useUnearnedPremiums
- [x] initialCapital
- [ ] adjustPremiumCoefficients hook
- [ ] AfterDeath and FullContract cost frequencies (dimension cost array)
- [ ] type parameter of InsuranceTarif
- [ ] balanceSheetMethod => pass function for arbitrary interpolation of reserves
- [ ] unearnedPremiumsMethod => flexible calculation of unearned premiums
- [ ] premiumWaiverValueCalculation => Function for premium waiver penalty different from surrender penalty
- [ ] minCosts, costWaiver
- [ ] Unit-testing framework: testVmGlgExample, vmGlgExample.generateTest
- [ ] Debugging flags/options
- [ ] unitcostsInGross
- [ ] surrenderIncludesCostsReserves
- [ ] ...https://gitlab.open-tools.net/R/LifeInsureR/-/issues/72Prämienrückgewähr nach Prämienfreistellung falsch2021-11-07T14:44:06ZReinhold KainhoferPrämienrückgewähr nach Prämienfreistellung falschDie Summe der vor Freistellung bezahlten Prämien geht bei der Freistellung verloren.Die Summe der vor Freistellung bezahlten Prämien geht bei der Freistellung verloren.Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/74Implement addBlock to use the parent's parameters by default2021-11-24T20:44:28ZReinhold KainhoferImplement addBlock to use the parent's parameters by defaulthttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/75sumInsured for endowments should not be the death cover, but the original sum...2021-11-24T20:45:11ZReinhold KainhofersumInsured for endowments should not be the death cover, but the original sum insured, and death cover a fraction of the SIRelated to #74.Related to #74.https://gitlab.open-tools.net/R/LifeInsureR/-/issues/76Allow premiumRefund to be an absolute value rather than a fraction of the act...2021-12-03T20:27:46ZReinhold KainhoferAllow premiumRefund to be an absolute value rather than a fraction of the actual paid premiumsWhen modelling paid-up contracts as single-premium contracts starting at the premium waiver date (e.g. because historic data is not availalb...), the premium refund amount needs to be given as an absolute value and is NOT equal to the si...When modelling paid-up contracts as single-premium contracts starting at the premium waiver date (e.g. because historic data is not availalb...), the premium refund amount needs to be given as an absolute value and is NOT equal to the single premium calculated (due to premium waiver penalties, costs charged before paying up, etc.). In this case, premiumRefund cannot be relative to the charged premium, but needs to be an absolute value (e.g. relative to the sum insured).
- [ ] generalize premiumRefund parameter or introduce a new absPremiumRefund parameter
- [ ] Adjust the premium coefficients for absolute values (coefficient in enumerator of gross premium, independent from gross premium in net / Zillmer premium)
- [ ] Adjust the absolute cash flows and the absolute present values so the absolute premium refund is not calculated from the gross premium, but the given absolute value
Or, alternatively, use the death_sumInsured cash flows instead, which conceptually seems like the more natural approach, since mathematically, the death benefit is no longer a premium refund of the new contract. The only issue is that for type="pureendowment", the deathBenefit parameter is ignored => Think of a good parameter interface to indicate an absolute premium refund!Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/77addExtension: Ablaufjahr ist doppelt aggregiert in Hauptvertrag2023-01-22T15:34:31ZReinhold KainhoferaddExtension: Ablaufjahr ist doppelt aggregiert in HauptvertragWhen extending a contract, the reserves available at the end of the original contract and the payout of the original contract are added to the values of the new contract, leading to duplicate values at the beginning of the follow-up cont...When extending a contract, the reserves available at the end of the original contract and the payout of the original contract are added to the values of the new contract, leading to duplicate values at the beginning of the follow-up contract:
```{r}
library(LifeInsuranceContracts)
library(MortalityTables)
mortalityTables.load("Austria_Census")
Tarif.EndowmentA = InsuranceTarif$new(
type = "endowment",
mortalityTable = mort.AT.census.1981.male,
cost = initializeCosts(alpha = 0.04, gamma.contract = 0.0005, unitcosts = 10),
i = 0.03
)
ContractA = InsuranceContract$new(
tarif = Tarif.EndowmentA,
age = 40, policyPeriod = 20,
sumInsured = 10000,
contractClosing = as.Date("2000-07-01")
)
# premium-free extension
ContractB = ContractA$clone()$addExtension(id = "Verlängerung1", contractPeriod = 5, premiumPeriod = 0)
ContractB$Values$basicData[20:22,]
ContractB$Values$reserves[20:22,]
```
```
> ContractB$Values$basicData[20:22,]
PremiumPayment SumInsured Premiums InterestRate PolicyDuration PremiumPeriod
19 1 10000.00 422.3058 0.03 20 20
20 0 25117.04 0.0000 0.03 20 20
0 15117.04 0.0000 0.03 20 0
> ContractB$Values$reserves[20:22,]
SumInsured net Zillmer adequate gamma contractual conversion alphaRefund reduction PremiumsPaid Surrender PremiumFreeSumInsured
19 10000.00 9314.588 9314.588 9291.432 -1.776357e-15 9314.588 9314.588 0 9314.588 8446.117 9314.588 9594.026
20 25117.04 19910.623 19910.623 20000.000 8.937680e+01 20000.000 20000.000 0 20000.000 8446.117 20000.000 25253.369
15117.04 10115.881 10115.881 10201.734 8.585322e+01 10201.734 10201.734 0 10201.734 0.000 10201.734 15245.337
```Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/78forcePremium: Prämie und sumInsured soll vorgegeben werden, Prämie nicht mehr...2023-01-22T15:41:53ZReinhold KainhoferforcePremium: Prämie und sumInsured soll vorgegeben werden, Prämie nicht mehr berechnet (Rückstellung ist ggf. bei Abschluss nicht 0)When verifying the reserves of existing implementations, one has the sumInsured and the premium charged available. The reserves should be based on this information, even if the premium is inconsistent with the sumInsured, because both va...When verifying the reserves of existing implementations, one has the sumInsured and the premium charged available. The reserves should be based on this information, even if the premium is inconsistent with the sumInsured, because both values are legally agreed and cannot be changed by the undertaking.
Suggestion: Add a new parameter `forcePremium` that gives the premium that MUST be used, the sumInsured will also be used. The premiumCalculation functino will not be used, so the premium decomposition and some members of the premiums array will not be filled.
The reserves will use the provided permium.Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/79forcePremium: Allow providing the premium at one point in time (not neccessar...2023-01-22T15:43:01ZReinhold KainhoferforcePremium: Allow providing the premium at one point in time (not neccessarily t=0), calculate only prospective values (PV, reserves), but not anything before tReinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/81Costs as add-on to the gross premium2023-01-22T15:50:03ZReinhold KainhoferCosts as add-on to the gross premiumCosts charged on gross premium are relative to the final gross premium. e.g. with 4%, the gross premium is GP = NP + 4%*GP => GP = NP / 0.96
Some tariffs have the costs as an add-on to the net premium (plus other cost effects), so the fo...Costs charged on gross premium are relative to the final gross premium. e.g. with 4%, the gross premium is GP = NP + 4%*GP => GP = NP / 0.96
Some tariffs have the costs as an add-on to the net premium (plus other cost effects), so the formula is GP = NP * (1+4%)
The two approaches can in theory expressed with one cost parameter (alpha = alpha1/(1+alpha1)), but to make the interface easier to the user, it would make sense to add a new cost basis and let the user directly enter the defined cost rate.Reinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/82Add a function to print out a short contract summary with the most important ...2023-01-22T15:50:53ZReinhold KainhoferAdd a function to print out a short contract summary with the most important informationReinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/83Add flag to indicate whether Zillmering is used or not2023-01-23T07:53:33ZReinhold KainhoferAdd flag to indicate whether Zillmering is used or notIf zillmering is used, the balance sheet reserve is based on the Zillmer reserve, otherwise on the adequate reserve.
If the flag is not explicitly given in the call to INsuranceContract$new, it can be derived from the tariff's Zillmer c...If zillmering is used, the balance sheet reserve is based on the Zillmer reserve, otherwise on the adequate reserve.
If the flag is not explicitly given in the call to INsuranceContract$new, it can be derived from the tariff's Zillmer cost (if no Zillmer costs are given, zillmering=FALSE, otherwise TRUE).
* [ ] Implement constructor argument
* [ ] Implement reserve selection
* [ ] Implement automatic derivation from Zillmer cost specification
* [ ] Add documentationReinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/84Implement partial extensions2023-02-02T18:06:23ZReinhold KainhoferImplement partial extensionsWhen a contract expires, $addExtension can be used to add an extension (with any tariff, and other parameters).
However, the use of the reserve as initial Capital of the extension is not properly implemented.
If the extension has a sum...When a contract expires, $addExtension can be used to add an extension (with any tariff, and other parameters).
However, the use of the reserve as initial Capital of the extension is not properly implemented.
If the extension has a sumInsured (or a premiujm) and an initial Capital given, this should indicate a partial extension with the rest of the reserve paid out as benefit. This case also needs to be properly reflected in the CF dataframes of the blocks and of the main contract.
In particular, the survival-time row of the original contract should probably be modified? Or should the initial capital of the extension rather be reported as a (negative) survival benefit at the beginning of the extension? In the latter case, the overall contract would properly cancel out the carry-over from the original contract to the extension...
* [ ] Decide on correct approach methodically
* [ ] Decide on the proper API (parameters of addExtension)
* [ ] Implement approach
* [ ] DocumentationReinhold KainhoferReinhold Kainhoferhttps://gitlab.open-tools.net/R/LifeInsureR/-/issues/85Add method for arbitrary contract changes at a given time t2023-02-02T18:09:37ZReinhold KainhoferAdd method for arbitrary contract changes at a given time tCurrently, premiumWaiver is already implemented in a generic way to modify the contract at time t and re-calculate the whole contract from that time on.
This should be used to provide a method for arbitrary contract changes (e.g. sum re...Currently, premiumWaiver is already implemented in a generic way to modify the contract at time t and re-calculate the whole contract from that time on.
This should be used to provide a method for arbitrary contract changes (e.g. sum reductions / increases, tariff switches, pre-mature contract extensions, partial surrenders, etc.)
* [ ] Think of showstoppers
* [ ] Derive proper API / method interface
* [ ] Decide on cases that are not / cannot be properly implemented (=> documentation!)
* [ ] implement feature
* [ ] Add documentationReinhold KainhoferReinhold Kainhofer