Repository files navigation

R-CMD-checkCRAN RStudio mirror downloadsDOI

clmplus

clmplus is an R package for implementing the age-period-cohort models for the claim development presented in the manuscript 'Replicating and extending chain-ladder via an age-period-cohort structure on the claim development in a run-off triangle' doi:10.1080/10920277.2025.2496725.

Our models

The models for the claim development available in the clmplus are based on the models for human mortality implemented in the StMoMo package. Users can either rely on our default models or set their own configuration for the claim development.

ModelLexis dimensionClaims reserving
aagedevelopment (chain-ladder model)
acage-cohortdevelopment-accident
apage-perioddevelopment-calendar
apcage-period-cohortdevelopment-calendar-accident

Installation

The developer version of clmplus can be installed from GitHub.

library(devtools)
devtools::install_github("gpitt71/clmplus")

The current version of clmplus can be installed from CRAN.

install.packages('clmplus')

Get Started

In this brief example, we work with the sifa.mtpl data from the clmplus package. Further examples can be found in the package vignettes. The data set of cumulative claim payments is transformed into an AggregateDataPP object that pre-processes the data for claim development modelling.

library(clmplus)
data ("sifa.mtpl")
dataset = sifa.mtpl
datapp = AggregateDataPP(cumulative.payments.triangle = dataset, eta= 1/2)

Our models can be fit with the clmplus function.

a.model.fit=clmplus(datapp,
hazard.model = "a") # age-model replicates the chain ladder
ac.model.fit=clmplus(datapp,
hazard.model = "ac")
ap.model.fit=clmplus(datapp,
hazard.model = "ap")
apc.model.fit=clmplus(datapp,
hazard.model = "apc")

The plot function can be be used to explore the scaled deviance residuals of fitted models. Below, an example for the age-period-cohort (apc) model for the claim development.

plot(apc.model.fit)

Predictions are performed with the predict function.

a.model=predict(a.model.fit)
# clmplus reserve (age model)
sum(a.model$reserve)
#226875.5
ac.model=predict(ac.model.fit,
gk.fc.model = 'a',
gk.order = c(1,1,0))
# clmplus reserve (age-cohort model)
sum(ac.model$reserve)
#205305.7
ap.model= predict(ap.model.fit,
ckj.fc.model = 'a',
ckj.order = c(0,1,0))
# clmplus reserve (age-period model)
sum(ap.model$reserve)
#215602.8
apc.model= predict(apc.model.fit,
gk.fc.model = 'a',
ckj.fc.model = 'a',
gk.order = c(1,1,0),
ckj.order = c(0,1,0))
# clmplus reserve (age-period-cohort model)
sum(apc.model$reserve)
#213821.6

The fitted effect (and extrapolated) effects can be inspected with the plot function. We continue below the example with the apc model.

plot(apc.model)

Citation

APA Style

Pittarello, G., Hiabu, M., & Villegas, A. M. (2025). Replicating and Extending Chain-Ladder via an Age–Period–Cohort Structure on the Claim Development in a Run-Off Triangle. North American Actuarial Journal, 1-31.

BibTeX

