Main Content

capeCod

Create capeCod object

Description

Use this workflow to generate unpaid claims for a capeCod object:

  1. Load or generate the data for the development triangle.

  2. Create two developmentTriangle objects—one for the reported development triangle and one for the paid development triangle.

  3. Create a capeCod object.

  4. Use the ibnr function to calculate the incurred-but-not-reported (IBNR) claims.

  5. Use the ultimateClaims function to calculate the ultimate claims.

  6. Use the unpaidClaims function to calculate the unpaid claims.

  7. Use the summary function to display the chain ladder summary report.

Creation

Description

example

cc = capeCod(dT_reported,dT_paid,earnedPremium) creates a capeCod object using the developmentTriangle objects for reported claims (dT_reported) and paid claims (dT_paid) and the earnedPremium.

Input Arguments

expand all

Development triangle for reported claims, specified as a previously created developmentTriangle object.

Data Types: object

Development triangle for paid claims, specified as a previously created developmentTriangle object.

Data Types: object

Earned premium, specified as a vector.

Data Types: double

Properties

expand all

Development triangle for reported claims, returned as a developmentTriangle object containing the origin years, development years, and claims.

Data Types: object

Development triangle for paid claims, returned as a developmentTriangle object containing the origin years, development years, and claims.

Data Types: object

Earned premium, returned as a vector.

Data Types: double

This property is read-only.

Used up premium, calculated by multiplying the initial claims with the percent of ultimate claims that are reported, returned as a vector.

Data Types: double

This property is read-only.

Estimated claims ratio, calculated by dividing the initial claims by the used up premium, returned as a vector.

Data Types: double

This property is read-only.

Expected claim ratio, weighted average claim ratio from all the time periods, returned as a vector.

Data Types: double

This property is read-only.

Estimated expected claims, that is, the earned premium multiplied by the expected claim ratio, returned as a vector.

Data Types: double

This property is read-only.

Percentage of unreported claims, returned as a vector.

Data Types: double

This property is read-only.

Difference of the latest diagonals of the reported and paid development triangles, returned as a vector.

Data Types: double

Object Functions

ibnrCompute IBNR claims for capeCod object
unpaidClaimsCompute unpaid claims estimates for capeCod object
ultimateClaimsCompute projected ultimate claims for capeCod object
summaryDisplay summary report for Cape Cod analysis

Examples

collapse all

Create a capeCod object containing simulated insurance claims data.

load InsuranceClaimsData.mat;
head(data)
ans=8×4 table
    OriginYear    DevelopmentYear    ReportedClaims    PaidClaims
    __________    _______________    ______________    __________

       2010             12               3995.7          1893.9  
       2010             24                 4635          3371.2  
       2010             36               4866.8          4079.1  
       2010             48               4964.1            4487  
       2010             60               5013.7          4711.4  
       2010             72               5038.8          4805.6  
       2010             84                 5059          4853.7  
       2010             96               5074.1          4877.9  

Use developmentTriangle to convert the data to a development triangle, which is the standard form for representing claims data. Create two developmentTriangle objects, one for reported claims and one for paid claims.

dT_reported = developmentTriangle(data,'Origin','OriginYear','Development','DevelopmentYear','Claims','ReportedClaims')
dT_reported = 
  developmentTriangle with properties:

                          Origin: {10x1 cell}
                     Development: {10x1 cell}
                          Claims: [10x10 double]
                  LatestDiagonal: [10x1 double]
                     Description: ""
                      TailFactor: 1
    CumulativeDevelopmentFactors: [1.3069 1.1107 1.0516 1.0261 1.0152 ... ]
               SelectedLinkRatio: [1.1767 1.0563 1.0249 1.0107 1.0054 ... ]

dT_paid = developmentTriangle(data,'Origin','OriginYear','Development','DevelopmentYear','Claims','PaidClaims')
dT_paid = 
  developmentTriangle with properties:

                          Origin: {10x1 cell}
                     Development: {10x1 cell}
                          Claims: [10x10 double]
                  LatestDiagonal: [10x1 double]
                     Description: ""
                      TailFactor: 1
    CumulativeDevelopmentFactors: [2.4388 1.4070 1.1799 1.0810 1.0378 ... ]
               SelectedLinkRatio: [1.7333 1.1925 1.0914 1.0417 1.0196 ... ]

earnedPremium = [17000; 18000; 10000; 19000; 16000; 10000; 11000; 10000; 14000; 10000];

Create a capeCod object where the first input argument is the reported development triangle, the second input argument is the paid development triangle, and the third argument is the earned premium.

cc = capeCod(dT_reported, dT_paid, earnedPremium)
cc = 
  capeCod with properties:

           ReportedTriangle: [1x1 developmentTriangle]
               PaidTriangle: [1x1 developmentTriangle]
              EarnedPremium: [10x1 double]
              UsedUpPremium: [10x1 double]
       EstimatedClaimRatios: [10x1 double]
         ExpectedClaimRatio: 0.4258
    EstimatedExpectedClaims: [10x1 double]
          PercentUnreported: [10x1 double]
            CaseOutstanding: [10x1 double]

Introduced in R2021a