Ceding a loss distribution through contract structures
A reinsurance contract does not change how much is lost. It changes who carries which part of the loss distribution. This page takes one gross annual loss distribution and cedes it through five structures. For each part of each contract you see the distribution it ends up holding.
Everything below the fold is live: every simulated year runs through the same cession engine
the Basic Risk Transfer course and the
acceptance tests use (CededClaims in
Reinsurance/Acceptance/Source/CededCashflows.cs). Nothing is computed a second time for this page.
1 · Start with one year
Before looking at distributions, follow one year by hand. The course's Alpina 2025 book has six individual claims and an attritional bulk:
| Claim | C1 | C2 | C3 | C4 | C5 | C6 | Attritional | Year |
|---|---|---|---|---|---|---|---|---|
| Gross | 80 | 240 | 420 | 760 | 1,300 | 90 | 350 | 3,240 |
Now push that year through each structure. Each formula is the one the engine runs:
Quota share 30 %. It takes the same fraction of every amount, the attritional included.
ceded = cession × loss (ProportionalSectionCover, no claims limit)
= 0.30 × 3,240 = 972 net 2,268
Excess of loss 500 xs 250. It works claim by claim, and only on individual claims. The attritional bulk is never seen by a per-claim layer, because no claim inside it is known.
ceded = min(limit, max(0, claim − attachment)) (NonProportionalSectionCover)
C3: min(500, 420 − 250) = 170
C4: min(500, 760 − 250) = 500 ← exhausted
C5: min(500, 1,300 − 250) = 500 ← exhausted
C1, C2, C6: below 250 → 0
year: 170 + 500 + 500 = 1,170 net 2,070
A tower: 500 xs 250, 500 xs 750, 1,000 xs 1,250. Each layer starts where the one below ends.
Layer 1 (500 xs 250): 1,170 (as above)
Layer 2 (500 xs 750): C4: 760 − 750 = 10 · C5: min(500, 1,300 − 750) = 500 → 510
Layer 3 (1,000 xs 1,250): C5: 1,300 − 1,250 = 50 → 50
tower: 1,170 + 510 + 50 = 1,730 net 1,510
Stop loss 1,200 xs 1,800. It looks at the year, not at a claim. Here it is a 100 % cover with
an annual aggregate deductible (AAD) of 1,800 and an annual aggregate limit (AAL) of 1,200
(CessionOperations.CedeIntoAggregateLayer):
ceded = min(AAL, max(0, year − AAD))
= min(1,200, 3,240 − 1,800) = min(1,200, 1,440) = 1,200 ← exhausted net 2,040
Quota share 20 % inuring to an XL 500 xs 250. The quota share pays first and inures to the
benefit of the XL: the XL's LossModelMap names the QS section, so the engine hands it the book
net of the quota share (GrossNetClaimsScope). Each claim reaches the XL at 80 %:
QS: 0.20 × 3,240 = 648
XL on the retention, claim by claim (0.8 × claim):
C3: 336 → 86 · C4: 608 → 358 · C5: 1,040 → 500
XL = 86 + 358 + 500 = 944
together 648 + 944 = 1,592 net 1,648
The same XL on the gross book recovers 1,170, but on the quota-share retention only 944. Order matters.
2 · Now do it two thousand times
One year tells you what a contract did. A distribution tells you what it does. The study draws 2,000 years with seed 2025 from a compound Poisson–Pareto model:
N ~ Poisson(5) individual claims per year
X = 100 · U^(−1/1.6) each claim, Pareto with threshold 100 and shape 1.6
year = Σ X + 350 plus a fixed attritional bulk
Here are the first three simulated years. They already show the three things contracts react to:
| Year | Claims | Gross | QS 30 % | XL 500 xs 250 | Tower L1 / L2 / L3 | Stop loss | QS 20 % → XL |
|---|---|---|---|---|---|---|---|
| 1 | 131 · 155 · 2,637 · 113 · 140 · 222 | 3,748 | 1,124 | 500 | 500 / 500 / 1,000 | 1,200 | 750 → 500 |
| 2 | 138 · 376 · 194 · 118 · 147 | 1,323 | 397 | 126 | 126 / 0 / 0 | 0 | 265 → 51 |
| 3 | eleven claims, all below 250 | 1,976 | 593 | 0 | 0 / 0 / 0 | 176 | 395 → 0 |
- Year 1 has one large claim, and it exhausts every layer of the tower.
- Year 2 has one medium claim: only the first layer is touched (376 − 250 = 126).
- Year 3 has many small claims. No XL responds, but the year's total is above 1,800, so the stop loss pays 176. Per-claim covers protect against severity; an aggregate cover protects against the year.
3 · The distributions, element by element
Each tab is one structure: its diagram (what cedes what), the figures and histogram of every element (gross, each cover, net retained), and one exceedance chart reading every element as "the amount exceeded once in T years".
Subscribers see this result live; below is the same worked example as a static table.
2,000 simulated years, seed 2025. Gross mean 1,647, gross 1-in-100 year 6,425.
| Structure | Mean ceded | Ceded / gross | Net 1-in-100 |
|---|---|---|---|
| Quota share 30 % | 494 | 30.0 % | 4,497 |
| XL 500 xs 250 | 228 | 13.8 % | 5,571 |
| Tower (three layers) | 342 | 20.8 % | 3,875 |
| Stop loss 1,200 xs 1,800 | 178 | 10.8 % | 5,225 |
| QS 20 % → XL 500 xs 250 | 329 + 159 | 29.7 % | 4,300 |
The study does not depend on the acceptance it is shown on. It is hosted there because the area
lives with the cession engine on the Reinsurance/Acceptance type.
4 · What each structure does to the distribution
The figures below are the study's (2,000 years, seed 2025). The gross mean is 1,647 and the gross 1-in-100 year is 6,425.
| Structure | Mean ceded | Ceded / gross | Net 1-in-100 | What it does to the shape |
|---|---|---|---|---|
| Quota share 30 % | 494 | 30.0 % | 4,497 | Scales: ceded and net keep the gross shape, at 30 % and 70 % of the size. It pays every year (P(attach) 100 %). |
| XL 500 xs 250 | 228 | 13.8 % | 5,571 | Cuts the tail per claim. It pays in 66.9 % of years and is exhausted in 17.9 %. The net tail stays heavy because a large claim passes through beyond 750. |
| Tower (three layers) | 342 | 20.8 % | 3,875 | Cuts deeper, layer by layer. P(attach) falls from 66.9 % to 17.9 % to 8.0 %. The top layer is a rare, severe payer (P(exhaust) 3.1 %). |
| Stop loss 1,200 xs 1,800 | 178 | 10.8 % | 5,225 | Caps the year at 1,800 until the limit is used up. The net 1-in-10 year is exactly 1,800. Above 3,000 the cap is gone, so the far tail returns. |
| QS 20 % → XL 500 xs 250 | 329 + 159 | 29.7 % | 4,300 | Scales, then cuts. The XL sees 80 % claims, so it attaches less often (54.7 % vs 66.9 %) and recovers less (159 vs 228). |
Three rules to take away:
- Proportional covers move the mean and the tail by the same factor. They share risk but do not change its shape.
- Per-claim excess of loss buys protection against severity. The higher the layer, the lower the probability of a hit and the larger a hit is relative to its expected cost.
- Aggregate covers buy protection against the year. Frequency counts as much as severity, and the protection ends where the limit is exhausted.
Check yourself
Q. A year has one single claim of 1,000 and no other loss except the attritional 350. What does each structure recover?
A. QS 30 %: 0.3 × 1,350 = 405. XL 500 xs 250: min(500, 750) = 500 (exhausted). Tower: 500 + 250 (1,000 − 750) + 0 = 750. Stop loss: the year is 1,350, below the 1,800 deductible, so 0. QS 20 % → XL: QS 0.2 × 1,350 = 270, and the XL sees 800, so it pays min(500, 550) = 500, a total of 770.
Q. Why is the XL on the quota-share retention exhausted less often (12.9 %) than the same XL on the gross book (17.9 %)?
A. It sees 80 % of every claim, so a claim must reach 750 / 0.8 = 937.5 gross to exhaust it, instead of 750.
Reference
| Contract element | Type in the model | Formula (engine) |
|---|---|---|
| Quota share | ModelledReinsuranceSection + ProportionalSectionCover { Cession, ClaimsLimit? } |
ceded = −min(cession × loss, claimsLimit) on every amount type |
| Excess-of-loss layer | ModelledReinsuranceSection + NonProportionalSectionCover { AttachmentPoint, Limit } |
ceded = −min(limit, max(0, claim − attachment)), individual claims only |
| Tower | Acceptance { SectionIds } over several XL sections on the same book |
the sum of its sections |
| Stop loss / aggregate band | AnnualAggregateDeductible / AnnualAggregateLimit on any ReinsuranceSection |
ceded = −min(AAL, max(0, abs(year ceded) − AAD)), pushed back onto each claim pro rata |
| Inuring | LossModelMap { LossModel = <another section's id> } |
the section sees that section's book net of its cession |
Ceded amounts are stored negative in the engine, so net = gross + ceded is a plain sum. The
tables and charts above show recoveries as positive amounts.
Sources: Reinsurance/Acceptance/Source/CessionStudy.cs (the study),
CessionStudyArea.cs (the area), CededCashflows.cs and CessionOperations.cs (the engine), and
Test/CessionStudyTests.cs, which checks for every year and structure that recoveries + net = gross,
that layers stay within [0, limit], that the combination equals the QS then the XL on its retention,
and that the figures equal the chart data.
Read next: How the cash-flow model works · The Reinsurance data model · Ceding Through an Acceptance · Loss Modelling · Pricing