@article{ ,
title={Replicating and Extending Chain-Ladder via an Age--Period--Cohort Structure on the Claim Development in a Run-Off Triangle},
author={Pittarello, Gabriele and Hiabu, Munir and Villegas, Andr{\'e}s M},
journal={North American Actuarial Journal},
pages={1--31},
year={2025},
publisher={Taylor \& Francis}
doi = {10.1080/10920277.2025.2496725},
}

Further Resources

The most recent tutorials and replication files associated with the manuscript can be accessed via our project website.

About

Age-period-cohort models for the claim development.

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

R-CMD-checkCRAN RStudio mirror downloadsDOI

clmplus

clmplus is an R package for implementing the age-period-cohort models for the claim development presented in the manuscript 'Replicating and extending chain-ladder via an age-period-cohort structure on the claim development in a run-off triangle' doi:10.1080/10920277.2025.2496725.

Our models

The models for the claim development available in the clmplus are based on the models for human mortality implemented in the StMoMo package. Users can either rely on our default models or set their own configuration for the claim development.

ModelLexis dimensionClaims reserving
aagedevelopment (chain-ladder model)
acage-cohortdevelopment-accident
apage-perioddevelopment-calendar
apcage-period-cohortdevelopment-calendar-accident

Installation

The developer version of clmplus can be installed from GitHub.

library(devtools)
devtools::install_github("gpitt71/clmplus")

The current version of clmplus can be installed from CRAN.

install.packages('clmplus')

Get Started

In this brief example, we work with the sifa.mtpl data from the clmplus package. Further examples can be found in the package vignettes. The data set of cumulative claim payments is transformed into an AggregateDataPP object that pre-processes the data for claim development modelling.

library(clmplus)
data ("sifa.mtpl")
dataset = sifa.mtpl
datapp = AggregateDataPP(cumulative.payments.triangle = dataset, eta= 1/2)

Our models can be fit with the clmplus function.

a.model.fit=clmplus(datapp,
hazard.model = "a") # age-model replicates the chain ladder
ac.model.fit=clmplus(datapp,
hazard.model = "ac")
ap.model.fit=clmplus(datapp,
hazard.model = "ap")
apc.model.fit=clmplus(datapp,
hazard.model = "apc")

The plot function can be be used to explore the scaled deviance residuals of fitted models. Below, an example for the age-period-cohort (apc) model for the claim development.

plot(apc.model.fit)

Predictions are performed with the predict function.

a.model=predict(a.model.fit)
# clmplus reserve (age model)
sum(a.model$reserve)
#226875.5
ac.model=predict(ac.model.fit,
gk.fc.model = 'a',
gk.order = c(1,1,0))
# clmplus reserve (age-cohort model)
sum(ac.model$reserve)
#205305.7
ap.model= predict(ap.model.fit,
ckj.fc.model = 'a',
ckj.order = c(0,1,0))
# clmplus reserve (age-period model)
sum(ap.model$reserve)
#215602.8
apc.model= predict(apc.model.fit,
gk.fc.model = 'a',
ckj.fc.model = 'a',
gk.order = c(1,1,0),
ckj.order = c(0,1,0))
# clmplus reserve (age-period-cohort model)
sum(apc.model$reserve)
#213821.6

The fitted effect (and extrapolated) effects can be inspected with the plot function. We continue below the example with the apc model.

plot(apc.model)

Citation

APA Style

Pittarello, G., Hiabu, M., & Villegas, A. M. (2025). Replicating and Extending Chain-Ladder via an Age–Period–Cohort Structure on the Claim Development in a Run-Off Triangle. North American Actuarial Journal, 1-31.

BibTeX

@article{ ,
title={Replicating and Extending Chain-Ladder via an Age--Period--Cohort Structure on the Claim Development in a Run-Off Triangle},
author={Pittarello, Gabriele and Hiabu, Munir and Villegas, Andr{\'e}s M},
journal={North American Actuarial Journal},
pages={1--31},
year={2025},
publisher={Taylor \& Francis}
doi = {10.1080/10920277.2025.2496725},
}

Further Resources

The most recent tutorials and replication files associated with the manuscript can be accessed via our project website.

About

Age-period-cohort models for the claim development.

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

R-CMD-checkCRAN RStudio mirror downloadsDOI

clmplus

clmplus is an R package for implementing the age-period-cohort models for the claim development presented in the manuscript 'Replicating and extending chain-ladder via an age-period-cohort structure on the claim development in a run-off triangle' doi:10.1080/10920277.2025.2496725.

Our models

The models for the claim development available in the clmplus are based on the models for human mortality implemented in the StMoMo package. Users can either rely on our default models or set their own configuration for the claim development.

ModelLexis dimensionClaims reserving
aagedevelopment (chain-ladder model)
acage-cohortdevelopment-accident
apage-perioddevelopment-calendar
apcage-period-cohortdevelopment-calendar-accident

Installation

The developer version of clmplus can be installed from GitHub.

library(devtools)
devtools::install_github("gpitt71/clmplus")

The current version of clmplus can be installed from CRAN.

install.packages('clmplus')

Get Started

In this brief example, we work with the sifa.mtpl data from the clmplus package. Further examples can be found in the package vignettes. The data set of cumulative claim payments is transformed into an AggregateDataPP object that pre-processes the data for claim development modelling.

library(clmplus)
data ("sifa.mtpl")
dataset = sifa.mtpl
datapp = AggregateDataPP(cumulative.payments.triangle = dataset, eta= 1/2)

Our models can be fit with the clmplus function.

a.model.fit=clmplus(datapp,
hazard.model = "a") # age-model replicates the chain ladder
ac.model.fit=clmplus(datapp,
hazard.model = "ac")
ap.model.fit=clmplus(datapp,
hazard.model = "ap")
apc.model.fit=clmplus(datapp,
hazard.model = "apc")

The plot function can be be used to explore the scaled deviance residuals of fitted models. Below, an example for the age-period-cohort (apc) model for the claim development.

plot(apc.model.fit)

Predictions are performed with the predict function.

a.model=predict(a.model.fit)
# clmplus reserve (age model)
sum(a.model$reserve)
#226875.5
ac.model=predict(ac.model.fit,
gk.fc.model = 'a',
gk.order = c(1,1,0))
# clmplus reserve (age-cohort model)
sum(ac.model$reserve)
#205305.7
ap.model= predict(ap.model.fit,
ckj.fc.model = 'a',
ckj.order = c(0,1,0))
# clmplus reserve (age-period model)
sum(ap.model$reserve)
#215602.8
apc.model= predict(apc.model.fit,
gk.fc.model = 'a',
ckj.fc.model = 'a',
gk.order = c(1,1,0),
ckj.order = c(0,1,0))
# clmplus reserve (age-period-cohort model)
sum(apc.model$reserve)
#213821.6

The fitted effect (and extrapolated) effects can be inspected with the plot function. We continue below the example with the apc model.

plot(apc.model)

Citation

APA Style

Pittarello, G., Hiabu, M., & Villegas, A. M. (2025). Replicating and Extending Chain-Ladder via an Age–Period–Cohort Structure on the Claim Development in a Run-Off Triangle. North American Actuarial Journal, 1-31.

BibTeX

@article{ ,
title={Replicating and Extending Chain-Ladder via an Age--Period--Cohort Structure on the Claim Development in a Run-Off Triangle},
author={Pittarello, Gabriele and Hiabu, Munir and Villegas, Andr{\'e}s M},
journal={North American Actuarial Journal},
pages={1--31},
year={2025},
publisher={Taylor \& Francis}
doi = {10.1080/10920277.2025.2496725},
}

Further Resources

The most recent tutorials and replication files associated with the manuscript can be accessed via our project website.

About

Age-period-cohort models for the claim development.

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

R-CMD-checkCRAN RStudio mirror downloadsDOI

clmplus

clmplus is an R package for implementing the age-period-cohort models for the claim development presented in the manuscript 'Replicating and extending chain-ladder via an age-period-cohort structure on the claim development in a run-off triangle' doi:10.1080/10920277.2025.2496725.

Our models

The models for the claim development available in the clmplus are based on the models for human mortality implemented in the StMoMo package. Users can either rely on our default models or set their own configuration for the claim development.

ModelLexis dimensionClaims reserving
aagedevelopment (chain-ladder model)
acage-cohortdevelopment-accident
apage-perioddevelopment-calendar
apcage-period-cohortdevelopment-calendar-accident

Installation

The developer version of clmplus can be installed from GitHub.

library(devtools)
devtools::install_github("gpitt71/clmplus")

The current version of clmplus can be installed from CRAN.

install.packages('clmplus')

Get Started

In this brief example, we work with the sifa.mtpl data from the clmplus package. Further examples can be found in the package vignettes. The data set of cumulative claim payments is transformed into an AggregateDataPP object that pre-processes the data for claim development modelling.

library(clmplus)
data ("sifa.mtpl")
dataset = sifa.mtpl
datapp = AggregateDataPP(cumulative.payments.triangle = dataset, eta= 1/2)

Our models can be fit with the clmplus function.

a.model.fit=clmplus(datapp,
hazard.model = "a") # age-model replicates the chain ladder
ac.model.fit=clmplus(datapp,
hazard.model = "ac")
ap.model.fit=clmplus(datapp,
hazard.model = "ap")
apc.model.fit=clmplus(datapp,
hazard.model = "apc")

The plot function can be be used to explore the scaled deviance residuals of fitted models. Below, an example for the age-period-cohort (apc) model for the claim development.

plot(apc.model.fit)

Predictions are performed with the predict function.

a.model=predict(a.model.fit)
# clmplus reserve (age model)
sum(a.model$reserve)
#226875.5
ac.model=predict(ac.model.fit,
gk.fc.model = 'a',
gk.order = c(1,1,0))
# clmplus reserve (age-cohort model)
sum(ac.model$reserve)
#205305.7
ap.model= predict(ap.model.fit,
ckj.fc.model = 'a',
ckj.order = c(0,1,0))
# clmplus reserve (age-period model)
sum(ap.model$reserve)
#215602.8
apc.model= predict(apc.model.fit,
gk.fc.model = 'a',
ckj.fc.model = 'a',
gk.order = c(1,1,0),
ckj.order = c(0,1,0))
# clmplus reserve (age-period-cohort model)
sum(apc.model$reserve)
#213821.6

The fitted effect (and extrapolated) effects can be inspected with the plot function. We continue below the example with the apc model.

plot(apc.model)

Citation

APA Style

Pittarello, G., Hiabu, M., & Villegas, A. M. (2025). Replicating and Extending Chain-Ladder via an Age–Period–Cohort Structure on the Claim Development in a Run-Off Triangle. North American Actuarial Journal, 1-31.

BibTeX

@article{ ,
title={Replicating and Extending Chain-Ladder via an Age--Period--Cohort Structure on the Claim Development in a Run-Off Triangle},
author={Pittarello, Gabriele and Hiabu, Munir and Villegas, Andr{\'e}s M},
journal={North American Actuarial Journal},
pages={1--31},
year={2025},
publisher={Taylor \& Francis}
doi = {10.1080/10920277.2025.2496725},
}

Further Resources

The most recent tutorials and replication files associated with the manuscript can be accessed via our project website.

About

Age-period-cohort models for the claim development.

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

R-CMD-checkCRAN RStudio mirror downloadsDOI

clmplus

clmplus is an R package for implementing the age-period-cohort models for the claim development presented in the manuscript 'Replicating and extending chain-ladder via an age-period-cohort structure on the claim development in a run-off triangle' doi:10.1080/10920277.2025.2496725.

Our models

The models for the claim development available in the clmplus are based on the models for human mortality implemented in the StMoMo package. Users can either rely on our default models or set their own configuration for the claim development.

ModelLexis dimensionClaims reserving
aagedevelopment (chain-ladder model)
acage-cohortdevelopment-accident
apage-perioddevelopment-calendar
apcage-period-cohortdevelopment-calendar-accident

Installation

The developer version of clmplus can be installed from GitHub.

library(devtools)
devtools::install_github("gpitt71/clmplus")

The current version of clmplus can be installed from CRAN.

install.packages('clmplus')

Get Started

In this brief example, we work with the sifa.mtpl data from the clmplus package. Further examples can be found in the package vignettes. The data set of cumulative claim payments is transformed into an AggregateDataPP object that pre-processes the data for claim development modelling.

library(clmplus)
data ("sifa.mtpl")
dataset = sifa.mtpl
datapp = AggregateDataPP(cumulative.payments.triangle = dataset, eta= 1/2)

Our models can be fit with the clmplus function.

a.model.fit=clmplus(datapp,
hazard.model = "a") # age-model replicates the chain ladder
ac.model.fit=clmplus(datapp,
hazard.model = "ac")
ap.model.fit=clmplus(datapp,
hazard.model = "ap")
apc.model.fit=clmplus(datapp,
hazard.model = "apc")

The plot function can be be used to explore the scaled deviance residuals of fitted models. Below, an example for the age-period-cohort (apc) model for the claim development.

plot(apc.model.fit)

Predictions are performed with the predict function.

a.model=predict(a.model.fit)
# clmplus reserve (age model)
sum(a.model$reserve)
#226875.5
ac.model=predict(ac.model.fit,
gk.fc.model = 'a',
gk.order = c(1,1,0))
# clmplus reserve (age-cohort model)
sum(ac.model$reserve)
#205305.7
ap.model= predict(ap.model.fit,
ckj.fc.model = 'a',
ckj.order = c(0,1,0))
# clmplus reserve (age-period model)
sum(ap.model$reserve)
#215602.8
apc.model= predict(apc.model.fit,
gk.fc.model = 'a',
ckj.fc.model = 'a',
gk.order = c(1,1,0),
ckj.order = c(0,1,0))
# clmplus reserve (age-period-cohort model)
sum(apc.model$reserve)
#213821.6

The fitted effect (and extrapolated) effects can be inspected with the plot function. We continue below the example with the apc model.

plot(apc.model)

Citation

APA Style

Pittarello, G., Hiabu, M., & Villegas, A. M. (2025). Replicating and Extending Chain-Ladder via an Age–Period–Cohort Structure on the Claim Development in a Run-Off Triangle. North American Actuarial Journal, 1-31.

BibTeX

@article{ ,
title={Replicating and Extending Chain-Ladder via an Age--Period--Cohort Structure on the Claim Development in a Run-Off Triangle},
author={Pittarello, Gabriele and Hiabu, Munir and Villegas, Andr{\'e}s M},
journal={North American Actuarial Journal},
pages={1--31},
year={2025},
publisher={Taylor \& Francis}
doi = {10.1080/10920277.2025.2496725},
}

Further Resources

The most recent tutorials and replication files associated with the manuscript can be accessed via our project website.

About

Age-period-cohort models for the claim development.

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

R-CMD-checkCRAN RStudio mirror downloadsDOI

clmplus

clmplus is an R package for implementing the age-period-cohort models for the claim development presented in the manuscript 'Replicating and extending chain-ladder via an age-period-cohort structure on the claim development in a run-off triangle' doi:10.1080/10920277.2025.2496725.

Our models

The models for the claim development available in the clmplus are based on the models for human mortality implemented in the StMoMo package. Users can either rely on our default models or set their own configuration for the claim development.

ModelLexis dimensionClaims reserving
aagedevelopment (chain-ladder model)
acage-cohortdevelopment-accident
apage-perioddevelopment-calendar
apcage-period-cohortdevelopment-calendar-accident

Installation

The developer version of clmplus can be installed from GitHub.

library(devtools)
devtools::install_github("gpitt71/clmplus")

The current version of clmplus can be installed from CRAN.

install.packages('clmplus')

Get Started

In this brief example, we work with the sifa.mtpl data from the clmplus package. Further examples can be found in the package vignettes. The data set of cumulative claim payments is transformed into an AggregateDataPP object that pre-processes the data for claim development modelling.

library(clmplus)
data ("sifa.mtpl")
dataset = sifa.mtpl
datapp = AggregateDataPP(cumulative.payments.triangle = dataset, eta= 1/2)

Our models can be fit with the clmplus function.

a.model.fit=clmplus(datapp,
hazard.model = "a") # age-model replicates the chain ladder
ac.model.fit=clmplus(datapp,
hazard.model = "ac")
ap.model.fit=clmplus(datapp,
hazard.model = "ap")
apc.model.fit=clmplus(datapp,
hazard.model = "apc")

The plot function can be be used to explore the scaled deviance residuals of fitted models. Below, an example for the age-period-cohort (apc) model for the claim development.

plot(apc.model.fit)

Predictions are performed with the predict function.

a.model=predict(a.model.fit)
# clmplus reserve (age model)
sum(a.model$reserve)
#226875.5
ac.model=predict(ac.model.fit,
gk.fc.model = 'a',
gk.order = c(1,1,0))
# clmplus reserve (age-cohort model)
sum(ac.model$reserve)
#205305.7
ap.model= predict(ap.model.fit,
ckj.fc.model = 'a',
ckj.order = c(0,1,0))
# clmplus reserve (age-period model)
sum(ap.model$reserve)
#215602.8
apc.model= predict(apc.model.fit,
gk.fc.model = 'a',
ckj.fc.model = 'a',
gk.order = c(1,1,0),
ckj.order = c(0,1,0))
# clmplus reserve (age-period-cohort model)
sum(apc.model$reserve)
#213821.6

The fitted effect (and extrapolated) effects can be inspected with the plot function. We continue below the example with the apc model.

plot(apc.model)

Citation

APA Style

Pittarello, G., Hiabu, M., & Villegas, A. M. (2025). Replicating and Extending Chain-Ladder via an Age–Period–Cohort Structure on the Claim Development in a Run-Off Triangle. North American Actuarial Journal, 1-31.

BibTeX

@article{ ,
title={Replicating and Extending Chain-Ladder via an Age--Period--Cohort Structure on the Claim Development in a Run-Off Triangle},
author={Pittarello, Gabriele and Hiabu, Munir and Villegas, Andr{\'e}s M},
journal={North American Actuarial Journal},
pages={1--31},
year={2025},
publisher={Taylor \& Francis}
doi = {10.1080/10920277.2025.2496725},
}

Further Resources

The most recent tutorials and replication files associated with the manuscript can be accessed via our project website.

About

Age-period-cohort models for the claim development.

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

R-CMD-checkCRAN RStudio mirror downloadsDOI

clmplus

clmplus is an R package for implementing the age-period-cohort models for the claim development presented in the manuscript 'Replicating and extending chain-ladder via an age-period-cohort structure on the claim development in a run-off triangle' doi:10.1080/10920277.2025.2496725.

Our models

The models for the claim development available in the clmplus are based on the models for human mortality implemented in the StMoMo package. Users can either rely on our default models or set their own configuration for the claim development.

ModelLexis dimensionClaims reserving
aagedevelopment (chain-ladder model)
acage-cohortdevelopment-accident
apage-perioddevelopment-calendar
apcage-period-cohortdevelopment-calendar-accident

Installation

The developer version of clmplus can be installed from GitHub.

library(devtools)
devtools::install_github("gpitt71/clmplus")

The current version of clmplus can be installed from CRAN.

install.packages('clmplus')

Get Started

In this brief example, we work with the sifa.mtpl data from the clmplus package. Further examples can be found in the package vignettes. The data set of cumulative claim payments is transformed into an AggregateDataPP object that pre-processes the data for claim development modelling.

library(clmplus)
data ("sifa.mtpl")
dataset = sifa.mtpl
datapp = AggregateDataPP(cumulative.payments.triangle = dataset, eta= 1/2)

Our models can be fit with the clmplus function.

a.model.fit=clmplus(datapp,
hazard.model = "a") # age-model replicates the chain ladder
ac.model.fit=clmplus(datapp,
hazard.model = "ac")
ap.model.fit=clmplus(datapp,
hazard.model = "ap")
apc.model.fit=clmplus(datapp,
hazard.model = "apc")

The plot function can be be used to explore the scaled deviance residuals of fitted models. Below, an example for the age-period-cohort (apc) model for the claim development.

plot(apc.model.fit)

Predictions are performed with the predict function.

a.model=predict(a.model.fit)
# clmplus reserve (age model)
sum(a.model$reserve)
#226875.5
ac.model=predict(ac.model.fit,
gk.fc.model = 'a',
gk.order = c(1,1,0))
# clmplus reserve (age-cohort model)
sum(ac.model$reserve)
#205305.7
ap.model= predict(ap.model.fit,
ckj.fc.model = 'a',
ckj.order = c(0,1,0))
# clmplus reserve (age-period model)
sum(ap.model$reserve)
#215602.8
apc.model= predict(apc.model.fit,
gk.fc.model = 'a',
ckj.fc.model = 'a',
gk.order = c(1,1,0),
ckj.order = c(0,1,0))
# clmplus reserve (age-period-cohort model)
sum(apc.model$reserve)
#213821.6

The fitted effect (and extrapolated) effects can be inspected with the plot function. We continue below the example with the apc model.

plot(apc.model)

Citation

APA Style

Pittarello, G., Hiabu, M., & Villegas, A. M. (2025). Replicating and Extending Chain-Ladder via an Age–Period–Cohort Structure on the Claim Development in a Run-Off Triangle. North American Actuarial Journal, 1-31.

BibTeX

@article{ ,
title={Replicating and Extending Chain-Ladder via an Age--Period--Cohort Structure on the Claim Development in a Run-Off Triangle},
author={Pittarello, Gabriele and Hiabu, Munir and Villegas, Andr{\'e}s M},
journal={North American Actuarial Journal},
pages={1--31},
year={2025},
publisher={Taylor \& Francis}
doi = {10.1080/10920277.2025.2496725},
}

Further Resources

The most recent tutorials and replication files associated with the manuscript can be accessed via our project website.

About

Age-period-cohort models for the claim development.

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

R-CMD-checkCRAN RStudio mirror downloadsDOI

clmplus

clmplus is an R package for implementing the age-period-cohort models for the claim development presented in the manuscript 'Replicating and extending chain-ladder via an age-period-cohort structure on the claim development in a run-off triangle' doi:10.1080/10920277.2025.2496725.

Our models

The models for the claim development available in the clmplus are based on the models for human mortality implemented in the StMoMo package. Users can either rely on our default models or set their own configuration for the claim development.

ModelLexis dimensionClaims reserving
aagedevelopment (chain-ladder model)
acage-cohortdevelopment-accident
apage-perioddevelopment-calendar
apcage-period-cohortdevelopment-calendar-accident

Installation

The developer version of clmplus can be installed from GitHub.

library(devtools)
devtools::install_github("gpitt71/clmplus")

The current version of clmplus can be installed from CRAN.

install.packages('clmplus')

Get Started

In this brief example, we work with the sifa.mtpl data from the clmplus package. Further examples can be found in the package vignettes. The data set of cumulative claim payments is transformed into an AggregateDataPP object that pre-processes the data for claim development modelling.

library(clmplus)
data ("sifa.mtpl")
dataset = sifa.mtpl
datapp = AggregateDataPP(cumulative.payments.triangle = dataset, eta= 1/2)

Our models can be fit with the clmplus function.

a.model.fit=clmplus(datapp,
hazard.model = "a") # age-model replicates the chain ladder
ac.model.fit=clmplus(datapp,
hazard.model = "ac")
ap.model.fit=clmplus(datapp,
hazard.model = "ap")
apc.model.fit=clmplus(datapp,
hazard.model = "apc")

The plot function can be be used to explore the scaled deviance residuals of fitted models. Below, an example for the age-period-cohort (apc) model for the claim development.

plot(apc.model.fit)

Predictions are performed with the predict function.

a.model=predict(a.model.fit)
# clmplus reserve (age model)
sum(a.model$reserve)
#226875.5
ac.model=predict(ac.model.fit,
gk.fc.model = 'a',
gk.order = c(1,1,0))
# clmplus reserve (age-cohort model)
sum(ac.model$reserve)
#205305.7
ap.model= predict(ap.model.fit,
ckj.fc.model = 'a',
ckj.order = c(0,1,0))
# clmplus reserve (age-period model)
sum(ap.model$reserve)
#215602.8
apc.model= predict(apc.model.fit,
gk.fc.model = 'a',
ckj.fc.model = 'a',
gk.order = c(1,1,0),
ckj.order = c(0,1,0))
# clmplus reserve (age-period-cohort model)
sum(apc.model$reserve)
#213821.6

The fitted effect (and extrapolated) effects can be inspected with the plot function. We continue below the example with the apc model.

plot(apc.model)

Citation

APA Style

Pittarello, G., Hiabu, M., & Villegas, A. M. (2025). Replicating and Extending Chain-Ladder via an Age–Period–Cohort Structure on the Claim Development in a Run-Off Triangle. North American Actuarial Journal, 1-31.

BibTeX

@article{ ,
title={Replicating and Extending Chain-Ladder via an Age--Period--Cohort Structure on the Claim Development in a Run-Off Triangle},
author={Pittarello, Gabriele and Hiabu, Munir and Villegas, Andr{\'e}s M},
journal={North American Actuarial Journal},
pages={1--31},
year={2025},
publisher={Taylor \& Francis}
doi = {10.1080/10920277.2025.2496725},
}

Further Resources

The most recent tutorials and replication files associated with the manuscript can be accessed via our project website.

About

Age-period-cohort models for the claim development.

Topics

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages