Functional Weave
Code in TypeScript

insurance.claim-reserve@1.0.0

README.md

1,554 bytes · view raw

# insurance.claim-reserve

The history of one claim's figures: after each transaction, what has been
paid, what has been recovered, the outstanding case reserve, the incurred
total and the movement in incurred.

    incurred = paid - recovered + outstanding

## Transactions

- **reserve**: the claims handler's new estimate of what is still to be paid.
  It sets `outstanding` outright (0 closes the claim or releases the reserve).
- **payment**: money paid out. It adds to `paid` and erodes `outstanding` by
  the same amount, never below zero. A payment within the reserve therefore
  leaves incurred unchanged; one larger than the reserve raises incurred by
  the difference, which is how an under-reserved claim shows up.
- **recovery**: salvage, subrogation or third-party recoveries received. They
  reduce net incurred. A claim recovered in full with costs can show negative
  incurred.

`movement` is the change in incurred made by each transaction: the figure
that goes through the claims account for the period, and what a
development triangle is built from. Summing the movements in a period gives
that period's incurred movement.

Transactions must be in date order; same-day transactions keep the order
given, so a payment and the reserve change that follows it on one day come
out as two positions. Dates are checked as real calendar dates.

Not covered: IBNR and other reserves not held against a specific claim,
reserve currency conversion, and claims handling expenses (pass them as
payments if your reporting counts them in incurred).