Decimal from the paid losses to the indication.
Develop losses to ultimate
Build a triangle from one row per accident year and age. Ages are months of development, and values are cumulative paid losses and loss adjustment expenses (LAE):factors averages each column of link ratios. volume divides the sum of later values by the sum of earlier values; simple averages the ratios. periods=3 keeps the latest three origins for each pair of ages. The last row is the tail factor from 36 months to ultimate.
The factors table is your selection. To select a factor yourself, edit its factor cell in pandas. develop reads age and factor, and recalculates each cumulative factor:
unreported holds ultimate less latest: unpaid losses for a paid triangle, IBNR for a reported one.
Bring premium to current rates
Record each overall rate change by its effective date.on_level gives the parallelogram factor for each calendar year of earned premium, for annual policies written evenly through the year:
D("2021.5") as the effective point. basis="written" gives factors for written premium, and term_months sets another policy term. To rate each historical policy again at current rates, use Program.rate with the current program; that gives exact on-level premium policy by policy.
Fit a trend
Fit an annual exponential trend to quarterly average severity. Each period is a number of years, or a date:trend.observations holds each quarter with its fitted value. For a selected trend, write Trend(D("0.04")). trend.factor(start, end) projects from one point in time to another.
Calculate the indication
Trend each year’s ultimate losses from its average accident date to the average accident date of the future policy period. Divide by on-level earned premium:(loss_ratio + fixed_expense) / (1 - variable_expense - profit) - 1.
Weight the indication by credibility
Blend the indication with a complement, such as the trended change since the last review.credibility gives limited fluctuation credibility from a claim count, with 1,082 claims for full credibility:
full_credibility(probability=..., tolerance=...) gives the standard for other choices. To spread the change across rating factors, fit relativities from experience.