Free resource

Run-off triangles

Claims reserving as the exam asks it: a cumulative triangle, development factors from the column sums, and three reserve estimates that only agree when the pricing assumption matches the data. Edit any cell and everything recomputes.

This page has a test with worked solutions

Cumulative claims triangle (edit any known cell)

Origin yearDev 1Dev 2Dev 3Dev 4
2023
20243,807
20253,9604,165
20263,8524,2824,504
Dev factor1.36981.11171.0517

White cells are your data; purple cells are the chain ladder projection, each one the cell to its left times the column's development factor. Factors are weighted averages of the observed link ratios (column sums, the standard basic chain ladder).

Reserves by method

Origin yearChain ladderExpected loss ratioBornhuetter-Ferguson
20230260
202418735180
2025603433578
20261,6921,5231,628
Total2,4822,0172,386

Chain ladder trusts the data completely; the expected loss ratio method trusts the pricing assumption completely (reserve = ELR × premium − paid to date, floored at zero); Bornhuetter-Ferguson splits the difference, keeping actual experience for the developed share and the ELR ultimate for the share still to come. Watch the recent origin years: that is where the methods disagree most, and why BF exists.

Test + worked solutions

Test yourself

A fresh triangle every time: compute the factors, ultimates and reserves on paper, then check each part and step through the working to find where you diverged. Allow small rounding differences in the final figures.

The formulas

Everything on this page comes from five lines. Write Ci,j for the cumulative claims of origin year i at development year j, Pi for the year's premium and q for the expected loss ratio.

fj = Σn-ji=1 Ci,j+1Σn-ji=1 Ci,j

Each development factor is the ratio of column sums, taken over only the first n−j rows — the rows where both columns are actually observed. Summing before dividing makes it a weighted average of the individual link ratios, so bigger origin years count for more — this is the basic chain ladder, and the gold row under the triangle above.

Ci,j+1 = Ci,j × fj

Applied repeatedly from each row's last known cell, this fills the empty lower-right half of the triangle (the purple cells above). The final column is the chain ladder ultimate Ui. The two formulas are not circular: the factors are computed entirely from the observed cells, and the fill rule only ever writes the cells the factors never touched.

RCLi = Ui - LiRELRi = q × Pi - LiRBFi = q Pi (1 - 1Fi)

Here Li is the latest known cumulative figure (paid to date, the edge of the triangle) and Fi is the to-ultimate factor: the product of the development factors the row has still to pass through, which is the same thing as Ui / Li. The ELR reserve is floored at zero. In the BF formula, 1 - 1Fi is the proportion of the claims still undeveloped, so BF takes exactly that share of the ELR ultimate and lets actual experience stand for the rest.

Three methods, one disagreement

The chain ladder assumes the future develops like the past, so a distorted latest diagonal (one big claim, a change in settlement speed) is grossed up all the way to ultimate. The expected loss ratio method ignores the claims data entirely, which is all you can do when an origin year is too green to trust. Bornhuetter-Ferguson blends them in exactly the proportion the triangle has developed, which is why it is the default answer for the most recent origin years. Try inflating the newest year's single known cell and watch the chain ladder panic while BF barely moves — and the expected loss ratio reserve not move at all, because it never looks at the claims data in the first place.

Build it in Excel

The whole calculation is five formulas, and building it once teaches you more than reading it ten times. The steps below assume the same 4×4 shape as the tool above — widen the ranges for a bigger triangle.

  1. Lay out the triangle. Development years 1 to 4 across B1:E1, origin years down A2:A5, and the known cumulative claims in the upper-left half of B2:E5. Leave the unknown cells genuinely blank, not zero — the factor formula in step 2 relies on it. If your data is incremental, cumulate it first: in a copy of the block, =SUM($B2:B2) dragged across and down turns increments into running totals.
  2. Development factors. In C7: =SUM(C2:C5)/SUMIF(C2:C5,"<>",B2:B5), then drag across to E7. The numerator is the next column's total (blank cells add nothing); the SUMIF sums the previous column over just the rows where the next column is non-blank, which is exactly the "rows where both cells are known" rule — so the same formula works in every column despite the shrinking ranges.
  3. Complete the triangle. Make a second block starting at row 10. B10 is =B2 dragged down (development year 1 is always known). In C10: =IF(C2<>"",C2,B10*C$7), dragged across and down to E13. Known cells copy through; blanks fill with the cell to their left times that column's factor. Column E is now the chain ladder ultimate.
  4. Reserves. Get each row's paid to date with =INDEX(B2:E2,COUNT(B2:E2)) — COUNT gives how many cells in the row hold a number, and since the known cells fill from the left, that count is also the position of the last one. With that in F2:F5, premiums in G2:G5 and the expected loss ratio in H1, the three reserves for the first origin year are: chain ladder =E10-F2, expected loss ratio =MAX(0,$H$1*G2-F2), and Bornhuetter-Ferguson =(1-F2/E10)*$H$1*G2 — paid over ultimate is the developed proportion, so one minus it is the share still to come. Drag all three down.
  5. Check it. Type your triangle, premiums and loss ratio into the tool at the top of this page — the development factors and all three reserve columns should match yours to rounding. If the factors disagree, the usual culprit is a zero where a blank should be.

Make it stick. Reserving sits alongside ruin theory in CS2, and our ruin theory simulator covers that half. Memori is a flashcard app built by actuarial students, with a ready-made CS2 set in the shop. Join the beta.

Illustrative figures. For education only, not financial or reserving advice.