Synthetic long-format loss experience data for demonstrating the
lossratio package workflow. Generated deterministically from
data-raw/make_experience.R (set.seed = 20260501). Per-coverage
calibration scalars (target ultimate LR, cohort premium volume,
cell-level noise CV) were measured once on a real long-term Korean
health-insurance portfolio and baked in as constants – no
real-portfolio data is shipped. The runoff shape uses a small dev-1
"waiting-period" dip followed by roughly constant incremental loss
per dev, so the cumulative LR rises monotonically toward the target.
The surgery coverage carries a synthetic 2024-07 cohort regime change
(target LR scaled by 0.6) so the detect_regime() example has a
clear shift to find.
Format
A data.table with 2,664 rows and 15 columns. Each row is
one (coverage, underwriting cohort, calendar period) cell of a
36-cohort x up-to-36-dev jagged triangle:
- coverage
Coverage code (character). One of:
CI– the two major non-cancer critical illnesses, covering cerebrovascular disease (stroke, cerebral infarction, cerebral haemorrhage) and ischemic heart disease (angina, acute myocardial infarction). Does not include cancer; cancer is the separatecancercoverage.cancer– cancer.inpatient– hospitalisation per-day fixed benefit.surgery– surgery per-event fixed benefit.
- uy, uy_h, uy_q, uy_m
Underwriting period (year / half / quarter / month) as
Date.- cy, cy_h, cy_q, cy_m
Calendar period (year / half / quarter / month) as
Date.- dev_y, dev_h, dev_q, dev_m
Development period (year / half / quarter / month) as integer.
- incr_loss
Per-period loss amount (numeric).
- incr_premium
Per-period premium amount (numeric); for long-term health insurance applications, risk premium is commonly used.
Source
Generated by data-raw/make_experience.R. Calibration
scalars (per-coverage target LR, premium volume mean + CV across
cohorts, cell-level noise CV) were measured once on a real
portfolio and baked in as constants; cell-level structure and all
noise draws are synthetic.
Examples
if (FALSE) { # \dontrun{
data(experience)
head(experience)
tri <- as_triangle(
experience,
groups = "coverage",
cohort = "uy_m",
calendar = "cy_m",
loss = "incr_loss",
premium = "incr_premium"
)
} # }
