Skip to contents

Payments for future annuities are an important part of the large claims simulation. But depending on the threshold annuities may also be a part of the estimation for small claims. This could be the case if the annuity belongs to a claim that has never exceeded the threshold or if the annuity has been created in the years before a claim exceeds the threshold.

There may be several ways to estimate the future payments for this part. This implementation uses the historic annuities that have been created for small claims to predict a number of future annuities per origin and development year by an additive method. This number will then be multiplied with a mean annuity.

This function calculates the estimate for future annuities stemming from small claims using the parameters that can either be generated by generate_small_claims_annuities_parameters() or have been delivered from external.

Usage

generate_small_claims_future_annuities(
  small_claims_annuities_parameters_list,
  small_claims_reserved,
  indices
)

Arguments

small_claims_annuities_parameters_list

List of parameter vectors as a result of generate_small_claims_annuities_parameters().

small_claims_reserved

Numeric matrix of small claims reserves with origin years as rows and calendar years as columns. This matrix can be generated as difference from the all claims' triangle and the large and special claims triangle. Rownames must be the origin years. The reserves serve as volume measure for the additive method.

indices

Dataframe for indexation, see details of prepare_data().

Value

A numeric matrix with one row per origin year and one column for each past and 250 future calendar years. The columns for past calendar years are all 0, but the columns for future calendar years contain the estimated payments for future annuities stemming from small claims.

Examples

#' # this example uses data provided with this package.
# A few preparing steps are necessary to generate the needed arguments from the example
# objects provided with this package.

# The claims with claim_ids Claim#43, Claim#44 and Claim#68 are identified as special claims.
special_claims <- data.frame(Claim_id = c("Claim#43", "Claim#44", "Claim#68"),
                             Reserve2BE_percentage = c(0.8, 0.5, 1.2),
                             Rollout_type = c("linear", "constant", "external"),
                             Pattern_id = c(1,1,3))

external_patterns <- list(c(0.5, 0.3, 0.2),
                          c(1),
                          c(0.7, 0.3))

# Create large claims list
extended_claims_data <- prepare_data(claims_data = claims_data_xmpl,
                                     indices = indices_xmpl,
                                     threshold = 400000,
                                     first_orig_year = 1989,
                                     last_orig_year = 2023,
                                     expected_year_of_growing_large = 3,
                                     reserve_classes = c(1, 200001, 400001, 700001, 1400001),
                                     pool_of_annuities = pool_of_annuities_xmpl)

# remove special claims from extended_claims_data
extended_large_claims_data <- extended_claims_data[
               extended_claims_data$Claim_id %in% special_claims$Claim_id,]
large_claims_reserved <- generate_triangle(data = extended_large_claims_data,
                                                    col_name = "Cl_reserve",
                                                    first_orig_year = 1989,
                                                    last_orig_year = 2023)

large_claims_list <- generate_claims_list(extended_claims_data = extended_claims_data,
                                          first_orig_year = 1989,
                                          last_orig_year = 2023)


result_special_claims <- compute_special_claims(special_claims = special_claims,
                                                extended_claims_data = extended_claims_data,
                                                first_orig_year = 1989,
                                                last_orig_year = 2023,
                                                end_of_tail = 50,
                                                external_patterns = external_patterns)

special_claims_reserved <- result_special_claims$special_claims_reserved

small_claims_reserved <- all_claims_reserved_xmpl -
                     large_claims_reserved - special_claims_reserved

# apply these objects as arguments to the function to create parameters
params <- generate_small_claims_annuities_parameters(
               pool_of_annuities = pool_of_annuities_xmpl,
               large_claims_list = large_claims_list,
               special_claims = special_claims,
               indices = indices_xmpl,
               small_claims_reserved = small_claims_reserved,
               age_shift = age_shift_xmpl,
               mortality = mortality_xmpl)

# use this parameter list to get the estimate
generate_small_claims_future_annuities(
   small_claims_annuities_parameters_list = params,
   small_claims_reserved = small_claims_reserved,
   indices = indices_xmpl)[c("2022", "2023"), 1:50]
#>      1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003
#> 2022    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
#> 2023    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
#>      2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
#> 2022    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
#> 2023    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
#>      2019 2020 2021 2022 2023     2024     2025      2026     2027     2028
#> 2022    0    0    0    0    0 388.0534 814.7829  934.5885 1134.306 1324.307
#> 2023    0    0    0    0    0 262.4130 678.4143 1140.5622 1252.907 1461.106
#>          2029     2030     2031      2032      2033     2034     2035      2036
#> 2022 1488.774 1361.555 1165.465  987.6423  972.0039 1106.229 1104.066  942.8759
#> 2023 1656.660 1852.540 1689.309 1445.1893 1226.2003 1197.092 1347.884 1339.2046
#>           2037     2038
#> 2022  798.2616 679.8942
#> 2023 1143.8759 973.4164