apply_chainladder <- function(x, lob_name,
assumptions) {
cl_trig_names <-
list("ep", "wp", "paid", "os", "inc", "reported_no", "settled_no") %>%
setNames(c("ep", "wp", "paid", "os", "inc", "reported_no", "settled_no"))
apply_trig <- function(trig_name) {
if (!is.null(assumptions[[trig_name]])) {
do.call(chainladder,
c(list(x$lobs[[lob_name]][[trig_name]]), assumptions[[trig_name]]))
}
}
cl_trigs <- cl_trig_names %>%
lapply(apply_trig)
}
apply_chainladder_all <- function(x, lob_assumptions) {
results <- map2(lob_assumptions, names(lob_assumptions),
~apply_chainladder(x,.y,.x))
summarise_results <- function(lob, lob_name){
tibble(
Paid = lob$paid$result$Latest,
OS = lob$os$result$Latest,
Inc = lob$inc$result$Latest,
Paid_CL = lob$paid$result$Ultimate,
Paid_Dev = lob$paid$result$Development,
Inc_Dev = lob$inc$result$Development,
Inc_CL = lob$inc$result$Ultimate,
) %>%
mutate(LoB = lob_name, .before = "Paid")
}
cl_summary <- results %>%
map2(names(.),summarise_results) %>%
do.call(bind_rows,.)
return(list("results" = results, "cl_summary" = cl_summary))
}
default_assumptions <- list(
ep = list(),
wp = list(development = 1),
paid = list(),
os = list(),
inc = list(),
reported_no = list(),
settled_no = list()
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.