Skip to content
Snippets Groups Projects
Commit f112d61b authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

Rename package from LifeInsuranceContracts to LifeInsureR

parent aa001051
Branches
Tags
No related merge requests found
Showing
with 503 additions and 366 deletions
...@@ -4,6 +4,6 @@ ...@@ -4,6 +4,6 @@
.~lock.*# .~lock.*#
R/Companies/ R/Companies/
Formulas_Reference/2013*.xls* Formulas_Reference/2013*.xls*
LifeInsuranceContracts.Rproj LifeInsureR.Rproj
Vergleichsrechnung_Excel Vergleichsrechnung_Excel
inst/doc inst/doc
Package: LifeInsuranceContracts Package: LifeInsureR
Type: Package Type: Package
Version: 0.0.5 Version: 1.0.0
Date: 2023-10-18 Date: 2023-10-20
Title: Framework for Traditional Life Insurance Contracts Title: Framework for Traditional Life Insurance Contracts
Description: R6 classes to model traditional life insurance Description: R6 classes to model traditional life insurance
contracts like annuities, whole life insurances or endowments. Such life contracts like annuities, whole life insurances or endowments. Such life
...@@ -45,7 +45,7 @@ Collate: ...@@ -45,7 +45,7 @@ Collate:
'InsuranceContract.R' 'InsuranceContract.R'
'addDataTableWorksheet.R' 'addDataTableWorksheet.R'
'contractGrid.R' 'contractGrid.R'
'create_LIC_project.R' 'create_LIR_project.R'
'exportInsuranceContract_xlsx.R' 'exportInsuranceContract_xlsx.R'
'showVmGlgExamples.R' 'showVmGlgExamples.R'
'exportInsuranceContractExample.R' 'exportInsuranceContractExample.R'
...@@ -57,5 +57,5 @@ Suggests: ...@@ -57,5 +57,5 @@ Suggests:
fs fs
VignetteBuilder: knitr VignetteBuilder: knitr
Roxygen: list(markdown = TRUE) Roxygen: list(markdown = TRUE)
URL: https://gitlab.open-tools.net/R/r-life-insurance-contracts URL: https://gitlab.open-tools.net/R/LifeInsureR
BugReports: https://gitlab.open-tools.net/R/r-life-insurance-contracts/-/issues BugReports: https://gitlab.open-tools.net/R/LifeInsureR/-/issues
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
library(magrittr) library(magrittr)
library(MortalityTables) library(MortalityTables)
library(lubridate) library(lubridate)
library(LifeInsuranceContracts) library(LifeInsureR)
mortalityTables.load("Austria_Census") mortalityTables.load("Austria_Census")
mort.AT.census.2011.male mort.AT.census.2011.male
......
library(magrittr) library(magrittr)
library(MortalityTables) library(MortalityTables)
library(LifeInsuranceContracts) library(LifeInsureR)
mortalityTables.load("Austria_Census") mortalityTables.load("Austria_Census")
# Costs: 4% acquisition, where 2.5% are zillmered, 5\% of each premium as beta costs, # Costs: 4% acquisition, where 2.5% are zillmered, 5\% of each premium as beta costs,
......
...@@ -32,14 +32,14 @@ NULL ...@@ -32,14 +32,14 @@ NULL
#' #'
#' @export #' @export
setCost = function(costs, type, basis = "SumInsured", frequency = "PolicyPeriod", value) { setCost = function(costs, type, basis = "SumInsured", frequency = "PolicyPeriod", value) {
costs[type, basis, frequency] = value costs[type, basis, frequency] = value
costs costs
} }
#' Initialize or modify a data structure for the definition of [InsuranceTarif] costs #' Initialize or modify a data structure for the definition of [InsuranceTarif] costs
#' #'
#' Initialize a cost matrix with dimensions: {CostType, Basis, Period}, where: #' Initialize a cost matrix with dimensions: \{CostType, Basis, Period\}, where:
#' \describe{ #' \describe{
#' \item{CostType:}{alpha, Zillmer, beta, gamma, gamma_nopremiums, unitcosts} #' \item{CostType:}{alpha, Zillmer, beta, gamma, gamma_nopremiums, unitcosts}
#' \item{Basis:}{SumInsured, SumPremiums, GrossPremium, NetPremium, Benefits, Constant} #' \item{Basis:}{SumInsured, SumPremiums, GrossPremium, NetPremium, Benefits, Constant}
...@@ -100,7 +100,7 @@ setCost = function(costs, type, basis = "SumInsured", frequency = "PolicyPeriod" ...@@ -100,7 +100,7 @@ setCost = function(costs, type, basis = "SumInsured", frequency = "PolicyPeriod"
initializeCosts = function(costs, alpha, Zillmer, alpha.commission, beta, gamma, gamma.paidUp, gamma.premiumfree, gamma.contract, gamma.afterdeath, gamma.fullcontract, unitcosts, unitcosts.PolicyPeriod) { initializeCosts = function(costs, alpha, Zillmer, alpha.commission, beta, gamma, gamma.paidUp, gamma.premiumfree, gamma.contract, gamma.afterdeath, gamma.fullcontract, unitcosts, unitcosts.PolicyPeriod) {
if (missing(costs)) { if (missing(costs)) {
dimnm = list( dimnm = list(
type = c("alpha", "Zillmer", "beta", "gamma", "gamma_nopremiums", "unitcosts"), type = c("alpha", "Zillmer", "beta", "gamma", "gamma_nopremiums", "unitcosts"),
basis = c("SumInsured", "SumPremiums", "GrossPremium", "NetPremium", "Benefits", "Constant", "Reserve"), basis = c("SumInsured", "SumPremiums", "GrossPremium", "NetPremium", "Benefits", "Constant", "Reserve"),
frequency = c("once", "PremiumPeriod", "PremiumFree", "PolicyPeriod", "AfterDeath", "FullContract", "CommissionPeriod") frequency = c("once", "PremiumPeriod", "PremiumFree", "PolicyPeriod", "AfterDeath", "FullContract", "CommissionPeriod")
); );
...@@ -118,37 +118,37 @@ initializeCosts = function(costs, alpha, Zillmer, alpha.commission, beta, gamma, ...@@ -118,37 +118,37 @@ initializeCosts = function(costs, alpha, Zillmer, alpha.commission, beta, gamma,
costs = setCost(costs, "Zillmer", "SumPremiums", "CommissionPeriod", alpha.commission) costs = setCost(costs, "Zillmer", "SumPremiums", "CommissionPeriod", alpha.commission)
} }
if (!missing(Zillmer)) { if (!missing(Zillmer)) {
costs = setCost(costs, "Zillmer","SumPremiums", "once", Zillmer) costs = setCost(costs, "Zillmer","SumPremiums", "once", Zillmer)
} }
if (!missing(beta)) { if (!missing(beta)) {
costs = setCost(costs, "beta", "GrossPremium", "PremiumPeriod", beta) costs = setCost(costs, "beta", "GrossPremium", "PremiumPeriod", beta)
} }
if (!missing(gamma)) { if (!missing(gamma)) {
costs = setCost(costs, "gamma", "SumInsured", "PremiumPeriod", gamma) costs = setCost(costs, "gamma", "SumInsured", "PremiumPeriod", gamma)
} }
if (!missing(gamma.premiumfree)) { if (!missing(gamma.premiumfree)) {
costs = setCost(costs, "gamma", "SumInsured", "PremiumFree", gamma.premiumfree) costs = setCost(costs, "gamma", "SumInsured", "PremiumFree", gamma.premiumfree)
} }
if (!missing(gamma.paidUp)) { if (!missing(gamma.paidUp)) {
costs = setCost(costs, "gamma_nopremiums", "SumInsured", "PolicyPeriod", gamma.paidUp) costs = setCost(costs, "gamma_nopremiums", "SumInsured", "PolicyPeriod", gamma.paidUp)
} }
if (!missing(gamma.contract)) { if (!missing(gamma.contract)) {
costs = setCost(costs, "gamma", "SumInsured", "PolicyPeriod", gamma.contract) costs = setCost(costs, "gamma", "SumInsured", "PolicyPeriod", gamma.contract)
# costs = setCost(costs, "gamma_nopremiums", "SumInsured", "PolicyPeriod", gamma.contract) # costs = setCost(costs, "gamma_nopremiums", "SumInsured", "PolicyPeriod", gamma.contract)
} }
if (!missing(gamma.afterdeath)) { if (!missing(gamma.afterdeath)) {
costs = setCost(costs, "gamma", "SumInsured", "AfterDeath", gamma.afterdeath) costs = setCost(costs, "gamma", "SumInsured", "AfterDeath", gamma.afterdeath)
costs = setCost(costs, "gamma_nopremiums", "SumInsured", "AfterDeath", gamma.afterdeath) costs = setCost(costs, "gamma_nopremiums", "SumInsured", "AfterDeath", gamma.afterdeath)
} }
if (!missing(gamma.fullcontract)) { if (!missing(gamma.fullcontract)) {
costs = setCost(costs, "gamma", "SumInsured", "FullContract", gamma.fullcontract) costs = setCost(costs, "gamma", "SumInsured", "FullContract", gamma.fullcontract)
costs = setCost(costs, "gamma_nopremiums", "SumInsured", "FullContract", gamma.fullcontract) costs = setCost(costs, "gamma_nopremiums", "SumInsured", "FullContract", gamma.fullcontract)
} }
if (!missing(unitcosts)) { if (!missing(unitcosts)) {
costs = setCost(costs, "unitcosts", "Constant", "PremiumPeriod", unitcosts) costs = setCost(costs, "unitcosts", "Constant", "PremiumPeriod", unitcosts)
} }
if (!missing(unitcosts.PolicyPeriod)) { if (!missing(unitcosts.PolicyPeriod)) {
costs = setCost(costs, "unitcosts", "Constant", "PolicyPeriod", unitcosts.PolicyPeriod) costs = setCost(costs, "unitcosts", "Constant", "PolicyPeriod", unitcosts.PolicyPeriod)
} }
costs costs
} }
...@@ -165,13 +165,13 @@ initializeCosts = function(costs, alpha, Zillmer, alpha.commission, beta, gamma, ...@@ -165,13 +165,13 @@ initializeCosts = function(costs, alpha, Zillmer, alpha.commission, beta, gamma,
#' #'
#' @export #' @export
costs.baseAlpha = function(alpha) { costs.baseAlpha = function(alpha) {
function(params, values, costs) { function(params, values, costs) {
costs = setCost(costs, "alpha", "SumPremiums", "once", alpha) costs = setCost(costs, "alpha", "SumPremiums", "once", alpha)
if (costs["Zillmer", "SumPremiums", "once"] != 0) { if (costs["Zillmer", "SumPremiums", "once"] != 0) {
costs = setCost(costs, "Zillmer", "SumPremiums", "once", alpha) costs = setCost(costs, "Zillmer", "SumPremiums", "once", alpha)
}
costs
} }
costs
}
} }
#' Helper function to modify alpha costs of an insurance contract individually #' Helper function to modify alpha costs of an insurance contract individually
...@@ -187,10 +187,10 @@ costs.baseAlpha = function(alpha) { ...@@ -187,10 +187,10 @@ costs.baseAlpha = function(alpha) {
#' #'
#' @export #' @export
costs.scaleAlpha = function(scale) { costs.scaleAlpha = function(scale) {
function(costs, ...) { function(costs, ...) {
costs[c("alpha", "Zillmer"),,] = costs[c("alpha", "Zillmer"),,] * scale costs[c("alpha", "Zillmer"),,] = costs[c("alpha", "Zillmer"),,] * scale
costs costs
} }
} }
...@@ -201,9 +201,9 @@ costs.scaleAlpha = function(scale) { ...@@ -201,9 +201,9 @@ costs.scaleAlpha = function(scale) {
#' @param costs The cost structure to be displayed in a concise table style. #' @param costs The cost structure to be displayed in a concise table style.
#' @export #' @export
costsDisplayTable = function(costs) { costsDisplayTable = function(costs) {
costtable = as.data.frame.table(setInsuranceValuesLabels(costs) ) costtable = as.data.frame.table(setInsuranceValuesLabels(costs) )
colnames(costtable) = c("Kostenart", "Basis", "Periode", "Kostensatz"); colnames(costtable) = c("Kostenart", "Basis", "Periode", "Kostensatz");
costtable[costtable[,"Kostensatz"] != 0.0000,] costtable[costtable[,"Kostensatz"] != 0.0000,]
} }
......
...@@ -1478,7 +1478,7 @@ InsuranceTarif = R6Class( ...@@ -1478,7 +1478,7 @@ InsuranceTarif = R6Class(
#' #'
#' @details Not to be called directly, but implicitly by the [InsuranceContract] object. #' @details Not to be called directly, but implicitly by the [InsuranceContract] object.
#' @param ... Additional parameters for the profit participation calculation, passed #' @param ... Additional parameters for the profit participation calculation, passed
#' through to the profit participation scheme's \href{../../LifeInsuranceContracts/html/ProfitParticipation.html#method-getProfitParticipation}{\code{ProfitParticipation$getProfitParticipation()}} #' through to the profit participation scheme's \href{../../LifeInsureR/html/ProfitParticipation.html#method-getProfitParticipation}{\code{ProfitParticipation$getProfitParticipation()}}
calculateProfitParticipation = function(params, ...) { calculateProfitParticipation = function(params, ...) {
if (getOption('LIC.debug.calculateProfitParticipation', FALSE)) { if (getOption('LIC.debug.calculateProfitParticipation', FALSE)) {
browser(); browser();
......
This diff is collapsed.
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#' The \code{axes} list describing the parameters changing along the axes of the #' The \code{axes} list describing the parameters changing along the axes of the
#' resulting grid is internally expanded with [expand.grid()]. The resulting flat #' resulting grid is internally expanded with [expand.grid()]. The resulting flat
#' list of parameter (together with the fixed parameters passed as \code{...}) #' list of parameter (together with the fixed parameters passed as \code{...})
#' is then passed to the \ifelse{html}{\href{../../LifeInsuranceContracts/html/InsuranceContract.html#method-new}{\code{InsuranceContract$new()}}}{\code{InsuranceContract$new()()}} call to create the corresponding #' is then passed to the \ifelse{html}{\href{../../LifeInsureR/html/InsuranceContract.html#method-new}{\code{InsuranceContract$new()}}}{\code{InsuranceContract$new()()}} call to create the corresponding
#' contract object. #' contract object.
#' #'
#' To create the human-readable row-/columnnames of the resulting array, #' To create the human-readable row-/columnnames of the resulting array,
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
#' @param axes List of paramters spanning the dimensions of the grid. #' @param axes List of paramters spanning the dimensions of the grid.
#' @param YOB optional year of bith. If missing, the \code{observationYear} and the contract's age #' @param YOB optional year of bith. If missing, the \code{observationYear} and the contract's age
#' @param observationYear The observation year, for which the grid shall be calculated. If given, the YOB is calculated from it, otherwise the contract's YOB is used #' @param observationYear The observation year, for which the grid shall be calculated. If given, the YOB is calculated from it, otherwise the contract's YOB is used
#' @param ... In \code{contractGrid}: Additional parameters to be passed to \ifelse{html}{\href{../../LifeInsuranceContracts/html/InsuranceContract.html#method-new}{\code{InsuranceContract$new()}}}{\code{InsuranceContract$new()()}}; In \code{contractGridPremium}: Additional parameters to be passed to \code{contractGrid}. #' @param ... In \code{contractGrid}: Additional parameters to be passed to \ifelse{html}{\href{../../LifeInsureR/html/InsuranceContract.html#method-new}{\code{InsuranceContract$new()}}}{\code{InsuranceContract$new()()}}; In \code{contractGridPremium}: Additional parameters to be passed to \code{contractGrid}.
# #
# Params of the contractGridPreimium function: # Params of the contractGridPreimium function:
#' @param contractGrid (optional) existing contract grid from which to derive #' @param contractGrid (optional) existing contract grid from which to derive
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# https://blog.devgenius.io/make-your-own-rstudio-project-template-1f77c4888e79 # https://blog.devgenius.io/make-your-own-rstudio-project-template-1f77c4888e79
# and heavily modified # and heavily modified
create_LIC_project <- function(path, ...) { create_LIR_project <- function(path, ...) {
dots <- list(...) dots <- list(...)
CompanyName = dots$Company CompanyName = dots$Company
...@@ -21,10 +21,10 @@ create_LIC_project <- function(path, ...) { ...@@ -21,10 +21,10 @@ create_LIC_project <- function(path, ...) {
LIC.src <- function (..., lib.loc = NULL, mustWork = FALSE){ LIC.src <- function (..., lib.loc = NULL, mustWork = FALSE){
system.file("rstudio", "templates", "project", ..., system.file("rstudio", "templates", "project", ...,
package = "LifeInsuranceContracts", package = "LifeInsureR",
lib.loc = lib.loc, mustWork = mustWork) lib.loc = lib.loc, mustWork = mustWork)
} }
from <- LIC.src("LifeInsuranceContracts") from <- LIC.src("LifeInsureR")
fs::dir_copy(path = from, new_path = path, overwrite = TRUE) fs::dir_copy(path = from, new_path = path, overwrite = TRUE)
......
...@@ -10,10 +10,10 @@ NULL ...@@ -10,10 +10,10 @@ NULL
#' required by the Austrian regulation). #' required by the Austrian regulation).
#' #'
#' Three output files are generated: #' Three output files are generated:
#' - {DATE}_{TARIFF}_Example.xlsx: Full history/timeseries #' - \{DATE\}_\{TARIFF\}_Example.xlsx: Full history/timeseries
#' - {DATE}_{TARIFF}_Example_PremiumWaiver_t10.xlsx: Full history/timeseries #' - \{DATE\}_\{TARIFF\}_Example_PremiumWaiver_t10.xlsx: Full history/timeseries
#' after a premium waiver at the given time \code{prf} #' after a premium waiver at the given time \code{prf}
#' - {DATE}_{TARIFF}_Examples_VmGlg.txt: Example calculation required for the #' - \{DATE\}_\{TARIFF\}_Examples_VmGlg.txt: Example calculation required for the
#' Austrian regulation (LV-VMGLV) #' Austrian regulation (LV-VMGLV)
#' #'
#' @param contract The \code{\link{InsuranceContract}} object to be exported #' @param contract The \code{\link{InsuranceContract}} object to be exported
......
# The *LifeInsuranceContracts* Package For Traditional Life Insurance with Guarantee and Profit Participation # The *LifeInsureR* Package For Traditional Life Insurance with Guarantee and Profit Participation
R package implementing general life insurance contracts R package implementing general life insurance contracts
This package R6 classes to model traditional life insurance This package R6 classes to model traditional life insurance
......
library(LifeInsuranceContracts) library(LifeInsureR)
library(MortalityTables) library(MortalityTables)
library(lubridate) library(lubridate)
mortalityTables.load("Austria_Census") mortalityTables.load("Austria_Census")
......
library(magrittr) library(magrittr)
library(MortalityTables) library(MortalityTables)
library(LifeInsuranceContracts) library(LifeInsureR)
mortalityTables.load("Austria_Census") mortalityTables.load("Austria_Census")
Tarif.L71U = InsuranceTarif$new( Tarif.L71U = InsuranceTarif$new(
......
library(MortalityTables)
library(LifeInsureR)
mortalityTables.load("Austria_Census")
mortalityTables.load("Austria_Annuities_AVOe2005R")
# Costs: 4% acquisition, where 2.5% are zillmered, 5\% of each premium as beta costs,
# 1%o acquisition costs of the sum insured over the whole contract period
example.Costs = initializeCosts(
alpha = 0.04, Zillmer = 0.025,
beta = 0.05,
gamma.contract = 0.001, gamma.paidUp = 0.001
)
example.Surrender = function(surrenderReserve, params, values) {
n = params$ContractData$policyPeriod
# Surrender Penalty is 10% at the beginning and decreases linearly to 0%
surrenderReserve * (0.9 + 0.1 * (0:n)/n)
}
Tarif.Endowment = InsuranceTarif$new(
name = "Example Tariff - Endowment",
type = "endowment",
tarif = "EN1",
desc = "An endowment with regular premiums",
mortalityTable = mort.AT.census.2011.unisex,
i = 0.005,
costs = example.Costs,
unitcosts = 10,
tax = 0.04, # 4% insurance tax
surrenderValueCalculation = example.Surrender
)
Tarif.Life = InsuranceTarif$new(
name = "Example Tariff - Whole/Term Life",
type = "wholelife",
tarif = "Life1",
desc = "A whole or term life insurance with regular premiums",
mortalityTable = mort.AT.census.2011.unisex,
i = 0.005,
costs = example.Costs,
unitcosts = 10,
tax = 0.04, # 4% insurance tax
surrenderValueCalculation = example.Surrender
)
Tarif.ImmAnnuity = InsuranceTarif$new(
name = "Example Tariff - Immediate Annuity",
type = "annuity",
tarif = "Ann1",
desc = "An annuity with single-premium",
premiumPeriod = 1,
mortalityTable = AVOe2005R.unisex,
i = 0.005,
costs = example.Costs,
tax = 0.04 # 4% insurance tax
)
# Premium periods and deferral periods can also be given as a function of other
# contract parameters (like the age at contract inception, etc.)
Tarif.DefAnnuity = InsuranceTarif$new(
name = "Example Tariff - Deferred Annuity",
type = "annuity",
tarif = "Life1",
desc = "A deferred annuity (life-long payments start at age 65) with reg. premiums",
contractPeriod = function(params, values) { 120 - params$ContractData$age},
deferralPeriod = function(params, values) { 65 - params$ContractData$age},
premiumPeriod = function(params, values) { 65 - params$ContractData$age},
mortalityTable = AVOe2005R.unisex,
i = 0.005,
costs = example.Costs,
tax = 0.04, # 4% insurance tax
surrenderValueCalculation = example.Surrender
)
# An example dread-disease tariff, morbidity is assumed linearly increasing with age
ddTable = mortalityTable.period(name = "Linear dread-disease table",
ages = 0:100, deathProbs = 0:100/500)
Tarif.DreadDisease = InsuranceTarif$new(
name = "Example Tariff - Dread-Disease",
type = "dread-disease",
tarif = "DD1",
desc = "A dread disease insurance with a lump-sum payment upon diagnosis",
sumInsured = 50000,
mortalityTable = mort.AT.census.2011.unisex,
invalidityTable = ddTable,
i = 0.005,
costs = example.Costs,
unitcosts = 10,
tax = 0.04, # 4% insurance tax
surrenderValueCalculation = example.Surrender
)
Tarif.PureEnd = InsuranceTarif$new(
name = "Example Tariff - Pure Endowment",
type = "pureendowment",
tarif = "PE1-RP",
desc = "A pure endowment with regular premiums (standard tariff)",
mortalityTable = mort.AT.census.2011.unisex,
i = 0.005,
# Costs: 4% acquisition, where 2.5% are zillmered, 5\% of each premium as beta costs,
# 1%o administration costs of the sum insured over the whole contract period
costs = initializeCosts(alpha = 0.04, Zillmer = 0.025, beta = 0.05, gamma.contract = 0.001, gamma.paidUp = 0.001),
unitcosts = 10,
# Yearly premiums get no surcharge, monthly premiums add +4%
premiumFrequencyLoading = list("1" = 0, "2" = 0, "4" = 0, "12" = 0.04),
premiumRefund = 1, # Full gross premium refund upon death
tax = 0.04, # 4% insurance tas
surrenderValueCalculation = function(surrenderReserve, params, values) {
n = params$ContractData$policyPeriod
# Surrender Penalty is 10% at the beginning and decreases linearly to 0%
surrenderReserve * (0.9 + 0.1 * (0:n)/n)
}
)
contract.PureEnd = InsuranceContract$new(
Tarif.PureEnd,
age = 50, policyPeriod = 20,
premiumFrequency = 2,
sumInsured = 100000,
initialCapital = 50000,
contractClosing = as.Date("2020-10-01"),
balanceSheetDate = as.Date("2020-09-30")
)
contract.PureEnd$Values$cashFlows
contract.PureEnd$Values$premiums
contract.PureEnd$Values$reservesBalanceSheet
exportInsuranceContract.xlsx(contract.PureEnd, "test.xlsx")
openxlsx::openXL("text.xlsx")
library(testthat)
library(LifeInsuranceContractsXXXCOMPANYXXX)
test_check("LifeInsuranceContractsXXXCOMPANYXXX")
Binding: create_LIC_project Binding: create_LIR_project
Title: LifeInsuranceContracts Implementation Title: LifeInsureR Implementation
Subtitle: Company-specific product definitions using the LifeInsuranceContracts package Subtitle: Company-specific product definitions using the LifeInsureR package
OpenFiles: RechnungGesamtbestand.R OpenFiles: RechnungGesamtbestand.R
Caption: Company-specific LifeInsuranceContracts product implementation Caption: Company-specific LifeInsureR product implementation
Parameter: Company Parameter: Company
Widget: TextInput Widget: TextInput
......
Package: LifeInsuranceContractsXXXCOMPANYXXX Package: LifeInsureRXXXCOMPANYXXX
Type: Package Type: Package
Title: LifeInsuranceContract Implementation for XXXCOMPANYXXX Title: LifeInsureR Implementation for XXXCOMPANYXXX
Version: 0.1 Version: 0.1
Date: 2023-12-31 Date: 2023-12-31
Description: Implementation of XXXCOMPANYXXX life insurance products. Description: Implementation of XXXCOMPANYXXX life insurance products.
...@@ -10,7 +10,7 @@ Authors@R: c(person("Firstname", "Lastname", role = c("aut", "cre"), ...@@ -10,7 +10,7 @@ Authors@R: c(person("Firstname", "Lastname", role = c("aut", "cre"),
Author: Firstname Lastname [aut, cre] Author: Firstname Lastname [aut, cre]
Maintainer: Firstname Lastname <email@example.com> Maintainer: Firstname Lastname <email@example.com>
Depends: R (>= 3.1.0), Depends: R (>= 3.1.0),
LifeInsuranceContracts, LifeInsureR,
MortalityTables, MortalityTables,
here here
Encoding: UTF-8 Encoding: UTF-8
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment