Suite Actuarial
Menu

How to read this project

Explore the models knowing what backs each number

Each result has its own level of support. The question is not whether the code calculates, but what can be claimed about the number and what an insurer would still need to use it.

Where the library stands

The entire repository sits, at most, at level 02: verified. No figure reaches level 03.

It is not an oversight: it is a declared decision. The missing data — published mortality, calibrated factors, sourced morbidity — is inventoried in the audit, each entry with its replacement path. That list is also the list of help this project is looking for.

The three levels

What does each level mean?

01

Implemented

The calculation is built: it validates inputs and repeats the result with the same data.

02

Verified

On top of that, an independent check (an identity, a hand-worked case, or another oracle) is able to find known defects.

03

Professionally valid

A real decision still needs approved data, corporate governance, an institutional method, and actuarial judgment. This repository does not claim to have them.

The concrete part

Status by domain

Which check pins each domain, which data sets its ceiling, and its primary limit. Each row links the domain's explained case and its calculator.

Life

Synthetic mortality

Commutation identities (Aₓ + d·äₓ = 1) and the Fackler recursion for endowment reserves.

The mortality table is synthetic and does not validate a professional tariff.

P&C

Illustrative tariffs

Hand-calculated cases and monotonicity of factors and deductibles.

Rating tables are not current official AMIS data.

Health

Illustrative morbidity

Contract boundaries for deductible, coinsurance, cap, and sum insured.

There is no frequency-severity model fed by experience data.

Pensions

Simplified rules

The zero-interest identity (äₓ = 1 + eₓ) and Ley 73 legal cases.

Ley 97 omits survivor insurance required in a complete model.

Reserves

Reproducible triangles

Mack reproduces the published Taylor–Ashe case; the ODP bootstrap, the published φ.

Mack and ODP do not cover model risk, mix change, or unobserved inflation.

Reinsurance

Illustrative treaties

Canonical hand-worked layers (5 xs 5, 5 xs 10, 10 xs 20) and aggregate erosion.

Reinstatement proration considers neither time nor tiered rates.

Regulatory

Heuristic factors

Aggregation identity: the aggregate RCS never exceeds the sum of the modules.

Factors do not implement the complete CNSF stochastic model.

The numbers

What backs the claim

1,380

Python tests, all green

92%

line coverage of the package

10

Class A defects closed against an external oracle, an identity, or a hand calculation

36

inventoried assumptions with source, limit, and replacement path

  • The identity Aₓ + d·äₓ = 1 holds across ages 18–100 with a maximum deviation of 0.0000000000.
  • Mack reproduces the published Taylor–Ashe case to the currency unit; the ODP bootstrap reproduces the published φ and reconciles with Chain Ladder.
  • The worked cases in examples/casos/ run inside the suite: if one of their assertions fails, the suite fails.

Figures taken on 2026-08-03 by running the full suite.

The ceilings, turned into tasks

What help is needed

Each task comes from the audit's Class B inventory: the record of every assumption with its source, its limit, and its replacement path. It is where an outside professional adds more than the project itself can.

01

Published EMSSA-09 table

Today: The bundled table is synthetic: a linear qx ramp with q₆₅ ≈ 0.0135 against ≈ 0.02 in the real EMSSA. It is the ceiling on life, pensions, and part of capital.

The contribution: License the published table, replace the CSV, and update its content_hash: the loader already verifies sha256 and rejects a mismatched file. Then recompute and republish the benchmarks. It is the single most valuable replacement in the project.

See the inventory row
02

RCS factors with published calibration

Today: The factors and correlation matrices are pedagogical heuristics, not the CNSF model. The whole regulatory module inherits that ceiling.

The contribution: Document a verifiable CNSF/CUSF source per factor and replace each heuristic with its matching test.

See the inventory row
03

Cost-of-capital risk margin

Today: The risk margin uses a declared simplification instead of the CUSF cost-of-capital method.

The contribution: Implement the CUSF method with its cited source and contrast it against the current simplification.

Propose it in an issue
04

Independent oracle for triangles

Today: Mack and ODP are checked against fixed published cases; the chainladder dependency is declared and unused.

The contribution: Cross-check Mack, ODP, and Bornhuetter-Ferguson against chainladder on arbitrary triangles, not only the Taylor–Ashe case.

Propose it in an issue
05

Sourced major-medical morbidity

Today: Morbidity rates are illustrative laboratory bands; a health premium today is a contractual exercise, not a tariff.

The contribution: Contribute a public, usable morbidity source with declared validity and units, and the tests that pin it.

Propose it in an issue
06

External actuarial review of a domain

Today: No domain has been disputed by an actuary from outside the project. Identities catch calculation errors, not framing errors.

The contribution: Read one domain's explained case and dispute it using the six-step format. It is the lowest-friction contribution and the only one that sees what identities cannot.

Read the contribution format

What a contribution looks like

CONTRIBUTING.md asks for a model described in six steps, in this order. A result without a source or an explicit limit is marked illustrative; nothing is presented as current without verifiable evidence.

  1. 01Purpose: the actuarial need or decision under study.
  2. 02Benefits or flows: what is paid, when, and under which event.
  3. 03Assumptions: population, data, rates, units, validity, and source.
  4. 04Method: formula, algorithm, and approximations.
  5. 05Results: measures that help interpret the model.
  6. 06Validation: identities, boundary cases, comparison, and limitations.