addExtension: Ablaufjahr ist doppelt aggregiert in Hauptvertrag
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:
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