This is the whole thing: the prose treaty turned into a seven-claim battery — the flat cession, the floor, and the untouchable attritional all pinned — plus the two-line
Cededthat satisfies it. The exercise hands you the prose and a stub; you write both halves.
The sign rule is trivial. The two interactions are not, and they are where a naïve treaty leaks money.
The two interactions
- The flat cession meets a small claim. Rule 1 says cede 100; rule 2 says never cede more than the claim. C1 (gross 80) can only give 80 — ceded −80, net 0, not the naïve net of −20. C6 (gross 90) cedes 90, net 0. A treaty that ignores the cap books a negative loss and hands the reinsurer money that was never at risk.
- The flat cession meets the attritional bulk. Rule 3 says a per-claim treaty cannot touch ATT: no individual claim, no cession. Ceded 0, net stays 350 — not the naïve 250. This is the individual-vs-attritional distinction the lesson flags for Lesson 3, and here it is worth two points of net all by itself.
Pin those and the rest is the flat rule: C2 → 140, C3 → 320, C4 → 660, C5 → 1,200.
The frozen battery
| Claim | Kind | Gross | Naïve (−100 flat) | Ceded | Net | Why |
|---|---|---|---|---|---|---|
| C1 | Individual | 80 | −20 | −80 | 0 | floored — can't cede more than 80 |
| C2 | Individual | 240 | 140 | −100 | 140 | plain flat 100 |
| C3 | Individual | 420 | 320 | −100 | 320 | plain flat 100 |
| C4 | Individual | 760 | 660 | −100 | 660 | plain flat 100 |
| C5 | Individual | 1,300 | 1,200 | −100 | 1,200 | plain flat 100 |
| C6 | Individual | 90 | −10 | −90 | 0 | floored — can't cede more than 90 |
| ATT | Attritional | 350 | 250 | 0 | 350 | untouchable — no individual claim |
The naïve column sums to a book net of 2,540; the correct treaty nets to 2,670 — the extra 130 is exactly the two floors (20 + 10) plus the untouched attritional (100) the naïve version would have wrongly ceded.
The treaty, in two lines
static double Ceded(string claim, string kind, double gross)
{
if (kind == "Attritional") return 0.0; // Rule 3 — a bulk sum has no individual claim to cede
return -Math.Min(100.0, gross); // Rule 1 (flat 100) capped by Rule 2 (never below 0 net)
}
Math.Min(100, gross) is rules 1 and 2 in one stroke: the flat 100, but never more than the claim. The early return is rule 3. Net is gross + Ceded(...) — still no subtraction.
Live and green
Press Run — seven rows, all green.
Write the treaty as a Ceded function — a flat 100 per individual claim, never more than the claim itself, and no cession at all on the attritional bulk — so every case in the seven-claim battery goes green. Render the battery as a grid of spec sentence, expected net and actual net, with a green count and the 2,670 book net in the header.
The treaty is two lines; the battery is the deliverable that outlives it. Hand those seven pinned nets to any agent — or any colleague — and "cede a flat 100" is no longer open to the two misreadings that cost real money.
← Back to the exercise · Lesson 1 — From gross to net · All solutions