Functional Weave
Code in Rust

insurance.loss-ratio@1.0.1

README.md

2,443 bytes · view raw

# insurance.loss-ratio

The three headline underwriting ratios for a period, in basis points
(6500 = 65%):

- **loss ratio** = incurred claims / earned premium
- **expense ratio** = expenses / earned premium
- **combined ratio** = (incurred claims + expenses) / earned premium

Below 10000 (100%) the book made an underwriting profit.

## Choices

- Everything is over **earned** premium, the usual UK and IFRS 17 practice
  and what most published combined ratios use. US statutory reporting puts
  expenses over *written* premium instead; for that, call this twice or work
  the expense ratio with `math.round-div` directly.
- The combined ratio is worked from the totals and rounded once, not by
  adding two rounded ratios, so it can differ by one basis point from their
  sum (1.00 and 1.00 on 3.00: 33.33% + 33.33%, combined 66.67%). If a report
  must add up, show the combined ratio from this and derive the display of
  the others from it, not the other way round.
- Incurred claims may be negative in a period where reserve releases
  outweigh new claims (see `insurance.claim-reserve` for incurred
  movements), and the ratio is then negative rather than refused.
- Earned premium must be more than zero: a ratio over nothing is undefined.
- What counts as an expense (commission, acquisition costs, claims handling
  costs) is the caller's reporting policy.

## Before you rely on this

**Not professional advice.** This capability calculates insurance figures from published rules. It is a software component for developers, not financial advice. Rules change and every rate here has an effective date. Check that the dates cover your case. Verify results against the official sources listed above, and have an actuary review how you use it, before anyone relies on the output. Provided "as is" under its licence, without warranty.

**Unreviewed.** This capability's implementations agree in every language and pass its published test vectors, which were worked out from the official sources cited. But no qualified actuary has yet checked those vectors, or confirmed that the capability covers the cases it claims. Treat it as a draft. Do not use it for real people, money or decisions without your own expert review. Once a qualified reviewer signs off, this notice is replaced with their name, qualification and the date. Each new version needs fresh sign-off.

1.0.1 marks it unreviewed. The code and the tests are unchanged.